Sometimes I think the way CRDT research formulates the problem, itself obstructs evolution of local-first.
That obsession with Google Docs-like collaborative real-time text editing, a pretty marginal use case, derails the progress from where local-first apps really need it:
- offline-enabled, rather than realtime/collaborated
- branching/undoing/rebasing, rather than combining edits/messages
- help me create conflict-aware user workflows, rather than pursue conflict-free/auto-converging magic
- embeddable database that syncs, not algorithms or data types
CRDT research gives us `/usr/bin/merge` when local-first apps actually need `/usr/bin/git`. I don't care much how good the merge algorithm is, I need what calls it.
That obsession with Google Docs-like collaborative real-time text editing, a pretty marginal use case, derails the progress from where local-first apps really need it:
- offline-enabled, rather than realtime/collaborated
- branching/undoing/rebasing, rather than combining edits/messages
- help me create conflict-aware user workflows, rather than pursue conflict-free/auto-converging magic
- embeddable database that syncs, not algorithms or data types
CRDT research gives us `/usr/bin/merge` when local-first apps actually need `/usr/bin/git`. I don't care much how good the merge algorithm is, I need what calls it.