The Shadow Economy: Why Campaign Tech Keeps Failing


If you want to understand what happened with Shadow and the failure of its IowaReporterApp you have to understand how electoral campaign tech work is done and funded. Let me tell you a story to make sense of it.

Shadow’s caucus app was built using Firebase and React, services quite commonly used for creating mobile apps. This app was built by one senior engineer who had not done mobile apps before, and a bunch of folks who, based on their LinkedIn profiles were very recent coding school graduates who, as of a couple months ago in two cases, worked as a prep cook for Starbucks and receptionist at Regus.

They messed up, but it’s critical to understand the context. Shadow is a company which came out of the collapse of another electoral tech company, Groundbase, which itself had some well-known folks in the campaign tech space.

I know about this because starting in 2017 I tried to do my own project, Affinity.works, in a similar space*, and through that work got involved with the opensupporter.org standards process to make data sync between various systems.

What Shadow, Groundbase before it, and many of the rest of us like Affinity and The Groundwork (similar name, I know) all want to do is solve the problems which come up in progressive campaigns. We’re trying to create tools for the organizers.

Shadow made some tools which look useful. For example, their messaging app is similar to Hustle and GetThru (originally known as Relay). Their Lightrail app is something people really need. Think of it as a Yahoo Pipes/Zapier—tools for integrating web applications—but for the specific application programming interfaces (APIs) that we use in progressive campaigning from NGP/VAN, ActionKit, and ActionNetwork.

Lightrail is solving the problem that most people on campaign tech teams have. Mostly the job is wiring up various services, moving the data in to the right spot so the digital and field teams can be effective.

To understand why Shadow exists and how they failed to provide the tools the Iowa Democratic Party needed we need to know how this space works. The fundamental problem is we’ve got a very broken way we fund campaign tech on the Democratic side of the aisle in the United States. There is tons of money in politics but it doesn’t get used in the way which builds anything sustainable. Here are some reasons why.

Campaigns have a few primary motivators. First is getting votes. After all, you want to win elections, and if you’d don’t win, you don’t get to keep playing. To win, you need money, and you need to stay compliant with FEC rules. Break the rules, people don’t vote for you, unless you’re Trump.

Run out of money and your campaign is done. Just look at the reason given by most Democratic presidential candidates dropping out this cycle. They quit when they can’t raise more money. So, we have tons of money, and money for campaign tech, but it’s very focused on raising money, keeping track of money, and legal compliance. NGP/Van is very, very good at meeting these needs, so they’re the centralized company which most Democratic politicians use for their campaigns. Its tech around money accounting is great, its tech around walk lists and mobilizations is okay, and its tech around movement building is terrible.

Some organizations like ActBlue focus on the one very lucrative part of the stack, collecting small dollar payments with compliance. ActBlue does that one thing really, really well. As a result, it has transformed political campaigns, but as good as they are, their work doesn’t provide a funding channel for all the other tools we need.

Non-candidate groups often use ActionKit if they’re bigger or ActionNetwork if they’re smaller, or even NationBuilder, for their movement building work. The latter organization became persona-non-grata among progressives after the Trump campaign used it to get elected. MoveOn funded the creation of ActionKit, and the AFL-CIO did so for ActionNetwork.

Thousands of groups use ActionNetwork, but it’s barely a sustainable entity despite providing a very important service. They aren’t at risk of going away, but we’d be better off if they got more funding. ActionKit was recently rolled into NGP/VAN because it wasn’t sustainable as an independent entity.

To make things worse, the space is dominated by decision makers who are stuck on a very short-term decision-making cycle. Structurally there is no space for long-term investment, despite everybody stating that this would be good.

In normal tech circles we’d have a bunch of free software (open source) libraries and tools we build on together, but the campaign tech space doesn’t have this because decision-makers fear our tools will be taken and used by the other side. This is despite the fact that ‘they’ use totally different standards, tech, and structure of work. Ours works better than theirs, but it’s not saying much.

In the wake of the 2016 election there was a lot of energy around funding better tools. We had folks like Raffi Krikorian go over to work at the DNC. (He was formerly a top engineer at Uber and Twitter, and is now working for Laurene Powell Jobs’ Emerson Collective.) We had Higher Ground Labs, which was founded with backing from tech moguls Reid Hoffman, Ron Conway and Chris Sacca and led by Obama campaign veterans, pouring money into the space. They funded Shadow and many other projects.

