Skip to main content
Trevor Brown
See the Work

Web Projects

Production apps, personal tools and experimental builds — with screenshots, live links and the thinking behind each one

← Back to Portfolio

The same instincts that drove my investigative reporting — digging through complexity, finding structure in chaos, telling a clear story — now shape how I architect applications. After completing OU Outreach's Fullstack Academy, I now build with Next.js, React, TypeScript and PostgreSQL.

These projects range from production client work — a dental practice site that more than tripled new patient bookings — to open-source intelligence tools, AI model comparisons and a personal data platform processing 200,000-plus records.

Delegation Decoded desktop screenshot

Delegation Decoded

Congressional Accountability, Organized by State Delegation

Congressional tracker for all 535 voting members organized by state delegation, fronted by Ask — a grounded AI assistant that answers only from the site's own records and cites every claim.

Votes, bills, committees, campaign money, stock trades and 2026 races pulled from official federal data into one Postgres schema. Ask's citations are validated server-side against the records actually retrieved.

  • Ask — grounded Q&A on the homepage and every state, member and race page, with server-validated citations
  • Moderation screen, per-IP and global spend budgets and a 90-day audit log on every Ask request
  • 535 voting members across 50 state delegations — 537 tracked with delegates
  • 4,800+ STOCK Act trades from 300+ filings (House PDFs + Senate HTML)
  • Vision-model parsing of scanned House PTR PDFs — rows below the 80% confidence floor get a warning badge, not hidden
  • 2026 race pages cross-checked against state election authorities where adapters exist
  • Dedicated /for-journalists page with bulk CSV downloads and citation language
Next.js 16React 19TypeScriptPostgreSQL (Neon)Drizzle ORMAnthropic APIOpenAI APITailwind CSS
Open Cabinet desktop screenshot

Open Cabinet

Financial Disclosure Tracker for U.S. Executive Branch

Public tracker for U.S. executive-branch stock trades — 39 officials, 11,500 transactions, $4.5B in trade volume parsed from OGE filings with Claude vision into searchable, structured data, every row checked by an independent program or a second company's model.

D3.js timelines mark each official's confirmation date and 90-day divestiture deadline so compliance gaps become visible at a glance. Built for journalists and accountability researchers.

  • 39 cabinet and senior executive-branch officials tracked, the president included
  • 11,500 transactions parsed from OGE PDFs, every row verified by a second independent read
  • $4.5B in trade volume across all disclosed transactions
  • 69% of disclosed trades reported after the STOCK Act deadline — 7,700+ late-filed transactions flagged
  • Claude PDF parsing checked by text-layer, OCR and second-model lanes; a person rules on every disagreement, on the record
  • D3.js timelines + swim lanes + company lookup that ties printed names to tickers on exact evidence only
Next.jsReactTypeScriptPostgreSQL (Neon)D3.jsAnthropic APITailwind CSS
Capitol Releases desktop screenshot

Capitol Releases

Congressional Press Release Archive — Updated 4x Daily

Archival-grade database of every press release from all 535 members of Congress since January 2025 — 90,000+ records, four daily updates and Ask the record, RAG Q&A grounded in each member's own releases.

An AI-drafted daily brief cites every claim back to a source record. Mixed-collector pipeline (httpx + Playwright + RSS) handles hundreds of different congressional web setups.

  • Ask the record — RAG Q&A over a member's collected releases with server-validated citations; an answer that cites outside its retrieval set is discarded, not repaired
  • AI-drafted daily brief with every claim cited to source records — AI never writes to the corpus
  • 90,000+ records from all 535 members of Congress since Jan 1, 2025
  • Covers both chambers — 100 Senate and 435 House offices
  • Four daily refreshes with public run history at /status
  • Deletion tombstones and provenance tracking on every record
  • Mixed httpx / Playwright / RSS collectors across both chambers
Next.jsReactTypeScriptPythonPostgreSQL (Neon)pgvectorPlaywrightGitHub ActionsAnthropic APIOpenAI API
FOIA Tracker desktop screenshot

FOIA Tracker

Federal FOIA Backlog Dashboard

Documents the federal FOIA backlog agency by agency — more than 460,000 pending requests across 117 agencies' reports, built from 18 years of official FOIA.gov data.

