Heptabase

heptabase.com

ALMOST

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.

Promptfree, for everyone, and the only version there is
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

$0

An open file format for infinite canvases; keeps layout portable.

obsidianmd/jsoncanvasfree · open source

tldraw

$0

Open-source infinite canvas with a solid rendering engine.

tldraw/tldrawfree · 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

Interest · last 30 days

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

All 40 in Notes, docs & writing

Not sending yet

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

Esc