sketchboard-app
v1.0.15
Published
SketchBoard — local-first whiteboard app. Run with: npx sketchboard-app
Maintainers
Readme
╔═══════════════════════════════════════════════════════╗
║ ║
║ ✏ S K E T C H B O A R D ║
║ ║
║ Draw · Save · Share · Collaborate ║
║ ║
╚═══════════════════════════════════════════════════════╝A local-first whiteboard that lives on your machine.
No account. No cloud. No setup. Just draw.
Install & Run
Run instantly (no install needed)
npx sketchboard-appYour browser opens automatically at http://localhost:4321.
Install globally (launch from anywhere, zero wait)
npm install -g sketchboard-appThen just type:
sketchboardUninstall
npm uninstall -g sketchboard-appFeatures
- Zero config — one command, instant whiteboard
- Saves to your machine — drawings stored as JSON files in
~/.sketchboard/ - My Drawings sidebar — browse, rename, load, and delete all your drawings
- Ctrl+S — save with unsaved-changes indicator in the toolbar
- Share links — generate a public read-only link for any drawing
- Live collaboration — real-time multi-user sessions via the excalidraw collab relay
- Full export — PNG, SVG, clipboard, or
.excalidrawfile - Light & dark theme — auto-synced across the entire UI
- Offline-capable — works without internet once loaded
- Cross-platform — Windows, macOS, Linux
Live collaboration
Click Share → Live Collaboration to start a session. SketchBoard generates a room link that looks like this:
https://excalidraw.com/#room=<roomId>,<roomKey>Send that link to anyone — they open it directly on excalidraw.com (no install, no account) and they appear in your room instantly.
How it works: your local backend proxies socket.io traffic to Excalidraw's
public collaboration relay (oss-collab.excalidraw.com). Both you (on
localhost) and your friend (on excalidraw.com) talk to the same relay, so
real-time sync works across the two origins. Room keys are end-to-end encrypted
— the relay only sees ciphertext.
Your drawings still stay local. Collaboration only syncs the live canvas;
Ctrl+S and the sidebar still save to ~/.sketchboard/ on your machine.
Usage
╔═══════════════════════════════════════╗
║ SketchBoard ║
╠═══════════════════════════════════════╣
║ URL : http://localhost:4321 ║
║ Data : ~/.sketchboard ║
╚═══════════════════════════════════════╝Custom port
PORT=8888 npx sketchboard-app
# or with global install:
PORT=8888 sketchboardCustom data directory
SKETCHBOARD_DATA=/path/to/my/drawings npx sketchboard-appEnvironment variables
| Variable | Default | Description |
|---|---|---|
| PORT | 4321 | Port the server listens on |
| SKETCHBOARD_DATA | ~/.sketchboard | Where drawings are stored |
Where your data lives
~/.sketchboard/
drawings/
<uuid>.json ← one file per drawing (permanent)
library.json ← your saved shape library
collab/ ← live collaboration room scenes
collab-files/ ← collaboration image files| OS | Path |
|---|---|
| Windows | C:\Users\<you>\.sketchboard\ |
| macOS | /Users/<you>/.sketchboard/ |
| Linux | /home/<you>/.sketchboard/ |
Plain JSON files — easy to back up, move, or sync with any tool.
Keyboard shortcuts
| Shortcut | Action |
|---|---|
| Ctrl+S / Cmd+S | Save current drawing |
| Ctrl+Z | Undo |
| Ctrl+Shift+Z | Redo |
| V | Selection tool |
| R | Rectangle |
| E | Ellipse |
| A | Arrow |
| T | Text |
| P | Pencil / freehand |
| Delete | Delete selected |
Troubleshooting
| Problem | Fix |
|---|---|
| Port 4321 already in use | PORT=5678 npx sketchboard-app |
| Browser does not open | Manually visit http://localhost:4321 |
| Old version cached by npx | npx --yes sketchboard-app@latest |
| EACCES error on Linux/Mac | sudo npm install -g sketchboard-app |
| Drawings not saving | Check ~/.sketchboard/drawings/ is writable |
| Friend can't see my drawing in collab | Both you and your friend need internet access — the collab relay at oss-collab.excalidraw.com is required for real-time sync |
Credits
Built on top of Excalidraw — the excellent open-source hand-drawn whiteboard (MIT licensed).
SketchBoard adds local persistence, drawing management, and the npm package layer.
License
MIT
