An open source campaigning platform

When I started working for SumOfUs in the summer of 2015, the organization was at a turning point. The corporate watchdog and progressive campaigning organization had grown meteorically over the previous three years, and found that they had outgrown the software that had enabled that first stage of growth. I was one of two new engineers hired to lead the build of Champaign, SumOfUs's next generation of online campaigning software. Over the two years I worked there, we built Champaign and iterated on it to make it a compelling solution for digital campaigning.

Below, you can find details on the features of Champaign that I find most interesting and useful.


In Champaign, petitions are simple forms that users fill out, which save the user's information to the petition. Campaigners can easily add and remove all sorts of different fields to the form, with their own validations, in the admin interface. Champaign also uses cookies to recognize returning members, so they can sign new petitions with just one click.


Champaign has a full integration with Braintree, allowing deployments to accept credit, debit, and PayPal donations in six currencies. It uses a three-step interface that has been demonstrated to maximize conversions. It also uses Braintree's vault system to allow members to store their payment options, thereby allowing them to make one-click donations from a fundraiser page or just by clicking a link in an email. It also features a functional (though less seamless) integration with GoCardless to accept European direct debit payments.

Follow-up Actions

Champaign makes it easy for campaigners to choose what happens after members sign, donate, or take another action. They can be redirected to a follow-up page, to a different url, or the content of the original page can change. Most often it’s used to ask the member to share the page on social media. Champaign also features an integration with ShareProgress, which automatically tests and selects the titles and images of the campaigner's share content that gets the highest rate of conversions.


Champaign allow campaigners to set up call-in actions too. Members land on the page, enter their phone number, and then receive a call via a Twilio integration. The member hears a short message recorded by the campaigner to prepare them and review talking points, and then the call is patched through to the target. The tool can either choose a target at random to call, allow the member to pick one from a list, or it can focus on a target that the campaigner included in the link parameters sent to the member. It makes it easy to get thousands of people to call in to a target, and to ensure each person is connected with the most receptive target.


Champaign makes it just as easy to get thousands of members to send distinct email messages to a target or collection of targets. Members land on the page, get a chance to personalize their message, and fire it off to the target. This feature integrates with a separate open source AWS Lambda hook to send the messages with a third party email provider such as SendGrid or MailGun.


Champaign allows campaigners to build elaborate surveys with open response and multiple choice questions. The results are recorded every step of the way, enabling analysis of any responses that are gathered, not just from people that see the survey through to the end. It even allows campaigners to put the first survey question in an email, with multiple choices as user-specific links, each of which records the user's response to the in-email question, then directs them to the survey page to answer further questions.

Skins and Microsites

Champaign allows administrators to change the look and feel of their pages' HTML and CSS without deploying new code. Instead, the templates for each page type are stored in the database, allowing them to be editable through the admin web interface. This allows the tools described above to be integrated into a page that looks and feels like part of the website of whatever organization happens to be using Champaign. It also allowed us to use Champaign to host one-off microsites that did not use SumOfUs branding, like, on Champaign, and integrate the same components like petitions and optimized share buttons.

Fully Internationalized

SumOfUs campaigns in English, French, and German, so the entire user-facing interface is internationalized. This means that a campaigner can simply change the selected language for a page, and every word in the interface of the user facing page will change language.

CRM Integration

When a user takes an action, Champaign not only records it to the database, but also publishes it to any supplied queue such as Amazon's Simple Queue Service. This allows anyone to write a worker that can take these records off the queue and add them to any CRM, or to use the worker maintained by SumOfUs to write from the queue to ActionKit, a popular CRM for digital campaigners.

Open Source

Champaign is technically an open-source project, in that the entire codebase is available to peruse on Github. However, the open-source nature of the project is hamstrung in a number of ways. First, there is almost no documentation outside of comments in the code and writing on Github pull requests. Second, some key features (such as shares or analyzing surveys) require paid third-party integrations.

Finally, the code is written as a Rails app, not as a library of any sort. This makes it easy to use as a turnkey solution (just deploy the app) but difficult for potential contributors to keep their version of the code up to date and to contribute back. Unfortunately, though a few weeks of engineering time could turn Champaign into a very effective turnkey digital campaigning app, the organizational leadership has no incentive to invest the several weeks of engineering time required to do so, as it would make it easy for any new organization to use the software to compete for the same attention, likely without ever contributing back to the open source project. However, for a motivated organization with a bit of web development expertise, it could be a fabulously useful tool.