My Project Got 800 Stars in Two Days on GitHub - KOAN (Open-Source)
Table of contents:
You can find the video version of this article on YouTube: https://www.youtube.com/watch?v=vOQyo64WBAA
Video has live demonstration of my project KOAN. If you want to read the comments or leave a comment, do so under the YouTube video. If you want to contribute to the article, make a pull request on GitHub.
My open-source project KOAN that is the focus of this video:
Relevant articles referred to in this article:
- My How to Correctly Use GitHub for Software Development - My Full Workflow With Tutorial guide. It can help you get in the zone to create similar successful projects.
- My How to Find Funding for Your Project guide, which can help you to find funding in developing your open-source projects into a commercial product.
Now let me demonstrate the project to you, and then we can investigate why it was successful. Let’s start with the KOAN’s GitHub project page. It is an open-source project with the MIT license. It is a 7-year-old project, and I didn’t update it much in the last five years, so it has been losing stars since then, almost back to day 2!
If we check out the README file, you can see that it is very clean and well structured. It starts with introducing the technology stack, continues with the live example and getting started instructions. Getting started is easy, you clone the repo, do
npm install && npm start, and you have a basic working Facebook clone on your computer.
You can see that I even have a “Deploy to Heroku” button for one-click sample deployments of this project for people who want a quick start. Finally, the readme provides the rest of the configuration, testing, and licensing information. If you check out the source code, you can see that it is equally well documented. As a wise man once said, code comments should tell you the why, and the code itself should tell you how.
Note: Following section is the excerpt from the video demonstration. You can find the link to it in the resources section above.
- Koa framework provides the RESTful backend API, utilizing async functions.
- Angular is our fully static client-side app framework, and it is heroic!
- Node.js is the superglue, runtime for the backend, build system for the front.
- Finally, MongoDB is our NoSQL database of choice in this stack and sample app.
Let’s log in and see how it goes. Default credentials are pre-filled, so I will just use them. Logins with other social accounts is a feature that I implemented as a bonus. After login, you can see that it is a clone of Facebook in its early days. You can type comments or create new posts. You can also check your profile page, notifications, and messages. Remember when I said that the project was using WebSockets. The green dot near your name indicates that you are connected to the Node.js backend using a WebSocket connection. Let me open another window and log in as another user. When I submit a comment on one tab, it appears on the other in real-time, thanks to the persistent WebSocket connection to the backend. I won’t go into the details, but this very basic feature alone made this project very valuable to many starters who are looking to implement a real-time web app with WebSockets.
By the way, if you are interested, I have an entire article demonstrating my open-source project workflow using Git, GitHub, and Docker. You can find the link to it in the resources section.
How to Get Starts on GitHub Then?
Now you have seen a successful project with a successful execution, which resulted in a ton of recognition (and stars, forks etc.) on GitHub. So how did this all get together? Let me summarize it:
- Create something useful. There is a very fine line between working on something genuinely useful versus an unrealistic and unattainable goal. Use your best intuition to create something that will help people, do your market research, look for things that you need in your daily life. Don’t just depend on wishful thinking.
- Build your project on top of best frameworks and tools. I built KOAN using Koa Framework, Angular, Node.js, and MongoDB. The reason why I built KOAN on top of these tools was that they were the best tools for the business at the time. On top of that, they were trending tools with strong userbase growth, so I was sure of their future success (and I was right!). The success of the tools that I used also contributed to the success of KOAN.
- Present your project as best as possible. As you have just seen, KOAN has a great live demonstration. The live example being a Facebook clone helps you compare it to Facebook directly, and demonstrates what you can do with it. The project also has very clean and concise documentation, along with fully commented source code.
- Introduce your project with a well-organized README file at your project’s home. A good README on GitHub is generally in the following format:
- Introduce the project.
- Introduce the technology.
- Link to live example(s) and screenshots.
- Quickstart guide.
- Configuration/parameters section.
- Testing section.
- Pour your previous experiences into the project. The reason as to why KOAN is so clean both in presentation and code is that I have created many web apps using similar tools. I finally decided to assemble a single master template project for my future work with all the experiences that I had up to that moment. Hence, I created KOAN.
- Eat your own dog food. I’ve used KOAN in many projects, including in my current startup. Every time I used KOAN for a new project, I’ve improved a part of it and backported patches from the new project back into KOAN. Keep improving your project, especially if you want to reuse it in your future work.
- Be attentive to bug reports and feature requests. I’ve resolved most issues reported on GitHub in less than a day. I’ve also reviewed most pull-requests pretty much instantly, created a backlog of features that can be implemented in the future, and closed the unrealistic feature requests. A clean backlog clearly demonstrates to onlookers that the project is well maintained and is dependable.
- Being the best option on the market helps. This one is subjective, but when I created KOAN, there was no other high-quality and complete project template like it. None of the alternatives come with a full-on demonstration, and instant-deploy options like KOAN did. Nor did any other project’s documentation compared to the clean and concise documentation of KOAN.
- Finally, submit your creation for reviews. Contact newsletters, ping people on Twitter, submit it to relevant sub-Reddits. However, don’t be pushy. Let the people decide for themselves.
- You might eventually try and turn your project into a commercial success. Open-source or not, you always have great options for financing from government institutions to crowdfunding. If you want to learn about all kinds of financing options to help you with bringing your dream to life, check out my dedicated article on how to find funding for your projects. As usual, the link to it is in the resources section above.
Don’t forget that the primary objective of open-sourcing software is to be useful to the open-source community. The recognition (stars etc.) that comes with it is just a bonus. When the community starts using your software, they will begin to contribute back, which will benefit you in return, and everybody else. Take being useful as your goal, and you will get recognition eventually. Just like this article! If you found this article useful, share it with someone who you think might also find it useful. I will showcase more of my successful software projects in the future. If you want to see them, follow me on my socials. If you have a project that you want me to check out, let me know. I will review them and maybe even feature them in upcoming articles. And that is it for this writeup, I will see you on the next one.