A New Open-Source Tool Finally Makes It Easy to Mass Petition Congress

The tool solves a big problem in the activist world: contacting members of Congress en masse.

Apr 18 2014, 6:30pm
The US Capitol Building. Image: Wikimedia

Over a year ago, the Electronic Frontier Foundation was struggling to find a mechanism for contacting Congress. The tool had to reflect the principles around free software and security, and it had to be flexible.

As EFF's Rainey Reitman tells it, they tried multiple vendors, none of which met their standards. "We don't want to wait around for some third-party vendor to answer tickets, which could take days or weeks," Reitman tole me. "And we think it's particularly important because when our members and friends can't effectively contact Congress, that's a breakdown in democracy. Members of Congress need to know the opinions of their constituents. They are there to represent us. We need to make sure they hear from us, often and dependably."

Serendipitously, when Amy Ngai from the open government group Sunlight Foundation contacted the group about a collaboration, almost offhand she brought up a congressional contact tool. The seed was planted in Reitman's mind, and she wasn't about to let it go. For her, it seemed like an opportunity to "fundamentally change how advocacy organizations and individuals interact with Congress." Reitman and Ngai discussed the idea further, and decided to throw EFF and Sunlight Foundation's collective weight behind the project.

Out of this, Contact-Congress was born, a collaboration between several organizations pushing for better civic engagement. The tool solves a big problem in the activist world: contacting members of Congress en masse. As Reitman noted, congressional email addressess are hidden behind contact forms, and the traditional way around this involved paying companies to contact members of congress. Contact-Congress circumvents these stumbling blocks, creating a public domain messaging system that is open source and "hackable." As in, now, any group can use the dataset and tweak it to their liking when they need to make a major messaging push aimed at Congress.

I recently spoke to Reitman, Taskforce.is's Sina Khanifar, and Sunlight Foundation's Dan Drinkard and Eric Mill as the group puts the finishing touches on Contact-Congress. Even amidst high levels of self-enforced sleep deprivation, the three were happy to talk about how the tool works, and how they would like others to customize the tool and make it their own. 

Motherboard: How has it been working with all of the developers on Contact-Congress?

Rainey Reitman: Sina Khanifar is someone who has been working with EFF on a variety of projects for the last year or two. He's extremely skilled at hacking solutions to complex problems while motivating and organizing huge groups of developers. He totally throws himself into a project; he'll work all night to get something done right. We convinced Sina and his hacking partner Thomas Davis to come on for this project. Thomas is an unsung hero, doing a ton of work behind the scenes on this. I wish they would stick around permanently, to be honest, but for now they're just helping to launch this tool.

Dan Drinkard and Eric Mill at Sunlight Foundation have done a ton of the work here, and Jason Rosenbaum at Action Network has also jumped in and done a lot of work. David Moore at Participatory Politics Foundation laid a lot of the groundwork with his original project, Formageddon. (Man, Formageddon was such a great name.) And at EFF, our tech ops team have dedicated countless hours to making this project happen. Bill Budington is our lead engineer working on it, and I honestly think he just doesn't sleep anymore. He lives and breathes this project.

Sina, why were you motivated to jump aboard?

Sina Khanifar: When I started doing online activism around cell-phone unlocking, one of the first hurdles I ran across was the inability to send emails to Congress. There are plenty of email tools out there, but you can't actually just email your representatives as you normally would a friend or coworker. They hide their email addresses behind a contact form, and each of those forms is completely different. As an individual trying to advocate for a change in Congress, you need some way of sending emails. Asking people who support your cause to visit three separate websites and deal with their clunky user interfaces each time they want to express their support simply doesn't work.

Aaron Swartz recognized the problem and had hacked together some code a few years back, and David Moore and the folks at the Participatory Politics Foundation had done the same. But there was no single reliable codebase that worked well. A few big third parties charge advocacy organizations thousands of dollars a year for similar services, but that was obviously out of reach for individuals or smaller organizations.

The tool already has various manifestations, correct?

