Skip to content

BroadPaperStop building custom report designers.

An embeddable visual report builder for React and Angular. Developers define the data, users design the report, the SDK handles layout, branding, preview and PDF.

The BroadPaper designer, with the block palette, a bound KPI selected on the canvas and its properties panel

See it before you read about it

Run the demo — a Client Investment Review across three brands, with a custom block and PDF export rendered in the browser. No account, no server, nothing to install.

Preview mode showing the report exactly as the PDF will contain it
Preview mode draws what the PDF draws, page for page.
Page one of the example PDF: cover, adviser summary and a portfolio value chart
The PDF it produced — four pages, selectable text, vector charts.

Where to start

Embedding it. Quick start gets a designer on screen with your own data in about thirty lines, and every example on that page is complete enough to paste and run. Then React or Angular for the wrapper you are actually using, and Events & API for driving it from the outside.

Understanding it. Core concepts explains the document model and why it is a structured tree rather than a canvas. Document schema is the JSON your users will be saving.

Using it. Using the designer is the authoring surface — placing blocks, binding data by typing {{, and controlling where pages break. Worth reading once even if you are only embedding it.

Feeding it. Data sources is your side of the contract, and Dynamic bindings is the expression language your users will bind with. Then Conditions, Repeaters, Tables and Charts.

Branding it. Themes is how one template renders as three brands, and White labelling is how it stops looking like ours.

Shipping it. Browserless PDF is the recommended renderer and the one that needs no server. Chromium PDF service is the alternative, and that page compares what each one guarantees. Validation, Security and Migration & versioning are what you will want before it meets real customers.

Extending it. Custom blocks — your own blocks, with a declarative inspector and a pure render function, no fork required.