> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getdeckle.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Deckle vs PDFMonkey

> Compare Deckle and PDFMonkey for PDF generation

# Deckle vs PDFMonkey

PDFMonkey is a template-based PDF generation service focused on visual template design. Deckle offers both template-based and code-first approaches (HTML, React) with full programmatic control.

## Feature Comparison

| Feature                | Deckle                           | PDFMonkey                    |
| ---------------------- | -------------------------------- | ---------------------------- |
| **HTML-to-PDF**        | Yes (full CSS3)                  | No (template-only)           |
| **React-to-PDF**       | Yes                              | No                           |
| **Template engine**    | Yes (Handlebars + visual editor) | Yes (Liquid + visual editor) |
| **Free tier**          | 1,000 PDFs/month                 | 300 PDFs/month               |
| **Pricing**            | From \$29/mo                     | From €19/mo                  |
| **SDKs**               | TypeScript, Python, Go, Ruby     | JavaScript, Ruby             |
| **Batch generation**   | Built-in API                     | Built-in                     |
| **Custom fonts**       | Upload via API                   | Dashboard upload             |
| **MCP server**         | Yes                              | No                           |
| **Self-hosted**        | Docker option                    | No                           |
| **PDF merge/split**    | Yes                              | No                           |
| **Digital signatures** | Yes                              | No                           |

## Key Differences

**PDFMonkey** is template-only — you design templates in their editor and merge data via API. You cannot send raw HTML.

**Deckle** supports three input modes:

1. **HTML** — send any HTML/CSS, get a PDF back
2. **React** — send JSX components, rendered server-side
3. **Templates** — visual editor with Handlebars variables

This flexibility means Deckle works for both quick one-off PDFs and production template workflows.

## Code Comparison

### PDFMonkey

```javascript theme={null}
const response = await fetch('https://api.pdfmonkey.io/api/v1/documents', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    document: {
      document_template_id: 'TEMPLATE_ID',
      payload: { name: 'John Doe', amount: 500 },
      status: 'pending',
    },
  }),
});
```

### Deckle

```typescript theme={null}
import { Deckle } from '@getdeckle/sdk';
const df = new Deckle('dk_live_...');

// Template mode (like PDFMonkey)
const pdf = await df.fromTemplate({
  template: 'tmpl_invoice_v2',
  data: { name: 'John Doe', amount: 500 },
});

// Or just send HTML directly
const pdf2 = await df.generate({
  html: '<h1>Hello World</h1>',
});
```

## When to Choose PDFMonkey

* Your team is non-technical and needs a purely visual workflow
* You only need template-based generation
* You prefer Liquid templating over Handlebars

## When to Choose Deckle

* You need HTML-to-PDF or React-to-PDF (not just templates)
* You want more SDKs and language support
* You need PDF tools (merge, split, protect, sign)
* You want a more generous free tier
