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
pagestore: the three primitives (page / layout / partial) bytype; 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.