Add multiplayer in 15ish minutes.

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 🌿"))
~4kb SDK
TypeScript support
Immutable objects
Local-first updates
Built-in CRDTs
Performant & stable

Local-first updates with built-in CRDTs

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
For ambitious projects

Scaleable multiplayer infrastructure

We build and manage the stateful WebSocket infrastructure specifically designed for real-time collaboration, not just auto-updating charts or push notifications.