Colophon.
How this site is built, and what it does not do
A page about the site itself. What it runs on, what it refuses to collect, and the checks that run before anything here is published.
How it is built
Hand-written HTML and CSS on Cloudflare Workers, deployed from a git push. There is no framework, no build step and no JavaScript beyond a small file that drives the outline rail on the left.
An IT person's site is a reasonable place to demonstrate restraint. A personal site is a few pages of text and some diagrams. Anything that turns that into a toolchain is decoration I would have to maintain.
What it does not do
No trackers, no analytics, no advertising network, no session recording and no fingerprinting. The one third-party request is the web font, which I am moving to self-hosted. There is no cookie banner because there are no cookies to consent to, which is the only honest reason to not have one.
There is no analytics script either. Cloudflare counts requests at the edge, which tells me roughly how many people opened a page without setting a cookie, running anything in your browser, or building a profile of you.
There is no contact form, so nothing you do here is stored anywhere.
Design
The palette is Nocturne, a small design system I put together for my own projects: a near-black background, one muted violet accent, and rules that fade out at both ends rather than stopping hard against the edge of the column.
Body text is Inter. Diagrams are SVG written by hand instead of exported images, so they stay sharp at any size, they carry a text description for screen readers, and they weigh almost nothing.
Colour combinations are checked against WCAG AA, which is 4.5:1 for body text. Several muted greys that looked correct to me failed that check and were raised until they passed. The rail on the left was the worst offender at 2.7:1.
Long sections collapse using the browser's own disclosure element rather than a script, so they still open if JavaScript fails and they print expanded.
Printing
Somebody will print a case study or save it to PDF before an interview, so the pages are styled for paper as well as for screen. Navigation and the outline rail drop away, the palette inverts to ink on white, collapsed sections expand so nothing is silently missing, and link destinations are written out in full because a printed page cannot be clicked.
The documents
The resume and the runbooks are generated from source text and rendered through headless Chrome, so both come from one file. The build checks length before it publishes.
The resumes and cover letters I actually send go through a stricter build. It checks that acronyms are expanded on first use, that every role carries dates, that the file survives being parsed the way an applicant tracking system parses it, and that a list of words and constructions I avoid does not appear. It exits with an error rather than a warning, so a document that fails cannot be sent by accident.