Pages

Pages

A page is a CMS-defined container that resolves to a route (slug) and renders an ordered list of banners.

Props

id
string
required

Page id in the CMS.

name
string
required

Internal label used in the CMS UI.

userId
string
required

Owner/creator identifier. Set automatically on create. Read-only afterwards.

slug
string
required

Stored with a leading "/" and automatically prefixed with the locale (e.g. "/de/home"). Normalized to lowercase kebab-case per path segment.

pageTyperequired

Page classification. Defaults to Default. Product pages are hidden from non-superusers in CMS queries.

localerequired

Language of the page. Defaults to de. Used for slug normalization and language handling.

published
boolean
required

Manual publish toggle.

Scheduling

publishDate
timestamp

Optional: publish automatically from this date/time.

unpublishDate
timestamp

Optional: unpublish automatically from this date/time.

Validation: publishDate must not be later than unpublishDate.

Layout and styling

theme

Optional theme applied to the page wrapper.

cssId
string

Optional wrapper DOM id.

cssClasses
string

Optional wrapper class list.

header

Optional page-specific header.

showHeader
boolean
required

Whether the header should render. Defaults to true.

footer

Optional page-specific footer.

showFooter
boolean
required

Whether the footer should render. Defaults to true.

Banners and ordering

bannersrequired

Relationship to banner entities.

bannersOrder
string[]
required

Ordered list of banner ids. Source of truth for rendering order.

Ordering behavior:

  • If bannersOrder is explicitly set, the banners relationship is overwritten to match its order.
  • If bannersOrder is untouched but banners changes:
  • set replaces the full order
  • disconnectAll clears the order
  • disconnect removes ids from the order
  • connect appends new ids to the end

SEO and redirects

metaTitle
string
required

Meta title. Optional. Supports Handlebars normalization/validation.

metaDescription
string
required

Meta description. Optional. Supports Handlebars normalization/validation.

ogImage

Optional Open Graph image (og:image).

redirectPage

Optional internal redirect target. Cannot reference itself.

redirectUrl
string

Optional external redirect URL (absolute http/https). Overrides redirectPage when set.

redirectStatusCode
301 | 302 | 307 | 308

Redirect status code. Required when a redirect is active.

options
object
required

Advanced meta options JSON. Shallow-merged with defaults to ensure expected keys exist.

options shape:

  • canonical: string
  • noindex: boolean
  • nofollow: boolean
  • robotsProps:
  • nosnippet: boolean
  • notranslate: boolean
  • noimageindex: boolean
  • noarchive: boolean
  • maxSnippet: number (integer, -1 = unlimited)
  • maxImagePreview: 'none' | 'standard' | 'large'
  • maxVideoPreview: number (integer, -1 = unlimited)

Language alternates

languageAlternates

Pages representing the same content in other locales. Self-references are rejected.

Rendering pipeline

  1. Resolve the page by slug.
  2. Apply theme and layout options (header/footer visibility, wrapper css).
  3. Render banners in bannersOrder by switching on banner.typename.