Colophon

How this site is built and by what rules: Hugo, Cloudflare Pages, self-hosted type, WCAG 2.2 AA, and a build that fails when a cited URL dies.

Published 6 min read

A colophon is the note at the back of a book saying how it was made: the type, the paper, the press. On a website it does more work than that, because how a site is built is one of the few things a reader can check for themselves.

Two people do this well and are worth reading instead of me: Gwern Branwen’s Design Of This Website documents the reasoning behind every typographic and technical decision on gwern.net, and Simon Willison keeps a colophon section on his about page covering how simonwillison.net is generated and hosted.

Build and hosting

Hugo, extended, v0.151.0. Static generation. Every page is a markdown file in git before it’s HTML, and the version is pinned so a build on my laptop matches the build in CI.

Cloudflare Pages, git-connected. A push builds and deploys. Response headers and redirects are checked-in files rather than dashboard settings, so a change to either shows up in the commit history.

No database, no server-side rendering, no JavaScript requirement. Every page here is fully readable with JavaScript disabled. Nothing loads at zero opacity waiting for a script, which is a mistake the previous version of this site made across most of its homepage.

The rule the build enforces

Every factual claim on this site ships with a source: publisher, title, date, and a URL. Sources live in each page’s front matter and render in the source block at the foot of the page.

A build step re-requests every one of those URLs. If any of them stops returning HTTP 200, the build fails and nothing deploys until I either fix the link, replace the source, or delete the claim it supported.

That check exists because the alternative, a human promising to review things, is exactly what failed here. The old publishing pipeline had a validator too. It required each post to contain at least one number and two named entities, which a language model can satisfy by inventing both, so it never tested anything the generated text could not simply supply. This one is checked against the live internet, which does not care what I intended. The record of what that produced is in the postmortem, and every subsequent fix is dated in Corrections and the Changelog. The standing rules are in the Editorial policy.

Why every date on this site reads 5 August 2026

Because that is the day it was written. The whole site (every page and every article) was drafted, sourced and published in a single pass on 5 August 2026, the same day I deleted the old archive. Drafting was AI-assisted, in the way the disclosure page sets out. Every factual claim was checked against a primary source before it went in, and the source check described above re-requests every cited URL on each build, so the citation list is verified continuously rather than once at the moment of writing.

The dates are the real ones. I have not spread them backwards across earlier months to make the archive look like it accumulated, which would have been easy and would have been a lie of the exact type this rebuild exists to stop.

What to do with that: check the citations. A uniform date tells you the site was made quickly. It tells you nothing about whether any particular claim on it is true, and the source block at the foot of every page is there so you do not have to take my word for either.

Type

Headings are set in Source Serif 4 and body text in Inter, both licensed under the SIL Open Font License and both self-hosted as woff2 files on this domain: Source Serif, Inter.

Self-hosting is not a performance flourish. It means reading a page here doesn’t make a request to a third party, and it means the font that’s declared in the CSS is the font that actually ships. The old site declared faces it never served, so most visitors read it in a fallback nobody had designed for.

Sizes are set in rem throughout, with no hard-coded pixel font sizes, so the site respects the reader’s browser text-size setting. Nothing renders below 13px equivalent at any breakpoint.

Colour, and why the site is light

Warm off-white paper, near-black ink, deep navy for links, burnt sienna reserved for corrections and stated limits. Body text sits at roughly 16:1 against the background, and the lowest-contrast text colour used anywhere (metadata only) is about 6:1. Both computed with the WCAG contrast formula.

The light, high-contrast treatment is a deliberate reversal. The previous site was dark and tightly tracked, and dark-and-tight is the house style of the exact category I’d rather not be mistaken for.

There’s also a research argument. Reber and Schwarz found that statements presented in higher contrast were judged more likely to be true than identical statements in lower contrast (Effects of Perceptual Fluency on Judgments of Truth, Consciousness and Cognition, 1999). I’m aware of the uncomfortable corollary: legibility can make a false statement more believable too. That’s an argument for pairing it with the source check above, not against legibility.

Accessibility

The target is WCAG 2.2 level AA, using the W3C quick reference as the working checklist. In practice that means a skip link as the first focusable element on every page, one h1 per page with no skipped heading levels, visible focus outlines that are never removed, landmarks on every template, alt text and explicit dimensions on every image, and prefers-reduced-motion honoured site-wide rather than on one page.

Motion is limited to link hover, focus rings, and disclosure widgets opening. There are no scroll-triggered animations and no keyframes anywhere.

This is a stated target, not a certification. If you hit something here that fails with a screen reader or at 400% zoom, tell me and it goes in Corrections with a date.

CSS and page weight

One hand-written stylesheet. No framework, no utility-class library, no CSS-in-JS, no runtime style injection. The design tokens are a short list of custom properties, and the type scale is six sizes. I’m not going to quote you a kilobyte figure I haven’t measured on the deployed build. But the constraint is a single file, and if it ever needs a second one, something has gone wrong with the design rather than with the budget.

Privacy

No tracking cookie, no tag manager, no third-party script in any template, no embedded fonts or media from other domains. Traffic is counted by Cloudflare Web Analytics, injected at the edge, which sets no client-side state and gives me page paths and country totals rather than people. So I can see that a page was read and not who read it, which is the trade I want. Full detail, with Cloudflare’s own wording: Privacy.

Standing on

The design brief here leans on the Stanford Guidelines for Web Credibility: show that a real person is behind the site, make claims easy to verify, make contact easy, keep it current, and treat small errors as expensive. Most of the structure on this site is one of those guidelines turned into a page.

Corrections to this colophon are welcome, including ones about the colophon being wrong about itself.

Sources

Every source below was opened and checked on the date shown. Links open in this tab.

  1. Hugo v0.151.0 release GitHub, gohugoio/hugo github.com Accessed 5 August 2026
  2. Cloudflare Pages documentation Cloudflare developers.cloudflare.com Accessed 5 August 2026
  3. Web Content Accessibility Guidelines (WCAG) 2.2 W3C www.w3.org Accessed 5 August 2026
  4. How to Meet WCAG (Quick Reference) W3C Web Accessibility Initiative www.w3.org Accessed 5 August 2026
  5. Effects of Perceptual Fluency on Judgments of Truth Reber & Schwarz, Consciousness and Cognition, 1999 (doi:10.1006/ccog.1999.0386) doi.org Accessed 5 August 2026
  6. Design Of This Website Gwern Branwen, gwern.net gwern.net Accessed 5 August 2026
  7. About Simon Willison simonwillison.net simonwillison.net Accessed 5 August 2026
  8. Source Serif GitHub, adobe-fonts/source-serif github.com Accessed 5 August 2026
  9. Inter GitHub, rsms/inter github.com Accessed 5 August 2026
  10. SIL Open Font License SIL Open Font License openfontlicense.org Accessed 5 August 2026
  11. Stanford Guidelines for Web Credibility Stanford Web Credibility Research, Stanford University credibility.stanford.edu Accessed 5 August 2026