Conflict-Free Data Structures for Real-Time Collaboration
Posit PBC
Where does R live in
collaborative work?
model_final_v3.R — who wins?Concurrency — every answer requires a coordinator
A data structure whose concurrent operations
converge to the same state — in any order
Strong eventual consistency: a property, not a merge strategy
Same bytes, any language
automerge — CRDTs as R objectsautomerge-repo — peers announce, request,
and sync documents over WebSockets
Speak the wire format → join the network
autosync — R speaks the protocolsync.automerge.orgWebSockets over nanonext — the async foundation that powers mirai
library(shinysync)
library(autosync)
library(automerge)
project_app(
"wss://quarto-hub.com/ws",
proj_id = "<project-id>"
)Left: an R session · Right: a browser
Same document — both directions — live
Multiplayer R
R as a first-class, authenticated peer
automerge — posit-dev/automerge-r · CRAN
autosync — posit-dev/autosync · CRAN
shinysync — shikokuchuo/shinysync
automerge.org — the specification & ecosystem
Charlie Gao · Posit PBC
useR! 2026 · Warsaw