Overview
Discover what makes ManageMeals powerful
ManageMeals is a full‑stack, self‑hosted recipe management system built to give developers granular control over data ingestion, storage, and presentation. The application exposes a clean RESTful API that powers a SvelteKit front‑end, enabling rapid iteration on UI components while keeping business logic encapsulated in the backend. The system’s primary goal is to ingest recipes from hundreds of third‑party sites, normalise them into a unified schema, and allow users to organise, search, and plan meals with minimal friction.
Recipe Import Engine
Full‑Text Search
Meal Planning & Shopping Lists
Responsive UI
Overview
ManageMeals is a full‑stack, self‑hosted recipe management system built to give developers granular control over data ingestion, storage, and presentation. The application exposes a clean RESTful API that powers a SvelteKit front‑end, enabling rapid iteration on UI components while keeping business logic encapsulated in the backend. The system’s primary goal is to ingest recipes from hundreds of third‑party sites, normalise them into a unified schema, and allow users to organise, search, and plan meals with minimal friction.
Key Features
- Recipe Import Engine – Scrapes and normalises content from over 200 public recipe sites via a pluggable scraper architecture.
- Full‑Text Search – Powered by ElasticSearch, providing instant, typo‑tolerant search across recipes, ingredients, and tags.
- Meal Planning & Shopping Lists – Generates ingredient aggregates for multi‑day plans, exporting to CSV or PDF.
- Responsive UI – A SvelteKit front‑end that automatically adapts to phones, tablets, and desktops, keeping ingredient lists and directions contextually grouped.
Technical Stack
- Frontend: SvelteKit (TypeScript, Vite) with SSR support for SEO‑friendly rendering.
- Backend: Node.js (Express) exposing a REST API; written in TypeScript for type safety.
- Database: PostgreSQL 13+ with JSONB columns for flexible recipe metadata; migrations handled by Knex.
- Search: ElasticSearch 7.x, indexed on recipe fields and ingredient lists for fuzzy matching.
- Containerization: Dockerfiles for both web and API services;
docker-composeorchestrates multi‑instance deployments, load balancing via a reverse proxy service. - CI/CD: GitHub Actions build pipelines that run unit tests, linting, and publish Docker images to a private registry.
Core Capabilities
- API Endpoints: CRUD operations for recipes, meal plans, and user preferences; batch import endpoint that accepts a list of URLs.
- Webhooks: Customizable hooks for post‑import events, enabling integration with external systems (e.g., notification services).
- Plugin System: Scraper plugins are simple Node modules that export a
parsefunction; new sites can be added by creating a new plugin and registering it in the config. - Authentication: Supports JWT‑based stateless auth; can be swapped for OAuth2 or LDAP in enterprise deployments.
Deployment & Infrastructure
- Self‑Hosting: Requires a machine with Docker and Docker Compose; recommended minimum 4 GB RAM, 2 CPUs for production.
- Scalability: Horizontal scaling is trivial—add more
manage-meals-web-*services or API instances; ElasticSearch can be clustered for high availability. - Load Balancing: The
manage-meals-web-lbservice exposes port 80 and forwards traffic to backend instances, enabling zero‑downtime deployments. - Backup Strategy: PostgreSQL dumps via
pg_dump; ElasticSearch snapshots to S3-compatible storage.
Integration & Extensibility
- External APIs: The import engine can be extended to pull data from public recipe APIs (e.g., Spoonacular) by implementing a new scraper plugin.
- Custom UI: Since the front‑end is a SvelteKit SPA, developers can fork and replace components or integrate with GraphQL adapters.
- Webhooks & Events: External services can subscribe to events such as
recipe.importedormealplan.created, allowing automated workflows (e.g., sending a Slack message).
Developer Experience
- Configuration: All runtime options live in
.envfiles; Docker overrides allow port mapping and environment separation. - Documentation: The GitHub repo contains comprehensive README files, API reference docs generated by Swagger, and example scraper plugins.
- Community: Active issue tracker with rapid response times; contributors are welcomed to submit PRs for new site support or performance improvements.
- Testing: Jest test suites cover API routes and scraper logic; linting with ESLint enforces consistent code style.
Use Cases
- Personal Recipe Vault – A hobbyist can self‑host to keep all imported recipes offline, ensuring privacy and data ownership.
- Small Food Blog – Bloggers can use the API to power a custom front‑end, while keeping the ingestion logic on their own servers.
- Enterprise Meal Planning – Companies can integrate ManageMeals with internal scheduling tools, generating shopping lists for cafeteria staff.
- Educational Projects – Students can study web scraping, database normalization, and full‑stack development by extending the scraper plugin system.
Advantages
- Performance: SSR with SvelteKit and ElasticSearch indexing keeps UI latency under 200 ms even for large recipe collections.
- Flexibility: The scraper plugin architecture means adding new sites requires only a few lines of code—no need to modify core logic.
- Open Source Licensing: MIT‑licensed, allowing commercial use without licensing fees or vendor lock‑in.
- Control: Full control over data, backups, and security; no reliance on third‑party cloud services.
- Community‑Driven: Rapid addition of new recipe sites keeps the platform current with evolving web standards.
ManageMeals delivers a developer‑friendly, high‑performance recipe management stack that can be tailored to personal or enterprise needs while maintaining full ownership of data and code.
Open SourceReady to get started?
Join the community and start self-hosting ManageMeals today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
Bugzilla
Collaborative bug tracking for software teams
farmOS
Open‑source farm management platform
Multi Theft Auto: San Andreas
Open‑source multiplayer engine for GTA: San Andreas
Mathesar
Spreadsheet‑like UI for PostgreSQL data, no code required
Typemill
Hybrid CMS for user manuals, docs, and eBooks

Privoxy
Privacy‑enhancing web proxy that filters ads and junk
