1. Get a Recipe into Soustack

Start with a minimal JSON recipe. This establishes a portable envelope for interchange without requiring parsed quantities, prep annotations, or timing data.

Minimal recipe structure

A minimal Soustack recipe can be just structured text. This is sufficient for transport, display, and basic interoperability. When no stacks are declared, the recipe remains a simple, portable data envelope.

{
  "$schema": "https://spec.soustack.org/soustack.schema.json",
  "name": "Simple Pancakes",
  "ingredients": [
    "2 cups flour",
    "2 eggs",
    "1½ cups milk"
  ],
  "instructions": [
    "Whisk all ingredients together.",
    "Cook on a hot griddle until golden."
  ]
}

This form does not require parsed quantities, prep annotations, or timing data. It establishes a stable envelope without committing to advanced behavior.

Required fields

At minimum, a Soustack recipe needs:

  • name — The recipe name
  • ingredients — An array of ingredient strings or objects
  • instructions — An array of instruction strings or objects

The $schema field is recommended to enable validation and editor support.

What you can do with minimal recipes

Even with this minimal structure, you can:

  • Validate the recipe structure
  • Display the recipe in applications
  • Exchange recipes between systems
  • Store recipes in a portable format

Next steps

Once you have a recipe in this format, you can see what it can do with validation and display tools.

When you're ready for more capabilities, you can upgrade your recipe by adding stacks.