The open format for recipe data

Soustack is a portable data format for recipes. Export once, import anywhere. Your recipes belong to you.

Recipe apps lock your data into proprietary formats. When you switch apps—or when they shut down—your recipes become stranded. Soustack fixes this by defining an open interchange format that any app can read and write.

What it looks like

A Soustack recipe is a simple JSON structure:

{
  "soustack": "1.0",
  "name": "Maple Walnut Granola",
  "yields": { "amount": 6, "unit": "cups" },
  "ingredients": [
    { "item": "rolled oats", "amount": 3, "unit": "cups" },
    { "item": "maple syrup", "amount": 0.5, "unit": "cup" },
    { "item": "walnuts", "amount": 1, "unit": "cup", "prep": "chopped" }
  ],
  "steps": [
    "Preheat oven to 325°F.",
    "Mix oats and walnuts in a large bowl.",
    "Drizzle with maple syrup and toss to coat.",
    "Spread on a baking sheet and bake 25 minutes, stirring halfway."
  ]
}

Why not just Schema.org?

Schema.org's Recipe type is designed for search engines to understand web pages—not for data interchange between applications. It's verbose, underspecified for parsing, and mixes presentation with data.

Soustack is designed for apps. It's compact, consistent, and built for round-trip export and import without data loss.

Get started

Read the specification to understand the format, or check out the implementation guides if you're building a parser or exporter.