MULTIPLAYER

Doodler

A multiplayer canvas where many users draw, edit, and chat in the same room — built on WebSockets with CRDTs for conflict-free state.

Year 2025
Role Realtime systems, full-stack
MULTIPLAYER

Doodler

Overview

The interesting problem is not drawing — it is keeping every client in agreement when they go offline, reconnect, and merge changes. CRDTs solve the sync. Presence and cursor sharing make it feel alive.

Stack: Node.js + ws on the server, Yjs for shared state, React + Canvas API on the client, Redis for room state and presence, deployed on Railway.

Highlights
  • CRDT-backed sync that survives offline edits and reconnects.
  • Presence layer with cursors, names, and activity indicators.
  • Sub-100ms p95 echo latency in the same region.
Back to all work