---
title: "The Collector's Pulse — AI-Curated Newsroom in Next.js"
description: "The Collector's Pulse by Shreyansh Kumar Singh: an AI-curated daily newsroom for cards, figures and watches — Next.js 16, Gemini and Supabase."
url: https://www.shreyanshkumarsingh.com/projects/collectors-pulse-ai-newsroom
author: Shreyansh Kumar Singh
updated: 2026-10-08
---

# The Collector's Pulse: an AI-curated newsroom for collectors

By Shreyansh Kumar Singh. Source available on GitHub.

**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

## The 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.

## What 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.

## The hardest decision: Write 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.

## The 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.

## Research findings

- **Writing the design system before the interface:** Three marques, three non-overlapping jobs — averaging references produces mud; assigning each a distinct role produces a system.

Stack: Next.js 16, React 19, TypeScript, Tailwind v4, Gemini

- [Source on GitHub](https://github.com/Shreyanskumarsingh20/the-collectors-pulse)

---

Shreyansh Kumar Singh — AI & Full-Stack Engineer, Pune, India. Contact: shreyanshkumarsingh208@gmail.com or https://www.shreyanshkumarsingh.com/contact (call and WhatsApp buttons). More: https://www.shreyanshkumarsingh.com/llms.txt · https://www.shreyanshkumarsingh.com/sitemap.xml
