The DrawLa Devlog
DrawLa is a real-time multiplayer drawing game built by a very small team: you sketch a word in the browser, a neural network guesses it live, stroke by stroke, and up to eight players compete on the same canvas rules. This devlog is our engineering notebook – the architecture decisions, the numbers, the design experiments, and the rejections. All first-hand, with real code from the project.
Why write it in public? Because when we started, the posts we learned the most from were exactly this kind: honest, specific write-ups by small teams shipping multiplayer games on the web. Consider this our contribution back. The game itself is free to play at drawclash.com/play; the German-language drawing tutorials it inspired live in the Zeichenschule.
Posts
-
Inside DrawLa: real-time multiplayer drawing in the browser
July 2026 · How a FastAPI WebSocket server, a Flutter Web client and one shared room model run 8-player drawing duels – rooms, bots, reconnects and all.
-
The 150 ms budget: latency engineering for live sketch recognition
July 2026 · Every stroke triggers an inference. Where the milliseconds go (network, model, WebSocket overhead), how we measure them end-to-end, and what we cut.
-
Designing chaos: ants that eat your ink
July 2026 · Round effects that sabotage your drawing – erasing ants you can squash, silver balls that scribble, rotating canvases. A game-design postmortem with payload code.
-
Rejected twice: monetizing a browser game in 2026
July 2026 · AdSense said “low value content”, CrazyGames said “too close to existing titles”. What we learned, what we changed, and why we’re writing this on the site that got rejected.
The stack, in one paragraph
Server: Python, FastAPI with native WebSockets behind Uvicorn, deployed on Google Cloud Run. Recognition: a 345-class sketch classifier exported to ONNX Runtime, served in-process next to the game loop. Client: Flutter Web, one codebase for desktop and mobile browsers. Rounds, scoring, effects and bot players are all server-authoritative; the client renders and predicts nothing on its own. The details – and the reasons – are in the posts above.
See it running
The fastest way to understand any of these posts is a single round of the game they describe.
Play DrawLa