Colophon

05

How this site is built

Some of it you can check in devtools, the rest you have to take my word for.


01

What it ships

Static HTML generated by Astro, no client-side framework. The only JavaScript is one progressive enhancement file: the theme switch, the lines that draw themselves as you scroll, and the contact form.


02

What it does not ship

No analytics, no cookie banner, no tag manager, no chat widget. The fonts are served from this domain, so there are no third-party requests at all.


03

The type

Archivo and Newsreader, both variable, both served from this domain as subset woff2 files. Newsreader carries every sentence, Archivo the small headings and labels. Romanian splits across both subsets, so Romanian pages preload four files and English pages two.


04

The figures

None of the four served subsets ships oldstyle figures. The GSUB feature list in each woff2 file carries liga, pnum, rvrn and tnum, but not onum, so a request for onum is ignored and the digits come out lining. Running prose gets proportional figures. Where numbers have to line up, the figures are tabular.


05

How it is served

Static files on Cloudflare Pages, rebuilt and deployed by GitHub Actions on every push to main. The contact form is the one piece of server code: a Pages Function that posts the brief on to email.


06

The numbers on the front page

Measured on a 390px viewport at 4x CPU slowdown, 1.6 Mbps and 150ms round trip. Regenerated by npm run measure, which writes the file the proof section reads, so the page cannot drift from the measurement.


07

The grid

Twelve columns, a maximum width of 1560px, margins and gutters that scale with the viewport. Append ?grid to any URL, or press the button below, to draw it over the page.

Colophon

Set in Archivo (variable, weight 100 to 900, width 62 to 125) and Newsreader (variable, weight 200 to 800, optical size 6 to 72, roman only). Where emphasis appears, it is letterspaced roman rather than slanted, in the German Sperrung convention, because there is no italic file and font synthesis is off. The page rags right everywhere except this paragraph, which is justified. There is no site-wide baseline grid: a fluid bilingual page cannot honour one, so spacing comes from a six-step scale instead. Built with Astro, static output, no client-side framework, CSS written by hand. Every push to main is built by GitHub Actions and deployed to Cloudflare Pages, so what you are reading is the same commit that is in the repository.