Concrete Bills
Real-Time Legislative Tracking for NYC Government
GovTech / Data Engineeringconcretebills.comI. The Challenge
NYC policy researchers and civic journalists were manually monitoring hundreds of active bills through the Legistar web portal—refreshing pages daily to catch updates. The workflow lacked automation, version tracking, or search across sessions, leading to missed legislative changes and fragmented data.
II. The Solution & Architecture
Built a public dashboard that automatically fetches and structures legislative data from the NYC Legistar API. Authenticated users can “track” specific bills in real time, saving them to their personal account in Supabase. Future iterations will include email alerts for status changes and voting outcomes.
System Architecture
III. Technology Stack
Frontend & Framework
- Next.js 14 (App Router)
- React Server Components
- TypeScript
APIs & Data
- NYC Legistar REST API
- Next.js API Routes
- On-Demand Fetching
Database & Auth
- Supabase (PostgreSQL)
- Clerk Authentication
- Row-Level Security
Infrastructure
- Netlify Deployment
- Edge Functions
- Incremental Builds
IV. Results & Impact
Reduction in manual effort required to monitor NYC legislative sessions
Bills parsed and indexed for search across multiple sessions
Average response time for bill queries and filters
Upcoming email alerts for tracked bill updates and voting outcomes
Key Learnings
- •Optimized Legistar API calls to avoid rate limits and reduce redundant fetches
- •Supabase’s row-level security streamlined user-based data access for bill tracking
- •Building modular API endpoints simplified future additions like alerts and analytics
