Earlier this week I created Bithublab, a single place to search for open source git repositories on the 3 most popular git hosting services: Github, Gitlab, and Bitbucket. The idea came to me in response to news that Microsoft was acquiring Github, prompting many users to move to Gitlab, which set me off on this train of thought:
Later that night, I hacked together a very basic working MVP, that simply scrapes the search pages of each website and aggregates the results in a single place:
I posted it to Hacker News around 3AM pacific time, and after a couple of hours it got to the front page. At its peak I was at second place for a couple of hours, with 316 points and 46 comments, just right under the vastly more important press release from Microsoft about the Github acquisition!
In total I had 11K unique visits from 124 countries, resulting in 12K page views. Activity on Twitter was decent as well, bringing in 1586 visits, with one user’s tweet sharing bithublab garnering 461 likes and 253 retweets.
In the grand scheme of things 11K visits over 48 hours is not a crazy amount of traffic for an actual internet business, but for an afternoon side project I think it did alright. These are the lessons I learned from my getting to the front page of HN. I think these apply to any side project regardless of how popular you think it will get:
If you come up with an idea, throw something basic together and just ship it! This all took ~4 hours of coding and ~1 hour for deployment. If I had ruminated over all the possible UX implications, or tried to create a real search engine by crawling all the git repositories in the world, I would not have gotten this done. Instead I just used the existing APIs and integrated the results on the front-end. It doesn’t even have pagination. Not elegant, but it gets the idea across.
I think this is a fairly encouraging idea for those strapped for time. Even if you have a full-time job and lots of commitments, if you can find even just a couple of hours in your week you can make something that could potentially delight a lot of people.
Responding to news is time-sensitive so move fast. In a couple days, nobody will be talking about the Github acquisition and the collective attention will be occupied by some other news/controversy. I’m not the only one to capitalize on this announcement either, Gitlab for example quickly put together a marketing effort called #movingtogitlab. As a corollary, behind every major technology announcement/controversy, there is probably some unborn viral phenomenon ready to siphon some of the collective attention, so be on the look out and think creatively when your competition or a major industry player stirs social media.
Whimsy sells. A lot of people commented on the funny logo I put together for Bithublab. I actually only added it after I posted to all the social media sites but I think it was a big part of how I got to the front page. I guess this falls under branding but it’s probably best to not overthink it.
On a related note, make sure it looks nice. I spent about 10 minutes on the CSS giving it a nicer font, adding drop shadows, aligning things, etc. and I think it helped a lot in selling the idea.
Figure out how you can benefit from the exposure and make sure you have something in place to get that. For example, as someone that often creates side projects like Bithublab, it would’ve been best to get email signups or more followers on my Twitter profile. However, I originally linked to my personal site, which does link to my Twitter, but I saw poor conversion to followers. In retrospect, I would have added an email form. When in doubt, I think it’s best to collect emails.
Make sure you can handle the traffic. e.g. Premature optimization is not an evil. In the grand scheme of things 12K page views is not that much, but there were some spikes that may have caused issues if I had done things terribly wrong for the sake of expediency like deploying on a single ~$5/M DO droplet. My backend service(basically a proxy to the bitbucket and gitlab APIs) is on Google app engine and it scaled beautifully with minimal configuration, going from 2 to 6 instances under load without any intervention. At the very least get Cloudflare set up so you’re benefiting from their caching layer.
Thanks for reading! If you want to know when my next side project launches, follow me on Twitter or sign up for my product launch mailing list.