Everything between a blank page and a finished PDF
A design canvas that behaves like one, a rendering engine that agrees with it, and the workflow around both.
The editor
A canvas, not a form
Place elements where you want them, at the precision a document actually needs.
- Blocks and shapes
- Text, headers, footers, tables, lists and images, plus lines, boxes, ellipses, polygons and arrows. Group, align and reorder through a layers panel.
- Real vector editing
- Boolean union and subtract on shapes, and full bezier path editing — add or remove vertices and drag control handles with smooth or mirrored tangents.
- Snapping and guides
- Smart guides, a configurable grid, rulers and your own draggable guides, saved per page. Nudge by 1pt, or 10pt with Shift.
- Multi-page documents
- Nine page presets from A5 to Tabloid, portrait or landscape, per-side margins and page backgrounds. Reorder pages in a thumbnail sorter.
- Rich text that survives the PDF
- Bold, italic, underline, colour, highlight, super and subscript, and real hyperlinks that become clickable PDF annotations. Text can reflow between linked boxes.
- Undo, autosave, export
- Fifty levels of undo, and your work saves itself continuously — edits stream to the server as you make them, so there is nothing to remember to press. JSON import and export, and PNG or JPEG page export at 2×.
Data binding
One template, any dataset
Design the shape once and let the values change on every generation.
- Variables with formatting
- Drop {{placeholders}} anywhere and format them inline — currency, number precision, dates, uppercase, capitalize, truncate, and defaults for missing values.
- System values
- Page number, total pages and current date resolve at render time, so “Page 3 of 12” footers just work.
- Data-driven tables and lists
- Bind a table or list to an array and it expands to fit — line items, schedules, signatories.
- Conditional rules
- Show or hide elements, recolour them, and size them from expressions, all driven by the data you pass in.
- Overflow handled deliberately
- Choose clip, ellipsis or shrink-to-fit per element, so long values degrade the way you decided instead of silently spilling.
- Preview with real data
- The preview builds a form from the variables it detects, renders the actual PDF, and warns you where text would overflow.
Fidelity
The canvas and the PDF agree
The single hardest problem in document tooling, solved by construction rather than by eyeballing.
- Identical fonts on both sides
- Inter, Source Serif 4 and JetBrains Mono are embedded in the browser and in the PDF engine. Fonts outside that set are mapped to a supported family rather than silently substituted at render time.
- One measurement authority
- The canvas asks the PDF engine what it would compute, so line breaks and text height match instead of approximating.
- Effects that actually render
- Rotation, opacity, gradients, dashed strokes, rounded corners and drop shadows all survive into the PDF — the editor does not offer a control the renderer would ignore.
AI assistance
A faster first draft
Useful where it helps, and never destructive.
- Generate from a description
- Describe the document and get a working template. Ask for a change to one element and it stays scoped to that element.
- Clarifying questions first
- When a prompt is ambiguous you get a few quick questions rather than a confident wrong answer.
- Section-by-section for long documents
- Longer documents are planned as an outline, then built in passes, which holds up far better than one enormous generation.
- Accept or reject, always
- Results arrive as a preview. If the model touched elements you did not ask about, it tells you exactly which ones before anything is applied.
- Layout repair that checks first
- A local pass finds overlaps, off-page overflow and glued words. A clean page costs nothing — only genuine problems are sent for repair.
Collaboration
Built for more than one person
See each other work, and leave the discussion on the document.
- Real-time co-editing
- Edits stream between everyone in a template, with live cursors in text and per-user colours.
- Presence and follow
- See who else is in the document, and click an avatar to follow their viewport, zoom and page.
- Threaded comments
- Anchor a comment to an element, reply in a thread, and resolve it. Filter by open or resolved.
- Comment-only mode
- Reviewers and viewers get a read-only view pinned to the latest committed version, with a toggle to watch edits live.
Versions and workflow
Change with a paper trail
Know what changed, who approved it, and what is live.
- Committed versions
- Commit numbered versions, browse the history, and compare two versions visually. Generate from any version you pin.
- Reviews that actually gate
- Request review from named colleagues. Requested changes block the next commit until they are resolved or dismissed — it is a gate, not a suggestion.
- Document lifecycle
- Move documents through draft, review, approved, sent, signed, active, expired and archived, with illegal transitions rejected.
- Multi-step approvals
- Route a document through approvers in order, with a pending-approvals queue and a full timeline of who did what.
- Expiry handling
- Set an expiration date and documents move to expired automatically, with warning emails ahead of the date.
Teams
Organised the way your business is
Multiple workspaces, clear permissions, and structure above templates.
- Four roles
- Admin, Designer, Reviewer and Viewer — from full control down to read-only, enforced on the server rather than hidden in the UI.
- Multiple workspaces
- Belong to several organisations and switch between them. Data is isolated per workspace.
- Invitations and sharing
- Invite by email with a role, or share a specific template with people or via an expiring link.
- Product lines
- Group templates under products like “Home Loans” or “Auto Lease”, then see how many documents each line generated, split by console and API.
- Starter template library
- Browse shared templates by category and install one into your workspace as a starting point, or publish your own.
- Sign-in that fits
- Email and password, one-time login codes, or Google and GitHub sign-in.
Platform
For the systems around it
The console is one way in. Your own software is the other.
- REST API
- Generate documents, fetch them, and list them from your own stack with a scoped API key.
- Signed webhooks
- HMAC-signed deliveries for document and review events, with automatic retries and an inspectable delivery log.
- Notifications and activity
- In-app notifications for reviews, mentions and shares, plus a per-workspace activity feed of what changed.
- Transactional email
- Verification, invitations, review requests, approval decisions and expiry warnings, sent for you.
See it on your own document
Bring a contract or invoice you already send, and rebuild it in the editor.