The paid tier of the hand-drawn diagram editor: saved workspaces, sharing with a team and search across your drawings, on top of an editor that is free.
Build me the shared workspace that Excalidraw+ sells, on top of the editor that is already free: saved drawings, search across them, and live collaboration. Read this first: the editor itself is open source and excellent, and you should not rewrite it. What the fee buys is a hosted workspace — storage, search, sharing and presence. That is the part to build, and it wraps the existing editor rather than replacing it. STACK - Node 20+ with Fastify, server-rendered HTML for everything outside the canvas - SQLite through better-sqlite3, WAL mode, with FTS5 for search - The existing editor embedded as a component, taking and returning its own scene format - Caddy in front THE DATA MODEL - users: id, email, name, avatar_path, created_at - teams: id, name, slug; team_members: team_id, user_id, role - folders: id, team_id, parent_id, name, position - drawings: id, uid, team_id, folder_id, name, owner_id, scene_json, thumbnail_path, text_index, updated_at, updated_by, is_archived - versions: id, drawing_id, scene_json, author_id, at, label — every save keeps a version, and versions are the cheapest insurance in a drawing tool - shares: id, drawing_id, token, kind, password_hash, expires_at, created_by — view, comment or edit - presence: drawing_id, user_id, cursor_json, selection_json, last_seen_at — in memory, not stored - comments: id, drawing_id, element_id, x, y, author_id, body, resolved_at, created_at - libraries: id, team_id, name, items_json — shared shape libraries, which is what makes a team's diagrams look alike STORING A SCENE - The scene is the editor's own JSON. Store it whole, compressed, and never invent a second format — an incompatible fork of the scene format is how you lose the ability to open your own files in the original - Images embedded in a scene are extracted and stored by hash, referenced from the scene, so a drawing with the same screenshot twenty times is stored once - A thumbnail rendered on save, server-side from the scene, for the browsing grid - Text elements extracted into text_index on save, which is what makes search possible SEARCH, WHICH IS WHAT THE FEE ACTUALLY BUYS - FTS5 over the drawing name and every text element in it - Filter by folder, team, author and date - Results show the thumbnail with the matching text highlighted beside it - Search is the reason a workspace beats a folder of files: a year of diagrams you cannot find is a year of wasted diagrams COLLABORATION - Live editing over WebSockets, with the scene as a set of elements each carrying a version and a version nonce — the editor's own conflict model already works this way, so follow it rather than inventing one - Presence: cursors with names and colours, and the current selection of each person - A follow mode that tracks another person's viewport - The server is a relay plus a periodic persister: it broadcasts element updates and writes the scene to the database every few seconds and on the last person leaving - End-to-end encryption for shared-link rooms, as the original does, with the key in the URL fragment and never sent to the server. Say plainly which rooms are encrypted and which are not SHARING AND PERMISSIONS - Team members with roles: admin, member, viewer - Per-drawing shares by token: view only, comment, or edit, with an optional password and expiry - Revoking a link works immediately - A public gallery per team if wanted, read-only, with its own tokens COMMENTS - Pinned to a point on the canvas or to an element, threaded, resolvable - Notifications by email, batched, with a link straight to the pin - Comments survive the element being moved, and are marked orphaned rather than deleted if the element goes EXPORT AND ESCAPE - Export a drawing as .excalidraw, SVG, PNG at chosen scale, and PDF - Export the whole workspace as a directory of .excalidraw files with the folder structure intact, in one command - Because the format is the original's, everything here opens in the free editor forever. That is the point, and it should be written in the README OPERATIONS - .env: DATABASE_PATH, STORAGE_PATH, BASE_URL, SESSION_SECRET, SMTP_URL - Migrations on boot, each once - The WebSocket relay in its own process, so a canvas full of people cannot slow the rest of the site - Nightly backup off the machine, restore script - Health endpoint WHAT MATTERS MOST Versions and search. Build the save path with a version on every write and the text index, then the browsing grid. Live collaboration is the demo; being able to find last March's architecture sketch is what people actually pay for. Give me the repository, migrations, .env.example, and a README with deploy steps behind Caddy and a note on which parts are encrypted.
What you lose
- A hosted workspace with search across every drawing, which is what the fee buys
- Live collaboration on the same canvas with presence
- Sharing and permissions for a team, rather than a link anyone can open
If you would rather not build
- tldraw, for a similar canvas with a permissive licence
What it costs
read from their page 15 Aug 2026
| Plan | Billed monthly | Billed yearly | Last read |
|---|---|---|---|
| — | $6/mo | — | 15 Aug 2026 |
Their pricing page is where these came from. Seeing a different price? Tell us.
The escape hatch
open source · no votes, no paid placement
draw.io
$0A full diagram editor you can host, saving to storage you control.
jgraph/drawiofree · open source
Why this verdict
our own opinion · changed only by a person
83/100
Verdict yes at 83. Extracting text from the scene JSON so drawings are searchable is the whole build, and it is one function.
History
tracked since 10 Aug 2026 · nothing is ever overwritten
Questions about Excalidraw+
answered from the record above
Is Excalidraw+ free?
No — the plan we track is $6 a month. Plus at $6 per user per month.
Can you replace Excalidraw+ by building your own?
YES. Replaceable in one session with an AI coding agent. Replacement score 83 out of 100, build time one session. Read what you lose before you decide.
How much does Excalidraw+ cost?
$6 a month on Plus — $72 a year. Recorded 14 Aug 2026.
What do you lose by replacing Excalidraw+?
A hosted workspace with search across every drawing, which is what the fee buys; Live collaboration on the same canvas with presence; Sharing and permissions for a team, rather than a link anyone can open. If any of those carry weight for you, keep paying.
Is there an open-source alternative to Excalidraw+?
Yes: Excalidraw, draw.io. The prompt on this page is for when you want it your way instead.
Related entries
same category first, most replaced first
Every week, something stops being worth paying for.
New verdicts, prices that moved, entries added. One email a week. Unsubscribe in one click. Nothing is being sent yet — your address is kept here, and the first issue is the first thing it is used for.
free forever · no tracking pixel · stored here, never passed to anyone

