Accent

Core concepts

Sites, assets, content types, the identity triple, and why a page is a view rather than a table.


Sites

One Accent instance serves many sites. A site owns its pages, records, media, content types, templates, layouts, fields, taxonomies, and members. Sites may bind a theme package (see chapter 7) and may share media and partials across sites through explicit imports.

Assets: pages and records

Everything authored is an asset. Two derived shapes, never a stored "kind":

  • A page is an asset whose content type declares an HTML output. It has a path in the site tree, a rendered body, and the publish apparatus (draft → publish snapshot; the live site serves the snapshot).
  • A record is an asset whose type declares no public document output. It has no path; it is surfaced as data — through references, queries, and fragment outputs.

The invariant: an asset has a path exactly when its type declares an HTML output. "Page" is a view over assets, not a table.

Content types

A content type declares four things:

Slot What it is
Content fields The data schema (the one mandatory slot). Values live on the asset as JSON, interpreted through the site's reusable field registry.
Metadata Title/SEO/social fields, as attachable schemas.
Options Render-config axes (width, height, alignment…) read by templates and layouts — structurally excluded from SEO and metadata surfaces.
Outputs How assets of this type leave the system — see chapter 3.

Types are also where Family & Access live: which types may parent or child which, singleton rules, and member-visibility down the branch.

The identity triple

Nearly everything in the system carries three identifiers:

Leg Example Contract
uid 9f3c… (UUID) Internal, stable, never edited. References between entities ride the uid.
slug pages/landing-page The path-like name. Lowercase [a-z0-9-] segments; / nests folders. Freely renameable — references survive because they ride the uid.
title "Landing Pages" The display name. Freely retitleable; shown everywhere a human reads.

Slugs are normalized, not rejected: typing Landing Page! yields landing-page. Folders are purely organizational — a slug's directory segments group the list views and never carry meaning. Folders themselves have the slug/title split too (slug pages, title "Pages").

The same triple recurs one level down inside markup — see regions: data-accent-content (mechanism), data-zone (the slug/address), data-label (the title).

Publishing

Pages are born published; subsequent edits are drafts until you publish. The live site serves the published snapshot, so an unpublished draft never leaks. Unpublished pages disappear from public listings, navigation children, and every query on the public lane.

Where the deep records live

Design history and the full reasoning behind each of these concepts: The content model — design record (revs 1–5 with amendments), The identity triple — design record, and Family & Access — design record.