Today I Learned

Daily reflections on work and learning—what I did and what I learned.

20267

2026-07-23

Intermittently Broken Images — objectURL Race, WebP Fallback, Service Worker Shell

Three things I learned chasing an image bug that flickered in and out on every refresh — the objectURL lifetime race, preventing test hangs from browser-only libs, and scoping the service worker shell fallback to navigation requests

  • Render images the server provides by URL directly, do not wrap them in an objectURL blob — this eliminates the createObjectURL lifetime race at its source
  • When putting a browser-only (canvas) lib on a test path, block jsdom hangs with a synchronous capability gate before execution
2026-07-08

Mobile pointer gestures and a server image proxy

A day spent stabilizing touch drag/resize and, in an unoptimized environment, cutting transferred bytes with an image proxy

  • Reworked the drag behavior so dragging by touch doesn't scroll the page along with it
  • Added a proxy so images ship only the size needed, not the whole original