Alpha: Ships on npm at 7.0.0-alpha.07.0.0-alpha.0

Template

Each kind of page is a Template: a Page names one of seven in its template field, and the Template says which Section types it carries.

startupbuilder.dev defines
A Template is reusable Content with variables, filled from Things in the graph and authored as MDX, rendering a Message, Document, or Page.
Template startupbuilder.dev

In mdxui, each kind of page is a Template, and a Page names its kind in template. A set of packages styled for one look is a template package, never a Template.

What mdxui renders

The seven Templates, each drawn from a worked Site that uses it. Open one for its Section types in order and a starter record.

templateThe pageSection types it carries
api-productA product landingnav, hero, the feature and code types, pricing, faq, closing, footer
articleA reading page, a 404 or termsarticle
blogA blog indexpost-list
postOne postpage-head, article
contactA contact pagecta-form
directory-listA directory of productsproduct-list
directory-productOne product in a directoryproduct-head, facts, pricing

The two directory kinds wear the directory Theme: monochrome, one typeface, a tool rather than a landing.

How it maps

Template mdxuiAlpha: Renders today from the published packages 1Spec: Written ahead of the package 2Gap: No counterpart in the record; the intended Noun drafts one 3
startupbuilder.devmdxui todayStatus
rendering a Pagetemplate, one of seven page kindsAlpha: Renders today from the published packages
places ComponentsSlots: which Section type fills each, in order, and how manySpec: Written ahead of the package
variablesNone: the agent writes every value into the recordGap: No counterpart in the record; the intended Noun drafts one
authored as MDXAuthored as JSON, so a page parses or is refusedGap: No counterpart in the record; the intended Noun drafts one
rendering a MessageThe Email renderingSpec: Written ahead of the package
rendering a DocumentNo Document renderingGap: No counterpart in the record; the intended Noun drafts one

Status

PageSchema accepts the seven ids and checks no slot: a blog page that holds a pricing section parses.

Intended Noun

intended Noun: Template slots (mdxui.dev namespace)
noun: Template slots
projects: startupbuilder.dev Template, quoted above; the page kinds only
fields:
  id: { type: enum, values: [api-product, article, blog, post, contact, directory-list, directory-product], required: true }
  slots:
    type: list of Slot, in page order, required: true
    Slot:
      name: { type: string, max: 32, required: true, example: how it works }
      fills: { type: list of Section type, count: 1 or more, required: true }
      required: { type: boolean, required: true }
      count: { type: integer range, example: exactly 4 }
  rules: { type: list of cross-slot rules, example: at least one section shows code }
example: api-product
  slots: nav, hero with an action, how it works, compare?, product, integration?, provenance?, confidence?, developers?, pricing?, faq, closing with actions, footer with a For agents column

On this page