We build multiplayer games that run in the browser. Send someone a URL and they're playing.
[ Initialize ] →TypeScript on both ends, ECS for game state, AI tooling to move faster with fewer people.
uWebSockets.js for transport, msgpack for serialization. Client prediction and server authority keep things in sync, with delta compression on top.
PixiJS v8 handles rendering, Preact + Signals handle the UI layer. Players join through a URL, no downloads or store pages involved.
We use LLMs to write the repetitive parts and spend our time on architecture and systems design. Two people shipping what used to take ten.
One language across client and server. Game logic is shared directly, and zod validates at the boundaries.
bitECS manages all game state. Components and systems are shared between client and server, so the simulation runs identically on both.
Heavy work runs on worker_threads, state persists in SQLite, and seedrandom keeps the simulation deterministic across clients. Targeting 60fps.
Fewer dependencies, all TypeScript, tested with vitest.
Latency matters for multiplayer, so game rooms run on GCP Compute Engine in regions close to players. The infrastructure scales with demand.