Multiplayer UIs aren’t new. Tools like Figma and Google Docs have brought collaborative, real-time experiences to millions of users. But for most developers, building robust and scalable real-time applications has always been out of reach. Real-time is hard.
The benefits are obvious: no stale data, seamless collaboration, and multi-device and multiplayer flows. Many apps could benefit from real-time updates, but most don’t implement them, largely because today’s web frameworks lack built-in primitives. The web is still largely built on a client-request, server-response model.
WebSocket, long polling, and Server-Sent Events aren’t new protocols or standards. They’ve been around for decades and are widely used for real-time updates across the web. However, these are low-level primitives, and building robust and scalable reactive UIs on top of them requires significant effort.
To use these successfully, developers need to build their own logic to track changes, manage client sessions, and broadcast updates. In a naive implementation, that logic often ends up on the app server, adding complexity and introducing scaling constraints.