Skip to content

Updated

Formfeed enters private beta

A template-based PDF and image API with an editor that knows your data, EU-only processing and EUR pricing. Here is what is in the beta and what is not.

Every backend eventually has to produce a document. An invoice, a certificate, a report, a social preview image. The usual path is a headless browser wrapped in a service, a template string somewhere in the codebase, and a deployment every time the finance team wants a different footer.

Formfeed is the other path: templates live in a product, data comes over an API, and the people who own the wording can change it without a release.

What the beta includes

The editor. A browser editor on the VS Code engine with autocomplete from your own sample data, diagnostics while you type, and a preview that paginates the way Chromium prints. Click an element in the preview and it jumps to the line that produced it. Every save is a version you can diff and restore.

Three template languages. Jinja2, Liquid and Handlebars, with one shared helper set: money, dates and numbers that follow the template locale, QR codes and barcodes including the SEPA credit transfer code, charts drawn at render time, grouping and totals so you can send raw rows.

An API built for retries. Synchronous renders for a single document, asynchronous for long ones, batches up to a thousand items with a zip at the end. Idempotency keys, content deduplication, signed webhooks, RFC 9457 problem details, and a reproducibility record on every render: template version, engine version, output hash.

Finished PDFs. Append the terms and conditions to an invoice, stamp “COPY” across every page, or lock a payslip with a password, in the same request or afterwards on documents you already rendered.

Templates as files. A command line tool pulls templates into a repository, previews them on your machine with hot reload, validates them in a pre-commit hook, renders through the API, and pushes them back. Test matchers for Vitest and Jest check that a template compiles, uses only known variables and produces the page count you expect.

Migration from apitemplate.io. The importer takes the HTML, CSS, settings and sample JSON their editor shows you and reports what needs a look before you publish. Compatibility endpoints answer in their response shape, so an existing integration switches with a base URL and a key.

What is deliberately not in it

There is no US region yet. Everything renders in Frankfurt, whichever API host a request uses, and every render answer names its region. There is no visual drag-and-drop designer: templates are HTML and CSS, which is what makes them diffable and testable. E-invoicing follows after the public launch.

Update, 30 September 2026: image templates can now be designed on a canvas (visual editor, beta). The canvas writes an ordinary HTML template, so documents are still HTML and CSS, diffable and testable.

Update, 17 October 2026: e-invoicing arrived on 4 October 2026. A PDF render can return a ZUGFeRD / Factur-X invoice, live from the Starter plan and as marked test renders on every plan (e-invoicing).

Pricing

Plans are in euros with a free tier, and test keys render for free so that development and CI never touch the quota. A unit is a PDF of up to five pages or one image; previews and validations cost nothing.

Getting in

Update, 20 September 2026: the private beta is over. Sign-up is open to everyone, the Free plan needs no invitation and no card, and test keys render for free while you build. What follows is how it worked while the waitlist ran.

The beta was invite-based while we watched the render queue under real load. An invitation brought a workspace in the EU region and starter templates. If you are migrating from apitemplate.io, say so, and we will look at your templates with you.

Philipp Staudt

Start rendering today

The free plan includes 100 units a month and free test renders. Change plans when you need more.