The domain model is the program

Onto’s core thesis is that the domain model is primary. Every other approach loses the domain model in translation: experts tell stories, developers turn them into code, meaning leaks out. Onto deletes ␡ the translation step. You author a model in three small DSLs (Stories, Rules, Formulas) and the model compiles structurally to reactive Datalog; the running app is just the model firing.

<aside> 💡

Onto: Stories + rules in → facts and rules out. The app is what happens when they fire.

</aside>

Start with stories

IMG_7690.png

IMG_7691.png

A story is a single concrete linear path- one way things actually happened, beat after beat. No branches, no conditionals, no "if"- just anirreducible sentence:

Actor —acts on→ Object

Barista prepares Order

Anything that varies by condition is not story- it's a Rule.

Classify at commit

Stories stay prose until you commit. Then a deterministic-first classifier extracts, per beat:

What can't be resolved deterministically is never guessed; it becomes a coaching prompt ("you said the buyer's tier matters, Buyer has no tier field").

Rules and Formulas

Rules are all words — six relations (isis notis more thanis less thanis at leastis at most), four atom shapes (state, comparison, identity, cardinality), flat DNF, negation on atoms only: