CRDTs for Mortals
by james-long
You don't need a PhD to use CRDTs — a Last-Write-Wins Map plus a Grow-Only Set on top of SQLite gives you production-grade sync in 630 lines of JavaScript.
by james-long
You don't need a PhD to use CRDTs — a Last-Write-Wins Map plus a Grow-Only Set on top of SQLite gives you production-grade sync in 630 lines of JavaScript.
by martin-kleppmann
Martin Kleppmann goes beyond CRDT basics to explore the hard problems: interleaving anomalies in text editors, moving elements in lists and trees, and reducing metadata overhead — showing that CRDTs are easy to implement badly.
by tom-redman
Offline writes destroy serializability — it's a mathematical fact, not an engineering limitation. Reconciliation is a product design exercise, not a computer science problem, and you should start with strong consistency guarantees and intentionally weaken them.
by brooklyn-zelenka
Auth must travel with data in local-first — Keyhive solves this with capability-based certificate chains and a membership CRDT, making the sync server unable to read your data while keeping the UX as boring as a Google Docs share button.
by matt-wonlaw
CRDTs let replicas update independently and merge automatically without conflicts
by marco-bambini
Explains why local-first apps remain niche despite their advantages—syncing data across distributed devices without losing information is genuinely hard.
by brendan-obrien
Sync is literally impossible (we have a formal proof), centralization is faster (we have a paper), and the real prize of peer-to-peer isn't ideology — it's sublinear scaling, the same physics that makes electrical grids and cardiovascular systems work.
by adam-fish
CRDTs are a solid substrate for sync engines, but transport reliability, multiplexing, compression, query-based sync, and distributed deletes are the harder — and more valuable — engineering challenges.
by angelique-nehmzow
Notion's block model breaks every standard CRDT assumption — they had to invent text slices, text instances, and search labels to make conflict resolution work across a document editor where blocks constantly split, merge, and move.
by sujay-jayakar
The object sync engine — three components (local store, server store, sync protocol) wired together with server authority — is the architecture Linear, Figma, and Asana independently converged on. Convex is building their version.
by sujay-jayakar
The sync ecosystem is a wilderness — nine dimensions (size, update rate, structure, latency, offline, concurrency, centralization, flexibility, consistency) map where every platform sits and why no single engine wins everywhere.