Eric Mill: The foundation is Contact-Congress for the collection of data that could be used by higher-level tools to deliver messages to Congress. We're managing that work in a Github organization called "unitedstates", which is just a neutral hosting ground for public commons-y work. The license is fully public domain (CC0), and the contributions come from a variety of volunteers and organizations, spearheaded by Sunlight and EFF.

Sunlight's actual message delivery service is OpenCongress, a public website we operate that helps users learn more about Congress. That's Sunlight's service, open source and licensed under the GPL. It makes use of the contact-congress dataset as its foundation, and then adds all the service-level stuff you need (retries, sending users CAPTCHAs, looking up their reps, etc.).

"If something breaks, anybody can go in and fix it. It's not code-owned by one particular company."

The EFF's actual message delivery service will be their yet-to-be-released Action Center. As they get there, they're building a general-purpose Contact-Congress processor called Congress-Forms. It's an intermediary service, the bridge between Contact-Congress and their Action Center. It's EFF's service, open source and licensed under the GPL. There will likely be other commercial vendors that adopt the base dataset as the engine that powers their own branded services. 

This project operates under Creative Commons license, and you want it to be hackable. How do you envision people hacking it? 

Reitman: One of the great things about this project is that if something breaks, anybody can go in and fix it. It's not code-owned by one particular company. Developers from any organization can go in and fix problems when they arise. Beyond that, I imagine there could be a whole range of tools built on top of it. EFF is planning to make it the backend of our Action Center, and hopefully many other organizations will as well. Right now we're working on the backend, but I have hopes we'll eventually have a free software front end as well. And who knows what other amazing tools might use this public domain data set long-term?

So, if anyone wants to run a particular campaign, they will be able to use this tool to contact congress?

Reitman: Yes, anyone will be able to use this tool to contact Congress. Right now, what we've built is the public domain backend. So an organization that wants to use this today will likely need to build its own frontend. All those companies that charge nonprofits huge monthly fees so that they can deliver messages to Congress? They no longer have the market cornered on contacting Congress. Now, we can create tons of free software tools that accomplish the same thing. Nobody will have to pay a for-profit company just to do grassroots digital advocacy.

How else could the dataset be used?

Khanifar: I think this is going to be really useful to a really broad spectrum of people who work on projects related to politics. In the very near future, companies like Change.org and Causes could use the dataset to actually send messages to representatives rather than just running petitions. I can imagine that someone will probably set up an API for sending messages to Congress, and if no one else does it we'll likely do it ourselves. And you can easily imagine tools that'd let you message your representatives from your cell phone, just as a big vote is pending.

The group crowdsourced volunteers to run tests on each member of congress's website. What did they do exactly?

Reitman: It was an amazing 48 hours, but basically each volunteer would use a bookmarklet to try to submit test messages to congressional websites, then make adjustments to ensure our code knew how to send messages to each of them. We pushed the project live even though there were a few bugs in the bookmarklet. I think my favorite moment was in the middle of the night, maybe 1 or 2 in the morning on the night we launched, when several of the coders working on the project decided to improve the bookmarklet. 

I also noticed how, during the first day, it took all of our resources just to respond to questions in the IRC channel. But within 24 hours, there were enough experienced programmers working on the project that volunteers were troubleshooting for newcomers and teaching them tricks.

What has been the biggest technical challenge?

Mill: Making the collection infrastructure simple enough for volunteers (even relatively technically savvy volunteers) to use and submit reliable data with. This includes: the actual collection tool that Dan and others built (a bookmarklet), the testing tool the EFF built, designing the instructions and videos, and the extensive ticket management we did to make it easy for people to know what's done. All of that was completely necessary to scale up beyond just a handful of people, and get up to the 150 contributors we've had so far.

When will it launch?

Khanifar: The public domain backend is available on Github right now for people to work on or use. There are just a handful of outstanding bugs on congressional sites, which hopefully will be handled in the next few days.  We're hoping to switch the EFF Action Center over to it sometime in May. We have other functionality we want to roll out, but this is the first step.