You know, like what Figma or Google Docs have. Live cursors, WebSockets, multiple people editing the same thing, that sort of thing.
// Real-time state, stored in composable CRDTs.const [list, setList] = useList("my-room", "todos")// Make changes like it's single player,// Room Service makes it multiplayer.//// Indexes & other conflicts are handled automatically// while preserving user intent.setList(list.insertAfter(2, "water plants 🌿"))
Multiplayer systems need to update optimistically, without waiting for a server to confirm each change. If you don’t, you add an extra ~100ms of latency, just from the speed of light alone. But doing this means each user is an actor in a complex and hard to manage distributed system.
This stuff is tricky.Let us help
We build and manage the stateful WebSocket infrastructure specifically designed for real-time collaboration, not just auto-updating charts or push notifications.