How my open source project got 1000 stars on GitHub in 4 months
8 patterns to follow in building a successful open-source project
Four months ago I built an open source project to curate portfolio websites so developers can draw inspiration from it when they decide to build their portfolio, and today(23 Oct 2022), that project has crossed over 1000+ stars, 200+ forks, with over 70 contributors on GitHub.
The project article was featured on dailydotdev and has attracted countless positive reviews from people who the project has helped in one way or another.
Here's the article if you would like to read it:
These milestones might seem impressive (or maybe not 😅), but I assure you, it has not always been like that. My early open-source days were incredibly mediocre and laughable.
Some of the projects I built at the time didn't even get up to 2 stars, even though I spent countless hours building and maintaining them. Having learned a lot of lessons and contributed to a few stellar projects like Visual Studio Code, Vite, freeCodeCamp, and more, even though most of my contributions were minimal and on the documentation, I've noticed a few patterns these projects follow to achieve the milestones they have been able to achieve, which is what I'll be sharing with you from this point on and till the end of the article.
So without further ado, here are 9 patterns to follow in building a successful open-source project.
1. Fix people's problems
This pattern is rather pre-stage—so before you build the project. If you're still in the process of thinking of a project idea, your focus should be on finding ways to solve problems people face daily. No matter what hack or secret tip I share in this article, it won't make sense if your project is not solving a problem. When I look back to my previous open-source project that failed along the way, I notice this is the one element lacking in most of them.
If you struggle with finding an idea, try starting with problems you face yourself. As a developer, what is that one problem you wish there were a solution for? When you eventually get a project idea, and you believe it is within your grasp, answer these questions:
- Has the project been done before?
- If yes, how can it be improved?
- If not, why hasn't it been done, is this worth looking into?
Carefully answering these questions will help you see ways you can improve an already existing idea or innovate from a new one.
2. Great Documentation
Your documentation attracts them, your solution keeps them
Much of a project's success is hinged on the nature of its documentation. Your project might be curing cancer but if the documentation is lacking, people won't care much about it.
A good docs should contain the following
- Step-by-step guide explaining the purpose of the project and how it works(highly recommend using images and gifs to explain certain things).
- A simple guide on how to run the project locally.
- Live hosted link to preview the project (very important).
- Link to the project's contributing guidelines.
- Link to the project's code of conduct.
- Examples of the project or software being used (if possible).
- Contributors list
Here's an excellent article from opensource.guide that goes deep into some of these points.
3. Blog about it!
Seriously, portfolio ideas took off when I posted the article on Hashnode. It quickly got picked up by daily.dev and the rest was history. If you honestly want to get your project in the eyes of a lot of people, and fast, I can't stress enough the importance of writing about it.
You can pick any blogging platform of your choice. I won't recommend your blog unless you get a lot of traction on it. Find a platform that has a community like freeCodeCamp, Hashnode, Dev, etc. I choose Hashnode because it is the one I am most active in.
4. Be an active maintainer
People tend to be more interested in projects you spend more time on, and this makes a whole lot of sense. It's a subtle way of telling your audience what project matters more to you.
Since I created portfolio ideas, I've had several contributors raise pull requests, create issues, and make changes to the project. No PR or issue has been left untouched for more than 72hrs. This has helped the project grow fast because contributors are convinced if they raise an issue or make a pull request, it will be attended to, and in time.
Though I understand this might be hard for someone with a full-time job. If that is the case, pick a particular day you will be available for reviewing your project and stick by it. While you're at it, see if you can delegate work to your most active contributors to help you fill that gap.
5. Share it in public
As a maintainer of any open-source project, you have to be the first evangelist to preach about your project. It could be on platforms like Reddit, Discord, Twitter, or Linkedin. A lot of the big open-source projects leverage this strategy to get even more traction to their project.
6. Use strategic labels
Labels are a great way to attract contributors to your project. With popular ones like good first issues and help wanted on your issues and pull requests, you can attract valuable contributors to your project.
7. Recognize Contributors
As much as it takes time to maintain an open source project, it is also tough to contribute to one, so a good way to repay your contributors is by recognizing them. This can be done by having a section (usually on the bottom) with their profile image and link.
Doing this tells other contributors that you value their time and effort. This motivates them to be more active in the project and sometimes, talk about your project with others. You can utilize tools like @all-contributors to simplify this process.
Here's a screenshot of how this tool works:
8. Take care of yourself
This quote about burnout in open-source work feels appropriate here:
Burnout is a real and pervasive issue in open source work, especially among maintainers. As a maintainer, your happiness is a non-negotiable requirement for the survival of any open source project. Setting clear boundaries and only taking on what you’re comfortable with will help you stay happy, refreshed, and productive.
referrence: opensource guide
Portfolio ideas will not be successful if not for the contributors who read the article, liked, starred, and shared the project in one way or the other, I appreciate you all.
Thanks for reading. If you learned anything from this article or you have any open source tips you'll like people to know, do share them in the comments below.