Unfortunately, they funded it using a startup/incubator model. That is, giving startup funds to many projects in a cohort and helping them get to a minimum viable product, where they then pitch funders for more money. After the initial infusion, there was no more money to be had. These projects failed when they ran out of money. There was no budget to fund development between cycles. The decision-makers know nothing about how technology, or its development works.

Most of us have given up on building campaign tech. Thousands of other dedicated technologists who are organized through the Progressive Coders Network and RagTag are struggling but unsustainable. Campaign networks like Indivisible, Sister District, Swing Left, all use tech extensively but don’t have budgets to fund its development.

I myself am now building Planetary, Michael Slaby (CTO for Obama 2008, and later one of the developers of The Groundwork) is at Harmony Labs, Harper Reed is bouncing around the world being his fabulous self, having left the Obama campaign to do a payments startup. Eli Pariser is doing Civic Signals to fix social media platforms.

The decision makers refuse to use free software, alienating the ProgCode/RagTag communities. They also refuse to fund projects between cycles to build reusable platforms. So what do projects like Affinity.works and Shadow do when they want to keep the lights on? They take one-off campaign jobs. Affinity built tools for the Yes on 1631 carbon tax campaign in Washington, and Shadow built a caucus tool for state Democrats. Before shutting down, Affinity helped create Signalboost, a tool for secure organizing over the Signal app

This was a quick tool which was put together without sufficient funding. Building good tech is expensive. We can see from the budgets that the Iowa Democratic Party only paid $60,000 to shadow, and the Nevada party paid $58,000. That might feel like a lot, but it really isn’t given how much this stuff costs to build. It’s why the app wasn’t well tested or scaled well. The team was a few enthusiastic recent code school grads and one experienced engineer. This was their side project they built to get funding. There is no way they could succeed.

The problem is structural, because the way we’re funding organizing tech is wrong. We need it to be based on open source technology. We need a community of companies, parties, and third party groups funding it. And it needs to have funding between cycles.

There needs to be much more money going into organizing tech in order to sustain things. The Obama and Clinton campaigns spent tens (maybe hundreds) of millions of dollars on tech, but it was building tech which was mostly thrown away.

We’ve got a few vendors that last between cycles, but all the techies who work on campaigns go back to normal startups. A couple days after Obama was re-elected in 2012, the political staffers walked into the tech floor of the Obama campaign HQ and wondered where everyone was. They’d all been laid off. Harper Reed had found them jobs in industry and everybody faded back into tech companies. From a staff of hundreds, a handful went to work at the White House or OFA, but for the most part that knowledge was all lost.

We’re treating our campaign tech teams like we treat the field organizers, and it’s not working. It doesn’t work for the field teams either; that’s why they unionized.  If we want to prevent disasters like the Iowa caucus app or the failure to do effective social media campaigning in 2016, we need to change the way we fund, build, and employ the campaign workers, techies included.

What should have been done? The app shouldn’t have been built. This didn’t require an app (see Zeynep Tufekci’s explanation if you want more details). There are lots of ways to submit and verify vote counts without needing a custom app. At least they kept the paper backup. The sexy desire to have an app is something we should avoid.

Focus on the problem, not the solution of an app which sounds cool. The Iowa Democratic Party shouldn’t have asked for an app. The media shouldn’t have hailed it as futuristic, we shouldn’t demand immediate electoral results, and Shadow shouldn’t have tried to build it. A system with Google docs and having multiple people send in pictures of the tallies at each polling place would have sufficed. Or any number of other solutions which require less software. There’s a whole field of lean startups dedicated to solving the problem with less code. On top of that, folks like Matt Blaze and Ed Felten and many others have documented why digital voting systems are a broken concept. There is no way to do digital voting securely. Instead, we should use paper, use people, verify, audit, and make it transparent to all the campaigns. And yes, force the media to wait for results. We need an app for that.

(*Full disclosure: Civicist editor-in-chief Micah Sifry was an advisor to Affinity.works.)