This demo needs to be served over http://
Browsers refuse to load ES modules or fetch files from file://, so the engine
cannot start. Serve the folder and open the address it prints:
cd site && python3 -m http.server 8000
# then open http://localhost:8000/demo/collab.html
Two viewers, as if on two devices: each opened its own copy of the same file. Scroll,
zoom, turn a page or annotate on one side, and the other follows. Every change leaves one viewer
as an event, travels as JSON — here through a pretend network with a short delay — and the other
viewer replays it with apply. A real app sends the same JSON over a WebSocket.
Alice
Bob
Starting the engine…