Origins
The idea for Vicariously has been on my list of "things I should build, but will probably never get around to and hate myself for it" for years. I thought the idea was simple, clever, and original – everything you'd want out of a fun side project. I would later learn that it was only simple and clever at best.
@JakeHarding I imagine you already know this, but the very first version of twitter had @getvicarious's functionality built in-@jack had it so everyone's home timeline was available a click or so away from their profile. I only learned this YEARS into my time at twitter.
— matt knox (@mattknox) July 12, 2020
In January 2018 (probably while all my friends were partaking in a sober January and my social life took a nosedive), I purchased the vicariously.io domain and built a prototype. It worked just as I imagined, but using lists on the Twitter iOS client was such a pain I quickly lost interest in the project and it was left to collect dust with all my other abandoned side projects.
Fast-forward to July 2020 and I found myself barely using Twitter due to my home timeline being so miserable. I never used to miss a tweet; Now, I rarely opened the app. Granted, this could have just been a reflection of the time, but I believe it was more due to poor curation on my part. I took a peek at the lists I had previously made with the Vicariously prototype to put this theory to the test. Lo and behold, I enjoyed the content on those lists! Twitter was fun again! On top of that, I discovered it was now super easy to access lists through the Twitter app.
On our list? Make lists even better for you! ✅
— Twitter (@Twitter) September 23, 2019
Now on iOS, you can pin up to five lists, rearrange them, and swipe to access from home. pic.twitter.com/gNdfNE1DCl
With a renewed interest in Vicariously and an assist from COVID-19 to free up all my weekends, I was now determined to build and deploy a tool I knew would upgrade my Twitter experience. The initial feature set was simple:
- Log in with Twitter
- Create a list and populate it with the follows of a given Twitter user
- Sync the created lists daily to ensure they stayed up to date
For once in my life, I finally had a weekend project that could be completed in a weekend. Using NextJS and Tailwind, I was able to stand up a simple, functional UI in a few hours. I had already completed the backend logic two years earlier when I built the initial prototype, so implementing that was just a matter of porting it over to my new project. The only thing I had to put thought into was how I wanted to implement the daily syncs. For side projects, simple is always better, so I created a worker using node-cron and spun up a DigitalOcean droplet to run it on for $5/month.
Vicariously 1.0 was complete and available for the world to use. Did I think anyone other than myself would use it? No, not really. But hey, if you spend a weekend building something, you might as well tweet about it to make the launch official.
Been thinking about ways to overhaul my Twitter experience so I built https://t.co/bKZdkbM88a and I have to say, I'm pretty happy with the end results.
— Jake (@JakeHarding) July 16, 2020
It's an easy way to create (and sync) lists based on the follows of another user.
I never expected that all this would lead to Vicariously having its 15 minutes of fame in only a matter of weeks, but that's a blog post for another day.