Craft

craft.docontributed by Samuele Ongaro

ALMOST

A weekend of work, and real gaps remain.

A document and note app built around blocks and nested pages, with a strong emphasis on typography and on documents that look finished when shared.

Promptfree, for everyone, and the only version there is
Build me a document app that replaces Craft — and be honest about why this is ALMOST.

Blocks and nested pages are ordinary work. What you are paying for is **typography and layout refined to the point where a document looks finished without anybody designing it**. That is taste and a great deal of small adjustment, not a feature you implement. If you cannot do that part or commission it, you will build a competent editor that produces documents nobody wants to share.

STACK
- CodeMirror 6 or TipTap as the editing engine. Do not write a rich text editor
- A PWA that works offline, or native if the platform integrations matter
- SQLite on device with FTS5, and an optional sync server: Node 20+ with Fastify storing ciphertext
- Caddy in front

THE TYPOGRAPHY, WHICH IS THE PRODUCT
- One good typeface, self-hosted, with a real scale: a heading, a subheading, body, and a caption. Four sizes, not nine
- A measure of around 65 characters, generous line height on body text and tighter on headings, and margins that give the text room. Those three decisions do most of the work
- Vertical rhythm: the space above a heading is larger than the space below it, so a heading belongs to what follows rather than floating between two blocks
- Every colour pair measured against WCAG AA rather than chosen by eye, in both light and dark
- Images with real margins and captions in a smaller, quieter size
- Then look at a real document — a page of prose with two headings, a list, an image and a quote — printed and on a phone, and adjust until it reads well. That loop is the whole of it, and it cannot be skipped

THE DATA MODEL
- documents: id, parent_id, title, icon, cover_path, style_json, created_at, updated_at, archived_at
- blocks: id, document_id, parent_id, position, kind, content_json, style_json — text, heading, list item, quote, code, image, file, table, divider, page link, embed
- versions: id, document_id, snapshot_json, author_id, at
- links: from_document_id, to_document_id, resolved at save
- shares: id, document_id, token, password_hash, expires_at, revoked_at, views, allow_comments
- comments anchored to a block, threaded, resolvable
- Ordering by fractional positions, not floats, or blocks will start swapping places after enough drags

EDITING
- Blocks that can be dragged, nested, folded and turned into another kind
- A slash command for every block kind, and Markdown shortcuts while typing
- A page link that creates the page if it does not exist, with backlinks resolved at save
- Autosave with no save button, every version kept, and a restore
- Paste from a web page or a document keeps structure and drops styling

SHARING, WHICH IS THE OTHER HALF
- A share link renders a static, fast, beautiful page — the same typography, no editor, no framework
- Optional password and expiry, revocable, with comments allowed or not
- Open Graph tags and a generated share image
- The shared page is what people judge the tool by, so it must be the best-looking thing you build

SYNC AND FILES
- End-to-end encrypted, with the server storing ciphertext and unable to read anything
- Conflicts keep both versions and say so. Never merge silently
- Export a document or everything as Markdown, HTML or PDF, with the styling carried into the PDF
- No analytics. A document application knows what you are writing and that is nobody's business

OPERATIONS
- .env: DATABASE_PATH, STORAGE_PATH, BASE_URL, SESSION_SECRET
- Migrations on boot, each once; nightly backup of ciphertext

WHAT MATTERS MOST
The default document. Write a real one in it before adding any feature, print it, read it on a phone, and keep adjusting the type until it looks finished with no effort from the writer. That is what is being replaced.

What you lose

  • Typography and layout refined to a point a home-made editor will not reach quickly
  • Native apps across Apple platforms with offline editing and sync
  • Shared documents that look presentable to someone outside the company

If you would rather not build

  • Obsidian, free and local
  • Notion, for the shared-document case

What it costs

read from their page 15 Aug 2026

PlanBilled monthlyBilled yearlyLast read
—$10/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

AppFlowy

$0

An open-source block editor and workspace with local storage.

AppFlowy-IO/AppFlowyfree · open source

TipTap

$0

A ProseMirror wrapper that gives you a block editor in a day.

ueberdosis/tiptapfree · open source

Why this verdict

our own opinion · changed only by a person

58/100

Verdict kinda at 58. ProseMirror gives you a real editor quickly; matching the typography and the native apps is what makes it a weekend rather than an evening.

History

tracked since 10 Aug 2026 · nothing is ever overwritten

Interest · last 30 dayspeak 2/day
views01230 Aug4 Sept9 Sept14 Sept19 Sept24 Sept28 Sept
— views— prompt copies none yet— votes none yet

Questions about Craft

answered from the record above

Is Craft free?

No — the plan we track is $10 a month. Personal Pro at around $10/month billed monthly, cheaper annually.

Can you replace Craft by building your own?

ALMOST. A weekend of work, and real gaps remain. Replacement score 58 out of 100, build time a weekend. Read what you lose before you decide.

How much does Craft cost?

$10 a month on Personal Pro — $120 a year. Recorded 10 Aug 2026.

What do you lose by replacing Craft?

Typography and layout refined to a point a home-made editor will not reach quickly; Native apps across Apple platforms with offline editing and sync; Shared documents that look presentable to someone outside the company. If any of those carry weight for you, keep paying.

Is there an open-source alternative to Craft?

Yes: AppFlowy, TipTap. 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