Enterprise desktop publishing, brought to the open web.
docs.paged.media · play.paged.media · npm: @paged-media
Paged brings enterprise Desktop Publishing directly to the web. No more bloated applications. No more hidden, proprietary technologies. Just as Scribus and others democratized DTP before it, Paged sets out to open this domain up to everyone — leveraging modern technologies like WebGPU and WebAssembly to deliver professional-grade publishing performance natively in the browser.
At its core, Paged is an open-source IDML parser and renderer: it reads Adobe InDesign IDML files, parses them, and renders them faithfully on the web — with print-grade fidelity, held to per-page pixel diffs against real InDesign exports.
Paged also aims to be the open IDML reference — an accessible, authoritative resource into the structure and inner workings of the IDML format, which has long been underdocumented and locked behind proprietary tooling.
Three things working in concert: a mission to democratize desktop publishing for the web era, a faithful open IDML engine, and the definitive open reference for the format.
The engine is the foundation, but Paged is a whole platform built on it:
- a programmable, InDesign-class editor — the cockpit is its own API;
paged.*scripts open panels, draw and edit content, and narrate themselves (which is how the live demos and tutorials are built); - a real plugin platform — vector, raster, spreadsheet, HTML, and database-publishing are all plugins, shipped as packages with their own wasm;
- the living documentation + IDML reference, generated from a machine-readable capability registry so it never drifts from the code.
IDML ─▶ parse ─▶ scene ─▶ text layout ─▶ compose ─▶ display list ─▶ raster
(Knuth–Plass) (versioned) (WebGPU / CPU)
│
published to npm ◀─────────────┘
@paged-media/canvas-wasm, /idml-viewer, /sdk …
│
editor (React) ─▶ Web Worker ─▶ engine wasm ◀─────────┘
│ ▲
└─▶ plugins: draw · web · image · sheet · data
(built on the plugin SDK)
Everything above the engine consumes it across a package boundary — the
published @paged-media wasm + SDK packages — never as a source dependency. The
same boundary lets anyone embed the engine or build a plugin.
| Repo | What it is | License |
|---|---|---|
| core | The Rust render engine: IDML parse → layout → compose → GPU/CPU raster. Publishes the @paged-media wasm + SDK packages. |
MPL-2.0 OR PMEL |
| viewer | Slim WebGPU IDML viewer (render-only) — the community viewer and the docs live-preview (@paged-media/idml-viewer). |
MPL-2.0 OR PMEL |
| Repo | What it is | License |
|---|---|---|
| editor | The editing cockpit: an InDesign-class, WebGPU canvas editor on the engine wasm, with the paged.* scripting layer and live, script-driven demos. |
AGPL-3.0 OR PMEL |
| plugin-sdk | The plugin contract + tooling (@paged-media/plugin-api, plugin-sdk, plugin-cli) that every plugin builds against. |
MPL-2.0 OR PMEL |
Each plugin adds a content type, built on the same SDK and shipped as an npm package with its own wasm:
| Repo | Plugin | What it adds |
|---|---|---|
| plugin-draw | paged.draw |
Vector graphics — create and edit shapes, paths, and strokes (host-agnostic tool machines + a geometry core). |
| plugin-web | paged.web |
HTML/CSS as a content type — author web content inside the layout (source + linting today; live rendering via a Blitz/WASM engine). |
| plugin-image | paged.image |
Raster images — place, ingest, GPU-accelerated adjustments, in-frame compositing, PSD support. |
| plugin-sheets | paged.sheet |
Spreadsheets in the document — a Rust/WASM engine: formulas, spill, tables, charts, XLSX round-trip. |
| plugin-data | paged.data |
Database-backed publishing — attach a database (DuckDB-WASM), query it, and flow records into the layout (data-merge / batch automation). |
(All plugins: AGPL-3.0 OR PMEL.)
| Repo | What it is | License |
|---|---|---|
| docs | docs.paged.media — the living IDML reference and platform docs (Fumadocs/Next), generated from the capability registry + engine catalog. | code MIT · content CC BY 4.0 |
| awesome-idml | A curated awesome list for IDML — open-source libraries, converters, apps, database-publishing + localization tools, and format docs. | — |
| Repo | What it is | |
|---|---|---|
| demo-replay | rrweb-based player for editor session replays (the no-WebGPU demo fallback). | public |
| editor-server | Hosted-service backend for the editor (REST API, auth, billing). | private |
| state | Capability registry + dashboard — the source of truth that drives the docs. | private |
| corpus | Fidelity test assets (InDesign-exported references). | private |
| website | The paged.media marketing site. | private |
| brand | Design tokens + cockpit UI kit. | private |
| thoughts | Internal concepts, ADRs, and RFIs. | private |
| plugin-template | Fork-and-go plugin starter (private until v1). | private |
- Rust + WebAssembly engine — a multi-crate workspace targeting native and wasm.
- WebGPU rendering via Vello, with a CPU (tiny-skia) path for headless fidelity CI.
- InDesign-calibrated text layout — Knuth–Plass line breaking, hyphenation, multi-font shaping; gated on pixel diffs (ΔE2000 / SSIM) against InDesign references.
- Programmable — an embedded Boa engine exposes
paged.*; every script edit is an undoable mutation on the same channel as gestures and panels. - Cross-origin-isolated web app — OffscreenCanvas + Web Worker + SharedArrayBuffer.
- 📖 Docs & IDML reference — https://docs.paged.media
▶️ Playground — https://play.paged.media (the real editor, driven live by a script)- 📦 Packages — https://www.npmjs.com/org/paged-media
Paged is open-core and dual-licensed. Every open component is also available under the commercial Paged Media Enterprise License (PMEL) from And The Next GmbH — for closed/hosted use, warranty, support, or patent terms.
- Engine & libraries (core, viewer, SDK, plugin-sdk) → MPL-2.0 OR PMEL — permissive, file-level copyleft, built to be embedded.
- Applications (the editor + first-party plugins) → AGPL-3.0 OR PMEL — network copyleft for the application surface.
- Documentation → site code MIT, content CC BY 4.0.
Contributions are welcome under a Contributor License Agreement (sign once, org-wide); a CLA bot prompts on your first pull request.
Paged and paged.media are an open project from And The Next GmbH.
Paged is an independent open-source project and is not affiliated with, endorsed by, or sponsored by Adobe Inc. IDML and InDesign are referenced solely for interoperability and descriptive purposes. We are deeply grateful to Adobe for opening up the IDML format for exchange, and thank them wholeheartedly for making projects like this possible.
paged, paged.media, and the paged logo are trademarks of And The Next GmbH.
© 2026 And The Next GmbH