dakota@carrasco ~ %

The Dissent

[shipped]

An AI newsroom that researches, writes, and publishes daily journalism across seven specialized desks — fully agentic, live on the web.

  • Next.js
  • React
  • Python
  • Supabase
  • Claude
  • Vercel
Jun 13, 2026github ↗demo ↗

The problem

Real journalism is slow and expensive: beat coverage, research synthesis, drafting, and editorial review each take human hours. The Dissent asks what a newsroom looks like if the whole pipeline — from tip to published article — runs as a set of cooperating agents, with humans setting the standards instead of typing every word.

The approach

The system runs seven independent desks — politics, sports, food, tech, neighborhoods, things, and an editorial desk — each fully self-contained under a copy-don't-import isolation rule: its own orchestrator, prompts, sources, and tools, so any desk can be rewritten without touching the others. A central event bus routes a story through its lifecycle (development → investigation → writing → review → publication), spawning the right orchestrator for each stage. The hard, unglamorous parts are the interesting ones: semantic dedup gates so the paper doesn't run the same story twice, prompt caching, and a model-routing policy — cheap models for grunt work, expensive ones for review.

~/media/the-dissent-frontpage.png
The Dissent front page
// TODO — replace with a real front-page screenshot: drop a PNG at public/media/the-dissent-frontpage.png and point src + label at it.

The stack

A Next.js front end serves the reader-facing paper with live touches — a breaking-news bar, a newsroom activity feed, a sports-betting ledger. The agent backend is Python on a DigitalOcean droplet driven by systemd and cron jobs: newsletter digests, byline curation, source monitoring, pick settlement. An autobuilder — a Claude Code agent on a schedule — ships incremental features to the site on its own.

Where it's at

Live and publishing. A recent backend refactor isolated the desks and replaced third-party SDKs with in-house clients, and a round of cost work cut daily LLM spend from ~$25–31 down to ~$5–8 while increasing output. It's the project that taught me the most about making agents reliable in production rather than impressive in a demo.