norish  by norish-recipes

Self-hosted recipe app enabling real-time collaboration on meals and groceries

Created 7 months ago
1,085 stars

Top 34.3% on SourcePulse

GitHubView on GitHub
Project Summary

Norish offers a self-hosted, real-time recipe application designed for families and friends to collaboratively build a shared recipe catalog. It addresses the need for a minimalistic, aesthetically pleasing alternative to feature-rich apps like Tandoor or Mealie, with a core focus on real-time synchronization for collaborative grocery shopping and meal planning. The primary benefit is a seamless, shared experience for managing recipes and household shopping lists.

How It Works

Norish employs a real-time architecture, synchronizing recipes, grocery lists, and meal plans instantly across users within a household. The backend is built with Node.js, embedding a custom server alongside the Next.js framework, utilizing PostgreSQL with Drizzle ORM for data persistence. Key features leverage AI for recipe import via URLs or video platforms (requiring an OpenAI provider), unit conversions, and natural language processing for recurring groceries. Headless Chrome (via Puppeteer) is used for web scraping recipe content.

Quick Start & Requirements

  • Primary install/run command: Deployment is facilitated via Docker Compose, using the provided docker-compose.yaml file.
  • Non-default prerequisites: A PostgreSQL database instance is required. OpenAI API keys are necessary for AI-driven features like recipe import and unit conversion. A MASTER_KEY must be generated.
  • Links: The repository serves as the primary source for setup and documentation.

Highlighted Details

  • Real-time synchronization for recipes, grocery lists, and meal plans.
  • AI-powered recipe import from URLs and video platforms (YouTube Shorts, TikTok, etc.).
  • Automated unit conversion (metric/US) and recurring grocery item detection via NLP.
  • CalDav synchronization for recipes with compatible providers.
  • Single Sign-On (SSO) support via OIDC/OAuth2 (e.g., Authentik, Keycloak, GitHub, Google).
  • Mobile-first design optimized for kitchen use, with light/dark mode support.

Maintenance & Community

The project is primarily developed by 'mikeve97'. No specific details regarding community channels (Discord/Slack), active contributors, sponsorships, or a public roadmap were present in the provided text.

Licensing & Compatibility

Norish is licensed under the AGPL-3.0 license. This strong copyleft license requires any derivative works to also be made available under the AGPL-3.0. This may impose restrictions on integration into closed-source or commercial applications without adhering to the license terms.

Limitations & Caveats

Current documentation is noted as limited, with plans for improvement. AI-related features, particularly when using the OpenAI API, can be slow. The project's internal event emitter is described as "hacky" and not scalable, with a planned migration to Redis. Support for local AI providers is theoretical and untested. Password authentication is disabled by default when OIDC/OAuth2 providers are configured.

Health Check
Last Commit

19 hours ago

Responsiveness

Inactive

Pull Requests (30d)
9
Issues (30d)
13
Star History
20 stars in the last 30 days

Explore Similar Projects

Feedback? Help us improve.