I’m not going to share another new year’s resolution with you, but rather help you accomplish yours. If making your project successful is on your resolution, then you should definitely think about ways to promote it, make it popular and wanted by many people. Success doesn’t come overnight and building awesome projects doesn’t necessarily make them successful.
Developers are one of a kind, that’s why, here, at Froala, we pay so much attention to them and their needs. GitHub is THE place for many developers and home to millions of projects. In such a vast crowd you clearly need a strategy if you want your project to stand out.
This article was initially published in the FreeCodeCamp Medium publication. We also wanted the information in it to be easily available to the Froala developers, and so we thought republishing it on the Froala blog will help more people than it already has.
We recently launched a new product called Froala Design Blocks. A few days later we were listed on GitHub trending repositories. After one week we had over 3500 stars, and two weeks later we were still getting 500 stars daily.
Unlike Twitter or Facebook — where you can get new followers or likes by advertising — on GitHub, you get stars only if your project impresses someone. GitHub stars are more than just a number. They’re a reliable insight that engender trust and influence people when they decide to use your product or not.
The Froala Design Blocks is not our first product. We’ve been using Github for years. But I just started to realize why Github stars matter, and what you should or shouldn’t do to keep them coming.
Whether you’re a newbie or an oldie to GitHub, I believe my article will shed some light on the full potential of GitHub stars and how they can be used to showcase and improve your project.
Write a beautiful README
On GitHub, the README file is like the landing page of your website. It is the first thing visitors see, and you want to make a good impression. It is possible that some visitors will hit the star button only because they liked the images you used and because the project sounds interesting.
A good README needs to contain all the essential information so that developers understand what the project is about, why they should use it, and how to use it. There are lots of templates to pick from, but I would recommend this one created by Billie Thompson.
Despite the fact that the README is usually written in Markup, it has to be beautiful. Good is not enough. Besides useful information, this means it needs a design. The human brain is very good at visual processing, but reading text requires more cognitive effort. I would say that the look of the README is even more important than the text itself.
How can you make a beautiful README? We researched several awesome READMEs from a great list created by Matias Singers. But if you’re short on time, here’s a shortlist to help you:
- Use badges — they inspire trust and summarize the most significant information a developer is looking for.
- Use images or gifs — either a product logo or banner, preferably something that showcases the product. Don’t abuse images. Otherwise, you won’t have a point of focus.
Don’t be lazy just because this is for developers. Developers are human too, even though some might argue with me on this 😄.
Be clear about what you need
Let people know you want them to get involved, contribute, or make suggestions. As GitHub says, you should actively seek contributors.
We created some issues with ideas we had on our TODO list. The issues on GitHub are not limited to the meaning of the word issue. They can be bugs (indeed issues), but also new features. Besides these, we have code that we know it can be improved and topics we’d like to discuss with our users. These are good starting points for any conversation.
Finally, we labeled them
good first issue,
discuss. Some labels are more than just guidelines for visitors. GitHub encourages users looking to contribute to find issues and pull requests labeled
help wanted and
good first issue. They indicate projects that are actively seeking contributors.
Get people to the GitHub page
After your GitHub repository page is all set up and looking good, bring people there through any and all methods. Creativity is the only limit.
We added several buttons on our website to redirect people to GitHub. We either asked for feedback, asked for a star, or just used the GitHub star button. For example, our website is still the top referring site, although we had lots of other referrals for our GitHub repository.
Be where developers are
First of all, developers are on GitHub, so add topics to your repository. They will make your project easier to discover, and will help developers find projects in their subject area or find a solution to a specific problem.
Secondly, listing your project on popular package managers is an excellent way to get in front of your audience. If your project is for front-end developers, then checkout NPM and CDNJS. Choose the package manager based on what programming language you’re using. For example, Ruby developers are using RubyGems, for PHP we have Composer, Python comes with PyPi and .NET libraries are posted on NuGet.
Ask communities for feedback
Don’t be ashamed to join new communities on Facebook, Google+, and LinkedIn and ask for help or feedback. But this might quickly turn into spam and drag you down if you’re not doing it correctly.
So don’t be spammy. I would recommend doing this only in communities where the guidelines allow you to do so. We were already active members of most communities that are specific to our products. We also posted custom messages and photos in every community according to their particularities.
If you have a landing page and people subscribe for your product, then now is the perfect time to get in touch with them.
We had a subscribers list of over 2000 people that we contacted, letting them know about the new product launch. I would recommend that you use an automation tool for email marketing to avoid any unpleasant surprises.
Add a tweet button
Twitter is one of the best channels to spread the word among developers. That being said, having them write something on their own adds an extra step to the tweeting process.
Help them easily share a tweet about your project by adding a tweet button, with a predefined text, next to the title of the README.
Below is the code we used for our tweet button, and you can customize it by changing the text, url, via, and hashtags parameters.
Little to no advertising
Advertising is another channel to bring people to your GitHub repository if you have the money for it. Keep in mind that you can’t buy stars. Traffic coming from advertising will only star your project if they like it. If the other channels I told you above work well, there is no reason to do advertising.
The only money we spent was $3/day on a Facebook ad. We kept it active for five days, so that would be a total of $15. It was only meant to kick-start the project and get the first hundred stars. While it might have worked in the first two days, the other three were a waste because our product already gained enough traction.
For my next GitHub project, I would invest a little more, but only in the first couple of days to get it spinning faster.
Free and open-source
This is a highly influential factor. While most of the people just star free projects out of respect or appreciation, others will strongly argue about starring a paid project.
Froala Design Blocks is free and open-source, and this helped us a lot. By comparison, our other product, which is paid, but used and appreciated by top tech companies, doesn’t have the same GitHub popularity.
GitHub trending repositories
Getting in the list of trending repositories is the hardest thing to do. You are competing with developers all around the world. It might be easy to get to the top of one language, but being the very first one is not for everyone. The steps above should help you achieve this. Once you’re there, you’ll have better visibility and you will grow organically.
Firstly, early adopters are keeping an eye on the list. Secondly, GitHub Trending will post on Twitter about you, and others will pick up the news.
Accept negative feedback
People are different. Every one of us has different needs and tastes. If you have a popular project, be prepared for negative feedback. It can either help you make some enhancements, or you can accept that some people have different preferences and others are haters.
Embrace negative feedback and try to understand why you got it in the first place. There will always be people who would never use your type of product. If you can use the feedback to improve your product, then do it. Otherwise, never argue with other people.
Be cautious with weekends
During weekends GitHub traffic is lower. Depending on whom you are targeting with your project, it can be a good or a bad thing to make your project public at the end of the week.
The traffic is low for all projects, not just for yours. Weekends will not have a negative impact on your project, but it might postpone its growth.
Freelancers and early adopters are more active during weekends. If you’re targeting them and you are sure they will respond, then you might have a chance to get in the GitHub trending list faster.
“Why?” is a fair question to ask since you’re going through so many hurdles for some GitHub stars. I made a short list about how this helped us, and could also help you.
Get traffic. GitHub is currently our number one referral for the Froala Design Blocks. No matter how much you invest in SEO for your domain, it’s a very long way until you can rank as well as GitHub.
Learn from GitHub fellows. GitHub is one of the most important channels when it comes to learning how to code. Despite that, it’s frequently overlooked or underestimated. As a developer and a startup founder, I believe getting your project popular among other developers provides an unlimited resource of programming knowledge.
We discovered new concepts, technologies, and ways to improve the existing code from the feedback and contributions we got.
All in all, this helped us shape a better product and, at the same time, refine our tech knowledge.
Grow a community.
Remember, we all stumble, every one of us. That’s why it’s a comfort to go hand in hand.
— Emily Kimbrough
Increase your reach. People will also start following you on social networks. This translates into a better reach next time you want to post something.
Inspire trust. Except for early adopters, developers tend to be influenced by the popularity of the project they plan to use. The number of GitHub stars is a reliable indicator, among other things such as the number of issues or active contributors.
Sense of accomplishment. Besides the practical whys, there’s also the feeling of a great accomplishment as developers when we see our projects used and starred by thousands.