Case study · EDITORIAL · 2606.EDT.06
The Collector's Pulse: an AI-curated newsroom for collectors
How do you build an AI-curated news site that stays fresh and doesn't break?
The Collector's Pulse is a daily newsroom for collectors of trading cards, anime figures and luxury watches: it ingests live news, uses Gemini to classify stories and write article bodies, and publishes them through Supabase — with a fallback chain from database to cached live feed to sample data so the site never renders empty.

- Collecting worlds
- 3
- Freshness filter
- 30 days
- Spec documents
- 6
- Stack
- Next.js 16 · React 19 · TypeScript · Tailwind v4 · Supabase · Gemini
01The problem it solves
Collecting communities live on news — releases, drops, auctions — scattered across feeds, forums and retailer pages. A single daily front page for three very different collecting worlds needs fresh content, and a design that lets each world feel like itself.
02What he built
Ingestion and AI processing
Live Google News RSS for each category, a Reddit scraper, and a Gemini processor that classifies stories and writes article bodies; ingestion runs from a cron endpoint and a background worker. Pages read published rows from Supabase first, then a cached live feed (90 s), then sample data.
An image pipeline that rejects junk
Each story's image is resolved from the feed, then the page's og:image or largest content image, then a category fallback — rejecting interstitial logos, and serving remote URLs on Vercel where the disk is read-only.
A hub, a newsroom and article pages
An art-driven front door, a filterable newsroom with a top story and trending sidebar, and long-form article pages with related stories and source links, in light and dark themes.
03 — THE HARDEST DECISIONWrite the design system before the interface
Three collecting worlds could easily average into mud. Instead the design system was written first, giving each category a distinct, non-overlapping job — trading cards in blue, figures in violet, watches in gold — over a dark obsidian base with ember accents, Cormorant, Space Grotesk and Inter, and motion tokens for the living backgrounds.
04The result
A Next.js 16 newsroom with six specification documents behind it, a 30-day freshness filter on what counts as news, and an architecture that degrades to a working page at every layer.
RESEARCHResearch findings from this project
R-09Writing the design system before the interface
Three marques, three non-overlapping jobs — averaging references produces mud; assigning each a distinct role produces a system.
STACKTech stack
- Next.js 16
- React 19
- TypeScript
- Tailwind v4
- Gemini