— The open methodology + stack
Build reasonable systems.
Chat is where ideas start. A reasonable substrate is where they survive. Grain narrows the space of valid outputs until drift becomes structurally impossible — so you can reason about the whole system. Learn to build them here.
Simple > easy — and with enough time, simple keeps rolling when easy falls apart.
The problem
LLMs have no floor.
An agent can build anything, which means it can also drift anywhere. The magic first version gives way to a second that breaks, because the intent lived in a chat thread — and chat doesn't hold.
The answer
A constraining substrate, not a smarter harness.
When natural language is the compiler, the codebase it targets is what bounds the space of valid outputs. Grain's constraints bottom out at the storage layer — so the system can't drift, and you can reason about the whole thing.
— Learn it
The place you go to actually learn this.
Whole Grain apps, built from scratch on screen — then the same app as open code you can read line by line. Watch it get built, then go read exactly how it's put together.
— The controlled vocabulary
Seven primitives. A closed set.
Everything in a Grain system is one of seven things. If it doesn't fit, it's wrong — and that constraint is exactly what keeps the system reasonable.
Events
the source of truthCommands
packaged intentQueries
the read pathRead models
projectionsTo-do processors
react asyncPeriodic tasks
on a scheduleSchemas
the glue— The stack
Open implementations you can read.
Grain
GitHub ↗Narrows the space until drift becomes structurally impossible.
Orc
GitHub ↗If you can read the game tree, you can read the Orc one.
Allium
GitHub ↗The spec layer — the one we've chosen.
Silo
The factory.
— In concert
This is the engine room.
ReasonStack is the open method. obney.ai is the factory that runs it for small businesses — custom software you own, with the next feature shipped on demand.