Building a Collaborative Text Editor
summary
Explains how to get real-time editing working: represent edits as operations, assign document version numbers, run an operational-transformation control algorithm that transforms lists of operations, and keep a server as the single source of truth; implements cursor sync, local undo via inverted operations on undo/redo stacks, and transforms those stacks on remote edits. Demo and source exist and run; author reports handling 13 operations requiring 100+ transform functions and points at ShareDB and CRDTs (Y.js, Gun.js, Automerge).
AI-written summary · about
chapters (12)
- 0:00Start
- 2:28Making Changes Optimistically
- 3:34Conflicts
- 6:05Operational Transformation
- 9:17Break Ties
- 13:40Transformation Functions
- 17:26Multiple Operations in a Row
- 20:57Keep It Linear
- 24:28Curser Reporting and Local Undo
- 28:09Local Undo
- 30:35Transforming Lists of Operations
- 33:15Source Demo
related talks
13mHow to make a real-time collaborative text editor in 5 easy steps!
40mNew algorithms for collaborative text editing
01h 00mBuilding a real-time collaborative editor
23mBuilding a real-time collaborative editor with Phoenix
41mFrom single player to multiplayer-building realtime collaborative experiences with Flutter
41mCreating collaborative editing UIs in React
29mCRDT: Conflict-free Data Types for Collaborative Editing and Offline-First
42mBuilding a reactive multi user document editor in ScalaJS
