New algorithms for collaborative text editing
summary
Prototype called Upwelling experimental editor builds real-time CRDT editing with explicit drafts and merges that behave like Git branches and rebases, and it runs locally first so edits work offline. The implementation uses Automerge CRDT with RGA and compression and a separate repo IO layer, compiled to Rust and WebAssembly for cross-platform use. A LaTeX edit trace of ~250,000 operations compresses to 184 kilobytes for 250k ops, proving full-history storage is practical. Rich formatting uses PerryText for rich formatting and the merge and diff tooling actually work on concurrent edits.
AI-written summary · about
chapters (16)
- 0:00Introduction
- 0:47Collaborative text editing needs
- 2:54Conflict-free replicated data types overview
- 4:20Suggestion mode problems
- 6:49Asynchronous collaboration need
- 7:11Upwelling demo
- 10:22Local-first design
- 12:50AutoMerge CRDT algorithm
- 17:30Editing history compression
- 20:02AutoMerge data storage
- 25:23Document version reconstruction
- 29:20Peritext rich text CRDTs
- 33:29Rich text CRDT challenges
- 36:40AutoMerge implementation
- 38:48Research to production
- 39:10Q&A
related talks
37mBuilding a Collaborative Text Editor
13mHow to make a real-time collaborative text editor in 5 easy steps!
41mCreating Local-First Collaboration Software with Automerge
29mCRDT: Conflict-free Data Types for Collaborative Editing and Offline-First
01h 00mBuilding a real-time collaborative editor
41mCreating collaborative editing UIs in React
23mBuilding a real-time collaborative editor with Phoenix
32mCRDT and other new ideas for client-server communication
