Skip to content

CMS

Tiger ships a database-driven CMS: content is data, not files. Pages, the chrome that wraps them, and the reusable fragments they're built from all live in one page store, rendered live and edited from the admin — publishing is a row update, not a deploy. Content is multi-tenant (per-org cascade), localized (one row per language), versioned on every save, and schedulable.

Start here:

  • Pages — the page store: the three primitives (page / layout / partial) by type; the HTML / Markdown / PHTML / builder body formats; slug dispatch + automatic 301 redirects; the per-org and per-language cascade; publish now vs. schedule; soft-delete.
  • Layouts & partials — layouts and partials as CMS primitives, the "everything is a labeled partial" composition model, and the shortcode + builder widget.
  • Shortcodes — the shortcode registry, the built-ins (, , ), and how a module registers its own.
  • The visual builder — the GrapesJS drag-drop builder: how content is stored (a portable HTML+CSS body), and the opaque-widget component pattern.
  • Versioning & scheduling — a version snapshot on every save, restore any prior version, and scheduled publish via published_at.

Related: Menus · Theming · Forms & validation · Webservices.

Pages

Layouts & partials

Shortcodes

The visual builder

Versioning & scheduling