The lists of a Twitter user's followers and follows are a rich and interesting source of data, but Twitter UI provides almost no way of working with them. There is no way to search, filter, or sort your follow(er)s, or compare the lists between two users to find intersections or differences. I set out to fix this with ListFollowers.com.
What it does
ListFollowers.com allows you to retrieve the list of a user's follows, followers, or mutuals, or to combine two such users' lists to find the intersection or difference between them. You can sort, filter, and search in the results, and you can export them to JSON or CSV for further analysis.
Some things you can use this for:
- find out who your biggest followers are
- search for people who live in your city, or in a city you're traveling to, to make friends
- search in bios for people who share your interests
- find follow recommendations for a friend by getting a list of accounts you follow but they don't
- find accounts who are followed by your favorite big name account who follow you—maybe they can introduce you!
- find the smallest of your follows—underrated accounts that you can recommend to others
- and more!
How I built it
I wanted to get this done as soon as possible, because I knew it would be a very useful tool for many Twitter users, so I stuck to the tools I knew well: Typescript + React on the frontend, Typescript + Express on the backend. I used Netlify for frontend deployment and Heroku for the backend.
Challenges I ran into
The one big challenge of this project were the Twitter API rate limits. I'd had this idea for almost a year but thought it impossible simply because of how restricting the rate limits were.
At one point I set out to code a version of this project with a database and a task queue that would be able to fetch a list of follow(er)s over multiple rate limit windows, but found this to be unexpectedly complex and abandonded the effort.
The breakthrough came when a fellow Twitter API hacker told me about an endpoint on the old v1 API which can fetch up to 75,000 follow(er)s in one rate limit window, compared to the 15,000 follow(er)s on the v2 API endpoint. With this knowledge, the project finally became viable.
What I learned
I learned how to deploy with Heroku, I learned a lot about cookies and Same Origin Policy, but most importantly I learned that even projects that look impossibly large in the beginning can be eventually finished if you put in a day of work every now and then.
What's next for ListFollowers.com
The question that really inspired this project was: which accounts that I'm not following are followed by the most of my follows? Maybe I should follow them too! ListFollowers.com can't yet answer that question; fetching the follow lists for each of my 300+ follows within a single rate limit window is not possible.
But in the future, for a version 2 of the app, I would like to return to the idea of a backend with a database and a task queue which can run requests over many rate limit windows, and answer questions like these.