PageData interface

Pages

PageData: slug, layout, blocks, SEO

PageData interface

Each page is a PageData object. Define them in sites/{name}/pages/*.ts or fetch from Payload.

Required fields

  • title — Page title
  • slug — URL path (e.g. about/about)

Layout

layout?: 'landing' | 'standard' | 'docs'

  • landing — Full-width hero, no breadcrumbs (home, marketing)
  • standard — Breadcrumbs, container (default for content pages)
  • docs — Sidebar, TOC, prev/next (documentation)

See Layouts for details.

Blocks

blocks?: ContentBlock[] — Array of block objects. Each has blockType and type-specific props. See Blocks Overview.

SEO

seo?: {
  metaTitle?: string
  metaDescription?: string
  ogImage?: string | { url: string }
  noIndex?: boolean
  canonicalUrl?: string
}

transformPageData uses these for meta tags and <title>.

Docs layout fields

When layout: 'docs':

  • docsSection — Sidebar section header (e.g. "Getting Started")
  • docsOrder — Order within section (lower = first)
  • outline — TOC items: { title, id, depth }[]

Other optional fields: description, draft, date, tags, contentType, eventDate, topNav.

Next: Layouts

Menu
In this section