Astro + Sanity starter
Ship client landings from one protected core
Tokens, SEO, consent-gated GTM, and a flexible contact API — compose sections without forking markup.
Built for repeatable client work
Core stays protected; clients get tokens and content.
Tokens
Reskin via @theme — no markup forks.
Sections
Named slots keep structure stable.
Integrations
Contact, consent, SEO already in core.
What teams say
“We ship landings without rewriting the shell.”
— Agency lead
“Tokens swapped in an afternoon.”
— Designer
“Agents stay in core; clients stay in config.”
— Maintainer
Simple pricing
FAQ
Do I fork components per client?
No — change tokens and content; keep core components.
Is Card a bordered box?
No — Card is a layout primitive with no default border or shadow.
Where does Sanity fit?
Schemas stay per-site later; pages own copy via slots now.
Contact
Existing ContactForm — unchanged.