Introduction
What this package is, in plain words, and the one rule that explains every decision inside it.
What it is
It is a screen you put inside your own application. On that screen, your users build a document — an invoice, a quotation, a report — by dragging pieces onto a page and typing into them.
You get two things out of it:
Store it in your database. It describes the document; it is not the document.
Made in the browser, when the user clicks Export.
What it is not
- Not a website builder. It builds documents that get printed — with pages, margins and page breaks.
- Not an invoicing system. It will lay an invoice out beautifully. It will not add up your tax or chase the payment.
- Not something you call from a script. There is a person, looking at a screen, dragging things.
The one rule
Why that matters to you, practically:
- It cannot leak your data, because it cannot send anything anywhere.
- It works with your login, your database and your cloud — because it never assumes any of them.
- Nothing is stored in the browser behind your back.
This is why you will see the word callback everywhere. A callback is just a function you hand over so the package can ask you to do something:
Who does what
Most "how do I make it…" questions are answered by finding which column the thing lives in.
| The package does this | You do this |
|---|---|
| Shows the editor | Anything involving the internet |
| Keeps the document valid, and keeps old ones opening | Logging users in, and deciding who may do what |
| Undo and redo | Your database, and browser storage |
| The blocks, and the drag-and-drop | Storing and deleting uploaded files |
| Splitting content across pages | Turning a stored file into a web address |
| Ready-made designs and templates | Calling an AI provider |
| Formatting money, dates and numbers | Exchange rates, and any maths on money |
| Making the PDF in the browser | Making it on a server, if you would rather |
| Preview, import and export | Putting real customer details into a template |
What a document looks like
You will meet this object constantly — it is what you save and what you load. It has five parts, and none of them are complicated.
version — so old saved documents keep opening. Do not touch it.
page — paper size, portrait or landscape, margins, page numbers.
tokens — the document's colours, font, spacing, language and currency.
rows — the actual content, top to bottom.
header / footer / coverPage — the repeating bits, or null if unused.
And rows is just this
12 March
Dashed outer box = a row. Dashed inner box = a column.
What we promise
Next: install it, or go straight to the step-by-step quick start.