Content

Content is a tree of nodes. Each node has a slug, title, SEO metadata and an ordered list of blocks. You compose a page by adding and reordering blocks; each block is a typed form driven by its schema.

Blocks

Editing a block edits its data; the renderer decides how that data becomes HTML. Adding an unregistered block type fails validation on save, so a page can never reference a block the renderer doesn’t know.

Publishing

Nodes move through draftpublishedarchived. The public delivery API only ever serves published nodes; drafts are visible only in the admin and to authorised previews. Publishing is a status change and is gated by the node:publish permission.

Snapshots

Every node keeps snapshots — point-in-time versions you can review and restore, gated by snapshot:read / snapshot:write.

Templates & starters

Save a node’s structure as a template, or start new nodes from a starter, so recurring page shapes don’t get rebuilt by hand.