Whiteboard
A realtime collaborative whiteboard: an infinite canvas with sticky notes, freehand ink, shapes, text, images, and
frames, synced live over websockets. This is the pack-whiteboard pack. The
Mind Map template is built on it.
No special integration needed
The whiteboard runs on the base services every Hype Stack app already has:
- Postgres for boards and their revision history.
- WebSockets (the template's socket router over Valkey) for live operations and presence.
- RustFS for images dropped onto a board.
There is no third-party account to create and no pack-specific environment variables to fill in.
What it depends on
- A starter pack for auth, organizations, and permissions. Boards belong to the signed-in user's organization.
What you get
/boardsand/boards/$boardId: an infinite canvas with pan, zoom, a minimap, and virtualized rendering so large boards stay smooth.- Seven element kinds: sticky note, freehand ink, rectangle, ellipse, text, image, and frame.
- Live presence: remote cursors and selections, per user.
- Undo and redo that survive other people's edits.
- A layers panel with visibility and lock per element.
- Timestamped version history with one-click restore. Revisions are capped so the table does not grow without bound.
- Realtime operation sync and autosave through the
/ws/boardsocket namespace.
Web and desktop only: this pack ships no mobile or admin surface.
After installing
Two Prisma models arrive (Board, BoardRevision). Say yes when the CLI offers to run the migration, or run
pnpm --filter @hype-stack/backend migration:create afterwards.
Environment variables
None. The pack reads the base template's DATABASE_URL, VALKEY_URL, and RUSTFS_* values and relies on the starter
for auth.
Related
- WebSockets for how the board socket router is built
- Storage for image uploads
- Mind Map, the template built on this pack
Every purchase and sponsorship funds my 8+ years of work on open source given freely to the community. It keeps the lights on, funds new packs, and keeps the ecosystem alive. Even a small tier means a lot. Thank you!
