Skip to Content
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.

pageType●required

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

locale●required

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

banners●required

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.
Last updated on