The iPhone Silent Switch Mutes Web Audio — and the Documented Fix Breaks Your Microphone

An iPhone's ringer switch silences Web Audio but not HTML audio. WebKit's own fix works, and quietly makes getUserMedia throw. Four iOS audio behaviours, measured, with the code.

Read more →

Thirteen CI Runs, Thirteen Real Bugs: What a Cold Machine Knows That Your Laptop Doesn't

We turned on CI for a 64-project monorepo with 10,000 green tests. It failed 13 times in a row - and every single failure was a real, pre-existing defect the fast machines had been hiding.

Read more →

The pnpm Override That Silently Defeated a Security Bump

I bumped nodemailer two majors to clear a file-read/SSRF advisory, ran install, and the old version stayed put. Two pnpm resolution traps later, the audit was finally at zero — and my CI had been testing a version my users never get.

Read more →

Invisible Banding in Generated OG Images: Two satori Traps, and One I Got Wrong

Generated social cards carry hard edges and lost spaces you will never spot by eye. Two satori traps with the pixel measurements — plus the third I published that turned out to be wrong.

Read more →

The @font-face Nobody Read: Embedding Fonts in SVG-to-PNG Pipelines, Measured

My plan to make OG-card rendering portable was to embed TTFs as data-URI @font-face in the SVG. Measurement killed the plan twice — once for real, once because my probe was lying to me.

Read more →

GitHub Killed Our Push After All 1,616 Tests Passed

A 13-minute pre-push hook, a green test suite, and a push that was already dead before the first test ran. Why git hooks race an idle timeout you don't control — and where the gate actually belongs.

Read more →

Google Told Me to Build Four Features. Three Already Existed.

A Search Console query sweep surfaced four juicy feature gaps on a young tools site. I read the code before building — and three of the four were already shipped and marketed. They ranked low because the site is new, not because the feature was missing. The lesson holds double when an AI agent is the one proposing the work.

Read more →

The PSI Bug That Wasn't: Telling Runner Variance From a Real Regression

A full PageSpeed sweep of my 81-page site came back with half the pages "broken" at 66–80. It looked like a regression. It was measurement noise — and here's how I proved it before touching a single line.

Read more →

Emma Covers the Pets Now: The Bug Hiding in an Array Index

A chore chart quietly reassigned a kid's manual override to the wrong task the moment you deleted a row above it — and still called it a deliberate edit. The fix is a small lesson about identity versus position in persisted state.

Read more →

🌟 Unlock Premium Content

Subscribe to access 1 exclusive premium post in this tag

Subscribe Now