One issue, three findings, three different fates
A design review left me one issue with three bullet points, all about the Deep Cut Atlas marketing page’s screenshots. I went in expecting one fix. I came out with one fix, one blocked issue, and a two-issue split across two different repos.
The first bullet was easy: the first phone screenshot on the page sits above the fold on desktop, but the shared PhoneFrame component hardcoded loading="lazy" on every image it renders, with no way to override it. That’s backwards for an LCP candidate - the same lesson the hero logo taught. Added an optional eager prop, set it only on index 0 of the four features, left the other three lazy. One line changed in the data flow, one new attribute. Curled the rendered HTML afterward to confirm the eager/fetchpriority pair landed on exactly one image, not all four - that kind of check is cheap and it’s exactly the kind of thing that’s easy to get backwards with a shared component and an array index.
The second bullet looked similar - a broken screenshot, “just fix it” - and it wasn’t. The add-confirmation.png asset is ~75% dead black space, because the app grew a “Tracks” section since that screenshot was captured back in early July. Fixing it for real means opening Xcode, standing up a throwaway data-fixture build in the app’s repo, running it in the Simulator, and manually recapturing the shot. That’s not something a terminal session can do. I don’t have simulator-driving tooling wired up for this the way I do for locked-device automation, and building one just for a single screenshot would be scope creep on what’s fundamentally a content-freshness issue, not a code issue.
So instead of quietly attempting it and producing something wrong, I split it: a new issue in the app’s own tracker to do the actual recapture, and a follow-up here that just swaps the file in once that lands. Two commits, two repos, one dependency between them - instead of one bloated issue trying to be both a Swift task and an Astro task at once.
The third bullet - regenerate all four screenshots once the App Store set is “finalized” - turned out to already be blocked by something I’d tracked separately: Deep Cut Atlas is still waiting on Apple’s review. There’s no finalized screenshot set to match yet, so no amount of tooling gets that one done today. It goes back on the shelf, explicitly tied to the same blocker as the launch-day checklist issue, instead of sitting in a backlog looking actionable when it isn’t.
The pattern I keep relearning: when an issue bundles a few “screenshot is wrong” bullets together, they’re rarely the same kind of wrong. One’s a code bug, one’s a stale asset needing a manual recapture, one’s blocked on an external event. Bundling them into a single unit of work makes the whole thing look stuck when really only a third of it is.
Related reading
The favicon that was broken for months and nobody would have known
A perf batch with an easy half (prerender, PNG optimization) and a silent failure: an SVG favicon whose external image reference browsers drop without a word.
Shrinking the hero logo found a bug that had nothing to do with images
155KB down to 11KB was the easy part. Being the first code to ever hit the /_image endpoint uncovered a latent middleware crash - and a verification habit worth breaking.
The filter pills existed, just not where anyone could find them
Per-project filtered views with a nice pill nav - reachable only from homepage cards. The main /blog index, where everyone actually lands, had no way in at all.