How this site is built and checked
Plain data files go in, Eleventy turns them into static pages, and Netlify serves them. Before anything goes live, 23 checks read the finished site, and 20 of them first prove they still catch a planted mistake. The lines quoted from me are mine, and a check fails the build if one of them changes.
Last real change: Rebuilt this site around the people who actually look me up, Oct 11, 2026.
- Netlifyserves the pages, Node 22
- 23 checksread the built site
- Eleventy 3.1.6builds static pages
- TemplatesNunjucks, plain CSS, small JavaScript
- Data filesone fact, one file
The ideas it's built on
| Idea | What it means here |
|---|---|
| One home for every fact | A job title, a date or a click count is written down once, with its source and date, and every page reads it from there. Fix source files, never generated output. |
| Plain pages | Every page is ready-made HTML that reads fine with JavaScript off. The game, Bella and the menu are extras on top. |
| Phone first | Every page is designed on a phone-sized screen first, then checked on bigger ones. |
| Private by default | Analytics count visits and clicks so I can improve the site, and nothing you type is sent. The privacy page lists everything. |
| Old links still work | The site used to run on WordPress. Every old post address sends you to its new home. |
What gets checked before anything goes live
A page that fails a check doesn't publish. The checks test themselves on a planted mistake first, so one that quietly stopped working can't report a pass.
Facts
Every number has a source and a date, and the answers Bella gives match the pages she cites.
Privacy and discretion
Nothing about the companies I work with, and no tracking beyond what the privacy page lists.
Reading on a phone
No sideways scrolling, buttons big enough to tap, text with enough contrast, and the answer on the first screen.
Links and search basics
No broken links, one clear title and description per page, and every old address landing somewhere useful.
Who does what
I decide what gets built, who each page is for, what it says and the standard it has to meet. AI speeds up the building: the templates, the scripts and the checks come together far faster than I could manage alone, and I check what comes back. How I put it in March 2026: “I could audit structured data but couldn't fix the JSON-LD template myself.”
Wherever this site quotes me, the line is copied word for word from something I published. 96 of them are locked in a file, and the build fails if one is changed on a page or drifts from where I first wrote it. Everything else is a draft until I rewrite it.
What I kept from the old site
“I keep URL structure boring on purpose.”
Short paths, no dates, every address listed in one registry file.
“If there is no true equivalent, I would rather return a clean 404 than create a misleading redirect.”
Every old address is listed with its new home, and a check fails any redirect that lands on a missing page or chains through another redirect.
“I treat page speed as a usability problem before an SEO metric.”
Static pages, two fonts served from this site, and only two outside scripts, both for analytics, loaded after the page.
From my February 2026 post, how I structured the old site for search.
About the block game
The block game has its own look and music. The seven piece colors are this site's own, the music is an original chiptune, and it stays off until you turn it on.