/colophon
What this site is built from, and why each choice has stuck. Lifted out of /about because it kept getting longer.
The whole thing, in numbers
style.css, ~770 lines, inlined into every page by the build script. No tailwind, no preprocessor, no postcss, no autoprefixer. The targets are 2022+ browsers and I'm fine with that.feed.js (homepage) plus a few year-stamp scripts. No dependencies. No bundle.style.css into each page's <style> block, and runs gzip --keep --best. I keep threatening to rewrite it in Go.Type
font-feature-settings: "ss01","cv11" for the single-storey a and the slashed zero.ui-monospace behind it. Used for labels, dates, code, and most of the visual furniture. The little p/ mark is JetBrains Mono at 0.68 rem and a -0.5px letter-spacing.Nothing is hosted by Google. Nothing is downloaded at runtime. If your OS doesn't have these fonts, the fallback chain renders the page in whatever you've got. That's the deal.
Colors
The palette is a fork of my Neovim colorscheme, which is itself a fork
of Sonokai Shusia. Five hits of warm amber (#e9b36a)
against a near-black (#0f1013), with a single mint accent
(#7dd3c0) reserved for live / "fresh" things. The danger
color (#d9766e) shows up only on drafts and the 404 page.
--bg: #0f1013
--surface: #191a21
--text: #e6e6ea
--muted: #9799a3
--accent: #e9b36a (warm)
--accent-2: #7dd3c0 (mint — live, fresh, "now")
--danger: #d9766e (drafts, errors)
Hosting
- A small VPS in Frankfurt — 2 vCPU, 4 GB RAM, more disk than the site will ever use.
- nginx serving static files, with
gzip_static onandbrotli_static on. - HTTPS via Let's Encrypt +
acme.shon a cronjob. Auto-renews; I check the email once a year out of guilt. - HTTP/2. No HTTP/3 yet — I'd want to dogfood the QUIC post first.
- DNS at deSEC. They're non-profit, in Germany, and they have a CLI.
What's not here
No cookies. No analytics. No fingerprinting. No CDN beacons. No service worker, no push notifications, no "subscribe to our newsletter" modal. No JavaScript that runs on a page you haven't asked for. The only "tracking" is nginx's access log, which I read by hand on a Sunday once a month and then forget about for the other 29 days.
Source
Not public. It's not hidden, exactly — it's just boring. You can read it with view-source. If you want a starter, look at danluu.com or taniarascia.com; both are more polished, both have public sources, both are better places to learn from than mine.
Accessibility
- Color contrast:
--texton--bgis 14.8:1.--mutedon--bgis 7.1:1. - Every page is keyboard-navigable; the nav order is the visual order.
- The feed's filter chips are real
<button>elements. - No fixed font-sizes below ~12 px; root is 15.5 px and most labels are 0.72 rem of that.
prefers-reduced-motionrespect is on my list. It's been on the list for a while.
License
Prose: CC BY 4.0. Code snippets: MIT unless a post says otherwise. The fonts are licensed by their respective people.
See also: /uses (what I work on this with) · /changelog (what changed and when) · /about.
Last edited: a couple of weeks ago, when I split this out of /about.