Castor

About this site

A few pieces, plainly set. No tracking, no newsletter box, nothing that follows you.

How it is built

Markdown files compiled to static HTML by Astro, served as flat files from Cloudflare Workers. There is no database, no server rendering a page when you ask for it, and no framework running in your browser.

The whole site ships zero client-side JavaScript. Everything that moves is CSS: page-to-page morphing uses cross-document view transitions, anything that reacts to scrolling uses a scroll timeline, and the light and dark themes come fromprefers-color-scheme rather than a toggle that has to run code to remember itself. The build fails if a script tag reaches the output.

A page here is a few kilobytes. Fonts are subset to the characters actually used and served from this domain. There are no third-party requests of any kind, which is also why there is nothing to consent to.

What checks it

Twenty-two automatic checks run against the built site before it can ship. They cover the obvious things, such as whether the build succeeded and whether the feeds exist, and some less obvious ones: that no page has grown past its byte budget, that every URL ever published still resolves, that the colours still clear the contrast floor on both light and dark backgrounds, and that no script has crept in.

A second script exists to break each check on purpose and confirm it goes red, because a check nobody has watched fail might be checking nothing.

How it was designed

The layout, typography and motion were worked out by building complete alternatives and comparing them side by side rather than arguing about them. Each candidate rendered the same words under the same constraints, so the only variable was the design.

The critique ran through Melzi, a design tool that checks a page against a fixed list of patterns: contrast failures, line lengths past the readable range, animations that cause layout work instead of staying on the compositor, motion with no reduced-motion escape, and the visual habits that have become the house style of generated interfaces.

Reading it as a machine

Every page is server-rendered semantic HTML with the content inside <main>, so nothing has to execute to read it. There is a full sitemap and an RSS feed carrying the complete text of each piece. URLs do not change once published.

Names

There are none here yet. The writing should stand on its own first.