# Recipes and the meal plan

> Ideas for tonight, one Add a recipe button (a link, a photo, pasted text or your own), cook one step at a time, and a week that knows who is cooking and what needs buying.

Two things live here, and they sit on different plans, so it helps to tell
them apart before anything else.

- **The recipe register**: a database of what you cook, on every plan including Free, searchable
  offline. One person cooking for themselves is reason enough to keep one.
- **The weekly meal plan**: the household half. Which dish on which night, who is cooking, and what that
  means for the shopping list. It is part of the Family plan and lives in
  family workspaces.

## Where recipes live

Open **Recipes** from the sidebar. It is the one home for recipes, with three
tabs:

- **Ideas**: recipes to try, from Margin's own collection (more below).
- **Our recipes**: the ones your household keeps.
- **Pantry**: what is in the house, which is how Ideas knows what you can
  cook tonight.

One button, **Add a recipe**, at the top of the page, is how
any recipe comes in. In a family workspace, **This week** sits beside the
recipes (on a phone, one line at the top that opens it): each night's dinner,
which nights are still open, how many ingredients the week needs and how many
are already in your pantry, and **Add 22 to shopping** (with
your own number), which puts the rest on the list and skips anything already on
it. A recipe's own page keeps the same column on the right.

## Ideas

Ideas is for the question that comes before a recipe: what could we cook?

