Web Projects
Production apps, personal tools and experimental builds — with screenshots, live links and the thinking behind each one
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 increased bookings by more than 33% — to open-source intelligence tools, AI model comparisons and a personal data platform processing 200,000-plus records.
Delegation Decoded
Congressional Accountability, Organized by State Delegation
Congressional tracker for all 538 members organized by state delegation — voting records, committees, campaign finance and STOCK Act trades pulled from six federal data sources into one Postgres schema.
House STOCK Act PDFs cracked with Claude Sonnet 4.6 vision — 4,350 trades parsed at 99.95% above the 80% confidence floor, with bogus-ticker filtering and a fallback enrichment pass.
- 538 members across 50 state delegations + DC + 5 territories
- Six federal sources — Congress.gov, FEC, House Clerk, Senate eFD, roll-call XML, @unitedstates
- 4,350 STOCK Act trades from 215 filings (House PDFs + Senate HTML)
- Claude Sonnet 4.6 vision parsing of scanned House PTR PDFs
- Idempotent ingestion with live sync log + /health endpoint
- Dedicated /for-journalists page with downloads and citation language
Open Cabinet
Financial Disclosure Tracker for U.S. Executive Branch
Public tracker for U.S. executive-branch stock trades — 34 cabinet officials, 3,300+ transactions, $2.7B in trade volume parsed from OGE filings into searchable, structured data.
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.
- 34 cabinet and senior executive-branch officials tracked
- 3,300+ stock transactions parsed from OGE PDFs
- $2.7B in trade volume across all disclosed transactions
- 1,339 late filings flagged against the 45-day STOCK Act deadline
- Claude PDF parsing with confidence scoring and human-review fallback
- D3.js timelines + swim lanes + reverse company lookup
Capitol Releases
Senate Press Release Archive — Updated 4x Daily
Archival-grade database of every press release from all 100 U.S. senators since January 2025 — 35,000+ records, four daily updates, deletion tombstones, public run history.
Mixed-collector pipeline (httpx + Playwright + RSS) handles 100 different Senate web setups. Per-senator coverage and per-CMS date-parse accuracy documented openly.
- 35,000+ records from all 100 U.S. senators since Jan 1, 2025
- Four daily refreshes with public run history at /status
- Deletion tombstones and provenance tracking on every record
- Mixed httpx / Playwright / RSS collectors, ~60-min daily run
- Postgres tsvector full-text search across the full archive
- Chamber-agnostic schema — House expansion is a config change
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
News Pulse
Open-Source News Monitor
Real-time global news monitor for journalists and OSINT analysts — 475 vetted sources across Bluesky, RSS, Telegram, Reddit, YouTube and Mastodon, surfaced through frequency-based surge detection rather than engagement ranking.
Six-region world clock with independent activity baselines. Three-tier Claude summaries (Haiku / Sonnet / Opus) clearly labeled, with prompts published openly.
- 475 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 visible prompts
- Geospatial overlays — USGS, NOAA, NASA FIRMS, GDACS, State Dept
- Tiered fetch architecture — T1 critical first, T2/T3 async

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










