/hero

Hero

Landing-page headline block.

/logo-cloud

Logo cloud

Social proof — a band of client logos.

/feature-grid

Feature grid

2 / 3 / 4-column grid of icon + title + body.

/testimonial

Testimonial

Customer quote grid.

/faq

FAQ

Expandable Q&A list.

/cta-light

CTA — light

Conversion block, light tone.

/cta-dark

CTA — dark

Conversion block, dark tone.

/cta-accent

CTA — accent

Conversion block, accent tone.

Introducing

Build sites your editors can actually run.

A modern Astro starter with CMS-managed content, a reusable component library, and a deploy pipeline you don't have to think about.
Abstract landscape

Trusted by teams who ship

AlphaBetaGammaDeltaOmega

What you get

Six-ish building blocks, all yours to style.

Every component in this starter is a plain Astro file you can open and edit. The CMS only stores data; the look is code.

bo

Fast by default

Static Astro output with zero runtime JS unless a component asks for it.
pa

Tailwind 4

Modern theming via @theme in CSS. No config file, no lock-in.
cu

Composable

Every page is a list of components. Reorder in the CMS without touching code.
ch

Type-safe content

Collection schemas compile to Zod — broken data fails the build, not prod.
cl

Deploys for free

Commit, push, build, atomic swap. No platform lock-in, no seats to buy.
lo

No secrets leak

Per-site API tokens; abilities scoped to read / write / deploy.

Loved by

Teams actually using it.

We replaced three tools with this and still came out ahead on speed and cost.
Jane Cooper
Head of Marketing · Acme
Editors compose pages in the CMS while we keep full control of the code. Rare combo.
Michael Foster
Staff Engineer · Globex
Our marketing site hasn't been this fast in years — and the team ships copy changes themselves.
Dries Vincent
Founder · Initech

FAQ

Common questions

Answers to the things people ask on the kickoff call. Missing one? Open an issue.

Can I use my own components? +
Yes. Add a new `.astro` file under `src/components/` and register its schema in `cms/`, then re-import from the CMS.
Is the content stored in the repo? +
No — content is stored in the CMS. The repo holds schemas, templates, and layouts.
What about i18n? +
Each entry is locale-keyed. Non-default locales are prefixed in the URL pattern (`/nl/…`). The default locale lives at the root.
Can we self-host? +
The CMS runs on any Laravel-compatible host; the sites are static Astro builds served by Caddy (or any static host you prefer).

Get started

Ship your first site this week.

Copy the template, point it at the CMS, and let content editors take it from there.

Or go dark.

Same component, tone=dark. Swap the tone in the CMS without touching the template.

Or lean all the way in.

tone=accent uses the theme accent color from `@theme` in `src/styles/global.css`.