This entire site is one file. Everything you need lives in the source at your feet: styles inline, behaviour inline, content inline. There are deliberately no dependencies, because a personal archive should not expire when somebody stops maintaining an npm package.
The model is simple: each entry below is an <article> tagged with a media era and a type. The eras map my biography — vinyl childhood, tape-and-CD youth, the dotcom years, now the AI age. To publish, copy any article block, paste it above the newest one, adjust its tags and date, and save. Full instructions sit in the HTML comments at the top of the file.
Security posture is deliberately strict: the Content Security Policy here permits nothing external — no scripts from anywhere else, no images fetched over the wire, no network connections at all. That leaves roughly zero attack surface for a static page. It degrades gracefully too: if JavaScript never runs on your device, every post still reads fine; filtering and RSS export simply switch themselves off.
(The entries that follow are demonstration seed posts, written to feel right until I replace them with the real thing.)