Offline-first · Zero backend · Installable PWA

Design reports visually. Export pixel-perfect PDFs.

DukReport is a WYSIWYG report designer that runs entirely in your browser. Bind CSV, JSON or REST data, preview true pagination, and export PDF or Excel — no server, no account, no lock-in.

  • Works offline
  • EN / NL / FR
  • WCAG AAA contrast
  • Open .duk format

Features

Everything a report needs

A complete designer — not a form builder that almost gets there.

Visual band editor

Drag, drop, align. Snap guides, size badges, inline text editing, multi-select and a layers panel for z-order.

Pagination that behaves

Page headers and footers, multi-level groups, keep-together and page-break rules. PAGENUM/PAGECOUNT via dual-pass layout.

Expressions with guardrails

Lazy if(), aggregates, named formulas and typed parameters. Errors surface inline — never as a wall of popups.

Bind any data

CSV, JSON, manual tables or REST endpoints with a live-preview wizard — linked together through master–detail relations.

Pixel-accurate export

A purpose-built PDF writer with embedded fonts: the preview is the PDF, guarded by automated parity tests. Excel and print included.

Elements for real reports

Text, images, barcodes, QR codes, lines and shapes — each with conditional styling and shared style definitions.

Offline-first PWA

Install once, work anywhere. Fully precached — zero CDN calls — with autosave to IndexedDB and multi-tab sync.

Accessible & multilingual

WCAG AAA contrast, keyboard-first editing and a screen-reader structure tree. Ships in English, Dutch and French.

Workflow

Blank page to PDF in three steps

  1. 01

    Design

    Start from a blank page or one of the built-in templates. Compose bands, drop in elements and style them once with shared style definitions.

  2. 02

    Bind

    Connect a dataset, map fields to elements, define typed parameters and named formulas. The preview updates as you go.

  3. 03

    Publish

    Run the preview, fill in the parameter dialog and export to PDF or Excel — or hand the finished report to the embedded viewer.

Data

Bind the data you already have

Reports pull from datasets you control — fetched by your browser, never routed through a third-party server.

CSV

Paste or load delimited files; fields are detected automatically.

JSON

Arrays and nested objects, mapped straight onto report fields.

REST

A wizard with a live response preview — point it at any endpoint.

Manual

Small typed-in tables for lookups and fixed reference data.

The .duk format

Your reports stay yours

  • An ordinary ZIP. A schema-validated doc.json plus your assets. Unzip it, read it, script it.
  • Byte-deterministic exports. Save the same report twice, get identical files — clean diffs under version control.
  • Versioned documents. A migration chain keeps old files opening in new releases.
  • No account, no server, no telemetry. Data lives in your browser; REST calls go straight from your machine to the endpoint you configure.

Embedding

Built to embed

DukReport ships routes for wrapping it in a desktop shell: a read-only viewer for finished reports and a locked-designer mode where the layout is fixed but the data isn’t. Both sides talk over a documented OpenAPI contract.

  • #/viewer — pick a report, seed parameters, download the PDF.
  • #/designer-locked — data editing unlocked, layout protected by three fail-closed layers.
  • OpenAPI contract — one source of truth for the shell, codegen and contract tests.

Roadmap

Coming next

Charts will render through the same draw pipeline as everything else — preview and PDF stay identical by construction.

  • Dynamic tables
  • Bar & line charts
  • Dataset transforms
  • Pivot reports
  • Template gallery
  • Brand fonts
  • Desktop SDK

Ready to design your first report?

Open DukReport in any modern browser — or install it and keep working at 30,000 feet.

Open DukReport →

Installable from the address bar in Chrome, Edge and other Chromium browsers.