MCPSERV.CLUB
ManageMeals

ManageMeals

Self-Hosted

Free, fast recipe manager for meal planning

Stale(53)
47stars
0views
Updated Apr 11, 2025
ManageMeals screenshot

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-compose orchestrates 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 parse function; 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-lb service 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.imported or mealplan.created, allowing automated workflows (e.g., sending a Slack message).

Developer Experience

  • Configuration: All runtime options live in .env files; 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

  1. Personal Recipe Vault – A hobbyist can self‑host to keep all imported recipes offline, ensuring privacy and data ownership.
  2. Small Food Blog – Bloggers can use the API to power a custom front‑end, while keeping the ingestion logic on their own servers.
  3. Enterprise Meal Planning – Companies can integrate ManageMeals with internal scheduling tools, generating shopping lists for cafeteria staff.
  4. 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

Weekly Views

Loading...
Support Us

Featured Project

$30/month

Get maximum visibility with featured placement and special badges

Repository Health

Loading health data...

Information

Category
other
License
GPL-3.0
Stars
47
Technical Specs
Pricing
Open Source
Docker
Dockerfile
Supported OS
LinuxDocker
Author
managemeals
managemeals
Last Updated
Apr 11, 2025