Tracks the agencies that have stopped filing the quarterly reports that would reveal their backlogs — including the federal government's biggest FOIA filer. When an agency goes quiet, the absence is a finding too.

  • 460,000+ pending federal FOIA requests documented across 117 agencies
  • 18 years of official FOIA.gov quarterly and annual report data
  • Flags agencies that have stopped filing the reports that would reveal their backlogs
  • Editorial-style charts built on D3 scales and shapes
  • TypeScript ingest pipeline processing official FOIA.gov data dumps
Next.jsReactTypeScriptPostgreSQL (Neon)D3.js
Still in the Loop desktop screenshot

Still in the Loop

AI-Assisted Newsroom with a Human Always in the Loop

A source-tracked, human-reviewed AI newsroom covering the AI industry — frontier labs, developer tools and policy. Agents draft stories and track every source; a human journalist edits and approves each one before it publishes.

Built on Next.js and Payload CMS with Postgres — using AI to report on AI, without ever taking the human out of the loop.

  • Agent-drafted, human-edited — no story publishes without editor approval
  • Every article source-tracked and labeled
  • The Loop newsletter three times a week, plus Atlas lab profiles and a running timeline
  • Payload CMS editorial backend on Postgres
  • Sections: News Feed, The Loop, Atlas, Timeline, Library
Next.jsReactTypeScriptPayload CMSPostgreSQL
Keith Brown DDS desktop screenshot

Keith Brown DDS

Production Dental Practice Site + Admin Dashboard

Production dental practice site in Naperville that more than tripled new patient bookings. I manage SEO and optimize a $2,000/month Google Ads campaign directly.

Protected admin dashboard integrates GA4, CallRail and Google Business Profile analytics with real-time ad controls, a Python billing data pipeline, an AI chat interface and a blog CMS.

  • More than tripled new patient bookings after launch — verified by the practice
  • Manage $2,000/month Google Ads campaign with real-time bid controls
  • Built Python billing data pipeline for automated financial reporting
  • Integrated CallRail, GA4 and Google Business Profile analytics into admin dashboard
  • AI chat interface powered by Claude for patient inquiries
Next.jsReactTailwind CSSGoogle AdsPythonClerk AuthREST APINodemailer
News Pulse desktop screenshot

News Pulse

Open-Source News Monitor

Real-time global news monitor for journalists and OSINT analysts — 668 vetted sources across six platforms, with AI summaries at three clearly labeled Claude tiers and frequency-based surge detection rather than engagement ranking.

Sources span Bluesky, RSS, Telegram, Reddit, YouTube and Mastodon. Six-region world clock with independent activity baselines and methodology documented openly.

  • 668 vetted sources across six platforms
  • Surge detection — flags ≥2× and ≥4× spikes against rolling baselines
  • Six independent regional baselines (US, LATAM, ME, Europe-Russia, Asia)
  • Three-tier Claude summaries with model labels and documented methodology
  • Geospatial overlays — USGS, NOAA, NASA FIRMS, GDACS, State Dept
  • Tiered fetch architecture — T1 critical first, T2/T3 async
Next.jsReactTypeScriptPostgreSQLAnthropic APIreact-simple-mapsTailwind CSS
Second Brain — Data
Click to expand

Second Brain

Personal Knowledge Base with AI Chat and Search

Processes 200,000+ personal records from a dozen data sources — texts, emails, articles, ChatGPT exports, photos and DNA data — through TypeScript data pipelines with deduplication and normalization.

Features an AI chat assistant, semantic search and visualization dashboards. Built with React and Next.js on a Tauri desktop wrapper with Playwright-based data ingestion.

  • Processes 200,000+ records from a dozen data sources
  • TypeScript data pipelines with deduplication and normalization
  • AI chat assistant powered by Anthropic API
  • Semantic search across the full archive
  • Visualization dashboards for data exploration
  • Tauri desktop wrapper for native app experience
  • Playwright-based web scraping and automated data ingestion
TypeScriptReactNext.jsPlaywrightAnthropic API
AI Model Arena desktop screenshot

AI Model Arena

Side-by-Side AI Model Comparison Tool

