~/talk

Building a real-time collaborative editor with Phoenix

links:none on file
slides:none on file

A working Google Docs–style editor is implemented using Elixir, Phoenix channels, OTP supervisors and a Elixir GenServer per document that stores document state, version and a list of changes. Edits are sent as deltas (using the delta OT library), transformed against intervening revisions with delta.compose and delta.transform, then broadcast; tests with 2 second artificial latency show eventual consistency across clients. Cursor jitter is fixed by transforming cursor indexes with a transform-position helper, and the Elixir delta library is open sourced.

AI-written summary · about

  1. 0:00Introduction and background
  2. 1:15High-level architecture
  3. 3:00Building the base infrastructure
  4. 5:46Naive synchronization approach
  5. 8:41Improving with diffs
  6. 12:43Operational transformation
  7. 16:17Implementing consistency
  8. 19:17Refining cursor management
  9. 21:12Future challenges and closure
~/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.