Skip to content
Smart documents

Write the document.
Mezdoc handles the layout.

A Word-style editor that thinks like data. Drop in variables as chips, add IF and ELSE rules, loop over arrays, even paste from Word. Mezdoc lays out a paginated PDF that looks like a designer made it.

Loan Agreement, v12, saved 2s ago
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
FOR EACH, live

Loop over an array of anything.

A FOR EACH block renders one row per item, at section level or per table row. The array can hold plain text or full JSON objects, and item.key resolves per iteration. Edit the data and watch the rows follow.

Your data (the array)
0
1
2
Rendered document
FOR EACH item in line_items
render item.desc and item.amount
DescriptionAmount
Premium, year 112,000
Rider B premium1,800
Processing fee500
3 rows rendered. Send 1 or 100, the loop fits the data.
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 and 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. The array can be plain text or JSON objects, with item.key per iteration. Amortization schedules, line items, and policy riders render the right number of rows.

Paste from Word and Docs

Tables, fonts, margins, and 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, or Legal.

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 publish.

Compiles to deterministic HTML

Mezdoc converts your document to stable HTML before rendering. Same input, always same output. No surprises in production.

Version control and 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 rules where the document varies. Ship a production PDF the same day.