BillWatch
Civic Tech
Federal legislation tracking, minus the noise
Platforms
Stack
Overview
BillWatch ingests federal legislative data and turns dense congressional activity into a personalized, followable feed. Users track bills, subjects, and sponsors, and get concise summaries instead of raw legislative text. The backend is an async FastAPI service on Railway; the web client is a Vite/React SPA on Vercel, with native iOS and Android clients sharing the same API.
Problem
Federal legislation is public information, but tracking it means either wading through raw bill text on Congress.gov or relying on partisan aggregators. There was no neutral, personalized way to follow just the bills, sponsors, and topics a given person actually cares about.
Approach
Built a shared FastAPI backend around the public Congress.gov data set, with a follow model (bills, topics, legislators) and plain-language summaries layered on top of the raw legislative text. One API serves a Vue web client and native iOS and Android apps so the tracking/notification logic stays consistent across platforms.
Outcome
Live in production: the FastAPI backend and Vue web client are both deployed and serving real traffic; native iOS and Android clients share the same API and have reached feature parity on core tracking/following flows.
Highlights
- Async FastAPI backend with PostgreSQL, deployed on Railway
- Personalized bill/subject/sponsor tracking with plain-language summaries
- Shared API powering web, iOS, and Android clients