Recently (Mar'21) I made a simple project which got spread in various tech communities and social media. On Github, It reached from 0 to 4k+ stars and 200+ forks within 7 days. Github featured it in Trending repositories of day section for straight 5 days or so.
(Trending on Github - 13 Mar'21)
Clone Wars:
70+ open-source clones or alternatives of popular sites like Airbnb, Amazon, Instagram, Netflix, Tiktok, etc. List contains source code, demo links, tech stack, and, GitHub stars count.
Project link: https://gourav.io/clone-wars
Github link: https://github.com/gorvgoyl/clone-wars
I'm a techie and many a time I lurk in popular programming communities on Reddit like r/webdev, r/reactjs, etc. to see what other devs are building or if any new JS framework is popping up. I noticed many devs were making clones of popular sites like Instagram, Trello, Spotify, etc. as part of their learning purpose, and they were sharing it with others to get feedback in terms of code quality and best practices.
(devs sharing their projects in r/reactjs)
These clones were scattered all over the communities. So, I thought why not create a single list of all these clones which people can bookmark and revisit later for whatever purpose they need it for. Honestly, I wasn't entirely sure at that time whether it would provide any good value to others or not. So, there was a way to find out that is to build it myself!
I wanted to get all posts that contain the "clone" keyword. I initially did it with default reddit search
reddit.com/r/reactjs/search/?q=clone&source=recent&restrict_sr=1&sort=new
, (means look for all posts in reactjs subreddit with "clone" keyword and sort by new). It returned all posts, but that also included low-quality posts with 0 upvotes, questions on how to build a specific clone, etc. It would be a headache figuring out good clone projects from that dump. So, I used redditsearch.io instead, which provides advanced Reddit filtering like return posts that have at least 10 upvotes, posted during a specific timeline, etc.Next, I made a list of all these clones, their Github repo, demo links, tech stack. It was manual work.
Additionally, I googled "open-source alternatives" and found some fully-functional clones of Slack, Airtable, Bit.ly, Evernote, Google analytics, etc. I added these to the list.
So, now there are 2 kinds of projects on the list. The first ones look quite similar (UI-wise) but aren't fully-functional and the other ones which are fully-functional but UI is different (to avoid copyright issues, etc).
I named my project after Star Wars 2008 TV Series: "The Clone Wars" and also kept the similar color scheme of OG image.
Star Wars 2008 TV Series: The Clone Wars
Clone Wars: Github project2. Pretty view of table
2. Pretty view of table
I've worked with markdown before, but it was the first time I was working with markdown table and realized table view sucks on Github project page. Especially, if it's a long table with multiple columns. I needed to make it look better (sticky header) which meant I needed to deploy this project somewhere else. I still needed it to be on Github so that others can collaborate easily. I decided to host it on my personal site https://gourav.io.
My site is built using NextJS, and I was already using markdown (mdx) to write blog posts, so it was just a matter of copy-pasting markdown file from my Github project to new page https://gourav.io/clone-wars. And on top of it, I use Tailwind CSS with "typography" plugin which makes tables pleasing to read along with other text.
I thought of automating it to the next level i.e. if any change happens to the Github project or someone's PR gets merged, update the same on my site https://gourav.io/clone-wars. But, decided not to over-engineer it as changes weren't that frequent.
I posted in 2-3 subreddits and it took off 🚀
reddit.com/r/reactjs
reddit.com/r/webdev
Once the project gained some popularity many developers started raising PR to add their clone projects to the list. When I started it had around ~75 clones, but now it's more than 120+ and I still get new PR every now and then.
I got to know from a friend that it was picked by React Newsletter. Such a serendipitous moment.
People were tweeting about Clone Wars. @nickbulljs on Twitter suggested a neat idea for devs who are looking to get hired.
I got 150+ new followers after that tweet :o
And one person donated $5 from BuyMeACoffee link I put on the project. Love you stranger.
100+ developers subscribed to my newsletter.
Within 30 days of launch, 40k+ people came to my personal site and viewed my project (80k+ views).
You can see users insights at the end of the article on my blog.
Thanks for reading, I hope you enjoyed it.
Previously published at https://gourav.io/blog/my-simple-github-project-went-viral