Mealie vs Tandoor Recipes
Pick Mealie for the simplest recipe manager that still plans meals and builds shopping lists — one container on SQLite, a built-in backup, and nothing else to run. Pick Tandoor if you want PostgreSQL as standard (full-text and trigram search with no database switch), Dropbox/Nextcloud file sync and supermarket-ordered shopping lists, and you are happy to own a database and your own backups.
Side by side
Mealie and Tandoor Recipes are the two self-hosted recipe managers people most often weigh against each other. Both import recipes from a URL, both plan meals and build shopping lists, both group users into households, and both run in Docker on a small box. The difference is how much machinery each one asks you to run and how far each one goes past the basics. Mealie is a single container on SQLite by default. Tandoor is an app container plus PostgreSQL, with more knobs for search and file sync. That choice drives the setup, the backup routine, and who each one suits.
One container on SQLite vs. an app plus PostgreSQL
Mealie ships as one image — a Python backend and a Vue frontend — with its
data in /app/data. Its installation checklist calls SQLite "the ideal choice
for Mealie when you have 1-20 Users" and reserves PostgreSQL for "many
concurrent users." PostgreSQL is optional, but not cosmetic: upstream notes that
"some features are only enabled on PostgreSQL, such as fuzzy search."
Tandoor is a Django application, and its recommended Docker Compose install
is two services: db_recipes running postgres:16-alpine and web_recipes
running the vabene1111/recipes image. Since Tandoor 2 that image bundles its
own nginx, which serves media files and passes the rest to gunicorn, so the
official compose publishes a single port 80 and needs no separate web server.
SQLite exists as a DB_ENGINE option, but the configuration reference says
"Production should always use postgresql," and every official compose example
uses it.
Footprint
Mealie's official compose sets a memory: 1000M limit on the container, and
the docs explain why: Python "can pre-allocate larger amounts of memory than is
necessary" on a machine with a lot of RAM. Mealie publishes no separate
minimum-RAM figure, so that 1 GB limit is the number to plan around.
Tandoor publishes no RAM requirement for its Docker install. The only memory
figure in its docs — at least 2048 MB — applies to the manual install, where
the frontend is built from source with yarn build; the Docker image arrives
prebuilt. Our 1 GB floor for Tandoor is our own estimate for the two
containers (a gunicorn app server that defaults to three workers, plus
PostgreSQL), not an upstream number and not a measurement. Neither app has a
measured idle figure on this site yet.
Setup and first login
Mealie's install is one compose file: set BASE_URL, TZ, and your
PUID/PGID, run docker compose up -d, and open port 9925. The first login
is the published default — changeme@example.com / MyPassword — which you
change at once. Our Mealie page carries the full snippet.
Tandoor's install is the compose file plus a downloaded .env template, in
which upstream says you "NEED to set SECRET_KEY, ALLOWED_HOSTS and
POSTGRES_PASSWORD." After docker compose up -d, upstream says to wait two to
three minutes on the very first start while database migrations run. With no
users in the database, the first visit redirects to a /setup page that creates
the admin account — there is no default password to forget to change. Local
signup is off by default (ENABLE_SIGNUP=0). See our
Tandoor page for the snippet.
Both rate 2 out of 5 to deploy. Tandoor's extra step is the .env file and
a database container; Mealie's is changing a known default login.
Features
The overlap is large. Mealie's recipe scraper creates recipes "from hundreds of websites by simply providing a URL"; its meal planner is a calendar view showing "the previous day and the next 6 days by default"; shopping lists take items directly or link a recipe and all its ingredients; cookbooks filter recipes by categories, tags, and tools. Households are subdivisions within a group, and groups are "fully isolated instances of Mealie." Recipe Actions send the recipe JSON to a URL you choose — upstream's example is triggering a Home Assistant webhook — and there is a documented API. Mealie also has bulk actions, can merge duplicate foods and units, and migrates collections from nine other apps, Tandoor, Paprika and Nextcloud Cookbook among them.
Tandoor covers the same ground with a power-user tilt. Its README promises import "from thousands of websites" that publish ld+json or microdata, planning "multiple meals for each day," shopping lists "via the meal plan or straight from recipes" with supermarket-specific ordering, and cookbooks. Search is full-text with trigram similarity, and you can batch-tag, merge, and rename ingredients, tags, and units. Households share a meal plan and shopping list by default, and spaces split one installation into separate, multi-tenant recipe collections. Tandoor also has optional AI features — importing from images, PDFs, or raw text, sorting steps, and extracting nutrition — routed through LiteLLM to a provider you configure, with a per-space spending cap. It also syncs files with Dropbox and Nextcloud.
Both import from other recipe managers: Mealie's migrations include Tandoor, and Tandoor has a Mealie importer (separate versions for backups made before and after Mealie 1.0). You can move a collection in either direction.
Backups and upgrades
Mealie has a built-in backup under Settings → Admin Settings → Backups, and on SQLite
everything lives under /app/data/.
Tandoor's backup page is blunt: "There is currently no 'good' way of backing up
your data implemented in the application itself." You back up the PostgreSQL
database with pg_dumpall and copy the media files directory yourself. Upgrades
are docker compose down, docker compose pull, docker compose up -d —
upstream says to back up first and read the release notes — and there is "no
mechanism to downgrade the database," so a bad upgrade means restoring a dump.
Moving to a newer PostgreSQL major version is a manual dump and restore.
Licensing
Mealie is AGPL-3.0. Tandoor is AGPL-3.0 with the Commons Clause, which withholds the right to "Sell" the software — including charging for hosting or support services whose value comes from it. Self-hosting for yourself, your family, or your team is unaffected; it matters only if you planned to offer Tandoor as a paid service.
Which to choose
Choose Mealie if you want the simplest recipe manager that still does meal plans and shopping lists: one container, SQLite, a built-in backup, and nothing else to run. Choose Tandoor if you want PostgreSQL as standard (full-text and trigram search with no database switch), Dropbox/Nextcloud file sync and supermarket-ordered shopping lists — and you are comfortable owning a database and your own backups. Neither wins outright; it depends on whether you want the lighter tool or the deeper one.
Choosing between Tandoor and Mealie
Reversed, the trade is the same: start with Tandoor if your collection is large enough that search matters, or you want recipe files synced with Dropbox or Nextcloud, because PostgreSQL search is standard there. Drop back to Mealie if what you mostly need is to scrape a recipe, plan the week, and shop from the list, on the fewest moving parts. Both live in the Recipes category.
Common questions
Mealie vs Tandoor — which self-hosted recipe manager should I pick?
Pick Mealie if you want the simplest setup: one container on SQLite with URL import, a meal planner, shopping lists, and a built-in backup. Pick Tandoor if you want PostgreSQL as standard (full-text and trigram search with no database switch), Dropbox/Nextcloud file sync and supermarket-ordered shopping lists, and you are comfortable running a database and your own backups.
Which needs less RAM, Mealie or Tandoor?
Neither publishes a minimum. Mealie's official compose caps the container at 1000M, so plan on about 1 GB. Tandoor publishes no Docker RAM figure; our 1 GB estimate covers its app container plus PostgreSQL. Neither has been measured on this site yet.
Can I move my recipes from Mealie to Tandoor?
Yes. Tandoor's import feature has a Mealie importer, with separate versions for backups made before and after Mealie 1.0. Upstream says to create a full backup in Mealie's admin settings, because exporting only recipe data gives an incomplete import.
Paid link — we earn a commission if you shop through it.
Other comparisons with these apps
The multi-database web client from DBeaver vs. the PostgreSQL-only admin tool.
One conf.yml with an in-browser editor vs. YAML files and Docker label discovery.
The team LLM-app platform vs. the Python-component canvas.