How this is made.
A public prompt for rebuilding the catalog. Free, because the dates are the product.
Build a catalog site called "Still Up Since" about products that outlived the rumor they were finished. Stack: Astro (server output, Cloudflare adapter) + Cloudflare D1. Vanilla JS for search, filters, votes, and a live age clock. No React. Look: a datebook, not a terminal and not a generic cream blog. Manila index cards with a punched hole, a red ledger rule down the left margin, and circular rubber-stamp verdicts (Standing / Wavering / Hollow / Closed). Fraunces for years, Source Sans 3 for body. Optional dusk theme. No CRT black, no phosphor, no stock ticker, no fill-in-the-blank hero. No emoji. No em dashes in user-facing copy. Data: editorial products are one JSON file each in src/data/products/. Featured Product Hunt listings are rows in D1 table hunts (npm run fetch:producthunt). Hunt date is not a founded date; clock starts at the hunt; editorial wins on slug/name. Labels in the UI: Standing / Wavering / Hollow / Closed. Pages: / is "The archive" (search, filters, card grid). /hunted is the Product Hunt D1 catalog (paginated). /:slug is a library card: founded year, rubber-stamp verdict, running age, why it lasted, near-deaths, what would finish it, "I still use this" vote (D1, hashed IP, 24h), share, FAQ. /graveyard is the closed wing. /stats is the census. /submit nominates a name (honeypot). Footer email capture (honeypot, dedupe). /build-this-site is the colophon with this prompt. SEO: server-rendered pages, question titles, canonical URLs, JSON-LD, sitemap, robots, OG images of the year-and-name card via workers-og. MIT. No accounts, no payments, no third-party trackers.