Return

2024 · Civic tech · Five governments

Every bill.
One feed.
Your voice.

Bill Consensus scrapes the legislative feeds of five governments every day and turns the wall of PDFs into a threaded forum where citizens can actually follow, discuss, and weigh in on bills as they move.

Principle 01

Democracy fails silently when citizens can’t find the bill.

Principle 02

Legislation is written in a language that was never supposed to scale to the whole country.

Principle 03

Consensus doesn’t require agreement. It requires seeing the disagreement clearly.

The aggregator

Every overnight, five parliaments, one queue.

A fleet of Node.js scrapers wakes up around dawn local time for each jurisdiction, pulls the latest bill schedules, diffs them against yesterday, and enqueues new or amended legislation for parsing. By the time you're on your first coffee, the feed is up to date.

Bill Consensus feed

The forum

Threaded, civil, and attached to the actual text.

Every bill has its own thread. Comments anchor to specific clauses, so disagreement happens inline, against the source, not as a detached Twitter war. A sentiment tally at the top shows where the room lands — for, against, or “needs amendment.”

Bill Consensus discussion

React

Client app

Node.js

Scraper fleet

MongoDB

Bill corpus

Socket.io

Live threads

Status

Shelved, for now. Built, and proud.

Bill Consensus was an ambitious 2024 build that taught me more about distributed scraping and civic design than anything since. The live site isn't running, but the codebase, the scrape pipelines, and the threaded discussion engine all shipped.

More work by Dominic Black