A side-by-side AI comparison tool that sends one prompt to Claude, GPT, Gemini and Grok simultaneously.

Includes AI-powered peer ranking, real-time cost tracking and a Fast vs. Frontier mode toggle.

  • Queries four LLM APIs simultaneously — Claude, GPT, Gemini and Grok
  • AI-powered peer ranking system where models evaluate each other
  • Real-time cost tracking per query across all providers
  • Fast vs. Frontier mode toggle for speed and quality tradeoffs
Next.js 16TypeScriptAnthropic APIOpenAI APIGoogle Gemini APIGrok API
sort(id) desktop screenshot

sort(id)

Media Ranking and Sharing Platform

A media ranking platform where users create and share ranked lists of movies, TV, books, podcasts and anime.

Built with drag-and-drop interfaces, TMDB and Open Library API integrations and PostgreSQL persistence.

  • TMDB and Open Library API integration for movies, TV, books and anime
  • Drag-and-drop ranking interfaces for custom list creation
  • NextAuth.js authentication with PostgreSQL persistence via Neon
  • Shareable ranked lists with public profile pages
Next.js 16Tailwind CSS 4PostgreSQL (Neon)TMDB APINextAuth.js
Caught Up Yet desktop screenshot

Caught Up Yet

Spoiler-Free Sports Chat for Delayed Viewers

Sports app for fans watching games on delay. Create rooms, invite friends and family and chat about games without scores being revealed.

Filters alerts by team and sport with Supabase authentication and real-time PostgreSQL persistence. Built because my dad watches Cubs games on delay and we wanted to react together without spoilers.

  • Spoiler-free chat rooms for delayed game viewing
  • Team and sport filtering for personalized alerts
  • Supabase authentication with real-time PostgreSQL
  • Built for a real use case — watching Cubs games on delay with family
Next.jsTypeScriptReactTailwind CSSSupabasePostgreSQL
Food Xpiry desktop screenshot

Food Xpiry

AI-Powered Grocery Expiration Tracker

Grocery management app that reduces food waste using USDA FoodKeeper data and Anthropic API shelf-life estimates.

Users log items, get AI-powered storage tips and track expiration dates with PostgreSQL persistence via Neon.

  • USDA FoodKeeper data for government-sourced shelf-life baselines
  • Anthropic API generates custom storage tips and expiration estimates
  • PostgreSQL persistence via Neon with Prisma ORM
  • Item logging with category-based expiration tracking
Next.jsTypeScriptPostgreSQL (Neon)PrismaAnthropic AI API
StuddyBuddy desktop screenshot

StuddyBuddy

AI Study Platform for Web Developers

An AI-powered study platform for web developers.

Pick a tech stack and skill level to get interactive quiz sessions powered by GPT-4o Mini alongside curated documentation links.

  • GPT-4o Mini powers interactive quiz generation
  • Tech stack selection — JavaScript, TypeScript, React, Next.js and more
  • Skill level personalization from beginner to advanced
  • Curated documentation links alongside each quiz session
Next.js 16React 19TypeScriptOpenAI APITailwind CSS 4
Lost in the Pandemic desktop screenshot

Lost in the Pandemic

Oklahoma COVID-19 Digital Memorial

Interactive digital memorial honoring Oklahomans lost to COVID-19. Crowdsourced obituaries and family stories displayed as browsable, searchable cards. A hybrid project — part visualization, part reporting, part public archive.

Honorable Mention for the Community Champion Award from the Institute for Nonprofit News (2020). Built in Flourish, embedded into Oklahoma Watch's site as the Oklahoma COVID Legacy Project.

  • Crowdsourced hundreds of obituaries from Oklahoma families
  • Browsable, searchable memorial cards built in Flourish
  • Community Champion Award, Honorable Mention — Institute for Nonprofit News (2020)
  • Hybrid project combining visualization, reporting and public archive
FlourishCrowdsourced dataPublic records

Holding Power Accountable

Looking for the data journalism?

Award-winning investigations, interactive visualizations and 15 years of public-records reporting from Oklahoma, Wyoming, Indiana and Virginia live on the journalism page.

See data journalism →

Explore the full portfolio