~/talk

Building a Collaborative Text Editor

Talkat RailsConf 2018 · 2018-04-17..04-19· [frontend-architecture, web-platform]
slides:none on file

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

  1. 0:00Start
  2. 2:28Making Changes Optimistically
  3. 3:34Conflicts
  4. 6:05Operational Transformation
  5. 9:17Break Ties
  6. 13:40Transformation Functions
  7. 17:26Multiple Operations in a Row
  8. 20:57Keep It Linear
  9. 24:28Curser Reporting and Local Undo
  10. 28:09Local Undo
  11. 30:35Transforming Lists of Operations
  12. 33:15Source Demo
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.