Skip to content
Engineering Lab

10 / 20AI, realtime & offline

Multiplayer Cursors

Realtime presence and a shared canvas. Open it in two tabs and they sync.

stirling.lab/multiplayer Live demo
Loading demo…

What to notice

  • Live cursors with names and smooth interpolation across browser tabs
  • Shared sticky notes with conflict-free, per-field last-writer-wins merging
  • Presence list, typing indicators and selection highlights
  • Simulated latency and packet-loss controls to show resilience

How it's built

  • Uses BroadcastChannel as the transport. The same message protocol would work over WebSockets.
  • Each field is an LWW register keyed by a Lamport timestamp plus client id, so merges are commutative.

Hand-built in React 19 + TypeScript, with no UI or chart libraries.