Whiteboards & Infinite Canvas
Drawing, sketching, and infinite-canvas UIs (Figma-flavored).
This category exploded with the rise of AI-flavored canvas products and collaborative tools. The clear winner for "drop in a whiteboard" use cases is tldraw.
Whiteboard / canvas products as components
- ★ tldraw — drop-in React whiteboard component. Pen / shapes / text / arrows / images / multiplayer / extension API. The default for "I need a whiteboard in my app." MIT for personal / non-commercial; commercial use requires a (very affordable) license — verify your case.
- ★ Excalidraw — open source, hand-drawn-style whiteboard; embed via
@excalidraw/excalidraw. MIT, fully free for any use. - Konva + react-konva — 2D canvas framework; build your own canvas product on top.
- Fabric.js — older 2D canvas library; plenty of demos for Photoshop-like editors.
- Paper.js — vector drawing; great for sketching apps.
Drawing primitives
- perfect-freehand — the freehand-stroke math (
<pencil>strokes that feel natural). Underpins tldraw and many similar. - rough.js — hand-drawn / sketchy style rendering; underpins Excalidraw.
- D3 Selection + canvas — for custom data-driven canvas.
Math / interactive
- Mafs — React components for visualizing math (number lines, vectors, plots) on a canvas.
- JSXGraph — interactive geometry / function plotting.
Multiplayer canvas
- tldraw sync + Liveblocks / PartyKit — the typical tldraw multiplayer setup.
- Yjs — CRDT layer underneath most collaborative canvases.
- See Realtime for the providers.
High-perf rendering for huge canvases
- PixiJS — WebGL/WebGPU 2D renderer; if your canvas has 10,000+ shapes.
- Konva — lower perf ceiling but easier API.
- Custom WebGL — when you really need it (Figma-tier).
Pick this if…
- Default whiteboard, accept the license: tldraw.
- Need fully free, MIT, hand-drawn style: Excalidraw.
- Building your own bespoke canvas product: Konva (mid-perf) or PixiJS (high-perf).
- Math / graph plotting: Mafs or JSXGraph.
- Need multiplayer: tldraw + Liveblocks / PartyKit (or Yjs DIY).