A whiteboard for React Native

Real drawing on iOS and Android: Apple Pencil pressure, palm rejection, an infinite canvas, and the full Quickdraw toolset — wrapped in one component with a typed bridge. Works in Expo, works offline.

The whole integration

npm install @quickdrawjs/react-native react-native-webview

import { Quickdraw } from '@quickdrawjs/react-native'

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

// snapshots and exports cross the bridge as promises
const snapshot = await board.current.getSnapshot()
const png = await board.current.exportPng({ scale: 2 })

How it works

The package embeds the Quickdraw engine as a single self-contained HTML string rendered in a WebView — no server, no network fetch, nothing to cache. A typed message bridge carries props in and events out, so from your app's side it behaves like any other component: props, callbacks, and a ref with async methods.

Pencil input arrives with pressure, and palm rejection kicks in the moment a stylus is seen: fingers pan and pinch the camera while the pen draws. Boards serialize to plain JSON snapshots you can store with the rest of your app data, and exportPng() returns a data URL ready for sharing sheets.

What's in the box