CMS Guide
Editor (Definitions)
The Editor is where developers define content structures — the schemas that determine what content editors can fill in. Nothing is "content" here; everything is structure.
Four Tabs
The Editor is organized into four tabs, each managing a different entity type:
Sections
Define section schemas with drag-and-drop element layout. A section is a reusable content block structure (e.g., "Hero", "Feature Grid", "CTA Banner"). Sections are used by the Builder when editors populate page content.
Collections
Same editing experience as sections, but designed for repeatable data — FAQs, team members, testimonials, products. The key difference: the collection element type is filtered out of the element palette to prevent circular references (a collection cannot reference itself or another collection within its own definition).
Templates
Compose sections into ordered bundles that standardize page layouts. A template defines "this page should have Hero, then Features, then CTA" — giving content editors a pre-built structure when they create a new page.
Page Types
Combine a template with reference fields for page-level metadata. When a page is assigned a page type, it inherits the template's sections and gains the reference fields as page-level configuration options.
Section and Collection Editing
Both sections and collections share the same editing interface.
Sidebar
The left sidebar lists all sections or collections for the current environment.
The sidebar provides:
- Search: filter items by name
- Create New: add a new section or collection
Item Header
Each item displays:
- Name: the display name shown in the CMS
- Description: optional description for content editors
- Status badge:
PublishedorUnpublished - Page usage count: how many pages currently use this section
Canvas
The main editing area is a drag-and-drop canvas with a matrix layout:
- Rows: horizontal containers stacked vertically. Add rows to organize elements into logical groups.
- Slots: each row contains one or more slots arranged side by side. Each slot holds exactly one element.
The canvas layout is a visual organizing tool for the CMS — it does not affect how elements are delivered to the frontend. On the frontend, you always receive a flat elements object keyed by element key.
Kiosk (Element Palette)
The bottom bar is the Kiosk — the source palette for all available element types. To add an element to the canvas, drag it from the kiosk and drop it into an empty slot.
Available element types include: String, Long Text, Rich Text, Integer, Decimal, Boolean, DateTime, Media, Link, Collection, Reference, Option, List, JSON, Location, and more. See Element Types Reference for the full list.
Element Slot Configuration
Click an element slot to configure it:
- Key: the unique identifier for this element within the section. Must be unique across all elements in the section.
- Localized: toggle whether this element has separate content per locale. When on, content editors see different values for each locale in the Builder/Manager. When off, the element shares a single value across all locales — useful for fields like images, coordinates, or IDs where the content is language-independent.
- Media settings: for media elements — allow multiple files, restrict by MIME group (images, video, audio, documents)
- Collection link: for collection elements — select which collection this element references
- Option values: for option elements — define the selectable values and option type (select/radio/checkbox)
- Link restrictions: for link elements — restrict which link types are available (page, URL, media, entry)
Keys become frontend property names
Section and collection key values are critical — they become the property names used in frontend code via sectionMap and elements object. Changing a key after content has been entered will break the link between existing content and your frontend components.
Validation
Every element slot has a Validation panel (expandable in the slot configuration dropdown) with two settings:
Required — a toggle available on all element types. When enabled, content editors must fill in this field before publishing. Boolean elements default to required: false; reference elements default to required: true.
Limit — a numeric constraint available on most element types (not available on Boolean or Link elements). Controls how many values or how much content is acceptable. Three modes:
| Mode | Fields | Use case |
|---|---|---|
| Between | min and max | Enforce a range — e.g., "between 1 and 5 tags" |
| Min only | min | Enforce a minimum — e.g., "at least 2 images" |
| Max only | max | Enforce a maximum — e.g., "no more than 10 items" |
How the limit applies depends on the element type:
- String / Long Text: character count
- Rich Text: character count
- Integer / Decimal: value range
- Media (multiple): number of files
- Option (checkbox): number of selected values
- List: number of items
- Collection: number of entries
Validation is enforced in the CMS
These validations are enforced when content editors save or publish in the Builder and Manager. They do not affect the frontend — brease-next delivers whatever data the API returns. If you need client-side validation, implement it separately in your components.
Global Sections
A Global Section is a section whose content is shared across every page that uses it. Unlike regular sections — where each page gets its own independent copy of the content — a global section has a single set of content values that appear identically everywhere.
Creating Global Sections
Global sections are created in the Editor, just like regular sections. When creating or editing a section, mark it as global. Once marked, the section appears in the Builder's section picker alongside regular sections and can be added to any page.
How Content Works
- When a content editor adds a global section to a page in the Builder, they can edit its content there
- Any changes to a global section's content apply to every page that includes it
- Regular sections have independent content per page; global sections share a single set of content values
When to Use Global Sections
Global sections are ideal for content blocks that must stay consistent site-wide:
- CTA banners — a single call-to-action shown on multiple pages
- Announcement bars — a site-wide notice or promotion
- Partner logos — a logo strip that appears across pages
- Shared testimonials — a testimonial carousel reused on different pages
Schema vs content
The global section's schema (structure and elements) is managed in the Editor. Its content values are managed in the Builder — but unlike regular sections, edits propagate to all pages that use it.
Template Editing
Templates are ordered lists of sections:
- Add sections: select from available published sections to add to the template
- Remove sections: remove a section from the template lineup
- Reorder sections: drag-and-drop to change the section order
- Publish/Unpublish: control whether the template is available for use in page types and page creation
Only published sections appear in the section picker when editing a template.
Page Type Editing
Page types combine structure and metadata:
- Assign a template: select a published template that defines the section lineup
- Add reference fields: add element fields (same types available as in sections) that serve as page-level metadata — e.g., a "Category" option, a "Featured Image" media field, or a "Related Page" reference
- Publish/Unpublish: control whether the page type is available when creating new pages
When a content editor creates a page and assigns a page type, the page is pre-populated with the template's sections and the reference fields become available as page-level configuration.