Collaborative Whiteboard
Two people drawing on one canvas, in sync.
AdvancedWeb appCreative14–30hAI-buildable 3/5no setupworth shipping
A shared drawing surface where strokes from everyone appear live. Sending every pointer event floods the connection, so strokes need batching and simplification — and remote strokes still have to look smooth when they arrive as a handful of points.
UI
Logic
Useful
Hosting · Free forever
Deploys free on GitHub Pages, Cloudflare Pages or Vercel Hobby.
Deploy it and share a link.
Core features · 7
- A shared canvas where all participants can draw
- Strokes appear live for everyone
- Colour and brush size per participant
- Strokes are batched and simplified before sending
- Remote strokes render smoothly despite arriving as sparse points
- Undo removes only your own last stroke
- New joiners receive the existing board state
The interesting part
- Simplifying a stroke path without visibly changing its shape
- Per-participant undo when strokes interleave
- Sending board history to a late joiner without a huge initial payload
Once it works
- Add shapes and text alongside freehand
- Add infinite canvas with pan and zoom
- Add an export to PNG
Suggested stack
reacttypescripttailwindcanvas-apisupabase