-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Sardine CMS is a multilingual, static-first CMS framework: a content and publishing engine that pairs a real editorial workflow (translations, review states, validation gates) with deterministic static builds.
- Live demo: https://sardine.ph7x.com — a fictional company site (Sardine Aerospace) built entirely with Sardine CMS, including a read-only admin demo.
- Repository: https://github.com/ph7x-Systems/sardine-cms
-
Install:
pip install sardine-cms-cli— all six packages on PyPI - License: Apache-2.0
-
EN is the source of truth; PT-PT, ES, FR and DE translations carry explicit states (
missing / outdated / complete) derived from content checksums — edit the source and its translations flag themselves outdated automatically. - Validation before publish, always: language parity, unique slugs, media references, alt-text coverage, category rules. Errors block publishing.
- Deterministic builds: same input → byte-identical output, with hashed asset URLs, full multilingual SEO (canonical, hreflang, Open Graph, JSON-LD, sitemap, RSS) and deployment targets for Azure Static Web Apps, nginx and generic hosts.
- The database is never the source of truth: portable JSON/Markdown export is. SQLite in development; PostgreSQL, MySQL/MariaDB or SQL Server in production — same storage contract.
- Design-agnostic: themes are packages discovered via entry points; the bundled reference theme is just one example.
| Page | What it covers |
|---|---|
| Getting Started | Install, scaffold, seed, build, preview |
| CLI Reference | Every cms command and option |
| Configuration | The sardine.toml reference |
| Content Model | Articles, pages, sections, media, translation states |
| Storage Backends | SQLite, PostgreSQL, migrations, conformance |
| Themes | Theme packages, template contexts, overrides, islands |
| Admin Panel | Running the admin, accounts, roles, editors |
| Architecture | Layered packages and the ADR index |
| Deployment | Export targets and the demo pipeline |
| Development and Testing | Contributing, gates, test suites |
Milestones 0–5 are complete. M6 has shipped explicit extensions, menus, responsive image derivatives, redirects, lossless portable dump/import, a controlled foreign-blog adapter and design-aware autosave/live preview. System hardening is in force: hostile XML and active URLs are rejected, preview/media access is private, uploads are bounded and non-replacing, login defenses are resource-bounded, and CI inputs/deployment secrets are isolated. Reusable-block authoring is the next product implementation. The detailed capability inventory lives in docs/ROADMAP.md.
Sardine CMS — multilingual, static-first CMS framework · Repository · Live demo · Apache-2.0