COLOPHON
How this site is built
A small static site, built in conversation with Claude. Markdown goes in, plain HTML comes out.
I built this site the same way I build my other projects: by describing what I want to Claude and making the product and design decisions myself. Claude wrote the code. I chose the newspaper look and decided what belongs on each page.
How it works
- Markdown in, HTML out: each post is a Markdown file. One short Node script turns the posts and pages into plain HTML. There's no framework and no database.
- Very little JavaScript: the pages are static HTML and CSS. Two small scripts load my latest GitHub activity on the front page and run the reader settings in the menu.
- Motion mode: the Motion button in the menu turns on an optional mode where rules draw in, headlines set word by word, diagrams print as you scroll and pages turn. It's off by default, remembered in your browser, and never runs if your device asks for reduced motion.
- Share images made at build time: the preview card you see when a post is linked on LinkedIn is drawn by the build script from the post's title, in the same fonts as the site.
- Light and dark: the site follows your device's light or dark setting, and the switch in the menu lets you pick one.
- Small details in CSS: the reading-progress bar on posts and the fade between pages are a few lines of CSS, and they switch off if your device asks for reduced motion.
- Built for search: every page has a canonical address, a sitemap entry and structured data that tells search engines who the site is about. There's an RSS feed too.
What it runs on
- Type: Spectral for reading and Schibsted Grotesk for labels.
- Hosting: Railway, which rebuilds the site every time a change is pushed to GitHub.
- Domain: registered and managed on Cloudflare.
- Code: public on GitHub.
Why so simple
A personal site should be fast, easy to change and hard to break. I learned that the hard way with Throughline, a dashboard I built and then turned off because it needed a fix every few days. This site is the opposite: publishing a post means adding one file.