cschr .dev
This site is a static Next.js export with content from Contentful, built in about ten days by a team of nine Claude Code agents. I set the spec and the quality gates, made the decisions and reviewed the work. The code is public. [PLACEHOLDER: make the repository public before launch]

01 · Why a fresh start
My first attempt, cschrdev, ran from March to June 2026, and I threw it away. It had no content model and no CMS, its stack was too experimental, and the design didn't fit. I started again with a design handover as the spec, acceptance criteria for every part, and a team of agents.
02 · Architecture
The core in `src/core` knows nothing about Next.js or React; Biome enforces that, so another frontend can reuse it later. Zod schemas are the only source of types. Content is validated at build time, and invalid content fails the build while the last good deploy stays live.

03 · Speed
After the build, a script defers hydration: the Next.js chunks load after the `load` event, so they don't compete with the largest image. A JS budget fails CI when a page grows too heavy. Lighthouse runs on every preview and has to score 100 for accessibility, best practices and SEO, and at least 95 for performance.
04 · Transitions
Pages morph into each other with cross-document View Transitions, without GSAP and without a client-side router. Speculation rules prerender the likely next page, so the morph starts from a page that's already there.
05 · Content operations
Contentful schema changes are migrations in code, and each run is logged in the environment it ran in. A migration can't reach production before it has run on dev. Publishing on production triggers a deploy, so bulk edits pause the webhook first and deploy once at the end. An orphan tool finds entries nothing links to anymore.
06 · The agent team
Nine Claude Code agents do the work: architect, developer, reviewer, QA, designer, copywriter, performance auditor, researcher and writer. A hub plans and decides; the spokes get a brief and report back in a fixed protocol. Plans and acceptance criteria live in GitHub issues. I'm the human in the loop: I make the calls and read the reviews. The hub may merge small, green changes on its own; everything else goes through me.

07 · Where agents fail
Agents run into loops, and then I have to step in. One developer agent chased a code health score through two refactors, though by construction the score could not rise any further. The protocol stopped it there: after two failed attempts, an agent has to ask instead of trying a third time.
Key message Annoying when you want to get ahead, but looking at the code, I'm happy with it.
08 · Outcome
From its first commit on 26 September 2026, the site took about ten days to build, in English at the root and German under /de. It also speaks to machines: llms.txt, Markdown versions of each page and structured data. The repository is public [PLACEHOLDER: repository URL], so every decision and every review is there to read.
