Case Study

Dystopian Daily News

A real-time intelligence operation disguised as a newspaper disguised as satire. 8 AI journalist personas. Semantic clustering that catches patterns across continents. A multi-stage pipeline that turns fragmented news feeds into narrative pattern detection. The farce is the frame. The facts are sacred.

Status Live
Role Solo Developer
Stack Next.js 16 · Supabase · Claude AI · Vercel
URL dystopiandailynews.org

The news cycle forgets in 48 hours

Voter suppression in Georgia. Surveillance expansion in London. Press crackdowns in Istanbul. Three stories on three continents, covered by three different outlets, forgotten by three different news cycles. Individually, they're headlines. Together, they're a pattern — democratic backsliding happening in parallel across the globe — but no single news source connects them because no single news source is looking at all three simultaneously.

News aggregators show you individual stories. They don't show you patterns. They don't tell you that 12 countries passed similar surveillance legislation in the same quarter, or that the same lobbying firm appeared in corruption stories on three continents, or that press freedom deteriorated in 7 nations while everyone was watching one of them. The information exists. The synthesis doesn't.

And straight reporting of dystopian trends has a paradoxical problem: it numbs people. The hundredth article about democratic erosion reads like the first ninety-nine. The format itself has become invisible. Sometimes the only way to make people see the pattern is to make the pattern absurd enough that they can't look away.

8

AI Journalist Personas

12

Dystopia Categories

5

Parallel Source Fetchers

7

Pipeline Stages

4

Severity Levels

2

AI Review Layers

From aggregation to synthesis in 7 stages

Most news sites aggregate. DDN synthesizes. The difference is a 7-stage pipeline that transforms raw article feeds into narrative pattern intelligence.

Stage 1: Parallel Fetch. Five fetchers pull concurrently from GDELT, NewsAPI, MediaStack, RSS feeds, and Reddit. Promise.allSettled() handles source failures gracefully — if Reuters goes down, the pipeline doesn't.

Stage 2: Deduplication. Trigram-based similarity matching eliminates duplicates while preserving multi-source coverage of the same event. The same story from three outlets becomes three sources for one story, not three separate articles.

Stage 3: Classification. Three parallel signals: geo-classification (country/state via NLP), VADER sentiment analysis on headlines and snippets, and dystopia-type detection across 12 categories — theocracy, authoritarianism, fascism, corruption, surveillance, censorship, military aggression, economic exploitation, environmental destruction, propaganda, voter suppression, police state.

Stage 4: Semantic Clustering. This is where DDN diverges from every other aggregator. Claude Sonnet reads articles in batches and assigns them to topic clusters based on semantic understanding, not keyword matching. A story about "voter purges in Georgia" and "press crackdowns in Istanbul" get clustered together under "democratic backsliding" because the AI understands they're symptoms of the same pattern — even though they share zero keywords.

Stage 5: Severity Scoring. A composite algorithm: sentiment intensity (25%), dystopia keyword density (30%), source credibility (15% — Reuters/AP weighted above independent above social), recency (10%), base score (20%). Maps to four levels: Concerning, Alarming, Critical, Apocalyptic.

Stage 6: Synthesis. Clusters are routed to one of eight specialist AI journalists based on beat assignment. Claude Sonnet writes through that persona's voice, synthesizing multiple sources into a single narrative with attribution baked in.

Stage 7: Editorial Review (VERITAS). Claude Opus reviews every synthesized article for factual accuracy, editorial standards, and tone. Approve, edit, or reject. The stronger model fact-checks the faster model. Nothing publishes without editorial oversight.

8 journalists, 8 perspectives, zero AI homogeneity

Generic AI content sounds the same. That sameness is itself a form of flattening — the exact thing a platform about pattern recognition should resist. DDN solves this with eight specialist personas, each with a distinct voice, beat, editorial philosophy, and signature move.

Erasmus Vael

Chief Archivist · Military-Industrial Correspondent

Meticulous and encyclopedic. Covers arms sales, press freedom, whistleblower persecution. Signature: connecting current events to obscure historical parallels nobody remembers.

Margot Vex

Senior Correspondent · Department of Obvious Horrors

Sarcasm refined enough to strip paint. Covers corporate capture, billionaire tax evasion, private equity destruction. Signature: taking corporate statements at face value until they collapse under absurdity.

