Open Source · Self-Hostable · API-First

PDFs that build themselves.
You design. We generate.

The modern document automation platform. Design pixel-perfect templates visually, fill them with data via API, and generate thousands of PDFs in seconds — invoices, contracts, healthcare forms, reports, and more.

No credit card required · Unlimited templates in free tier

app.puppetpdf.com/templates/builder
Fields
Text
Date
Signature
Table
Image
Checkbox
HEALTH INSURANCE CLAIM FORM
Patient Name{{patientName}}
Date of Birth{{dob}}
Procedures Table
ServiceCodeAmount
Consultation99213$150.00
Lab Work80053$85.00
Physician SignatureDr. Smith
Total Charges{{total}}
Properties
KeypatientName
TypeText
Width240px

Trusted by teams building at scale

Healthcare/Legal/Finance/Insurance/Real Estate/Education
Capabilities

Everything you need to automate documents

From visual design to API-driven generation at scale — one platform, zero PDF headaches.

Visual Template Builder

Drag-and-drop fields onto pixel-perfect pages. Text, dates, tables, signatures, checkboxes, images — position everything exactly where it belongs.

Schema-Driven Rendering

Templates are stored as structured JSON schemas. Feed data via API and get pixel-perfect PDFs every time — deterministic, testable, version-controlled.

API-First Design

RESTful endpoints for sync, async, and batch PDF generation. TypeScript SDK included. Generate from any language with a simple POST request.

Multi-Tenant Workspaces

Organize teams with workspaces and projects. Role-based access control — Owner, Admin, Editor, Viewer — keeps your templates secure.

Digital Signatures

Built-in signing flows with secure signer sessions. Capture typed or drawn signatures and embed them directly into generated documents.

Async & Batch Generation

Queue thousands of PDFs with BullMQ + Redis. Automatic retries, dead-letter queues, and webhook notifications when jobs complete.

Version Control

Publish immutable template versions. Edit drafts freely, then publish when ready. Roll back anytime. Full audit trail of every change.

Live Preview

Instant HTML preview of your templates with sample data. See exactly what the final PDF will look like before generating a single page.

Webhooks & Events

Get notified when documents are generated, signed, or failed. HMAC-signed webhook payloads integrate with any workflow or CI/CD pipeline.

Simple Workflow

Three steps to automated documents

1

Design Your Template

Use the visual builder to drag fields onto pages. Configure tables, signatures, dates, images — any field type your document needs. Set styles, alignment, and layout.

Template: CMS 1500 Claim Form
Fields: 32 dynamic fields
Pages: 2
Status: Published v3
2

Send Data via API

POST your data as JSON. The auto-generated data model tells you exactly what fields to fill. Use our SDK, curl, or any HTTP client.

POST /api/v1/documents/generate-sync
{
  "templateId": "cms-1500-v3",
  "payload": {
    "patientName": "Jane Doe",
    "dob": "1990-03-15",
    "procedures": [
      { "service": "Consultation",
        "code": "99213",
        "charges": "$150.00" }
    ]
  }
}
3

Get Your PDF

Receive a pixel-perfect PDF instantly (sync) or via webhook (async). Download, email, archive, or pipe it into your next workflow step.

Status: COMPLETED ✓
Document: doc_8f3k2...
Size: 142 KB
Time: 1.2s
Developer Experience

Built for developers, loved by teams

First-class API, typed SDK, auto-generated code snippets, and a data model explorer for every template.

TypeScript SDK

import { PuppetPdfClient } from "@puppetpdf/sdk";

const client = new PuppetPdfClient(url, key);
const res = await client.generateDocument({
  templateId: "invoice-v2",
  payload: { customer: "Acme Corp", total: 4250 }
});

Auto-Generated Data Model

interface InvoicePayload {
  /** text field */
  customer: string;
  /** date field */
  invoiceDate: string;
  /** table field */
  lineItems: Array<{
    description: string;
    qty: string;
    amount: string;
  }>;
  /** text field */
  total: string;
}

Webhooks

// Your webhook endpoint receives:
{
  "event": "document.completed",
  "data": {
    "documentId": "doc_8f3k2...",
    "templateId": "invoice-v2",
    "outputUrl": "https://..."
  },
  "signature": "sha256=..."
}
100% Open Source

Own your document infrastructure

PuppetPDF is fully open source and self-hostable. Run it on your own servers, audit every line of code, and never worry about vendor lock-in. Deploy with Docker Compose in minutes.

$ git clone puppetpdf
$ docker compose up -d
✓ web running on :3000
✓ pdf-worker connected
✓ postgres ready
✓ redis ready
Ready to generate PDFs 🚀

Ready to automate your documents?

Join thousands of developers generating pixel-perfect PDFs at scale.