This site
How This Site Is Built
Claude Code, Anthropic's coding agent, wrote the code for this site. I set the constraints it works under, reviewed every change and made the decisions. This page lists those constraints and how they are enforced.
Who does what
Claude Code writes the code and the tests. I define each change as an issue, set the rules in the repository's instruction files, review and merge every pull request, and make the decisions recorded in the architecture decision records.
The constraints
- No JavaScript by default. Native HTML and CSS come first, such as
<dialog>,popoverand<details>. A script only enhances a native element when HTML and CSS cannot do the job. - No layout shift. Every image has a set width and height, and the font never swaps in late. A test loads a blog post with a slow font and checks that nothing moves.
- A strict Content Security Policy. Every inline script and style is allowed by its hash, with no
unsafe-inline. A test fails if any page breaks the policy. - Accessibility checked against WCAG 2.2 AA and the ARIA Authoring Practices Guide. Every page is scanned with axe, and keyboard focus, contrast and reduced motion have their own tests.
- Small, reviewed changes. One issue per change and one pull request per issue, sized so I can review it in one sitting.
- Tests in three browsers. Playwright runs the built site in Chromium, Firefox and WebKit.
- Decisions on record. Choices such as the move to Astro are written down as architecture decision records.
The result
- No page downloads a JavaScript file.
- A blog post loads in about 65 KB. The median mobile home page weighs 2,559 KB, 632 KB of it JavaScript (2025 Web Almanac).
- No layout shift on a throttled mobile connection.
Built with
Astro, plain CSS and Markdown, hosted on statichost.eu. The code, issues and pull requests are public on GitHub.