Built with Chinaski

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.

Read this site in