Tandoor vs Mealie: Recipe Managers Compared

Quick Verdict

Mealie for most people, Tandoor for serious home cooks. Mealie is easier to set up, imports recipes from URLs more reliably, and has a cleaner mobile experience. Tandoor has deeper features — meal planning with automatic shopping lists, nutritional tracking, multi-user household management, and cookbook organization. If you just want to save recipes from the internet and have them in one place, Mealie. If you plan meals weekly and want shopping lists generated from your meal plan, Tandoor.

Feature Comparison

FeatureTandoorMealie
Recipe import from URLYesYes (more reliable)
Recipe import formatOpenAPI, JSON, Nextcloud Cookbook, Paprika, Chowdown, MealieURL scraping, JSON, Chowdown
Meal planningYes (weekly/monthly calendar)Yes (basic)
Shopping listsAuto-generated from meal plansManual + recipe-linked
Nutritional infoYes (via Open Food Facts)No
Cookbook organizationYes (create multiple cookbooks)Yes (categories and tags)
Multi-user / householdsYes (full household management)Yes (group-based)
SharingPublic recipe links, share to other Tandoor instancesPublic recipe links
Mobile appResponsive web + community Android/iOS appsResponsive web
APIFull REST APIFull REST API
Recipe scalingYesYes
Cooking timersYes (step-by-step mode)No
Food/ingredient databaseYes (connects to Open Food Facts)No
Step-by-step cook modeYesNo
OCR for handwritten recipesNoExperimental
User permissionsView, edit, admin rolesAdmin, user, guest
DatabasePostgreSQL (recommended) or SQLiteSQLite (default) or PostgreSQL
FrameworkDjango (Python)FastAPI (Python) + Nuxt.js
Docker image size~400 MB~300 MB
LicenseAGPL-3.0AGPL-3.0

Docker Setup

Tandoor

services:
  tandoor:
    image: ghcr.io/tandoorrecipes/recipes:1.5.26
    container_name: tandoor
    restart: unless-stopped
    ports:
      - "8080:8080"
    environment:
      - SECRET_KEY=your-random-secret-key-change-this    # CHANGE: generate with `openssl rand -base64 48`
      - DB_ENGINE=django.db.backends.postgresql
      - POSTGRES_HOST=tandoor-db
      - POSTGRES_PORT=5432
      - POSTGRES_DB=tandoor
      - POSTGRES_USER=tandoor
      - POSTGRES_PASSWORD=change_this_password            # CHANGE THIS
      - ENABLE_SIGNUP=0                                   # Disable public registration
      - TIMEZONE=UTC
    volumes:
      - tandoor_static:/opt/recipes/staticfiles
      - tandoor_media:/opt/recipes/mediafiles
    depends_on:
      - tandoor-db

  tandoor-db:
    image: postgres:16-alpine
    container_name: tandoor-db
    restart: unless-stopped
    environment:
      - POSTGRES_DB=tandoor
      - POSTGRES_USER=tandoor
      - POSTGRES_PASSWORD=change_this_password            # Must match above
    volumes:
      - tandoor_db:/var/lib/postgresql/data

volumes:
  tandoor_static:
  tandoor_media:
  tandoor_db:

Mealie

services:
  mealie:
    image: ghcr.io/mealie-recipes/mealie:v2.6.0
    container_name: mealie
    restart: unless-stopped
    ports:
      - "9925:9000"
    environment:
      - ALLOW_SIGNUP=false
      - TZ=UTC
      - MAX_WORKERS=1
      - WEB_CONCURRENCY=1
      - BASE_URL=http://localhost:9925         # Change to your actual URL
    volumes:
      - mealie_data:/app/data

volumes:
  mealie_data:

Mealie uses SQLite by default, making it simpler to deploy — no separate database container needed. For larger installations with multiple users, Mealie also supports PostgreSQL.

Recipe Import: The Feature That Matters Most

The primary reason people install a recipe manager is to save recipes from websites. Both apps scrape recipe URLs, but the experience differs significantly.

Mealie’s import is more reliable. It handles a wider range of recipe websites out of the box, parses structured data (JSON-LD, Microdata) well, and generally produces cleaner results. The browser extension makes importing a one-click operation — click the extension on a recipe page, and it appears in Mealie within seconds.

Tandoor’s import works but requires more cleanup. It sometimes misses ingredients or steps from certain sites, and the imported formatting can be inconsistent. Tandoor compensates by supporting more import formats — you can import from Paprika, Nextcloud Cookbook, and other recipe managers, which is valuable if you’re migrating from another system.

Meal Planning and Shopping

This is where Tandoor pulls ahead decisively.

Tandoor’s meal plan is a real calendar. Drag recipes onto days, assign them to meals (breakfast, lunch, dinner, snack), and the system generates a consolidated shopping list with quantities aggregated across all planned meals. “Need 3 onions total this week” instead of listing the same ingredient from each recipe separately. You can check items off as you shop, and the list is accessible on your phone.

Mealie has meal planning, but it’s simpler — more of a schedule view than a kitchen management tool. Shopping lists exist but are less tightly integrated with the meal plan.

The Kitchen Workflow

If you actively cook and plan meals, Tandoor’s step-by-step cook mode is surprisingly useful. Open a recipe on your phone or tablet in the kitchen, and it shows one step at a time with large text, built-in timers, and ingredient callouts. Swipe to the next step. It’s designed for flour-covered hands.

Mealie displays recipes in a standard format — all steps visible, scrollable. Clean and readable, but not optimized for active cooking.

Performance

MetricTandoorMealie
RAM (idle)~250 MB (app + PostgreSQL)~150 MB (with SQLite)
RAM (active)~350 MB~200 MB
CPULowLow
Startup time~15 seconds~10 seconds
Recipe load timeFastFast
Import speed5-15 seconds per URL3-10 seconds per URL

Mealie is lighter because SQLite eliminates the database container overhead. With PostgreSQL, both apps use comparable resources.

Community

MetricTandoorMealie
GitHub stars6K+8K+
Contributors100+150+
Release cadenceMonthlyMonthly-bimonthly
CommunityGitHub Discussions, DiscordGitHub Discussions, Discord
DocumentationGood (docs site)Good (docs site)

Both have active communities and responsive developers. Mealie’s community is slightly larger, partly because its simpler setup brings in more casual users.

Use Cases

Choose Tandoor If…

  • You plan meals weekly and want automatic shopping lists
  • You track nutritional information
  • You manage a household with multiple cooks who need different permissions
  • You want step-by-step cook mode with timers
  • You’re migrating from Paprika, Nextcloud Cookbook, or another recipe manager
  • You want to organize recipes into multiple named cookbooks

Choose Mealie If…

  • Your primary need is saving recipes from websites
  • You want the simplest possible setup (single container, SQLite)
  • Mobile experience is a priority — Mealie’s responsive design is excellent
  • You don’t need complex meal planning or shopping list generation
  • You prefer a clean, modern UI over feature density
  • You’re a casual cook who collects recipes more than plans meals

Final Verdict

Mealie is the better recipe manager for collecting recipes. Its URL import is more reliable, the UI is cleaner, and the single-container deployment is refreshingly simple. If you browse food blogs and want to save the good ones to your own server, Mealie does this better than anything else.

Tandoor is the better kitchen management system. Meal planning, shopping lists, nutritional tracking, and cook mode make it a genuine tool for running a kitchen. It’s more complex to set up and use, but the payoff is real if you plan meals regularly.

For a household that plans meals weekly: Tandoor. For everyone else: Mealie.

Comments