Last updated: 2026-11-09
Wondering how to write a recipe that cooks well from the page? Every such recipe shares one structure: a title that says what the dish is and how much it makes, an ingredient list where each line carries a quantity, a unit, and the ingredient itself, and then ordered steps, one action at a time, with timings where timing matters. That is the standard format, and it is also the shape recipe apps, recipe parsers, and search engines expect. This guide walks the format line by line, gives you a skeleton to copy, and shows how a parser reads what you wrote, so a recipe written for a person can become structured data without being retyped.
Copy this skeleton and fill the brackets. Everything a good recipe needs is a labeled line:
<Name of the dish> — serves <number>
Ingredients
- <quantity> <unit> <ingredient>, <prep, e.g. chopped>
- <quantity> <unit> <ingredient>
Directions
1. <one action>, <time if the step is timed>
2. <the next action>, building on the last
...
Notes
- <what you would tell a friend: swaps, storage, warnings>
Three conventions do most of the work. Quantities and units live at the start of the ingredient line, separated from the ingredient itself, so "2 cups flour" beats "flour, 2 cups" and both beat "some flour". Prep goes after the ingredient, after a comma: "1 onion, finely chopped". And steps stay singular: one action per numbered step, because a step that says "chop the onions, then start the sauce" breaks into two on the page and confuses anyone cooking along mid-recipe.
The same conventions that help a person help a parser. A parser reads a recipe looking for quantities, units, ingredient names, and timings, and the cleaner those are, the more it gets right on the first pass. Here is what typical lines turn into:
| You wrote | The parser reads | It becomes |
|---|---|---|
| 2 cups flour | quantity 2, unit cups, ingredient flour | an ingredient line with the amount structured |
| Salt to taste | ingredient salt, no fixed quantity | an ingredient line, quantity left open |
| 1 onion, finely chopped | ingredient onion, prep chopped | an ingredient line with a prep note |
| Simmer for 20 minutes | an action plus a duration | a step with a 20-minute timer attached |
| Bake at 180°C until golden | an action, a temperature, a doneness cue | a step with the temperature kept in place |
| A paragraph about your grandmother | prose, not a recipe line | ignored, or misplaced — keep stories out of the recipe body |
The last row is the common failure. Stories belong in a note or a post of their own; inside the ingredient list or the steps, they give the parser, and the cook, nothing to act on.
If the recipe is already written, in any format, you don't have to retype it to get the structure. momoChef imports a recipe from a URL, a social post, a photo, or text you paste in, and parses it into the fields above: ingredients with quantities, steps with timings, nutrition where the source has it. If the recipe lives on a web page, the browser extension saves it without the copy-paste. The parsed preview is editable before anything is saved, which is where you fix the lines that matter, and the recipe stays editable afterwards, so an import is a first draft rather than a verdict. There is a public demo at momochef.com/try that parses text live in the browser, no account needed, if you want to watch the parse happen on one of your own recipes before importing it anywhere.
Handwritten recipes import as photos. Photo import is part of Premium, $0.99 a month or $9.99 a year, and reads the card the same way: text out, structured recipe in, editable preview before saving. Handwriting varies, so read the preview against the card, especially quantities, where a smudged "1" and a "7" are one stroke apart. The card itself stays wherever it lives; the point of the import is that the recipe stops depending on the paper, and a printed copy can go back on the fridge in its place.
Does the format work for every kind of recipe? Yes, with sense applied. A soup wants ordered, timed steps; a cookie diagram may want the steps grouped by component (dough, filling, assembly). Keep the skeleton and bend the middle: the parts are title, yield, ingredient lines, ordered steps, notes.
Do I have to use exact grammar for a parser to work? No. Parsers handle loose phrasing; what they need is quantity, unit, and ingredient near each other on the ingredient line, and steps in order. "2 cups flour" and "flour, 2 cups" both parse; "some" does not carry a quantity at all.
What about metric measurements? Either system, written the same way: quantity first, unit next, ingredient last. Keep one system per recipe, because mixed units in one list are a problem for cooks before they are a problem for parsers.
Why did my parse miss something? Parsers read patterns, and some recipes resist them: quantities buried in the method, unusual units, steps that run together. Fix it in the editable preview, and the correction feeds back into the parser, which is why imports get better at your recipes over time.
Is importing a recipe someone else wrote okay? Importing saves a recipe into your own library for you to cook from, with the source kept so it stays clear where the recipe came from. Publishing or reposting someone else's recipe as your own is a different matter entirely, and not something an import does.
Start small: take a recipe you wrote or a card you were given, paste it into the demo at momochef.com/try, and watch it come apart into ingredients and steps. momoChef is free to start and works in the web app or the iOS app.