CraftMyPDF
Replaceable in one session with an AI coding agent.
PDF generation with a drag-and-drop template editor: design the document visually, send JSON, get a document back.
Build the document generation I actually need instead of CraftMyPDF. Be clear on the trade: **you are giving up the visual editor.** A developer will write each template. If the person designing documents does not write HTML, that constraint is the product and keeping it may be right. STACK - Node 20+ with Fastify - SQLite through better-sqlite3, WAL mode - A template language — Handlebars or Eta — over HTML and print CSS - Playwright with headless Chromium for rendering - Caddy in front THE DATA MODEL - templates: id, name, source, version, sample_payload_json, updated_at - documents: id, template_id, template_version, payload_json, path, sha256, status, at - **The sample payload stored with the template** is what makes a preview possible and what documents the expected shape better than any comment THE TEMPLATE, DESIGNED FOR THE COMMON DOCUMENT - Almost every generated document is one of four things: an invoice, a report, a certificate, or a letter. All four are a header, a repeating table, totals, and a footer - Repeating blocks with an index, so alternating row styles work - **Totals computed on the server and passed in, never computed in the template.** A template doing arithmetic is a template producing invoices whose numbers nobody can verify - Money formatted with an explicit locale and currency, from integer minor units THE PREVIEW, WHICH REPLACES THE VISUAL EDITOR - A preview endpoint rendering the template against the sample payload and returning a PDF immediately - **Watch the file and re-render on save.** That loop — edit, save, see the document — is most of what the drag-and-drop editor is providing, and it takes an hour to build - A preview against three payloads: a one-line invoice, a fifty-line one, and one with the longest plausible values. **The fifty-line case is where every template breaks** PRINT CSS - `@page` size and margins, `page-break-inside: avoid` on rows, repeating table headers on every page using `thead` - Running headers and footers with page numbers from print counters - Millimetres for anything physical, self-hosted fonts, and an explicit wait for fonts before printing RENDERING SAFELY - A recycled browser pool sized by memory, a per-job timeout that kills the page, and everything queued - Escape every value from the payload. Block internal network addresses from the rendering context. **A template rendering untrusted data in a browser on your server is a real attack surface** STORAGE - Store the payload, the template version and the output hash, so any document is reproducible exactly as it was issued. For invoices this is not a nicety — it is a legal requirement in most places WHAT MATTERS MOST The fifty-line preview and server-side totals. One catches every layout failure before a customer does; the other keeps the numbers defensible.
What you lose
- A drag-and-drop designer for non-developers
- Live preview against real data while designing
- Table and repeating-block handling done visually
- The rendering infrastructure behind it
If you would rather not build
- Typst, if the documents are typographic rather than HTML-shaped
- A hand-written HTML template and Playwright
The escape hatch
open source · no votes, no paid placement
Gotenberg
$0PDF rendering service in a container, no browser to manage.
gotenberg/gotenbergfree · open source
Why this verdict
our own opinion · changed only by a person
82/100
Verdict yes at 82: a template language and a browser. The three-payload preview replaces most of what the visual editor offers, for an hour of work.
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 CraftMyPDF
answered from the record above
Is CraftMyPDF free?
No — the plan we track is $29 a month. Starter at $29/month for 1,500 documents, rising with volume.
Can you replace CraftMyPDF by building your own?
YES. Replaceable in one session with an AI coding agent. Replacement score 82 out of 100, build time one session. Read what you lose before you decide.
How much does CraftMyPDF cost?
$29 a month on Starter — $348 a year. Recorded 14 Aug 2026.
What do you lose by replacing CraftMyPDF?
A drag-and-drop designer for non-developers; Live preview against real data while designing; Table and repeating-block handling done visually; The rendering infrastructure behind it. If any of those carry weight for you, keep paying.
Is there an open-source alternative to CraftMyPDF?
Yes: Gotenberg, Eta. 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

