The platform — engine, editor, plugins, SDK

One engine, every kind of page

paged is built in layers that each stand on a public boundary: an open engine that reads and lays out IDML, a viewer and an editor that run it in the browser, 8 plugins for the content a publication holds, and the SDK all of them are written against.

130
editing operations, one undo channel
403
typed property schemas
30
address forms in the object model
3
backends from one display list
The map

The engine at the centre, the editor around it

Everything that draws a page goes through the engine. The editor is the application around it: it owns the document session, the tools and the panels, and it hosts every plugin through one typed contract, @paged-media/plugin-api. Click a node to read its license, maturity and proof points.

Fig. 03
The paged platform as a constellation: the open engine at the centre, the editor as the ring around it, and 8 first-party plugins orbiting the editor across the plugin contract. paged.slide is drawn dashed because it is not yet loaded by the editor.EditorAGPL-3.0 OR PMEL@paged-media/plugin-apiEngineIDML → display listMPL-2.0 OR PMELpaged.drawIllustrator-classpaged.imagePhotoshop-classpaged.sheetExcel in the layoutpaged.dataDatabase publishingpaged.webThe web, set in printpaged.docWord, typesetpaged.slidecoming — not yet loadedpaged.publishIDML and PDF in, IDML outThe platform1 engine · 1 editor · 8 plugins · 1 contractdashed = coming
Fig. 03 — The plugin constellation — one engine, one editor, every plugin on the same contract.click any node to inspect it
Idea one — the display list

One display list, 3 backends

The engine parses an IDML package into a typed model, resolves it into a scene, shapes and breaks the text, composes the pages — and then writes one display list. Every way of putting the page somewhere reads that same list.

CPU
A software rasteriser for headless rendering and the fidelity tests run against InDesign.
WebGPU
The browser path: the viewer, the editor and the cover of this site.
PDF
Print-grade PDF written from the same commands, not from a screenshot.
An Annual page of transparency effects — painted by the same display list on every backend.
An Annual page of transparency effects — painted by the same display list on every backend.
Idea two — the mutation channel

130 operations, one undo

Every change to a document — a typed character, a dragged frame, a filled table cell, a plugin placing a chart — is one of 130 typed operations sent over a single channel into the engine. The engine applies it, recomposes only what it touched, and records it for undo.

There is no second path. A tool, a panel, a script and a plugin all speak the same operations, which is why one undo stack covers all of them.

A tool, a script and a plugin make the same edit the same way.
Idea three — the object model

Everything in a document has an address

Pages, frames, stories, paragraphs, table cells and a caret inside a line are named by one address grammar of 30 forms. Every property an address can carry is described by one of 403 typed schemas — so the inspector, the scripting surface and a plugin read and write the same fields with the same types.

30
address forms
403
typed property schemas
130
operations on the channel
Idea four — the container

A .paged file is valid IDML

A .pageddocument is a ZIP package that is also a valid IDML file: InDesign opens it as one. Next to the IDML parts it carries each plugin's content in that content's own native form — the web plugin's HTML, the sheet plugin's workbook, the drawing plugin's vectors — and an index of which part belongs to whom.

Nothing is locked inside a private blob. Take the plugins away and the document is still an IDML; keep them and every live object can still be edited as what it is.

Scripting

Scripts run next to the engine

The editor ships a paged.* scripting surface, evaluated in the same worker as the engine. A script addresses objects with the object model and changes them with the same operations a tool sends — so a batch job lands on the same undo stack as a hand edit.

The products

Four layers you can use on their own

The open IDML engine

paged core

A Rust engine that reads InDesign documents and lays them out the way InDesign does — then paints them on the CPU, on WebGPU, or into print-grade PDF from one display list.

read the spread →
IDML on any web page

paged viewer

Drop the engine's renderer into a web page and an InDesign document becomes a live, zoomable page — no server, no conversion step, no plugin.

read the spread →
InDesign-class

paged editor

An InDesign-class layout application that runs entirely in your browser tab: the engine in a worker, a cockpit that follows what you are editing, and every plugin in the same chrome.

read the spread →
Build your own plugin

plugin SDK

The same contract every first-party plugin is written against: a typed host, the object model, the scripting surface and a validator — so a plugin of yours sits in the editor exactly like ours.

read the spread →
The plugins

8 plugins, one contract

Every first-party plugin is written against @paged-media/plugin-api — the same contract the SDK gives you. Each one built a chapter of The Paged Annual.

Illustrator-class

paged.draw

Illustrator-class vector drawing inside the layout: pen and shape tools, pathfinder, live paint, symbols and blends, on the same page as your text.

read the spread →
Photoshop-class

paged.image

Photoshop-class image editing on WebGPU — layers, masks, adjustment layers, healing and content-aware fill — and a PSD that comes back byte for byte when you did not touch it.

read the spread →
Excel in the layout

paged.sheet

A spreadsheet engine in the page: real Excel workbooks with live formulas, tables and charts that paginate like print, and save back as XLSX.

read the spread →
Database publishing

paged.data

Catalogues, price lists and directories generated from your data: SQL over CSV, JSON, Parquet and Excel in the browser, bound to the layout and kept in sync.

read the spread →
The web, set in print

paged.web

InDesign can't speak web; web tools can't speak print. paged.web lays out HTML and CSS inside frames, flows it across pages, and bakes it to native items InDesign opens.

read the spread →
Word, typeset

paged.doc

Open a Word .docx as native, editable layout — lists, tables, images, footnotes, headers and footers — and save your edits back into the same file.

read the spread →
PowerPoint, typeset

paged.slide

PowerPoint decks on the engine: every preset shape, every built-in table style, charts and SmartArt, laid out within a point of PowerPoint.

coming →
IDML and PDF in, IDML out

paged.publish

The format lanes: IDML written back in InDesign's own spelling with untouched parts kept verbatim, and PDFs opened as editable text, vector and image frames.

read the spread →

Every plugin →
Licensing

Who may use what

Every part is dual-licensed. The engine, the viewer, the SDK and the format lanes are MPL-2.0 OR PMEL; the editor and the content plugins are AGPL-3.0 OR PMEL. PMEL is the alternative to the open-source license for those who need other terms — write to enterprise@paged.media.

PartLicenseMaturityVersionRepository
paged coreMPL-2.0 OR PMELreleased0.71.3core ↗
paged viewerMPL-2.0 OR PMELreleased0.71.3core ↗
paged editorAGPL-3.0 OR PMELproduct preview—editor ↗
plugin SDKMPL-2.0 OR PMELcanary — usable, moving fast0.2.48-canary.0plugin-sdk ↗
paged.drawAGPL-3.0 OR PMELcanary — usable, moving fast0.1.0-canary.16plugin-draw ↗
paged.imageAGPL-3.0 OR PMELcanary — usable, moving fast0.1.0-canary.18plugin-image ↗
paged.sheetAGPL-3.0 OR PMELcanary — usable, moving fast0.1.0-canary.15plugin-sheets ↗
paged.dataAGPL-3.0 OR PMELcanary — usable, moving fast0.1.0-canary.11plugin-data ↗
paged.webAGPL-3.0 OR PMELcanary — usable, moving fast0.1.0-canary.12plugin-web ↗
paged.docAGPL-3.0 OR PMELcanary — usable, moving fast—plugin-doc ↗
paged.slideAGPL-3.0 OR PMELcoming — not yet in the editor—plugin-slide ↗
paged.publishMPL-2.0 OR PMELcanary — usable, moving fast0.1.0-canary.0plugin-publish ↗