Content types & fields
Content modelling in ScaiCMS is two layers:
- A content type is a named schema (e.g.
blog-post,case-study). - Each content type has many field definitions:
body,hero_image,tags, etc.
A piece of content (a Content row) is then "an instance of a content type"
with field values keyed by field definition slug.
Field types#
The built-in field types cover most needs:
| Type | Editor | Use for |
|---|---|---|
text |
textarea | Plain text |
richtext |
WYSIWYG | Body copy with formatting |
markdown |
Markdown editor with preview | Technical content |
number |
numeric input | Counts, ratings |
boolean |
checkbox | Toggles |
date / datetime |
date pickers | Scheduling, timestamps |
select |
dropdown (single/multi) | Enums |
asset |
AssetPicker |
Upload-and-pick |
blocks |
BlocksEditor |
Structured page sections |
json |
mono textarea | Free-form structured data |
slug, email, url |
typed inputs | Validation |
relation |
(UI WIP) | Reference another content item |
See the field-types reference for the exact validation rules and admin UI per type.
Content blocks (blocks field)#
The blocks field stores an ordered array of typed sections, each with its
own data schema, e.g.:
json
1 2 3 4 | |
Block types are declared in the template pack's manifest — not in admin code. This is what lets you ship a completely new theme with new block types without touching the backend or admin. See Template packs.
When to use markdown vs richtext vs blocks#
markdown— engineering-oriented content, agent-authored copy, docs pages.richtext— marketing prose that needs WYSIWYG editing.blocks— layout-aware content (landing pages, mixed media). Better than rich-text once you start nesting components.