Architecture
How paged fits together — the render engine at the core, the editor and server above it, the content plugins beside it, and the registry that tracks the whole system's state.
In short one Rust render engine reads and renders IDML. Everything else consumes it across a package boundary: the editor (full editing) and the viewer (read-only) use its wasm; the server backs the editor's accounts and storage; five content plugins add new kinds of content; and a capability registry tracks what works across all of it.
The render pipeline
The engine (core) turns an IDML package into pixels through a fixed pipeline:
parse → scene → text → compose → GPUParse reads the ZIP + XML into a model; scene resolves spreads, frames, and story threading; text lays out with an InDesign-calibrated Knuth–Plass composer; compose emits a display list; and the GPU layer rasterizes it. Forward rendering is WebGPU (Vello); a CPU backend (tiny-skia) remains for headless fidelity testing. The renderer reference covers this in depth.
Who consumes the engine
The engine publishes wasm packages (@paged-media/canvas-wasm,
introspect-wasm, idml-viewer). Consumers never take a source dependency:
- Editorthe commercial app: full canvas,
mutation, gestures, panels, and the
paged.*scripting layer, running the engine in a Web Worker on anOffscreenCanvas. - Viewera slim, read-only WebGPU viewer (renderer-core only). It's both the community viewer and the docs live preview.
- Editor-serverthe backend for accounts, storage, billing, and asset proxies; also drives the engine headlessly for document automation.
Extending the system
Content beyond IDML's native constructs comes from plugins — vector drawing, web (HTML/CSS), raster images, spreadsheets, and database publishing — built on the Plugin SDK contract.
Keeping everyone honest
The capability registry holds one row per capability with a per-layer status and a test-evidence overlay. Every repo's tests publish against it; this documentation reads from it. That's why the support badges throughout the IDML reference are live, not hand-kept.
The repositories
See Repositories for a per-repo tour, and How it's tested for the verification system.
Paged
Paged is the open-source system that reads, renders, and edits IDML — a WebGPU render engine, a browser editor, an SDK, a paged.* scripting layer, a plugin platform, and a REST backend, all tracked by a live capability registry.
Paged Viewer SDK
The Paged Viewer SDK is the WebGPU rendering API — load an IDML document, render its pages, and drive a pan/zoom camera — published as @paged-media/idml-viewer. It is the read-only sibling of the editor.