invite-gated alpha · live now

Stop almost- nailing it.

proof is a cookbook that versions. Write a recipe once; every variation, every attempt, every change lives beside it — and the numbers compute while you type.

Change one number. The whole recipe answers.

drag the hydration — it answers
pizza-dough.md draft · autosaved
@section dough
balls     = 4
ball_wt   = 260 g
hydration = 68%@bind water
@note v6 tried 75% — too slack, reverted
flour     = balls × ball_wt ÷ (1 + hydration + 2.2%)611 g
water     = flour × hydration416 g
salt      = flour × 2.2%13.4 g
yeast     = 0.8 g × balls3.2 g
values flour 611 g water 416 g salt 13.4 g yeast 3.2 g

Illustrative — a scripted demo, computed in this page.
In the app, the evaluator does this live as you type, locally.

one dough · seven attempts

Seven Sundays to a go-to

cookobservevarycook again  ·  until one attempt earns the go-to

Every cook you log is an attempt. Every attempt is comparable. Here is one pizza dough finding its final form — watch the attempts straighten as they converge.

v1Sun 02 Mar first bake Crumb tight, crust pale. Note: more water, longer bulk.
v2Sun 09 Mar water 300 g330 gbulk 2 h3 h Better chew. Still pale.
v3Sun 16 Mar oven 250 °C275 °Csteam added Colour arrives. Bottom scorched.
v4Sun 23 Mar rack bottommiddle Close. The crumb wants more time.
v5Sun 30 Mar cold ferment overnight48 h Flavour lands. Texture follows.
v6Sun 06 Apr hydration 68%75% Too slack. Reverted. the Sunday that went backwards — it stays on the record
v7Sun 13 Apr flour +10% ryesalt 2%2.2% There it is.
→ v7 promoted to go-to

Every attempt above is an edit like this one. Drag it.

hydration = 68% → water 416 g  ·  flour 611 g  ·  salt 13.4 g

the same document as the one in the hero — a scripted demo, computed in this page

The go-to is not a bookmark. It is a decision with a history. When v9 beats it, you promote v9 — and the whole trail stays, including the Sunday that went backwards. Nothing about your cooking is anecdotal anymore.

next — stated plainly

What proof does next.

Future tense means exactly that. Nothing below ships until it works. This is what is being built, in the order it matters.

concept — not shippedtoday: bindings compute forward

Back-solve.

You have 400 g of flour. Soon you will type that — and the recipe will rebuild itself around it: water, salt, starter, every quantity re-derived from the one thing you actually have. Bindings already invert one value today; back-solve extends that inversion to the whole recipe.

plannedtoday: no import of any kind

Paste a URL, get a recipe.

Paste a link to a recipe anywhere on the open web and get an editable draft in your library, under version tracking from its first day. Your changes diff against the original from then on.

planned

A cooking ledger.

One timeline across your whole library: what you cooked, when, what changed, how it went. The record your kitchen has been keeping in your head, written down.

plannedalready real: agent writes are labelled, server-stamped

Your library, readable by your tools.

Everything you write is plain markdown with a documented grammar — which means your own tools will be able to read it, including whatever model you already talk to. One rule is already built into the architecture: anything an agent writes is labelled as the agent’s, stamped by the server — never silently mixed with the work of your own hands.

plain files

Your recipes outlive this app.

Everything you write here is plain markdown in folders you can read with your eyes — not a proprietary database with an export button bolted on. Take the whole library whenever you want: an Obsidian vault, Notion-compatible files, or a zip.

The export is the same shape as the storage, so there is nothing to translate and nothing to lose. If proof disappeared tomorrow, your cooking record would not.

Obsidian and Notion are trademarks of their respective owners.

proof-export/ ├─ pizza-dough/ │ ├─ recipe.md │ ├─ variations/ │ │ └─ rye-blend.md ← go-to │ └─ attempts/ │ ├─ 2026-03-02.md │ └─ 2026-04-13.md └─ .cookrc.yml
Obsidian vaultNotion-compatiblemarkdown zip
attempts/2026-04-13.mdplain text
# Pizza dough · v7
variation: rye blend · go-to

@section dough
flour      500 g · 10% rye
hydration  72%
water      = flour × hydration
salt       = flour × 2.2%

@notes
There it is.

@rating
crumb   5/5
crust   5/5

invite-gated alpha

The alpha is small on purpose.

proof is live and invite-gated. Invites go out in small numbers, in order, as the app hardens — no countdown clocks, no waitlist games.

Leave an email and a line about what you cook; people mid-iteration on something specific — a dough, a ferment, a brisket — get seats first.

today — variations · attempts · live computation · diffs · share links · full export
next — back-solve · URL import · cooking ledger · your tools

Request received. You’ll hear when access opens.

invites go out in order, as the app hardens

Already have an invite? Open proof