historica is an experiment in readable, convergent version control. It follows one non-negotiable rule: a person must be able to inspect the history, understand its relationships, and recover stored content without decoding an opaque database or binary operation log.
- History as documents. Immutable revisions in a Merkle DAG, named by SHA-256 digests — the ID of a revision is what
shasum -a 256already prints for its file. - Honest rewrites. Supersession is explicit, so amending or rewriting a change is recorded rather than hidden.
- Convergence without coordination. History merges by set union; heads are discovered deterministically.
- A photograph is a photograph. Binary content is stored as payloads beside the documents — not as a diff with
+down the margin. - The corpus is the spec. Hand-written valid and invalid files are executed as tests, each refusal naming its reason.
Where it fits
historica keeps a journal's history beside its entries — convergent, inspectable, and durable on plain files — which is the same bet everything else at Diaryx makes. In the app it does more than remember: what you publish to a circle is a derived historica store, and what your readers write back travels home the same way.
Two siblings extend it rather than living inside it:
- historica-remark — a reader's remarks on a chain, and the layer that carries them back. The annotation model works with no historica at all.
- historica-minisign — signing, so a remark that arrives under someone's name can be shown to be theirs.
Status
The core model, strict revision and operation formats, and replay all exist and are corpus-tested, and the app runs its publishing and remark layers on them. It isn't a general-purpose VCS today.