signed facts · shared ground · apps as lenses
Alice says: we have two bottles of olive oil.
A delta represents a single claim, sealed by its author.
It never changes, and it depends on nothing — no order, no chain.
Bob says: the olive oil is in the pantry.
Nobody created olive-oil. The id is just a string two people used —
the object exists only as the intersection of deltas that reference it.
Nothing new was said — these are the same two deltas, seen from the object they made.
From the object's perspective,
every property contains the deltas that referenced it.
Alice says: there's a recipe called Grandma's Carbonara.
A new id, spoken for the first time. The delta that names it is the delta that makes it real.
Alice says: the carbonara uses two tablespoons of the olive oil.
One delta, three pointers — and now the recipe reaches the pantry.
Objects hold deltas, deltas point at objects, down to a value at every tip.
A rhizome that reads as a tree from wherever you stand.
Bob says: the carbonara uses one onion.
A second delta grips the same property — watch the two lines land on one
point.
The recipe's ingredients are now two claims deep, from two voices.
Nothing new was said — this is the same rhizome, pegged at three different points.
Every delta sets properties on everything it touches, so
every object is the root of its own tree.
Nothing new was said — the delta layer is folded away, and each property points
straight at its answer: a value, or another object to keep walking into.
That fold is a schema. This is what an application sees.
Bob says: we're out of olive oil.
Conflict resolution should always have been an application concern.
Last-write-wins is a compromise we all accepted.
Bob says: disregard that — the delivery came.
A delta about a delta. Nothing was edited, nothing was deleted —
and now every lens reads 2, because the record itself got more honest.
The operator says: forget that delta — and prove the bytes are gone.
The order to forget is itself appended. The bytes go — verified, on every tier —
and the signed hole stays. The ground remembers that it forgot. Never what.
Alice says: to read a Pantry, take each item's latest quantity and location.
A lens is just more deltas — the same shapes you already know, one binding a field to a rule for resolving it. The schema is an object in the ground, assembled exactly like the pantry it reads.
Alice says: here is a page that shows the Pantry.
A renderer is an object too — a route, the fields it reads, a bundle of real code —
and every part of it is a delta. Push deltas, get software.
There are no kinds of delta — every one has the same shape. Data, a schema, a renderer
are just regions of one ground, differing only in what they point at.
An app is a region, not a thing —
delete it and the ground doesn't even notice.
Two grounds swap signed facts and each keeps its own lenses.
No consensus, no platform in the middle — disagreement travels intact.
The delta format, the signatures, the merge — that's an open protocol.
Any store that speaks it interoperates.
You don't have to use Loam;
the ground outlives any one implementation.
"Track what's in the pantry, and warn me when the carbonara isn't possible."
A sentence to Claude becomes a schema, a lens, a page — live over your ground,
interoperable with every other app on it, shareable with a friend, forkable, mergeable.
Ephemeral apps on demand, over data that is permanently, provably yours.
One rhizome — every delta from this conversation, still here, still signed.
Hover anything.