Skip to content
Dynamic PDF templates

Write the document.
Mezdoc renders the PDF.

A Notion-style editor that speaks JSON. Insert variables as chips, drop in IF / ELSE branches, loop over arrays, and paste from Word - then render a paginated PDF that looks like a designer made it.

Loan Agreement · dynamic · v12 · saved
Loan Agreement

This loan is extended by lender.name to borrower.name, dated today.

IF coverage > 50,000

The borrower agrees to maintain rider clause B at all times. The premium for this rider shall be computed separately per the schedule attached herein.

ELSE

Standard terms apply without rider clause B.

The loan shall be repaid as follows:

FOR EACH installment IN schedule

Installment #installment.n. installment.amount due on installment.dueDate.

Signed at borrower.city by:

[ borrower signature ]
[ lender signature ]
6 variables · 2 conditions · 1 loopClick a field to insert at cursor
What you can build

For documents the old tools forgot.

Loan agreements, insurance policies, offer letters, NDAs, invoices - any document that changes shape based on the data it carries.

Variables as chips, not strings

Click @ to insert a field. Each chip carries name, alias, and type. No more search-and-replace cleanups when an alias changes.

Visual condition builder

Equals, contains, greater than, regex - build IF / ELSE chains with a point-and-click builder, or drop to raw expressions when needed.

Block and row loops

FOR EACH at section level or per table row. Your amortization schedule, line items, or policy riders just render the right number of rows.

Paste from Word and Docs

Tables, fonts, margins, alignment - all preserved. Office XML noise stripped cleanly on the way in.

Headers, footers, page setup

Per-page or first-page-only. Page numbers, counts, run-time variables, signature blocks. A4, Letter, Legal - any size.

Live preview with sample data

Open the preview drawer to see your template rendered with real sample data - conditions and loops resolved in real time.

Mention autocomplete

Type @ to search fields by alias or name. Broken references surface inline before you ever hit the API.

Compiles to deterministic HTML

Mezdoc converts your dynamic doc to stable HTML before rendering. Same input, always same output - no surprises in production.

Version control + environments

Save drafts, stage for QA, promote to production. Every PDF knows which template version it came from.

< 2s
Median render time
30+
Variable types supported
100%
Version traceable

Write once. Render forever.

Bring your existing Word docs. Drop in variables. Add conditions where the document varies. Ship a production PDF API the same day.