Help & Reference

Cross-references

Pull one recipe’s steps into another — swap in your own sauce recipe inside a dish — or drop a clickable link to a recipe in prose. Useful when one recipe is a component of another: pasta and the sauce, pizza and the dough.

Embed another recipe in a step

  1. Open the recipe and tap Edit.
  2. Click or tap into the line you want the import to follow, open its menu, and tap new cross-reference.
  3. Type the other recipe’s title in the card’s Recipe box — it suggests your kitchen’s recipes as you type.
  4. Tap Done.

A cross-reference is a line of its own, carrying a card headed Imports from another recipe in place of ingredient rows or a paragraph. The card has three boxes — Recipe, Multiplier, and Note — and the last two are optional. Give it its own title by adding a step-title line just above it (new header, in the same menu) — or leave it to share whatever step it lands in, ingredients and all.

On the recipe page the embedded recipe renders as a card inside the step. Its ingredients, instructions, and footer appear inline. An arrow beside the card’s title opens the full recipe.

Scale or annotate an embedded recipe

How embedded multipliers compound with scaling

When you scale a recipe that embeds another recipe, the two factors multiply. A parent recipe scaled to 2× with a 2 in the Multiplier box scales the embedded recipe’s quantities and marked numbers by 4×. The embedded card’s badge updates to show the effective factor — × 4 in this example — so the number on the card always tracks what’s actually being cooked.

See Scaling a recipe for how the scaling bar works.

Write @[Recipe Title] in step instructions, an ingredient prep note, a cross-reference note, or the footer. It renders as a clickable link to that recipe — no embedding, no ingredient pulling.

This pairs well with @[Simple Salad].

An ingredient’s name is the one box it doesn’t work in. Put @[ there and Done stops:

Ingredient name can’t contain “@[” — add a cross-reference to link a recipe.

Embedded reference rules

Rule Why
The Recipe box needs a title Done stops with “A cross-reference needs a recipe title.” Fill it in, or remove the line

That’s the only rule the editor itself still holds you to. A cross-reference used to have to stand alone as a whole step, one per step, always titled — none of that applies any more: it can sit among a step’s own ingredients, a step can hold more than one, and an untitled step can open with one. The plain-text form still can’t spell any of those shapes, though — see Recipe format for what a pasted or imported file still requires.

How titles match

Cross-reference titles match the target recipe’s title with case and punctuation ignored. @[pizza dough] and @[Pizza Dough] both resolve to a recipe titled Pizza Dough. The match runs a slugifier: each title is Unicode-normalized, lowercased, spaces become hyphens, and anything outside a-z 0-9 - is stripped. So spaces matter (Pizza Dough and PizzaDough are different), but accents and most punctuation don’t.

Renaming a recipe rewrites the embedded references to it across your kitchen, so you don’t have to hunt them down. A plain @[Title] link in prose is rewritten only inside a recipe that also embeds the renamed one; anywhere else it keeps the old wording and still opens the recipe, because the old address redirects to the new one.

If the embedded recipe is missing

Type a title your kitchen doesn’t have and the editor warns you under the card: “No recipe with this title yet — the line will show a broken-reference notice until one exists.” It still saves — a reference to a recipe you haven’t added yet is legal.

On the recipe page a broken cross-reference renders a placeholder card with a notice in place of the embedded steps:

This step references “Simple Tomato Sauce”, but no recipe with that name exists.

The parent recipe still works otherwise. Fix it by editing the cross-reference to match an existing recipe — or add the missing recipe.

A bare @[Title] link to a missing recipe renders as a normal link. Tapping it lands on the Not Found page.

The line an export writes

You never type this form in the app, but it’s what an export writes and an import reads. An embedded reference is a > line under a step heading:

## Make the sauce.

> @[Simple Tomato Sauce]

## Cook the pasta.

- Spaghetti, 400 g

The multiplier follows the title after a comma, and the note follows a colon. Both are optional:

> @[Pizza Dough], 2: Make a double batch.

Writing the multiplier before the title (> 2x @[Pizza Dough]) is the old syntax and is rejected on import.

See also

Last updated August 28, 2026