MIT licensed · Zero dependencies

The open‑source whiteboard SDK

A complete infinite-canvas whiteboard for React, React Native, and the plain web. Pressure ink, shapes, sticky notes, undo, real‑time‑ready sync — free for commercial use, forever.

$ npm install @quickdrawjs/react

Live board — go ahead, draw on it

A complete whiteboard, not a toolkit you assemble

Pressure ink

The pen's width follows stylus pressure — or velocity for mouse users — and strokes taper like a real pen.

Hand-drawn shapes

Rectangles, ellipses, triangles, diamonds, hexagons, stars — with a subtle sketched wobble, four fill styles, and editable labels.

Real-time sync

Every change emits a JSON-safe diff. Ship it over any transport; remote changes never pollute local undo.

Palm rejection

Once a stylus is seen, fingers steer the camera and the pen draws. Apple Pencil feels native.

Infinite canvas

Pan, wheel zoom, two-finger pinch, zoom-to-fit. Ruled or dotted grids that adapt to the zoom.

And the rest

Arrows with draggable bend, sticky notes, images, laser pointer, PNG export, per-gesture undo, light & dark themes, full keyboard map.

Install, render, done

npm install @quickdrawjs/react
import { Quickdraw } from '@quickdrawjs/react'
import '@quickdrawjs/core/quickdraw.css'

export default function Board() {
  return <Quickdraw theme="light" grid="dots" />
}
npm install @quickdrawjs/core
import { createQuickdraw } from '@quickdrawjs/core'
import '@quickdrawjs/core/quickdraw.css'

createQuickdraw({
  container: document.getElementById('board'),
})
npm install @quickdrawjs/react-native react-native-webview
import { Quickdraw } from '@quickdrawjs/react-native'

<Quickdraw
  theme="dark"
  onChange={(diff) => sync(diff)}
  style={{ flex: 1 }}
/>

That's the whole integration. Persistence is one call — store.getSnapshot() returns plain JSON. Read the docs →

How it compares

tldraw and Excalidraw are both excellent. Quickdraw is for teams that want an MIT license, a framework-free core, and React Native support in the same package.

Quickdraw tldraw SDK Excalidraw
License MIT Custom MIT
Free for commercial use, no paid tiers paid business license tier
React component
Works without React
React Native package
Zero-dependency core
Pressure ink + palm rejection pressure only
Diff-based sync primitive via excalidraw-room

Comparison reflects public docs as of August 2026 — see tldraw's license and Excalidraw's repo. Spot an error? Tell us and we'll fix it.

Questions people ask

Is Quickdraw really free for commercial use?

Yes. MIT means you can embed it in commercial products, modify it, and redistribute it — no license key, no fees, forever. The license can't be revoked for versions you already have.

Can I remove the Quickdraw mark in the corner?

Yes — pass watermark: false. It's on by default because it helps people find the project, but removing it is free. No license required.

How do I persist a board?

store.getSnapshot() returns plain JSON; store.loadSnapshot(snap) restores it. Save it to localStorage, your database, a file — it's just data.

Does it support real-time collaboration?

The data model was built for it: every change emits a JSON-safe diff, and store.applyDiff(diff, 'remote') applies peer changes without touching local undo history. Bring any transport.

Can I build my own toolbar?

Yes — pass hideUi and drive the headless API: editor.setTool(), editor.setStyle(), store.undo(), and friends.

How big is it?

The core package is ~46 kB unpacked with zero runtime dependencies — plain ESM that runs in any modern browser without a build step.

Add a whiteboard to your app today