readme/apps/whiteboard.md
Whiteboards, also known as "canvas", allow organising notes spatially on an infinite zoomable surface. Instead of editing prose top-to-bottom, you arrange text cards, images, PDFs, links and references to other notes anywhere on a 2D surface, and connect them with labelled arrows.
Whiteboards are stored as ordinary Joplin notes — the data lives inside the note body as a fenced code block in the open JSONCanvas format — so they sync, search, share, back up and convert just like any other note.
Whiteboard editing is available on the desktop app only. Mobile read/edit support is planned as a follow-up.
To create a new whiteboard, open Tools → Create whiteboard.
A whiteboard note opens directly in the editor. The view supports panning (click-drag on empty space, or scroll), zooming (Ctrl/Cmd + scroll), and includes a minimap and zoom controls in the corner.
Hover over a card to reveal connection handles on its four sides. Click and drag from a handle to another card to create an edge.
When one or more edges are selected, an action panel at the bottom of the whiteboard lets you:
—), forward (→), backward (←), or bidirectional (↔).If a text card has grown into something that deserves its own note, select it and click Promote to note. This creates a new Joplin note in the same notebook as the whiteboard, with the card's text as the body and its first non-empty line as the title, then replaces the text card on the whiteboard with a link to the new note.
The "eye" icon in the note toolbar toggles the note between the whiteboard editor and the standard Markdown editor. In Markdown view, you can read and hand-edit the underlying JSONCanvas data, add prose before or after the fence, etc. Editing the JSON directly is supported but advanced — invalid JSON will prevent the whiteboard from loading until it's repaired.
The Whiteboard is an inherently visual-spatial tool, but a few affordances make it usable beyond mouse-only interaction:
A whiteboard note is a regular Markdown note whose body contains a fenced code block tagged jsoncanvas:
```jsoncanvas
{
"nodes": [ ... ],
"edges": [ ... ]
}
```
The format is JSONCanvas 1.0, an open specification for canvas. This means a whiteboard you create in Joplin can be opened (and round-tripped) in any other JSONCanvas-compatible editor, and vice versa. Group nodes and other JSONCanvas features the desktop editor doesn't render are preserved on save so they survive a round trip.
Because the whiteboard is part of the note body, all of Joplin's existing infrastructure works on whiteboards without modification: synchronisation, end-to-end encryption, full-text search across card text, sharing via Joplin Cloud, conflict resolution, revision history, and export/import.