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.

Checked against the running product on 16 min readMarkdown

On this page

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.

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.

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.

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.

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.

See 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.

PlanRecipes per workspaceWeekly meal plan
Free25No
Pro200No
Team200No
Family500Yes, 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.