DEV Community

selfhosting.sh
selfhosting.sh

Posted on • Originally published at selfhosting.sh

Recipes

The Winner

Mealie is the best self-hosted recipe manager for most households. It has the slickest UI, reliable recipe import from URLs, meal planning, and a shopping list that actually works on mobile. Tandoor edges it out for serious cooks who want detailed nutritional tracking and more powerful search.

Updated March 2026: Verified with latest Docker images and configurations.

Situation Best Choice Why
Most households Mealie Polished UI, easy imports, solid meal planning
Nutritional tracking Tandoor FDC integration, detailed per-serving nutrition
Grocery + recipe combo KitchenOwl Integrated expense tracking and shopping lists
Mobile experience Mealie Best mobile apps (iOS + Android)

Mealie — Best Overall

Mealie focuses on the recipe workflow that most families actually use: find a recipe online, save it, plan meals for the week, generate a shopping list. The URL recipe scraper handles most popular recipe sites, and the result is a clean recipe card with ingredients, instructions, and photos.

The shopping list is the unsung hero. It integrates with your meal plan — select the meals for the week and Mealie generates a combined ingredient list, merging duplicates and organizing by category. On mobile, you can check items off as you shop. It sounds simple, but most recipe managers get this wrong.

Meal planning uses a calendar view where you drag recipes into breakfast, lunch, and dinner slots. Multi-user support means household members can each add their own recipes and contribute to shared meal plans.

Pros:

  • Excellent URL recipe scraper — handles most recipe sites
  • Integrated meal planning with calendar view
  • Shopping list generated from meal plans, with duplicate merging
  • Native mobile apps (iOS and Android)
  • Multi-user with household support
  • Recipe categorization with tags and categories
  • Cookbook collections for grouping recipes

Cons:

  • Nutritional information is basic (imported from scraped sites, not calculated)
  • No built-in recipe scaling for different serving sizes
  • Search is functional but not as powerful as Tandoor's

Docker Compose:

services:
  mealie:
    image: ghcr.io/mealie-recipes/mealie:v3.12.0
    container_name: mealie
    ports:
      - "9925:9000"
    environment:
      - ALLOW_SIGNUP=true
      - PUID=1000
      - PGID=1000
      - TZ=America/New_York
      - MAX_WORKERS=1
      - WEB_CONCURRENCY=1
      - BASE_URL=http://localhost:9925
    volumes:
      - mealie-data:/app/data
    restart: unless-stopped

volumes:
  mealie-data:
Enter fullscreen mode Exit fullscreen mode

Resources: ~90 MB RAM. SQLite by default. ~200 MB disk for the app plus recipe images.

[Read our full guide: How to Self-Host Mealie]

Tandoor Recipes — Best for Serious Cooks

Tandoor takes recipe management more seriously than Mealie. It connects to the FoodData Central (FDC) nutrition database for accurate per-ingredient nutritional calculations, supports recipe scaling, and has a keyword-based categorization system that's more granular than simple tags.

The recipe editor is more detailed — you can add steps with individual timers, link sub-recipes (a sauce recipe embedded in a main dish), and annotate ingredients with unit conversions. Import supports URLs (like Mealie) plus manual entry and file imports from Nextcloud Cookbook, Paprika, and other formats.

Tandoor requires PostgreSQL, which makes it slightly heavier to run but delivers better search performance across large recipe collections.

Pros:

  • FDC nutritional database integration — accurate nutrition per recipe
  • Recipe scaling for different serving sizes
  • Step-by-step instructions with individual timers
  • Sub-recipe linking (embed one recipe inside another)
  • Advanced keyword and category system
  • Import from multiple formats (Paprika, Nextcloud Cookbook, Chowdown)
  • Multi-user with fine-grained permissions

Cons:

  • Requires PostgreSQL — more complex setup
  • UI is functional but less polished than Mealie
  • Mobile experience is web-only (no native app)
  • Shopping list is less intuitive than Mealie's
  • Steeper learning curve for the keyword system

Docker Compose:

services:
  tandoor:
    image: vabene1111/recipes:2.5.3
    container_name: tandoor
    ports:
      - "8080:8080"
    environment:
      - DB_ENGINE=django.db.backends.postgresql
      - POSTGRES_HOST=tandoor-db
      - POSTGRES_PORT=5432
      - POSTGRES_USER=tandoor
      - POSTGRES_PASSWORD=tandoor_secret     # Change this
      - POSTGRES_DB=tandoor
      - SECRET_KEY=change-me-to-something-random-and-long  # Change this
      - TIMEZONE=America/New_York
    volumes:
      - tandoor-static:/opt/recipes/staticfiles
      - tandoor-media:/opt/recipes/mediafiles
    depends_on:
      - tandoor-db
    restart: unless-stopped

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

volumes:
  tandoor-static:
  tandoor-media:
  tandoor-db:
Enter fullscreen mode Exit fullscreen mode

Resources: ~100 MB RAM (app + PostgreSQL). Moderate disk for recipe images.

[Read our full guide: How to Self-Host Tandoor Recipes]

KitchenOwl — Best for Shopping Integration

