Heptabase
A weekend of work, and real gaps remain.
Visual note-taking on an infinite canvas: cards of writing arranged spatially, with the arrangement itself carrying meaning.
Build me the visual thinking canvas that replaces Heptabase. The premise is that **arrangement carries meaning** — two cards side by side say something a list cannot. That is real, and the difficulty is entirely in the canvas being fast and reliable. STACK - Node 20+ with Fastify for the server half - SQLite through better-sqlite3, WAL mode, FTS5 across cards - Canvas or SVG in the browser with vanilla JS; no framework - Caddy in front THE DATA MODEL - cards: id, title, body_md, created_at, updated_at - boards: id, name, viewport_json - placements: id, board_id, card_id, x, y, w, h, z — **the same card can be on several boards in different places**, which is the point - connections: id, board_id, from_card_id, to_card_id, label, kind - groups: id, board_id, title, bounds — a named region - Cards exist independently of boards. **A card removed from a board is not deleted**, which is the difference between thinking space and a drawing THE CANVAS, WHERE ALL THE WORK IS - Pan and zoom that feel right: momentum, zoom to cursor, and a fit-to-content key - **Render only what is visible, and simplify below a zoom threshold** — a card zoomed out is a coloured rectangle with a title, not a rendered document. Without this it dies at two hundred cards - Snap to a grid and to other cards' edges, with alignment guides - Multi-select by rubber band, move and align as a group - Every operation undoable, including a group move. **Undo is not optional on a canvas** — a mis-drag moves forty cards and without undo that is unrecoverable CARDS - Markdown, edited in place, with links between cards autocompleting - A card shows which boards it appears on, so nothing is lost by being moved off one - Backlinks with the surrounding sentence THE FEATURES THAT MAKE IT MORE THAN A WHITEBOARD - Full-text search across every card, with results highlighted on the current board and a jump to any other - **A list view of every card, so the canvas is never the only way to find something.** A purely spatial system loses things permanently, and this is the guard against that - Connections with labels, because an unlabelled arrow means nothing a month later PERFORMANCE RULES - Positions written on drag end, not during. Batch them - Sparse coordinates, indexed by board, so loading a board is one query - Card bodies loaded lazily; only titles are needed to draw SAFETY - Export every card as markdown with a JSON file describing the layout. **The writing must be recoverable without the canvas** - Append-only change log, so a bad drag or a deletion is reversible WHAT MATTERS MOST Windowed rendering with zoom simplification, real undo, and a list view alongside the canvas. The first two make it usable; the third stops it losing your work.
What you lose
- A canvas that stays fast with thousands of cards
- Spatial arrangement synced across devices
- PDF annotation that becomes cards
- A genuinely good implementation of a hard interface
If you would rather not build
- Obsidian Canvas, which is free and stores a plain JSON file
- A whiteboard and a notes app used together
The escape hatch
open source · no votes, no paid placement
Obsidian Canvas format
$0An open file format for infinite canvases; keeps layout portable.
obsidianmd/jsoncanvasfree · open source
Why this verdict
our own opinion · changed only by a person
52/100
Verdict kinda at 52: the data model is simple and the canvas is genuinely hard frontend work. The list-view requirement is the safeguard against a spatial system swallowing things.
History
tracked since 14 Aug 2026 · nothing is ever overwritten
Nothing recorded yet. This chart fills in once the page has visitors, votes or prompt copies — it will not draw a flat line to look busy.
Questions about Heptabase
answered from the record above
Is Heptabase free?
No — the plan we track is $8.99 a month. $8.99/month billed annually, $11.99 monthly.
Can you replace Heptabase by building your own?
ALMOST. A weekend of work, and real gaps remain. Replacement score 52 out of 100, build time a weekend. Read what you lose before you decide.
How much does Heptabase cost?
$8.99 a month on Standard — $107.88 a year. Recorded 14 Aug 2026.
What do you lose by replacing Heptabase?
A canvas that stays fast with thousands of cards; Spatial arrangement synced across devices; PDF annotation that becomes cards; A genuinely good implementation of a hard interface. If any of those carry weight for you, keep paying.
Is there an open-source alternative to Heptabase?
Yes: Obsidian Canvas format, tldraw. 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

