Food library
The two databases under every meal plan — Foods (composed dishes) and Ingredients (the nutrition base) — and how their condition, allergen, and medication tags drive AI filtering.
Everything a meal plan puts in front of a client is built from two libraries:
- Ingredients — the base nutrition database. One row per raw food (Spinach, Wheat flour, Chicken breast) with per‑serving macros and the clinical tags that matter: allergens, condition effects, and drug interactions.
- Foods — composed dishes (Palak Paneer, Dal Tadka, Idli) built from ingredients. These are what you drop into templates and plans.
They stack like this: ingredients → foods → meal templates → meal plans. Tags set on an ingredient flow up automatically — flag Spinach as one to avoid in kidney disease, and every dish containing spinach inherits that warning, which the AI rules then act on.
Foods
Open Foods from the sidebar.

Each row shows the dish, the meal slot(s) it suits, diet badges (Veg / Vegan), a verified shield if it's been reviewed, and its macros (kcal · P · C · F). Filter the list from the toolbar:
- Search by name.
- Slot — Breakfast, Lunch, Dinner, etc.
- Diet — Vegetarian / Non‑vegetarian / Vegan.
- Status — Verified only / Unverified only.
- Cuisines, Key ingredients, and Component role — multi‑select filters for narrowing the library.
Creating a food
Click New food, give it a title (and optionally a description, servings, slot, and whether it's vegetarian), and save. That creates the dish and drops you on its detail page, where you fill in the rest:

- Basics — title, regional name, description, prep/cook time, servings, serving size, and whether fractional servings are allowed.
- Dietary flags — Vegetarian, Vegan, Jain, Contains egg, Halal.
- Macros — kcal, protein, carbs, fat, fiber.
- Classification — the slots it can fill, its component roles (grain, dal, sabzi, drink…), and cuisines.
- Key ingredients — the ingredients this dish is made from. This is what links the food back to the ingredient database, and how condition/medication tags are inherited.
- Recipe — free‑form ingredient rows and cooking instructions (shown to clients when they tap a dish).
Conditions on a food
The detail page has a Conditions card that aggregates the condition effects of the dish's ingredients into three buckets — Avoid, Limit, Beneficial. So a dish made with spinach and wheat might show "Avoid for diabetes" without you setting anything, because those ingredients carry the flags. You can add a dish‑specific override here too, when a composed dish needs a rule its ingredients don't imply.
Ingredients
Open Ingredients from the sidebar.

Each row shows the ingredient, its category (Vegetable, Dairy, Grain…), diet badges, a conditions count, a seasonality badge, and macros per serving. Filter by Search, Category, Status (verified), and Interactions (which medications it conflicts with).
Creating an ingredient
Click New ingredient. The editor covers:

- Name and regional names, category.
- Serving size & unit (default 100 g) and macros per serving — kcal, protein, carbs, fat, fiber.
- Cuisines.
- Seasonal availability — pick the seasons it's available in, or leave empty for year‑round. AI plans exclude out‑of‑season ingredients for the planned season.
- Dietary flags — Vegetarian, Vegan, and Common dislike (surfaces it in the client allergies/dislikes picker).
Two tagging sections are what make the AI plans safe:
Conditions — add condition effects in three buckets (Avoid / Limit / Beneficial) with optional notes. Example: Kidney disease — Avoid. These feed the disease rules.
Medication interactions — a flat avoid‑list of drugs this ingredient shouldn't be combined with, each tagged with a category (Antidiabetic, Antihypertensive, Statin, Anticoagulant, Thyroid, …). This drives the medication rule: anything a client is tagged with on their Medical tab automatically excludes conflicting ingredients from their plans.
Why this matters: the time you spend tagging an ingredient once pays off on every plan. A client tagged with Warfarin will never be served a dish whose ingredients you've flagged as anticoagulant‑interacting — you don't have to remember it dish by dish.
Verifying foods and ingredients
Library editors can mark a food or ingredient Verified once its macros, ingredients, and tags have been reviewed — it then shows a green shield in the list, with "Verified by … on …" on hover. Verification is reversible.
This feeds the Verified foods only AI rule (on by default), which keeps client plans to reviewed content. See AI meal plans › Verified foods only.
Build a template straight from a food
On a food's detail page, the Combinations card lists every meal template that uses the dish. Click New there to open the template editor pre‑seeded with this food as the first component and its slots already set — then add the rest (a grain, a dal, a drink) and save. It's the fastest way to turn a single dish into a plannable meal.
What's next
- Meal plans — combine foods into templates and plans.
- AI meal plans — how the tags above become the rules that compose safe plans.