Content Model
Everything on a Chinaski site is one of a small set of content types. Each type has its own behavior, its own admin screens, and its own build-time role; but they all share the same foundation: soft deletion into Trash, saved revisions, per-language scoping, scheduled publishing, and audited changes. This page orients you to what each type is; each links to a subpage with the details:
- Pages: the site’s structural URLs (About, Services…), with hierarchy, per-page templates, and privacy.
- Posts: dated, categorized articles that build the blog, RSS feeds, and archives.
- Blocks: the reusable content atoms (hero, FAQ, pricing table…) dropped into pages, posts, and stacks.
- Snippets: head and body code fragments injected at build time, site-wide or per item.
- Media & documents: the image library and downloadable files.
- Navigation, redirects & categories: the supporting structures that wire content together.
What every content type has in common
- Language is part of the data. Every content table carries its language; slugs are unique per language; translation pairing (via translation keys or matching slugs) drives hreflang and the language switcher.
- Drafts and publish windows: content is drafted first; scheduled publish and unpublish times are interpreted in the site timezone.
- Soft delete → Trash. Nothing is gone until you permanently purge it; restores check for slug conflicts.
- Revisions and audit. Each save snapshots the item (newest kept per entity); every change is recorded in the audit log with the actor.
- Built at build time. None of the content reaches the public site until a build runs; builds are logged and guarded.
The shape of the model
- Pages are location-based content for humans: fixed URLs, nested under parents, and usually rendered from one of the page templates (including landing pages).
- Posts are dated entries in a stream, blog articles with categories, tags, excerpts, publish dates, and archive/feed integration per language.
- Blocks are the composable atoms (headings, feature grids, quotes, galleries, CTAs, and thirty-plus shipped types) that assemble into page/post bodies and stacks.
- Snippets handle raw code placement (analytics, verification tags) at head or body, site-wide or per item.
- Media holds images (with alt text, focal-point metadata, derivatives) and documents hold downloadable files with their own metadata.
- Supporting structures tie it together: per-language menus, redirect rules, categories, and design tokens for theme-wide brand values.
Where shortcodes fit
Content references other content inline: {{block:name}} inserts a published block, {{stack:name}} a whole stack, [form:slug] a web form, {{document:slug}} a document. The builder resolves any of these; an unresolved reference is recorded as a build error rather than shipping a broken placeholder.
In this section
Also in Content Model
How pages work as content: nesting, template choice, per-page scheduling, protection, and sitemap exclusion, and how they differ from posts.
What sets posts apart from pages: publish date, categories and tags, excerpts, and how posts drive the blog index, RSS feeds, and author pages.
See how blocks work as Chinaski's reusable content atoms: the shipped block types, and how you place them inline or through stacks.
Add analytics fragments, verification meta tags and other code to built pages with snippets: global or per-item, head or body, and air-gap rules.
How Chinaski handles files: the media library for images used in content, and documents for downloadable files that the CMS itself delivers.
How navigation items, redirects, and categories connect a Chinaski site: per-language menus, redirect status codes, and wildcard patterns.