Print-quality rendering • Every time

GeneratePDFsthatlooklikeprint.

Stop wrestling with Puppeteer crashes or pdfkit coordinates. One API call. Print-quality results.

700,000 PDFs generated
typescript
import { NeatPdf } from "@neat-pdf/sdk";

const client = new NeatPdf({
  apiKey: "YOUR_API_KEY",
});

const response = await client.htmlToPdf({
  body: {
    html: "<h1>Medical report #1234</h1>",
  },
});

const pdfBlob = response.data;
BUILD_VS_BUY

The real cost of DIY.

Open-source libraries are free. Maintaining them in production is not.

INFRA

Browser Management

The Problem

Memory pressure

Headless browsers consume 200-500MB per instance. Under load, your server runs out of memory and crashes.

Zombie processes

Browser instances don't always close cleanly. Orphaned processes accumulate until you restart the server.

Serverless limits

Chromium is 200MB+. Lambda has a 250MB limit. Vercel times out at 10s. The math doesn't work.

One API call. We manage the browsers at scale. You ship features.

Why developers choose NeatPDF

We handle the tedious work so you can focus on what matters.

AI-READY

Developer Experience

Typed SDK & LLM-Native ✨

LLMs speak HTML fluently. PDFs? That's our job. Full TypeScript support with IntelliSense. No parsing, no glue code.

View SDK Docs
llm-integration.ts
// Your LLM generates HTML
const html = await generateInvoice(order);

// We turn it into a PDF
const pdf = await neatpdf.htmlToPdf({ html });

Infrastructure

Zero Infrastructure Tax

No Puppeteer clusters to manage. We handle concurrent renders, memory, and timeouts. You just call the API.

Privacy

Zero Retention

We're a pipe, not a bucket. Your HTML goes in, your PDF comes out. Nothing stored. Nothing logged. GDPR compliant by architecture.

Testing

API Sandbox

Test every endpoint in your browser before writing code. Ship to production when you're ready.

Try the Sandbox

Test Before You Code

Every endpoint, right in your browser. See exactly what you'll get before writing a single line.

INPUT
invoice.html
<h1>Medical Invoice</h1>
<div class="patient-info">
  <p><strong>Patient:</strong> John Doe</p>
  <p><strong>Date:</strong> 2024-01-15</p>
</div>
<table class="invoice-table">
  <thead>
    <tr>
      <th>Description</th>
      <th>Qty</th>
      <th>Price</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Consultation</td>
      <td>1</td>
      <td>$150.00</td>
    </tr>
  </tbody>
</table>
OUTPUT
output.pdf

Click Convert to see the result

Ephemeral by Design

Your data never touches disk. Processed in memory, streamed to you, immediately discarded.

HTMLInput
RenderChromium
StreamPDF bytes
Delete0 seconds
Storage time: 0 seconds

Pay for what you use

Free

FREE

€0/month
100 PDFs/month
  • 3 documents per minute
  • 2MB max file size
  • 15s timeout
  • Community support
  • Full API Sandbox access
Hobby

HOBBY

€9/month
500 PDFs/month
  • 10 documents per minute
  • 5MB max file size
  • 20s timeout
  • Community support
  • Full API Sandbox access
Most_Popular
Pro

PRO

€19/month
2,000 PDFs/month
  • Unlimited team members
  • Unlimited projects
  • 60 documents per minute
  • 20MB max file size
  • 30s timeout
  • Priority support
  • Full API Sandbox access
Business

BUSINESS

€49/month
10,000 PDFs/month
  • Unlimited team members
  • Unlimited projects
  • 200 documents per minute
  • 100MB max file size
  • 60s timeout
  • Priority support
  • SLA guarantees
  • Full API Sandbox access

Your first PDF is free

No credit card required. Test every endpoint in the Sandbox before you write a single line of code.

Get Your API Key

Questions? [email protected]

Free tier • No credit card • Instant access

Frequently Asked Questions