Files before a database
Markdown makes editions portable, inspectable, and versioned in Git. This suits a small publication; a larger archive would benefit from an indexed data store.
Behind the briefing
AI news moves quickly. The Gradient turns a collection of feeds into one readable edition, then keeps that edition available long after the inbox moves on.
An end-to-end TypeScript project connecting data ingestion, rule-based ranking, AI summarization, and a responsive publication.
Explore the source on GitHub (opens in a new tab)88 editions · 436 archived stories
Next.js · React · Tailwind CSS
Node.js · TypeScript · GitHub Actions
01 / The architecture
From original source to published edition.
RSS feeds from research, company blogs, and industry publications are fetched concurrently. A failed feed does not stop the others.
Normalized URLs and similar titles remove repeated stories before they reach the reading list.
A weighted score combines source priority, recency, relevance keywords, and engagement metadata when available. The highest-scoring stories make the edition.
Groq or OpenAI produces structured summaries. Without an API key, or after a provider failure, an extractive fallback uses the source text.
The pipeline writes Markdown and HTML. GitHub Actions schedules the daily run and commits the generated editions.
Next.js serves the Markdown archive with search and story links. Resend optionally manages contacts and delivers newsletter emails.
02 / Engineering decisions
Markdown makes editions portable, inspectable, and versioned in Git. This suits a small publication; a larger archive would benefit from an indexed data store.
Source, recency, and relevance weights make selection straightforward to inspect. They are editorial heuristics, rather than a personalized recommendation model.
Provider summaries give the briefing structure, while extractive summaries keep publishing possible without credentials. Generated claims still require source verification.
03 / The reading experience
Search across headlines, summaries, topics, and sources. Jump to individual stories, follow original articles, and move between editions without losing your archive filters.
Explore the archive