Mealie logo

Mealie

Self-hosted recipe manager, meal planner, and shopping list

Alternative to: paprika, mealime, plan to eat

Mealie screenshot

About Versions (96)

v3.3.0

2025-09-28

🍴🍴🍴🍴🍴🍴

Welcome to the latest Mealie release! This update brings a major update to how you parse recipes, home to some of the most heavily-requested features. This update also brings a truckload of fixes to round out some performance issues and fix some fairly-regular annoyances.

❗❗❗Minor breaking change with TOKEN_TIME

This PR introduces a maximum for the TOKEN_TIME variable. If TOKEN_TIME is greater than 87600 (10 years, in hours) the application will fail to load. This was introduced as setting too high of a value can cause an overflow error when generating auth tokens, which can be more difficult to debug since the error wouldn’t necessarily appear at startup.

πŸŽ‰ Highlights

πŸ“‹ Semi-automated Ingredient Parser

Mealie v3.3.0 introduces an entirely new workflow to parsing recipes. The new parsing workflow includes many heavily-requested features such as:

  • A more focused, guided ingredient parser which lets you parse one ingredient at a time
  • Initiate parsing immediately after creating a new recipe (with an option to turn this off, though we encourage you to try it!)
  • Automatically parse ingredients which can be matched with a reasonably high level of accuracy
  • Much much more!

Auth Timeout and iframe Support

Users have been experiencing issues with authentication, including being logged-out seemingly randomly between sessions (even if TOKEN_TIME is set, which is a requirement for longer session times). This update should resolve flaky session times ignoring the TOKEN_TIME.

Additionally, support for hosting Mealie in an iframe (such as via Home Assistant) should be fixed. Note that iframe support only works if being served over HTTPS, which is a browser requirement. For more information, see the samesite Cookie header spec.

✨ New features

  • feat: Manually calculate OpenAI Parsing Confidence @michael-genson (#6141)
  • feat: Upgraded Ingredient Parsing Workflow @michael-genson (#6151)
  • feat: Ingredient Parser Enhancements @michael-genson (#6228)
  • feat: Simplify Default Layout Logic and Add Household.name To Cookbooks API @michael-genson (#6243)

πŸ› Bug fixes

  • fix: Print Button Does Nothing @michael-genson (#6178)
  • fix: ingredient linker and instructions titles @p0lycarpio (#6146)
  • fix: multiple RecipeRating backend calls @p0lycarpio (#6194)
  • fix: Actually Fix Token Time @michael-genson (#6215)
  • fix: Remove explicit timeout from OpenAI image API Call @michael-genson (#6227)
  • fix: Workflow Issues with Deleting Ingredient In Parser @michael-genson (#6230)
  • fix: Enabled Using Mealie In iframe If Served Over HTTPS @michael-genson (#6128)
  • fix: Remove constraint on unhashed password being β€˜LDAP’ @cmintey (#6236)
  • fix: Remove Double Cookie Refresh @michael-genson (#6242)
  • fix: Misc Issues with Ingredient Parser @michael-genson (#6250)
  • fix: Make Ingredient Parser Dialog Use Full Space @michael-genson (#6253)
  • fix: Check for non-hid properties when injetcing SPA meta @michael-genson (#6256)
  • fix: Stores Not Populating Sometimes @michael-genson (#6266)

🧰 Maintenance

18 changes
  • chore(l10n): New Crowdin updates @hay-kot (#6145)
  • chore(auto): Update pre-commit hooks @github-actions (#6174)
  • chore(l10n): New Crowdin updates @hay-kot (#6176)
  • chore(l10n): New Crowdin updates @hay-kot (#6213)
  • chore(l10n): Crowdin locale sync @github-actions (#6206)
  • chore(auto): Update pre-commit hooks @github-actions (#6222)
  • chore(l10n): New Crowdin updates @hay-kot (#6218)
  • chore(l10n): New Crowdin updates @hay-kot (#6224)
  • chore(l10n): New Crowdin updates @hay-kot (#6225)
  • chore(l10n): New Crowdin updates @hay-kot (#6231)
  • chore(l10n): New Crowdin updates @hay-kot (#6234)
  • chore(l10n): New Crowdin updates @hay-kot (#6237)
  • chore(l10n): New Crowdin updates @hay-kot (#6241)
  • chore(l10n): New Crowdin updates @hay-kot (#6254)
  • chore(l10n): New Crowdin updates @hay-kot (#6257)
  • chore: Upgrade Node and Nuxt @michael-genson (#6240)
  • chore: Add Stricter Frontend Formatting @michael-genson (#6262)
  • chore(l10n): New Crowdin updates @hay-kot (#6264)

πŸ“š Documentation

  • docs(auto): Update image tag, for release v3.2.1 @github-actions (#6172)
  • docs: Add Info Regarding Theme Settings Config @michael-genson (#6198)
  • docs: Fix formatting in some community guides @lehnerpat (#6223)
  • docs: Update navigation instructions for (admin) settings pages @lehnerpat (#6220)
  • docs: Improve formatting in β€˜Automating Backups with n8n’ community guide @lehnerpat (#6221)

⬆️ Dependency updates

21 changes
  • chore(deps): update dependency ruff to ^0.13.0 @renovate (#6148)
  • chore(deps): update node.js to abcf9c9 @renovate (#6138)
  • fix(deps): update dependency openai to v1.107.3 @renovate (#6147)
  • fix(deps): update dependency pydantic to v2.11.9 @renovate (#6159)
  • chore(deps): update dependency mypy to v1.18.1 @renovate (#6161)
  • chore(deps): update dependency pytest-asyncio to v1.2.0 @renovate (#6162)
  • chore(deps): update dependency mkdocs-material to v9.6.20 @renovate (#6179)
  • fix(deps): update dependency fastapi to v0.116.2 @renovate (#6181)
  • fix(deps): update dependency authlib to v1.6.4 @renovate (#6182)
  • fix(deps): update dependency openai to v1.108.0 @renovate (#6185)
  • chore(deps): update dependency ruff to v0.13.1 @renovate (#6191)
  • chore(deps): update dependency mypy to v1.18.2 @renovate (#6193)
  • chore(deps): update dependency openai to v1.109.1 @renovate (#6196)
  • chore(deps): update dependency ruff to v0.13.2 @renovate (#6239)
  • fix(deps): update dependency uvicorn to ^0.37.0 @renovate (#6200)
  • fix(deps): update dependency fastapi to ^0.117.0 @renovate (#6205)
  • chore(deps): update dependency coverage to v7.10.7 @renovate (#6216)
  • chore(deps): update dependency lxml to v6.0.2 @renovate (#6219)
  • chore(deps): update dependency pydantic-settings to v2.11.0 @renovate (#6233)
  • chore(deps): update dependency pyyaml to v6.0.3 @renovate (#6245)
  • fix(deps): update dependency bcrypt to v5 @renovate (#6246)

🍴🍴🍴🍴🍴🍴