-
Seek, and Ye Shall Find
This site has a search box now. It runs on Pagefind, and it needs no server. My first test found every page on the site, which is not what a search is for. This is how we taught it to say “no results”.
-
Same Pictures, an Eighth of the Weight
The images on this site weighed 43.6 MB. Now they weigh 5.2 MB, and I cannot see the difference. The build pipeline did most of the work. The surprise for me was in my own Web Editor, which had a bug I had never noticed.
-
The Gatekeeper and The Nurse
Yesterday's dark-mode project left me with a contrast measuring script wired into nothing. So I hooked it up to the build script and my estate dashboard. The website now benefits from both a guard and a health check: helping keep it as accessible as it can be.
-
The Dark Mode That Found Five Older Bugs
Adding a dark mode to this site took about an hour, because I had built the stylesheet on colour tokens months before I had any use for them. Wanting it to switch automatically was the interesting part: the operating system already does the clever bit, and the specification has closed off the obvious workaround for the platforms that do not. Then the new palette exposed the old one, which had been failing accessibility contrast in five places since launch, along with an icon I got wrong four times and a build script that had been quietly lying to a hundred pages.
-
When a Broken Link Is Not a Broken Link
I built a small dashboard to keep an eye on this website, and one morning it told me one of my own posts had a dead link — to Shadertoy, in the very post where I’d gushed about Shadertoy. Except the link works perfectly. Shadertoy just won’t talk to robots, and my robot took it personally. Here’s the small, careful feature I built so a tool can tell the difference between ‘broken’ and ‘I’ve checked, and it’s fine.’
-
Typography Matters
Typography on the web is mostly wrong — straight quotes, double hyphens for dashes, three dots for ellipses. Not because writers don’t care, but because the tools don’t care for them. Here’s how the Notes Editor and Web Editor handle curly quotes, smart dashes, acronym wrapping, spell-check suppression, and widow control — so the writer focuses on content and the toolchain handles the rest.
-
Spell-Checking in Three Lines of Code
Adding spell-checking to the Notes Editor took three lines of configuration and one delegate method. This is what building native gets you.
-
Why I Built My Own Website Editor
macOS Shortcuts couldn't reliably catch a hotkey. So I built a menu bar app. Then a website editor. The argument for building exactly what you need.
Website
This site, and the tools that build it. 8 notes.