Skip to content
IdeaZen

Collaborative whiteboard

advanced6 to 8 weeksTypeScriptNode.js

Multiple people draw on a shared canvas in real time, with undo and offline tolerance.

Why build it

Conflict resolution is the hard part. Building it on a CRDT or operational model teaches distributed-state ideas you can discuss in interviews.

Features

  • Shared canvas with shapes and freehand
  • Live cursors
  • Per-user undo
  • Reconnect without losing edits
  • Board persistence

Roadmap

  1. p1

    Single-user canvas

    • Canvas rendering loop with hit testing
    • Shape model and selection
    • Local undo stack
  2. p2

    Sync model

    • Choose CRDT (Yjs or Automerge) or build last-writer-wins and compare
    • Server relay over WebSockets
    • Cursor presence
  3. p3

    Resilience

    • Offline edits merge on reconnect
    • Snapshot and compaction
    • Fuzz test with random concurrent edits
  4. p4

    Scale and ship

    • Load test 50 users per board
    • Persist to object storage or Postgres
    • Write an architecture doc

Common pitfalls

  • Syncing whole-document state on every change
  • Sharing one undo stack across users

Skills you will practise

  • CRDTs
  • WebSockets
  • Canvas
  • Fuzz testing

More ideas

All 13 ideas · Advanced developers