Sable Quill

Voice of the Threshold · Theocratic Watch

Prophetic cadence, weighted language. Covers theocratic creep across all Abrahamic traditions equally. Signature: framing mundane legislation in mythic terms.

Cass Meridian

Quantitative Threat Analyst

Lab report energy. Covers healthcare failures, environmental justice, data-driven inequality. Signature: building irrefutable statistical cases that lead to devastating conclusions.

Plus four more — Harlow Graves (surveillance/authoritarianism), Kira Voss (identity politics), Nathaniel Cross (information warfare), Vera Thorne (resilience and action). Each story gets the voice it deserves, not the voice that was cheapest to generate.

What made this difficult

  • Semantic clustering at cross-continental scale Keyword matching catches "voter suppression" in two headlines. It doesn't catch that a story about "digital ID mandates" in India and "biometric border screening" in the EU are both surveillance expansion. Claude reads articles in batches and clusters by thematic coherence, creating topic groups that no regex could find. The clustering is the core intelligence product.
  • Severity scoring without editorializing A composite algorithm (sentiment 25%, keyword density 30%, source credibility 15%, recency 10%, base 20%) produces a 0-100 severity score. Source credibility weighting ensures a Reuters report outranks a Reddit thread. The algorithm is transparent, documented, and consistent — the severity is computed, not opined.
  • AI editorial oversight at speed Every synthesized article passes through VERITAS: Claude Opus reviews for factual accuracy, attribution integrity, editorial standards, and tone. The stronger model checking the faster model. Articles can be approved, edited, or rejected. This adds latency but prevents the kind of confident AI fabrication that would destroy credibility in a journalism context.
  • Maintaining 8 distinct voices Generic AI flattens everything to the same cadence. Each journalist persona has a detailed system prompt specifying beat, voice, historical knowledge, and signature techniques. Erasmus Vael's archival precision and Margot Vex's acidic sarcasm are not interchangeable. The prompt engineering is the editorial voice.
  • Satire without misinformation The comedic frame makes patterns visible. But satirical framing on top of real news creates a trust problem. DDN solves this with rigid attribution: every major claim includes "Reuters reports," "The Guardian obtained documents," with markdown links to originals. The farce is the frame. The facts are sacred. You can laugh at the headline and verify the source in the same breath.

How it's built

Next.js 16.2 with App Router and React 19. Supabase PostgreSQL with full-text search. Claude Sonnet for synthesis, Opus for editorial review. VADER for sentiment analysis. Five source fetchers (GDELT, NewsAPI, MediaStack, RSS, Reddit API). Trigram-based deduplication. Upstash Redis for rate limiting and caching. Deployed on Vercel with serverless functions. GitHub Actions for scheduled pipeline runs. Sentry for error tracking. Capacitor for mobile apps.

The pipeline processes articles through: fetch → dedup → classify → cluster → score → synthesize → review. Each stage is independently testable. Source statistics and error rates are logged per run. The system degrades gracefully — if one fetcher fails, the others continue.

Next.js 16 React 19 TypeScript Supabase Claude AI VADER NLP Tailwind v4 Vercel Redis Sentry Capacitor GDELT

Critique flows upward. Never down.

DDN has a set of editorial values that aren't negotiable. Critique flows upward — toward power, institutions, systems — never downward toward vulnerable populations. Human rights are premises, not positions. Euphemism is the first weapon of oppression, so the platform names things what they are. AI content is always labeled. No violence is endorsed; accountability happens through legal, democratic, civic, and economic channels.

The severity levels aren't just color-coding. They're calls to action. "Critical" and "Apocalyptic" stories link to Know Your Rights cards, protest toolkits, whistleblower resources, and the Corruption Tracker — a database of named political figures implicated in patterns. The Banned Books library catalogs censored works. The heat maps show dystopian activity by country.

Straight reporting of dystopian trends numbs people. The hundredth article about democratic erosion reads like the first ninety-nine. Sometimes the only way to make people see the pattern is to make the pattern absurd enough that they can't look away. That's not an abandonment of journalism. It's the recognition that journalism has a format problem, and satire is one solution.

What are we mad about today? Everything. But now it's organized, sourced, severity-scored, and funny enough that you might actually read it.

Back to Portfolio