- **Tonight** suggests one dinner. If your pantry has things in it, it picks
  the saved recipe you can make with the least missing ("7 of 9 ingredients at
  home"), or the closest match from Ideas. With an empty pantry it suggests
  something quick and links to the pantry.
- **An open night**, in a family workspace with dinners already planned this
  week ("Thursday is open."), comes with a row of ideas, each with a
  **+ Thu** button that saves it and puts it on that night.
- **Browse** shelves: quick weeknights, vegetarian, soups and stews, baking,
  breakfast, salads, desserts, vegan and slow cooker.
- **By cuisine**: Italian, Mexican, Indian and the rest, each with a drawing.

The search finds a dish, an ingredient or a cuisine. The chips under it
stack: **Under 30 min** and **Vegetarian**
together give quick vegetarian dinners, and **From your pantry**
(shown once the pantry has something in it) ranks what you can make with the
fewest things left to buy. Paste a recipe's web address into the search and it
offers to bring that page in instead.

A dish written several ways shows as one card: Babaganouj, Baba Ganoush and
Babaghanoush are one dish, and the card says how many versions there are.
Searching any spelling finds it. The dish's page lists every version with where
it comes from, its time and what sets it apart (like "with tahini"); tap one to
read it, and **Save** keeps the version you're reading.

Many recipes in the collection come with no description of their own. For
those, a card may carry a one-line **Summary by Margin**, written from the
recipe's own title, ingredients and steps and labelled as ours, so it is never
mistaken for the source's words. It is not copied when you save the recipe.

Every card opens the recipe as a page before anything is saved: the picture,
ingredients and steps, and where it came from. **Save** puts
it in Our recipes. **Plan it for** (a family workspace) shows
the next seven nights with the open ones marked; tap one to plan it there.

**Add 3 to shopping** adds only what your pantry does not
cover, and says how many. **Cook now** opens cook mode.
Planning, shopping or cooking an idea saves it to Our recipes too, so it is
there next time.

## Pictures

A recipe shows its photo when it has one: one you uploaded, the picture a
recipe page published, or a photo from Wikimedia Commons. A Commons photo is
used only under a free license (public domain, CC0, CC BY or CC BY-SA), and its
credit is kept with it and shown under the picture ("Photo: J. Doe via
Wikimedia Commons, CC BY-SA 4.0", linked to the file's page). Saving the
recipe copies that credit, and the credit line for the recipe's text, into Our
recipes. If you replace the photo with your own, its credit goes with it.

A recipe with no photo gets a drawing of the dish in The Margin's ink style,
chosen from its name and what kind of dish it is. A list never shows the same
drawing twice in a row.

## Keep a recipe

A recipe in Our recipes holds a name, an icon, a
description, how many it serves, prep and cook minutes, ingredients, steps,
tags, a photo and the page you got it from. Favorites sort to the top.

For the photo, upload one from your computer or phone (on the phone, choose
one from your library or take one with the camera), or paste an https link to
a picture. An uploaded photo is kept with the recipe in your workspace and
counts toward your storage, so it never disappears when a website moves its
files. Replacing or removing a photo, or deleting the recipe, frees that
space again within two days, whichever app or assistant made the change.

Each ingredient has a name, an amount and an aisle, rather than sitting in one
block of text. The aisle is what turns a week of meals into a shopping list
sorted the way you walk around a supermarket. Leave it blank and Margin fills
it in from the ingredient's name.

Our recipes shows each one as a picture with how your household uses it
("Cooked 11 times, last on Tuesday", or "Not tried yet") and the night it is
on this week. The chips filter to this week's plan, favorites, ones you have
not tried and quick ones; the most-cooked come first. The search box looks
through titles, descriptions and tags in the local database, so it works in
the store with no signal.

## Read and cook a recipe

Tapping a recipe opens it as a page to read. The photo sits at the top, and
the ingredients are grouped by aisle with a checkbox on each line, so you can
lay everything out before you start. The checks are for this cook only and are
not saved.

The servings stepper beside the ingredients rescales every amount on screen.
Nothing is saved when you change it, and the recipe keeps the number it was
written for.

### US or metric

Under the ingredients, pick **As written**, **US** or **Metric**. Amounts change
to cups and ounces or to milliliters and grams, rounded the way a kitchen
measures: 240 ml rather than 236.59, 3/4 cup rather than 0.74. Teaspoons and
tablespoons stay as they are, because metric kitchens use the same spoons, and
counts like "2 eggs" never change. Oven temperatures in the steps follow too
(180°C reads as 350°F). Conversion works together with the servings stepper,
so six servings of a recipe written in grams can be read in cups. Every recipe
opens in your **Units** (Settings, Appearance: Automatic, Metric or US), and
cook mode starts there too. The switch here changes only the recipe in front of
you, and the recipe itself is never rewritten.

### Nutrition

**Nutrition per serving** under the ingredients shows calories, protein,
carbs, fat, saturated fat, fiber, sugar and sodium for the servings on screen.
Open it to see the figures and which ingredients were counted ("from 8 of 10
ingredients, not counted: dragon fruit glaze"). It is an estimate: The Margin
matches each ingredient to a food in USDA FoodData Central (public domain data
we keep on the device), turns the amount into grams, and adds them up. A pinch
of salt counts as nothing, and a line it cannot place is left out and named
rather than guessed.

**Cook this** opens cook mode: one step fills the screen, in
type big enough to read from across the counter.

- Swipe, tap either half of the screen, or use the arrow keys to move between
  steps.
- A step that says "simmer for 20 minutes" offers a 20 minute timer. It keeps
  counting when the screen locks or you switch tabs, and chimes when it ends.
- The screen stays awake while cook mode is open.
- **Done cooking** adds one to the recipe's count ("Cooked 3
  times, last on Tuesday"). If tonight's plan named this recipe, it checks that
  meal off too.

Cook mode needs steps. A recipe saved without them shows a line saying so, and **Edit** is where you add them.

> **Side note:** The checks on the ingredient list are deliberately forgotten. A recipe is not
> a checklist, and next week's cook starts from nothing laid out.

## Get recipes in

**Add a recipe** opens four ways in. Every one lands in Our

recipes, and none asks you to retype anything.

**Pick from Ideas.** Takes you to Ideas with the search ready.

**Paste a link.** Paste a recipe page's address (**Paste**
reads it from your clipboard) and press **Bring it in**. The
page is fetched on the server and read in the cheapest way that works:

1. A TheMealDB link comes straight from their API.
2. A Margin recipe file sitting at a web address is read back exactly.
3. A page that publishes structured recipe data, as most recipe sites do, is
   read directly, for free.
4. Otherwise the page's text goes to the assistant, which pulls out what it
   can and marks the result for you to check.

Only that last route uses an AI action. Some recipe sites turn away
automatic readers. When that happens Margin tries the page again the way a
browser asks for it, then through a page-reading service, then through the
Internet Archive's saved copy. The recipe still records the site's own
address as its source. If every route is refused, you are told the site
blocks automatic reading and pointed at pasting the text instead. A page that
is gone, sits behind a login, or has nothing on it that looks like a recipe
is also named as such.

A recipe imported from a link, in the app or by an assistant, brings its
picture with it. The picture is
downloaded and kept with the recipe, like one you uploaded, so it stays put if
the site changes. If it can't be downloaded, the recipe keeps a link to the
site's own copy.

**Snap a page or paste text.** Take or choose a photo of a cookbook page, a
recipe card or a recipe someone sent you. One AI action reads the words in
it, and they go through the same check as pasted text. The words it read stay
in the text box, so if it misread a line you fix that line and check again
rather than taking the photo again. You can also paste text, or drop in markdown, plain text or a
Margin recipe JSON file, up to 1 MB. A structured file is read with no AI at
all. Free text is checked first. Something with a title, ingredients and steps
goes through as it is. A list of items with no cooking verbs is refused, since
it is usually a shopping list. Only the unclear cases in between use an AI
action, and the assistant works through those ten recipes at a time.

**Write your own**, which is still the quickest way to save the family dish
nobody ever wrote down.

Every import stops at a review screen before anything is saved. Recipes that
passed cleanly arrive selected. Anything the check was unsure of arrives
unselected and opened out, so you choose it after reading it. Save one recipe
in a family workspace and it asks **When will you make it?**: tap a night, or **Just save it**. Then the recipe opens.

> **Known limit:** One import takes up to 50 recipes. For a bigger file, split it and run a
> second import.

## Where Ideas gets its recipes

Ideas reads Margin's own collection: recipes gathered and kept from sources
whose licenses allow it, the Wikibooks cookbooks in English, German and
French, the Recipes Wiki and TheMealDB, with Wikidata adding where a dish is
from. Ideas shows the English ones. Because the collection is ours, it keeps
working when a source is down, and nothing you browse is sent anywhere.

Few sources record cooking times, so "quick" means the recipe says 30 minutes
or less, or its source marked it quick. No source gives nutrition yet, so
Ideas does not filter by it; the recipe page estimates it once saved.

Every kept recipe carries its source, its license and the credit line that
license asks for. Saving copies the credit lines into Our recipes.

Each one also has a completeness score out of 100. It counts amounts on the
ingredients, a real method, times, a serving count, a description, a picture,
a named cuisine and nutrition. Fuller recipes rank above thinner ones, so a
one-line page from a rare cuisine can still be found but never outranks a
complete recipe for the same dish.

Every recipe is filed under the region its dish comes from, never under a
faith, and keeps that filing when its source page is read again. Descriptions
keep the source's own prose with leftover wiki formatting taken out.

## Take them with you

**Export all recipes**, in the menu beside the search on **Our
recipes**, downloads every recipe as one JSON file named for the date. A single
recipe exports from the menu on its own page. The file is built in your browser
with no server involved, so it works offline and on a lapsed plan.

The file imports straight back into this workspace or any other, with nothing
lost. It opens with a plain sentence saying what it is and how to read it
back in, so a person who has never heard of Margin can still use it.

The same menu has two fill-in templates, one JSON and one markdown, for typing
a batch of recipes instead of clicking through the form.

> **On the phone:** The phone app has the same three tabs, Ideas, the idea pages, the week line,
> cook mode and **Add a recipe** with a link, a photo or pasted
> text. Importing a file, exporting and the templates are on the web.

## Plan the week

**Meals** in the sidebar appears in family workspaces. On a laptop it is a
grid: seven days across from Monday, and breakfast, lunch, dinner and snack
down the side. In a phone browser it is one day at a time under a strip of the
week. Drag a dish to another slot to move it, and put more than one dish in a
slot when you need to. The phone app lists the week as seven rows, one a day:
the plus on a day plans it, pull a meal right to mark it eaten or left to
remove it, and long-press it for its details.

Tap a slot to pick a saved recipe or type anything you like. Type three
letters and Ideas answers too, under your own recipes; picking one of those
saves it to Our recipes and plans it. "Leftovers" and
"Eat out" are real answers to what is for dinner, and typing them is how the
week gets recorded honestly. Each planned meal can also carry:

- **Servings**, which override the recipe's own and scale its amounts.
- **Who's cooking**, picked from the household.
- **Notes** for whoever that is.

A recipe page in a family workspace has **Plan it for**, the next seven nights
in a row with the open ones marked: tap one to put the recipe on that night's
dinner. **Plan breakfast or lunch** beside it opens the full form
for any other slot.

Under the week, a line adds up the plan: about how many calories, and how much
protein, carbs and fat, one person gets a day from the planned recipes (one
serving of each). Meals typed as words, and recipes with nothing it can count,
are left out and the line says how many.

Deleting a recipe leaves your week alone. The plan keeps the dish's name as
text, so losing the recipe does not lose the record of what you ate.

### Food rules

**Food rules**, at the top of **Meals**, are set once for the

household: dietary rules, things the family avoids, how many you usually cook
for, and anything else the cook should know. The assistant reads them before it
plans a week.

> **Note: When the plan lapses** If the household's plan ends, the week stays on every device and stays
> readable. Adding, moving and checking off meals stop until the plan is back.
> The recipe register and the food rules keep working.

## The pantry and what you can cook

**Pantry** is a tab on **Recipes** in every workspace (and in **Meals** in a
family). On the phone it is **Pantry and what can I cook**, under
the recipe search. Add what is in the cupboard, fridge or freezer, with a
use-by date when it has one; on the phone you pick the date as days from today.

- **Use soon** at the top lists what has gone bad or goes bad within three
  days.
- **What can I cook** ranks your saved recipes by how much of each is already
  in the house: everything there first, then fewest missing, then the ones that
  use up what is about to go bad. Salt, pepper, water and oil are assumed, a recipe missing more than half its ingredients is left out, and
  anything past its date does not count.
- Press the trash can (or **Used up** on the phone) when something is finished.

Each morning, every grown-up in the household gets one notification when
something goes bad within three days ("2 things in the pantry to use soon:
spinach (today), milk (tomorrow)"). Children are not nudged. The pantry is on
every plan, Free included, like the recipe register, and Margin Intelligence can
read and change it (`list_pantry_items`, `add_pantry_item`, `update_pantry_item`,
`remove_pantry_item`, `what_can_i_cook`).

## From the plan to the store

With **Add ingredients to the shopping list** switched on in **Food rules**
(it starts on), planning a meal for this week or next puts what it needs on
the list a few seconds after it syncs. If another planned meal already put
lemons there, the new meal adds only what the two now need beyond them, as
its own line. Taking the meal off the plan takes its lines back off, unless
someone has already checked them off in the store.

You can also do it by hand. **Add this week's meals** on the shopping list
reads every planned meal that points at a saved recipe, scales each
ingredient to the servings you planned, and combines them.

- The same ingredient across three dinners becomes one line.
- Amounts in the same unit are added, and singular and plural count as one
  unit ("1 can" and "2 cans" make 3 cans). Different units are joined, so you
  get "2 lb + a pinch" instead of a quietly wrong number.
- Free-text meals add nothing, because "Eat out" has no ingredients.
- Pressing it again tops up amounts the plan has outgrown: double a dinner
  and its 8 chicken thighs become 16. A line you edited or already checked off is
  left as it is, and the difference goes on as its own line.
- Pressing it twice with nothing changed does not double your shopping.

A recipe page also has **Add to the shopping list**, on every
plan. Once the pantry has things in it, the ingredients split into **To buy**
and **In your pantry**, and the button reads **Add 3 to shopping**:
only what the pantry does not cover goes on the list. It puts that recipe's ingredients, scaled to the servings on screen, on
the workspace's first list. On Free it shows only when the ingredients fit on
the list (30 items at a time). Press it again at more servings and the lines it added
go up to match. A line someone typed, or one the week's plan added, is never
changed: if it holds less than the recipe needs, the difference goes on beside
it, marked "Top-up for a recipe". A checked line is treated as a shopping trip that is
over, so that ingredient comes back. That one works offline.

> **Known limit:** **Add this week's meals** needs a connection, because it asks
> the server for the week's totals. Everything else here works offline.

See [The shopping list](https://themarginapp.com/docs/the-shopping-list) for the rest of the trip.

## What each plan gives you

The register is on every plan, with a cap per workspace. The **Recipes** page
shows how many you have used ("12 of 25") and says so when you reach it.

| Plan   | Recipes per workspace | Weekly meal plan           |
| ------ | --------------------- | -------------------------- |
| Free   | 25                    | No                         |
| Pro    | 200                   | No                         |
| Team   | 200                   | No                         |
| Family | 500                   | Yes, in a family workspace |

An import that would go over the cap saves up to it and tells you how many
did not fit. A recipe already saved from the same page is skipped, so it does
not use up room twice. Nothing you have already saved is ever removed. See
[Plans and limits](https://themarginapp.com/docs/plans-and-limits).

> **For agents:** The assistant and MCP clients can browse Ideas the way the screen does
> (`discover_recipes`: shelves, cuisine, time, an ingredient, the pantry), read
> one in full (`get_catalog_recipe`), save it with its credits
> (`save_catalog_recipe`), search the catalog (`search_recipe_catalog`, one
> result per dish with how many versions it has), import
> from a link (`import_recipe_from_url`),
> save and edit recipes, plan a week around the food rules (`plan_week`,
> `get_meal_preferences`), send a week's ingredients to the list
> (`add_meals_to_list`), add or take back one meal's
> (`add_meal_ingredients_to_list`, `remove_meal_ingredients_from_list`), read the
> week's totals (`get_planned_ingredients`), turn a recipe's steps into a
> checklist to tick off while cooking (`recipe_steps_to_checklist`) and export
> the register (`export_recipes`).

**Where to next**

- [The shopping list](https://themarginapp.com/docs/the-shopping-list): what happens to the ingredients next
- [Wall widgets](https://themarginapp.com/docs/wall-widgets#kitchen): the week's meals, tonight's recipe and the pantry on the wall
- [Family](https://themarginapp.com/docs/family): the rest of the household suite
- [Importing from other tools](https://themarginapp.com/docs/importing-your-life): bringing recipes and everything else across


---

Section: The rest of life. Checked against the running product on October 25, 2026.
Web page: https://themarginapp.com/docs/recipes-and-meals. Every docs page: https://themarginapp.com/docs/llms.txt
