Skip to content

Types

Types are reusable rules for content. They decide how a record is edited, how it renders, and which behaviour follows it around the system.

Think of them as the cards in the Capell Library. A card has a name, a short description, a family, and a set of rules. The editor sees the plain name and description. Capell keeps the schema, renderer, cache settings, package hooks, and permissions behind it.

Core and demo type variations

The database still stores these as types, layouts, sections, widgets, and package records. In the product and docs, clearer names help people choose the right thing:

Product nameTechnical shapeWhat it means
Site blueprintSite typeThe high-level setup for a site: domains, languages, pages, settings, theme.
Page templatePage typeThe rules for a page URL: editor fields, rendering, listing, sitemap, cache.
Visual themeTheme typeThe visual system: typography, colour, spacing, components, and artwork style.
Layout recipeLayoutThe page composition shell used by one or many pages.
Page sectionSection typeA large content band, such as a hero, feature row, gallery, or CTA.
WidgetElement typeA reusable component placed inside a layout, such as breadcrumbs or latest pages.
Content blockContentSections content typeEditable content used by sections and widgets.
Starter exampleDemo package contentSeeded pages, layouts, widgets, images, and copy for learning or previews.
Visual styleArtwork or demo variationA design treatment applied to the same content model.

That vocabulary keeps the editor-facing model simple without hiding the fact that developers still register real Capell extension points underneath.

Core types are quiet by design. They define structure and behaviour, not a finished brand.

VariationFamilyShort description
DefaultPage templateA flexible page for ordinary content, landing pages, and simple publishing.
HomePage templateThe main entry page for a site, usually excluded from listings.
Page not foundPage templateA fixed system page for missing URLs and not-found responses.
MaintenancePage templateA fixed system page shown while a site or route is unavailable.
SystemPage templateA protected page type for internal, generated, or non-editorial output.
DefaultSite blueprintThe baseline site setup for domains, languages, pages, settings, and theme.
DefaultVisual themeThe baseline theme record used when a site has no specialist theme.
DefaultLayout recipeA general-purpose layout for standard pages and content-led views.
HomeLayout recipeA homepage layout for the main site entry point and high-level content.
ResultsLayout recipeA listing layout for search results, indexes, and grouped content.
System pageLayout recipeA locked layout for fixed system pages that should not use the page builder.

The important difference: a page template controls what a page is allowed to do. A layout recipe controls where page content appears. A visual theme controls how the finished page looks.

Demo variations should prove range without changing the core mental model. They combine the same site blueprints, page templates, layout recipes, sections, and widgets with stronger visual direction.

Good demo families:

Demo familyUse it forArtwork direction
FoundationPlain CMS evaluation and product docsCalm grids, neutral surfaces, clear type, low decoration.
StudioAgencies, portfolios, architectureLarge image crops, measured whitespace, editorial serif accents.
EditorialBlogs, magazines, publishing teamsStrong rhythm, article cards, pull quotes, collection-led artwork.
CommerceLifestyle, product storytelling, servicesWarm product imagery, rounded details, clear CTAs, polished cards.
CulturalEvents, museums, exhibitions, programmesHigh-contrast typography, poster-like crops, bold colour blocks.

Core explains. Demos persuade. Artwork gives the same content a point of view.

A type can change several parts of the system at once:

AreaWhat the type can change
Editor shapeWhich configurator, required fields, asset choices, role restrictions, and package fields appear in admin.
Frontend renderingWhich Blade component, display component, cache time, cache frequency, and output behaviour should be used.
Content behaviourWhether pages are accessible by URL, included in listings, included in sitemaps, or linked with previous/next navigation.
ReuseWhich widgets, page models, content structures, or content-sections surfaces can share the same setup.

Choosing or creating a type changes the editing experience and the runtime behaviour for every record assigned to it.

The page create form is the clearest first example. Changing the page template can change the editor fields and page behaviour. Changing the layout recipe controls the frontend composition used by that page.

The layout and publish timing fields The layout and publish timing fields

Type-specific fields can also appear in expandable sections or package-provided areas. A standard page might show summary and CTA fields. A specialist page template can expose richer structured fields through its configurator or package extenders.

The Extra Content section on the page form The Extra Content section on the page form

The Types screen groups records by model family, such as pages, sites, themes, sections, and widgets. Each type has a unique key used by configuration, templates, URL generation, and package integrations.

For page templates, the frontend tab controls rendering and public behaviour. This is where a type can choose the page component, cache behaviour, URL accessibility, listing visibility, sitemap inclusion, previous/next linking, and whether editors may change the layout on pages of that type.

The admin tab controls the editor-facing side: configurator selection, icon, short description, allowed asset types, required fields, and role restrictions. Packages can add more fields through schema extenders without replacing the whole type form.

Developers and packages register types through Capell extension points. Core page templates, package page templates, widgets, page sections, and content blocks all use the same idea: give a model a reusable named configuration that can be discovered, edited, and rendered consistently.

Use How Capell works for the high-level map, and Extending Capell for developer registration details.