12 ways to get more GitHub stars for your open-source project
The steps that we took to grow from 0 to 4,500 stars on GitHub within a few months.
We launched ToolJet (https://github.com/ToolJet/ToolJet) in June 2021, since then we've got more than 4500 stars for our repository. Here is a list of things that worked for us. This is not an article about how to just get more stars for your repository. The article instead explains how to present your project well so that it is helpful for the open-source community. Some of these points have helped us get contributions from more developers, we have contributions from more than 100 developers now.
PS: The graph above was generated using an app built with ToolJet. You can use it here to generate a star history chart for your project - https://apps.tooljet.com/github-star-history
1) Readme matters
Readme is the first thing that a visitor to your repository sees. The readme should be able to convey what your project does, how to install the project, how to deploy the project ( if applicable ), how to contribute and how it works. Also, use badges that are helpful for the developers. We used https://shields.io/ for adding badges to our Readme.
Here is how our Readme looks like:
Examples of projects with great Readme:
We get more traffic to our documentation portal (https://docs.tooljet.com/) than our main website. A well-documented project is always loved by the community. Open-source projects like Docusaurus makes it super easy to build documentation portals that look great just out of the box. Adding links to the repository from the documentation can drive more visitors to your repository.
Here are some projects with great documentation:
3) Drive visitors from your website to GitHub
A lot of visitors checked out our repository after visiting our website first. Add banners, badges, etc to your website so that the website visitors will check out your repository. To drive more visitors to your website, writing blog posts about relevant topics helps.
4) Be active in developer communities
There are many discord/slack communities, forums, Reddit communities, etc where developers usually hang out. Be active in these communities without making it look like self-promotion ( which can get you banned for obvious reasons ). Try to add value to the communities by participating in relevant discussions. For example, if you are building a charting library and if someone is asking a question about plotting charts using React, you can pitch in to help.
Play nice. Do not try to link to your project if it does not add any value to the discussion.
5) Email campaigns
You might already have users signed up for your website. Add a link to your GitHub repository in the welcome email.
Do not spam people who haven't signed up for your updates.
6) Trending repositories on GitHub
If you make it to the list of trending GitHub repositories ( https://github.com/trending?since=daily ), it can get your repository a lot more visibility. Whenever we made it to the trending list, we always got more visitors to our repository and website. There are trending lists for specific languages too. Many Twitter bots and other tools notify developers whenever there is a new repository that has made it to the trending list.
7) Ask for feedback from relevant communities
Communities such as ProductHunt, Hackernews, Reddit communities, etc may find your project useful. This can bring in more visitors and stargazers to your repository.
Target only the relevant communities. If you think majority of the members won't find your project interesting, it is not a relevant community. Spamming can cause more harm than good. Also, it's just not nice.
8) Grow a community
Start a community on Discord or Slack for your users and contributors to hang out. Communities can be helpful when the members are stuck with something and if they want to propose something new. If there is an active community, your future posts and announcements might get more reach. We created the community on Slack since most of the developers have a Slack account. Do not use lesser-known platforms for building your community as it would take an additional step for the person to join the community.
Play nice. Appreciate the work of others.
9) Add a public roadmap
A public roadmap helps your users and contributors understand where your project is headed. There are many tools available for creating public roadmaps but in most cases, GitHub projects will be more than enough for creating a simple yet effective public roadmap. We have created one using GitHub projects - https://github.com/ToolJet/ToolJet/projects/2
Being active on posts related to your projects can create awareness, increase the number of followers on Twitter and drive more visitors to your repository. Make sure to link your repository on the project's Twitter profile. Also, add a tweet button to your GitHub repository.
11) Respond to feedback
Open-source communities are usually very helpful and give a lot of feedback. Respond to all this feedbacks as the person has taken their valuable time to help you improve your project. Positive feedback helps you stay motivated while negative feedback helps you rethink.
Do not try to evade negative feedback, work on it if it aligns with your vision, otherwise politely explain.
12) Add relevant labels for contributors
Adding labels such as "good first issue" and "up for grabs" can attract more contributors to your repository. There are many platforms such as https://goodfirstissue.dev/ that scans for issues tagged with relevant labels to help contributors discover new repositories and issues to contribute to. Make sure you respond to contributors quickly. Contributors can be experienced developers as well as developers in the early stages of their careers or students. Try to help the first time contributors to help them onboard easily.
You landed on this article possibly because you have an interesting open-source project. I'd love to see your project. I'm available at firstname.lastname@example.org and on Twitter.
Hope this article was helpful for you. We would really appreciate it if you can take a moment to give us feedback on ToolJet - https://github.com/ToolJet/ToolJet