version, metadata, schema, tree), what each one is for, and how a draft becomes a live page.
The shape
Why JSON, not code
The document being data is the whole product. Three things follow from it:Field reference
Optional SEO fields may nest alongsideslug and title. To see the current field set for your runtime version, GET an existing page or check the Builder’s metadata panel.
schema
schema declares the data tables for blocks that bind to data. Four blocks reference tables declared here:
The runtime validates every read and write against the field shapes you declare. On purely presentational pages — Hero, FeaturesGrid, Cta, Footer, SectionDivider — leave schema as an empty object. See Schema for the full table and field declaration model.
tree
tree holds the root block. For almost all pages the root is a NavShell, which provides the nav chrome and renders its children array in the main content area. Children can be any other block type. NavShell does not nest inside itself.
A minimal tree:
block, carries its configuration in props, and may contain further nested blocks in children. The structure is recursive — any block that accepts children can nest further sections.