The open .recipe format
Recipes should outlive the app that made them.
A .recipe file keeps structured cooking data and its media together in one portable, inspectable package—built from the live Do-Re-Ci-Pe format.

Document status
Draft v1 is implementation-backed, not yet governed by a standards body. The goal is a practical public format first, then broader review.
Read the specification
The v1 draft defines the package layout, JSON fields, versioning rules, conformance language, and examples.
Open specImplement an importer
Start with schema-version.txt, parse manifest.json, then load recipe.json and package-relative assets.
Importer notesGive feedback
The format is intentionally early. Feedback from recipe apps, archiving tools, and data portability projects is welcome.
Open formA small standard for a stubbornly real problem.
Recipes move through families, screenshots, notes apps, PDFs, blogs, subscriptions, and databases. The data is structured enough for software, but personal enough that losing context hurts.
`.recipe` keeps the useful structure without making the file mysterious: one archive, two JSON documents, one schema marker, optional assets.
Recipes are personal data
A recipe collection should remain useful outside the app that created it.
Human inspectable, machine useful
Core data lives in JSON. Images live as ordinary files. A ZIP tool can inspect the whole package.
Cooking details matter
The model keeps timers, why-notes, nutrition, dietary labels, equipment, storage, and provenance alongside ingredients.
Compatibility is explicit
Minor revisions can add fields. Major revisions have a reserved version boundary so readers know when to stop.
Package anatomy
The file extension is for people. The internal structure is for tools. Rename a `.recipe` file to `.zip` and the layout remains ordinary.
example.recipe
|-- schema-version.txt
|-- manifest.json
|-- recipe.json
+-- assets/
|-- recipe-image.jpg
+-- steps/
|-- step-0.jpg
+-- step-1.jpgschema-version.txtInteger compatibility gate. Current value: 1.
manifest.jsonPackage metadata: format version, generator, export date, recipe id, and name.
recipe.jsonStructured recipe payload: ingredients, steps, nutrition, labels, optional details, and image references.
assets/Optional recipe and step images referenced by package-relative paths.
Who this is for
The format is intentionally simple enough for small apps, personal tools, and long-term collections.
For app builders
A clear interchange target for import, export, migration, backup, and cross-app sharing.
For cooks
A recipe file that can be saved, sent, backed up, and opened without turning dinner into platform lock-in.
For archivists
Plain JSON and regular image files make long-term preservation more practical than opaque databases.
Help shape v1 before it hardens.
The best standards earn trust through clear docs, testable examples, predictable versioning, and real implementer feedback. That is the bar for `.recipe`.
Review the draft specSend standards feedback
Share implementation concerns, field suggestions, compatibility questions, or use cases the draft should support.