Outcomes
- Powers clownware.org and chrispezza.com: same budgets, same CI gates
- Lighthouse floors gated in CI on desktop and mobile: performance 90, accessibility 95, best practices 95, SEO 90
- 70 ADRs, a layered constitution, and 42 automated enforcement checks (29 blocking) govern every architectural change
- Companion plugin (clownware-astro-tools) on the Clownware plugin marketplace
Stack
Context
The flagship template from Clownware, my open-source studio. Most starters optimize for demo appeal: animated landing pages that fall apart the moment you build something real on them.
The Problem
No Astro starter was built for the two things that actually matter over a project’s life: performance discipline (not just a good first score) and AI-assisted development as a first-class workflow.
My Role
Creator and maintainer. Every architectural decision is mine, recorded in the ADR log rather than in my head.
Approach
- Performance budgets enforced in CI. JavaScript under 160KB raw, CSS under 50KB, per-image caps, a two-preload font budget, and Lighthouse gates on desktop and mobile. Budgets you can’t merge past, not aspirations.
- Zero-JS-by-default islands discipline.
client:loadis forbidden without a written ADR justification. - An AI context system as the differentiator. A layered CLAUDE.md constitution with halt-on-violation rules, an AI context index, 13-phase implementation docs, and a published prompt library. The repo is designed for agents to work in safely.
- The starter-vs-framework tension, resolved. The clone stays lean; the richness lives in an external docs site.
- Design tokens as the styling contract. A base/semantic token pipeline, the same pipeline this site’s Pezza design system plugs into.
The discipline running through this approach is the site’s thesis: Decisions Are the Interface Now.
What I’d Do Differently
Ship the docs site earlier. The template carried its documentation in-repo for too long, and splitting it out is what finally made the clone feel light.