Sites, assets, content types, the identity triple, and why a page is a view rather than a table.
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.
Everything authored is an asset. Two derived shapes, never a stored "kind":
The invariant: an asset has a path exactly when its type declares an HTML output. "Page" is a view over assets, not a table.
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.
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).
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.
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.