Rotates off clasica-fiberglass-camper-trailer, which was made the pick on
07-16 hours before the 'no camping gear in the hero' rule landed
(b145520). Content rule 4 keeps the camper's find, review and bundle spot
published and untouched — but the pick is re-decided from scratch every
run, so re-affirming it today would be making a fresh decision that
breaks rule 3, not preserving an old one. Rule 4 protects what's
published; it doesn't grandfather the hero slot.
Chosen over we-are-rewind-pink-floyd-cassette (dark, ad-like box-set tile
with branding in-frame; appeal narrows to Floyd fans). Sailor's Knife was
ineligible on the front-page safety rule — it's a knife.
The porcelain-room hero delights with no context required.
Rotated from herculaneum-scroll-first-read (held since 07-13).
The best hero image of the run is deliberately NOT the pick: Lai Tak Tsuen's
atrium is the most arresting thing we published today, but its residents have
posted notices asking photographers to stay out, and the homepage hero is this
site's loudest amplifier — pointing it there would generate exactly the traffic
they are trying to stop. Same shape as the rule against heroing anything that
reads as endorsing harm, just quieter. The review still runs; it just never
gets the tile.
The M0 Pura wins the rest on the axes the pick is judged by: a press shot that
shows the whole product in one frame (it is tiny, and there is nothing on it),
a virtue legible from the tile without domain knowledge, and nothing remotely
controversial about it.
- src/lib/hero.ts: review heroes are now auto-discovered via import.meta.glob
over reviews/*/hero.<ext>; only legacy non-hero-named assets remain as
explicit overrides. New reviews need zero registration.
- Pick of the day moves from a hardcoded HERO_SLUG in index.astro to
src/data/pick.json (content edit, not code edit); dev set-pick API and
the review-page button now write pick.json. Fallback: latest review.
- Schemas: finds gain shortlist (bool) + amazonLink; reviews gain amazonLink.
- Review + find pages render an 'Also on Amazon' affiliate link when
amazonLink is set, with shared disclosure handling.
- Both hero globs now include .avif (two June finds ship avif heroes).
UI / dev tooling
- /find/ index: sort by file birthtime desc (sub-day chronology even when
many finds share the same frontmatter date); render the captured-at on
its own line under the host (~0.65rem mono muted)
- New dev-only filter at the top of /find/: All / Not in lists, persisted
in localStorage; "not in lists" hides finds referenced by any superpost
- New editorial-tags chip strip on each find card (dev-only): selected
tags visible by default, full picker on hover/focus-within with a "…"
button for arbitrary tag entry; clicks copy /edit-find-tag <slug> <tag>
to the clipboard via the existing EditConfirm singleton
- New optional editorialTags: string[] field on the find collection
- New src/data/editorial-tags.json — master list of available tags (initial
set: ["delete"]); display order follows file order
/grid/ now uses the JS Masonry component instead of CSS column-count, so
the middle column no longer "dips"; tile hover updated to match the home
page's accent-glow / no-translate style
Content
- New review: apex-markdown-processor (graduated from find of same slug;
hero reused from the find folder)
- New review: sindre-sorhus-older-mac-apps (graduated; intentionally
hero-less per the source page's text-only design)
- New review: superkey (added by user; hero wired in src/lib/hero.ts)
- 24 new finds captured by /daily-finds across travel, jokes, quotes,
product picks, and indie tools
- 2 new finds superposts: 2026-05-04-a-small-atlas, 2026-05-04-off-until-needed
Misc
- daily-finds.log.md and candidate-sources.md updated with the day's runs
- build-finds skill prompt iterated by user