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