Changelog
What changed here, newest first. Subscribe via RSS.
Sound now works on a silenced iPhone
- Tools that make sound (timers, alarms, games, the prank tools) were silent on an iPhone set to silent, even with the ringtone volume up — the phone's ringer switch mutes browser-generated audio, and every sound on the site is generated in the browser. They now play anyway
- The classroom timers were the quiet casualty: an alarm at zero never sounded on a muted iPad. That works now
- A scare or an alarm that lands while the phone is locked or the tab is in the background no longer arrives silently, or all at once on your return
- One deliberate exception: the pomodoro timer's rain sounds stay mixable, so they play under your own music instead of stopping it for the whole focus block
- The jumpscare page gained a "why can't I hear it" answer, and its preview button now says so when the browser refuses to start audio
Every post now has its own social card artwork
- Social preview cards are now generated as artwork rather than plain text: each post gets a distinct geometric mark, derived from its own URL, on a textured background
- A post's artwork is stable — editing the title will not change the image, so links shared months ago keep looking the same
- The category now appears above the headline instead of being tucked into the footer line
- Headline sizing was retuned so long titles still fit cleanly alongside the artwork
Series navigation, feeds, and a public API
- Series posts now build their own part list automatically, so cross-links between parts can never go stale
- Fixed internal links in published series that still pointed at the drafts area and sent readers to a sign-in page
- Per-tag RSS feeds: subscribe to a single topic at /rss/<tag>.xml
- Added /llms.txt, a machine-readable index of the blog for AI agents and crawlers
- Added a public content API at /api/posts.json with CORS, so agents can query posts directly
- Reading-progress bar on post pages, and read-progress tracking across a series
- Search results now highlight matched terms, and pressing / focuses the search box
- Code blocks can show a filename header
- Posts revised after publication now show an "Updated" date
- Added this changelog, plus a /uses page describing the stack behind the site
- Sitemap and feeds now revalidate immediately when content changes rather than caching for an hour