Jul 17, 2015
From the desk of Darius Kazemi
Stay Woke Bot
I'm so pleased to finally get a chance to talk about Feel Train's first project! We had the opportunity to collaborate with activist DeRay Mckesson and the result was Stay Woke Bot. Stay Woke Bot is a Twitter bot designed to save activists time. Its source code is available here.
The problem we're trying to solve
The day-to-day life of an activist on social media often involves being asked the same questions over and over, usually by well-meaning, curious people. However, it can be draining to answer the same 101-level questions repeatedly. While some activists focus on basic education, many activists concentrate elsewhere and don't have the time to perform this free labor. Just as you wouldn't expect Neil DeGrasse Tyson to answer your high school physics questions on social media, you shouldn't expect an activist you saw on TV to answer your Sociology 101 questions.
So how do we solve it?
I build a lot of my projects by observing repetitive behavior on social media and automating it. This can be great for automating lazy humor, but it had never occurred to me that the technique could be applied to making tools too. In 2012, Courtney Stanton had the idea to build a bot that automates these 101-level interactions that were a constant presence in her feminist activism. I worked with her to build it, and the result was 101-a-tron, a bot that can be CC'ed on Twitter conversations with natural commands like "@101atron please tell @tinysubversions about cultural appropriation". The bot detects what you're asking for and then replies with a link within a couple of minutes.
By responding directly to commands, the bot also avoids acting like spam: it only speaks when spoken to. This prevents the bot from getting suspended. (In 2010 Nigel Leck built a bot that would initiate arguments with climate change deniers based on keyword usage. It was brilliant but was quickly suspended by Twitter.)
Extending it for organized activism
101-a-tron was a successful prototype, but it fell short in a number of ways. You had to hard-code the URLs and the keywords, so it was very difficult to update, especially if you were using it on your phone. It also wasn't very robustly coded -- it was very crash prone and would lose messages (largely because I was managing state by writing to a text file instead of using a database). And finally... well, if you looked at the timeline of the bot, you'd see this:
...which, um, to put it nicely, well, it certainly looks like spam, doesn't it?
So when DeRay approached me at Eyeo Festival and asked about social media tools for activists, I told him about 101-a-tron and then told him about the improvements we'd always wanted to make:
- More robust infrastructure
- Easily customizable links and keywords
- Easily customizable templated responses
The infrastructure part I'd already learned the hard way with my Sorting Bot, which buckled under the weight of its own popularity. I ended up monitoring the bot using the forever watchdog tool for continuous Node.js processes, and I applied these same lessons to Stay Woke Bot.
We also needed a way for non-programmers to be able to customize links, keywords, and responses. The choice here was simple: Google Spreadsheets.
Wait, what? Google Spreadsheets???
Google Spreadsheets has an API that can expose the data in a spreadsheet in a machine-consumable format, so extracting the data is pretty easy. I'm using
google-spreadsheet as available on
Many people know how to use the basic functions of a spreadsheet, so minimal training is required. Google Spreadsheets also automatically gives us secure sharing, real-time collaboration, and an elegant mobile interface. What this means is, if we want to add a new keyword and URL to the bot, we can simply open up our phone, tap on the Google Drive app, and then update this sheet:
We think this is an important tool for all activists to be able to use. As such, we've open sourced the code for the community to use under the name
If you're an activist and you have need for web-based tools, feel free to reach out to us with any questions you might have.