Editor

fancy-cms-ui

The WYSIWYG editor surface — canvas + layers + inspector over a Stages node tree.

Registry JSON
Why
Page builders usually fuse the edit surface, the document format, and the renderer into one proprietary blob — so content is trapped, and the moment an agent should co-author a page you're reverse-engineering contentEditable DOM. The Stages model splits those concerns, but it needs an editing surface that speaks ops, not innerHTML.
What
Editor is the three-pane WYSIWYG over a Stages PageDoc: a layers tree (drag to reorder/reparent), a live canvas with selection overlay and drag-to-move, and a contextual inspector, plus undo/redo. Uncontrolled-with-notify (defaultValue + onChange) — every mutation from any pane is ONE PageOp through the pure reduce() spine, so human drags, agent tool calls, undo, and future collab all share a single code path.
How
Load your document, render <Editor defaultValue={doc} onChange={persist} />, and store the emitted PageDoc JSON. Publishing is rendering that same JSON with CmsPage (React) or the particle-academy/fancy-cms PHP renderer — there is no export step; the doc IS the format.