KitchenOwl combines recipe management with household shopping and expense tracking. It's designed around the practical loop: plan meals → generate shopping list → track what you buy → know what things cost. The expense tracking feature is unique among recipe managers.

The recipe features are solid but less deep than Tandoor's — no nutritional database integration or sub-recipe linking. Where KitchenOwl shines is the shopping experience. The app (Flutter-based, available on iOS and Android) has a clean shopping list interface with categories, and the expense tracker helps you see how much meal prep actually costs over time.

Pros:

  • Integrated expense tracking alongside recipes
  • Native mobile apps (Flutter — iOS and Android)
  • Shopping list with category organization
  • Meal planning calendar
  • Multi-household support
  • Recipe import from URLs
  • Lightweight — SQLite default, single container

Cons:

  • Smaller community than Mealie or Tandoor
  • Less powerful recipe editor (no step timers, no sub-recipes)
  • No nutritional tracking
  • URL scraper is less reliable than Mealie's
  • Fewer import format options

Docker Compose:

services:
  kitchenowl:
    image: tombursch/kitchenowl:v0.7.6
    container_name: kitchenowl
    ports:
      - "8080:8080"
    environment:
      - JWT_SECRET_KEY=your-random-secret-key-here  # Change this — generate a random string
      - FRONT_URL=http://localhost:8080
    volumes:
      - kitchenowl-data:/data
    restart: unless-stopped

volumes:
  kitchenowl-data:
Enter fullscreen mode Exit fullscreen mode

Resources: ~50 MB RAM. SQLite storage. Minimal disk usage.

[Read our full guide: How to Self-Host KitchenOwl]

Feature Comparison

Feature Mealie Tandoor KitchenOwl
URL recipe import Excellent Good Basic
Nutritional tracking Basic (scraped) FDC database No
Meal planning Calendar view Calendar view Calendar view
Shopping list Auto-generated, mobile-friendly Manual + meal plan Auto-generated + expense tracking
Recipe scaling No Yes No
Sub-recipes No Yes No
Step timers No Yes No
Native mobile app iOS + Android No (web only) iOS + Android (Flutter)
Multi-user Yes (household) Yes (permissions) Yes (multi-household)
Database SQLite PostgreSQL SQLite
Docker containers 1 2 (app + PG) 1
RAM usage ~90 MB ~100 MB (with PG) ~50 MB
Expense tracking No No Yes
Import formats URL, JSON URL, Paprika, Nextcloud Cookbook, others URL
License AGPL-3.0 AGPL-3.0 AGPL-3.0
Active development Very active Active Active

The Verdict

Mealie wins for most households. The URL scraper just works, the shopping list integration with meal planning saves real time every week, and the mobile apps are polished enough that the whole family will actually use them. If your primary goal is "save recipes from the internet and plan weekly meals," Mealie does this better than either alternative.

Tandoor is the better choice if you cook seriously and care about nutrition. The FDC database integration gives you accurate per-serving nutritional breakdowns that Mealie can't match. The recipe scaling and sub-recipe features are also genuinely useful for complex dishes. You'll pay for this with a more complex setup (PostgreSQL) and a less polished mobile experience.

KitchenOwl carves out its own niche with expense tracking. If you want to know not just what you're cooking but how much it costs, KitchenOwl is the only option that integrates both. The recipe features are lighter than either competitor, but the shopping + cost tracking workflow is unique.

Frequently Asked Questions

Can I import recipes from websites automatically?

Yes — all three apps support URL-based recipe import. Mealie has the most reliable scraper, handling most popular recipe sites (AllRecipes, Food Network, Serious Eats) and extracting ingredients, instructions, and photos automatically. Tandoor also imports from URLs plus file formats like Paprika and Nextcloud Cookbook exports. KitchenOwl's scraper works but is less reliable on complex pages.

Do any of these apps have mobile apps?

Mealie has native mobile apps for iOS and Android — the best mobile experience of the three. KitchenOwl has Flutter-based apps on both platforms that work well for shopping lists. Tandoor is web-only with no native mobile app, though the responsive web UI works on phones.

Can I share recipes with family members?

All three support multi-user accounts. Mealie has a household model where members share recipes and meal plans. Tandoor has fine-grained permissions (view, add, edit, delete) per user. KitchenOwl supports multiple households, each with their own recipe collections and shopping lists.

How much storage do recipe managers need?

Recipe databases are small — a few hundred recipes with photos might use 500 MB to 1 GB. Mealie runs on about 90 MB RAM with SQLite. Tandoor needs ~100 MB plus PostgreSQL. KitchenOwl is the lightest at ~50 MB. All run comfortably on a Raspberry Pi or any small server.

Can I export my recipes if I switch apps?

Mealie exports to JSON. Tandoor exports individual recipes or full backups. Standard recipe formats (like schema.org Recipe JSON-LD) make cross-app migration possible, though you may need to reformat some data. Tandoor has the most import format support, making it the easiest migration target.

Do these apps calculate nutrition information?

Tandoor is the only one with serious nutritional tracking — it connects to the USDA FoodData Central database and calculates per-serving nutrition from individual ingredients. Mealie shows nutrition data if the scraped recipe site included it, but doesn't calculate independently. KitchenOwl has no nutritional tracking.

Related

Top comments (0)