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.
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
| Plan | Billed monthly | Billed yearly | Last 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
$0An open-source block editor and workspace with local storage.
AppFlowy-IO/AppFlowyfree · open source
TipTap
$0A 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
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
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

