In March 2017 we released a software tool called Supermute. It's an app designed to give you more control over what you see in your Twitter feed. It lets you temporarily mute entire accounts based on keywords they say in their tweets. Things you can do with it include:
- avoiding spoilers (set up a week-long Supermute for that new movie until you can see it on Saturday)
- muting anyone who uses harassing keywords for a block of time
- pretending really popular events don't exist (don't care about the Oscars? just supermute "Oscar" for six hours the night of the ceremony)
We'd built Twitter "apps" before but they were private, one-person apps. This was our first time making a Twitter app that could in theory scale a little bit! But, as Donald Knuth famously noted, "about 97% of the time: premature optimization is the root of all evil." (For, uh, a very narrow scope of "evil".) So how to make a project like this scalable but without having it blow up into a huge mess of code with tons of dependencies?
Well, we ended up doing a number of things: the app stores barely any state at all. The app's performance is O(N), that is to say, if our user base doubles the app will consume roughly twice the RAM/CPU that it currently does. It was easy to calculated that on a very modest single-server deployment we could support a few thousand users; deployed onto a scalable cloud-type architecture we could easily manage cost of launching more processes based on user growth. This also led us to think, well, how would we fund this growth? Which we answer in the next section...
This was our first project that we did any kind of crowdfunding for, via our Patreon page. It's worked out pretty well as a way to self-sustain! We're making about as much money as we need to offset hosting costs and the occasional bug fix. We're not profiting off it by any means, but we get to feel fairly compensated for maintaining a thing we want to exist in the world.
People have said nice things about Supermute! It was covered in Boing Boing and these Twitter users had nice things to say about it:
Guys and gals, can't stress how great this is. My timeline is forever changed!
— @joebradfordnet, March 11, 2017
I've been wanting this feature forever!! Thank you!!! :D
— @JarrydHuntley, March 11, 2017
Oh my god this feels so good
— @dan_munz, March 11, 2017
So Supermute is a tool that people think is useful, and we're able to materially support its existence. Mission accomplished.