Commented on Formfeed · Oct 27, 2026
Hi DevHunt, I’m Philipp, the founder of Formfeed! When Germany introduced mandatory e-invoicing for businesses, I wanted a document API that did more than generate documents. I wanted one that validates them against the rules before they go out. That idea became Formfeed: a PDF, e-invoice, and image API built for developers and AI agents. Generating a document is the easy part. The real challenge starts when nobody reviews it before it goes out: an invoice batch running overnight, an AI agent filling in the data, or a workflow processing hundreds of documents automatically. That’s why validation is built directly into the rendering process. Here’s what Formfeed offers: Flexible templates: Use Jinja2, Liquid, or Handlebars, or bring your own tagged Word and PowerPoint files. Render everything through a single API. Validation at render time: Generate ZUGFeRD / Factur-X e-invoices validated against EN 16931 and PDF/A-3b, plus tagged PDF/UA-1 documents checked with veraPDF. When something fails, you get the violated rule and, for e-invoices, the specific field to fix. Built for AI agents: An MCP server that runs hosted or locally, plus a plugin that helps coding agents like Claude Code, Cursor, Codex, Copilot, and Gemini CLI create templates and the code to render them. Templates in Git: A CLI with snapshot testing and a GitHub Action that previews template changes in pull requests. A true document preview: An editor with a paginated preview that shows every page as it will appear in the final PDF. Integrations for your stack: TypeScript and Python SDKs, a verified n8n node, and integrations with Zapier, Make, and Power Automate. EU-based infrastructure: Documents are rendered in Frankfurt and stored in the EU. The free plan includes 100 documents per month. I’m building Formfeed solo, and I’d love to hear from other developers. Do you generate documents that go straight into the world without anyone checking them by hand? Have you ever had something go wrong, and would validation during rendering have caught it? I’d love to hear your stories and feedback.