editor — the editing frontend
The commercial desktop-publishing frontend — a React shell driving the engine wasm in a Web Worker on an OffscreenCanvas, with panels, gestures, scripting, and plugin integration.
In short editor is the commercial app — full document editing on top of the
engine. A React shell talks to the engine wasm
running in a Web Worker that renders to an OffscreenCanvas, with a
SharedArrayBuffer carrying camera and gesture state for real-time interaction.
What it does
- Full editing: insert/delete frames, edit text, apply paragraph/character/object styles, transform with gestures (translate, rotate, scale, shear).
- A panel system (properties, styles, swatches, layers, pathfinder, …), a command
palette, and a
paged.*script editor + REPL. - Hosts the content plugins — draw, image, sheets, web, data — through the Plugin SDK.
How it's organized
A pnpm workspace: apps/canvas (the app), packages/client (the wasm boundary —
the CanvasClient, the wire protocol + PROTOCOL_VERSION, the SAB primitives),
packages/shell (state, registries, dockview substrate, theme), packages/catalog
(declarative commands/panels), and packages/ui (input primitives).
How it consumes the engine
It pins the published @paged-media/canvas-wasm + introspect-wasm at a wire
protocol version — pnpm install is enough to build, no core checkout. The
render architecture and fidelity suite are covered under
testing.
Recent activity
- 2026-06-22ci(cf-dns): use a dedicated CLOUDFLARE_DNS_TOKEN (Pages token lacks DNS scope)d14f852
- 2026-06-22ci: one-shot Cloudflare DNS records for the Pages custom domainsb191f99
- 2026-06-22ci(cf-setup): report custom-domain statuse1e5da7
- 2026-06-22ci: one-shot Cloudflare Pages setup (production branch + custom domains)8fb44b0
- 2026-06-22ci(playground): deploy via npx wrangler (wrangler-action breaks in pnpm workspace)9afd714
- 2026-06-22build: consume plugins as published npm packages; simplify playground CI999eeb7
- 2026-06-22ci(playground): pin pnpm version (workspace root has no package.json)cb7b51a
- 2026-06-22ci(playground): drop SIBLING_REPOS_TOKEN — plugin repos are public nowb98f85e
core — the render engine
The Rust render engine that parses and renders IDML — the parse→scene→text→compose→GPU pipeline, the wasm boundary, and the dual rasterization backends.
editor-server — the backend
The TypeScript REST backend for the editor — Fastify + SQLite/Drizzle + better-auth + Stripe — handling accounts, storage, billing, asset proxies, and headless document automation.