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:
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:
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:
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
- Self-Hosting Bar Assistant with Docker Compose
- How to Self-Host Mealie
- How to Self-Host Tandoor Recipes
- How to Self-Host KitchenOwl
- Tandoor vs Mealie
- Mealie vs KitchenOwl
- Tandoor vs KitchenOwl
- Self-Hosted Alternatives to AllRecipes
- Self-Hosted Alternatives to Yummly
- Docker Compose Basics
- Getting Started with Self-Hosting
- Reverse Proxy Setup
- Backup Strategy
Top comments (0)