Open recipe package format

`.recipe` files make recipes portable, inspectable, and app-friendly.

A `.recipe` file is a ZIP package with structured JSON and optional media. The v1 draft is based on the live Do-Re-Ci-Pe import/export format and is being prepared as an open standard for recipe portability.

A 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.jpg
schema-version.txt

Integer compatibility gate. Current value: 1.

manifest.json

Package metadata: format version, generator, export date, recipe id, and name.

recipe.json

Structured 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 spec

Send standards feedback

Share implementation concerns, field suggestions, compatibility questions, or use cases the draft should support.