Recipes you write by hand. Machines can run.
Foodlang is a tiny, readable recipe language. Write a recipe like a little script โ then compile it to coffee machines, robots, industrial systems, and the web.
No account required ยท Runs in your browser ยท MIT licensed
drink "Iced Vanilla Latte" {
ingredients {
coffee 18 g
vanilla_syrup 20 ml
milk 10 oz
ice 140 g
}
phases {
preinfuse coffee { pressure 2 bar; flow 2 mlps; time 6 s }
brew coffee to shot { pressure 9 bar; stop 40 g; max 28 s }
build cup { vanilla_syrup; shot; stir 5 s; ice; milk }
}
}
One Recipe, Every Layer
Foodlang isn't just a format โ it's a compiler from a single source to the human, web, appliance, robot, and industrial layers.
Human (Cooklang)
Export a friendly, app-compatible Cooklang version for cooks to read and follow.
Cooklang export โWeb (Schema.org)
Publish recipes as Schema.org Recipe JSON-LD for rich results on the web.
Web publishing โAppliances
Map to OPC UA, MQTT, Matter, and smart-appliance program payloads โ ready for your driver.
Appliance automation โRobots
Generate action graphs, PDDL domains, and FOON functional units for planners.
Robot planning โIndustrial
Express recipes as ISA-88/S88-style batch procedures of operations and phases.
Industrial batch โNutrition (BevFacts)
Export an FDA-style Nutrition Facts label โ calories, sugars, caffeine, %DV โ estimated from ingredients. Integrated with BevFacts.
BevFacts export โScannable QR
Compile a recipe to a QR code (by qrpuppy). Scan it at a machine โ if it speaks Foodlang, it runs the recipe.
Recipes as QR โCLI & Library
Validate, inspect, and compile from the terminal or embed the TypeScript library.
Explore the CLI โFood is transformations
Normal recipes describe ingredients and human steps. Foodlang adds the missing layer โ culinary transformations โ that makes a recipe executable.
Typed inputs in known states become typed outputs in new states. That transformation graph is the bridge between a human recipe and a machine that can run it.
Read the philosophycoffee grounds + hot water โ espresso
cold milk โ steamed milk + microfoam
onion:whole โ onion:diced โ onion:sautรฉed
dough:raw โ bread:baked
Compile to Eleven Targets
Every target declares its fidelity, so you always know whether the output is directly usable, a mapping, or illustrative. Foodlang refuses to overpromise.
Schema.org JSON-LD
executableWeb-ready recipe structured data.
ORF-clean YAML
executableBase recipe with X-foodlang stripped.
OPC UA mapping
mappingRecipe-parameter writes + StartRecipe.
MQTT payload
mappingTopic + command payload.
Robot action graph
mappingDAG of dependent actions.
ISA-88 / S88
mappingOperations and ordered phases.
Cooklang
illustrativeHuman-friendly, lossy export.
PDDL
illustrativePlanner-compatible domain + problem.
FOON
illustrativeFunctional object-oriented network.
Appliance program
mappingSmart-appliance coffee program mapping.
Matter
illustrativeFuture-compatible device mapping.
Honest by Design
Foodlang grades every recipe across seven levels โ from human-readable to industrial โ reporting pass, partial, or fail, never pretending a mapping is a running machine.
Ready to make your recipes executable?
Open the playground and watch a recipe compile to every layer โ entirely in your browser.