Skip to content
@paged-media

paged-media

paged

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.

More than an editor

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.

Architecture

 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.

Repositories

Engine & rendering

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

Editor & platform

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

Plugins

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.)

Documentation & reference

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.

Supporting

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

Technology

  • 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.

Try it

Licensing

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.

About

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

Popular repositories Loading

  1. awesome-idml awesome-idml Public

    A curated awesome list for IDML (Adobe InDesign Markup Language): open-source libraries (Python, PHP, JS/TS, Rust, Java, XSLT), converters, apps that open & edit IDML (InDesign, Affinity, QuarkXPre…

    19 3

  2. core core Public

    Pixel-faithful IDML parsing and rendering, in Rust.

    Rust 3

  3. editor editor Public

    TypeScript

  4. docs docs Public

    MDX

  5. viewer viewer Public

  6. .github .github Public

Repositories

Showing 10 of 16 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…