Project Overview & Goals
What the Serverless CMS is
The Serverless CMS is a multi-tenant content management platform for building and operating websites. From a single deployment, administrators can provision any number of independent sites, and authors can build pages visually from reusable components. Published pages are rendered to static HTML and served from a global CDN, giving visitors fast, cacheable pages with no server-side rendering at request time.
It runs entirely on serverless AWS infrastructure — there are no servers, containers or clusters to manage. Every moving part is a managed AWS service (DynamoDB, S3, Lambda, API Gateway, Cognito, CloudFront, SES/SNS), so the platform scales on demand and bills per request.
The whole system is described declaratively and deployed with the Serverless Maven Plugin: the AWS resource graph is generated from src/main/serverless/config.json rather than hand-written infrastructure code.
What it achieves
- Operate many sites from one platform. Each site gets its own domain, content, templates, theme, users/permissions and published output, while sharing one control plane and one deployment.
- Visual, component-based authoring. Pages are assembled from a library of reusable components (text, images, navigation, tables, tabs, teasers, and custom-built components) arranged into template-driven layouts.
- Separation of authoring and delivery. Editing happens against a DynamoDB-backed content store through an authenticated API; visitors are served pre-rendered static HTML from S3 + CloudFront. A slow editor action never slows down a public page view.
- Safe, governed publishing. Draft/published states, per-page version history, page locking, publish requests/approvals, bulk publishing and whole-site rebuilds give teams control over what goes live and when.
- Full site lifecycle automation. Creating a site automatically provisions its DNS records, TLS certificate, CloudFront distribution and storage; deleting a site tears them back down.
- Resilience and portability. Sites and platform settings can be backed up to a zip archive and restored, supporting migration and disaster recovery.
- Zero-maintenance scaling. Pay-per-request DynamoDB, on-demand Lambda and CDN caching mean the platform absorbs traffic spikes without capacity planning.
Who it is for
Audience | What they do |
|---|---|
Platform administrators | Provision sites, manage users, groups and permissions, curate the component library and platform-wide design variables, run backups. |
Site editors / authors | Build templates and pages, manage media, apply themes, configure SEO, and publish. |
Website visitors | Consume fast, static, SEO-friendly pages delivered from the CDN. |
Developers / integrators | Build custom components, consume the public delivery API, and extend the platform. |
Core capabilities
- Sites — multi-tenant provisioning with automatic domain, certificate, CDN and storage setup.
- Templates & pages — reusable page templates with editable zones; hierarchical pages addressed by slug.
- Components — a versioned library of HTML/CSS/JS component bundles with configurable dialogs and design variables.
- Theming & design variables — per-site themes, breakpoints and platform-level design tokens.
- Publishing workflow — drafts, version history, locking, publish requests and approvals, bulk publish, and full-site rebuild.
- Media & fonts — per-site asset store with uploads and custom web fonts.
- Users & access control — Cognito-backed identity with global groups and per-site roles resolved into fine-grained permissions.
- SEO & discoverability — per-page SEO metadata, JSON-LD, sitemaps, robots.txt, and AI-crawler access controls plus crawler analytics.
- Backup & restore — stepwise, any-size site and platform backups to zip.
Design principles
- Serverless-first. Prefer managed, pay-per-request services over anything that must be provisioned, patched or scaled by hand.
- Declarative infrastructure. The deployed system is a function of version-controlled configuration, not manual console changes.
- Author/deliver split. Keep the authoring control plane isolated from the public delivery plane for performance and blast-radius reasons.
- Static delivery. Do the rendering work once at publish time, then serve cached static assets.
- Least privilege. Each function is granted only the specific resource links and permissions it needs (see Security).
Continue to System architecture & flows »