This guide offers a variety of suggestions for promoting your Github project outside your company, in the open source community. The general rule is to do good work, and then let other people recognize it. This guide describes many techniques that can help you realize that goal.
If you have a Github project and want to get more users, one of the best ways is to help other people. When more people use your project you will likely also get more contributors. What can you do to make this as easy as possible?
First impressions matter
Later in the article we’ll talk about how to actually reach people, but first, it’s crucial to setup a nice landing page. For the majority of projects, a nicely written Readme on GitHub will serve the purpose just fine. The important things to include are:
- A screenshot of the project, or even better, an animated GIF
- A general description, explaining the project goal and the features
- A getting started section, explaining the minimum amount of steps required to use your project
If you want to take it a step further, building an actual website is a good idea. Nowadays, building project websites is pretty easy (as well as free), thanks to modern tools and services such as Jekyll and GitHub Pages. I personally took this approach with espanso by building the website, which has proven to be an effective way to attract users.
SEO tips for promoting your GitHub project:
The phrase, that you’ve created, should point to your GitHub repo inside the README. If you have a home page you can also create a link with a catchphrase to your home page. To look normal you should put it at the top of the README. If you have a home page for the project (you can use GitHub pages) the top link should be the website. But you can also put a link to your git Repo later in the README. Also, put some keywords in the anchor text.
Why this is important? It’s because your GitHub repo will be replicated on other websites and your README will be shown in different domains. So you can take benefits and get free links to your project that will improve the SEO. All you have to do is to update your README.
Make users’ life easy
I’ll never stress this enough. How many times have you enountered a super interesting project and wanted to try it out, just to later find out that to run it you need a 3gb compiler as well as all the required libraries. This problem is especially painful in languages such as Java, Golang, C or Rust, in which the compilation process can be far from trivial.
There are many possible solutions, ranging from the easy to the complex ones. If you are using a compiled language, the bare minimum I would recommend is creating prebuilt binaries for the OS you are targeting, so that users can try out your project without installing the whole build system.
A more complex step could be integrating with package managers, so that the installation becomes just a couple of commands in the terminal. The situation here really depends on your target. For example, getting a package in PIP or Homebrew is super easy, whereas publishing on APT (the official Ubuntu/Debian manager) is an enormous task.
Another important detail which is often overlooked is documentation. Unless your project is super trivial, you should write instructions on how to use/configure it, even just a section in the Readme. Ideally, users should never have to read the sources to understand the basic functionality, because most often than not, they won’t even try and will leave the project instead.
So how to get started promoting your Open Source project?
First, you should optimize the content of your git repository, most of the time it will be GitHub repo (but you can do the same with any other git hosting).
The first thing you can do is to come up with the catchphrase that will describe your project and also will have some keywords in it, here are an example of mine:
Those two project catchphrases also contain the keywords:
When you link to your project from other sites you can use this phrase as a link text (usually called anchor text).
Reddit is your friend and enemy
When it comes to promotion, social networks are usually the first place to go in order to reach potential users. Of course, every social network has its quirks, and some are more versed to software than others. From my experience, I can tell Reddit is the most powerful one, as well as the most dangerous. In particular, promotion there has to be done very carefully, as a spammy behavior will trigger waves of haters against your project.
The easiest way to get some early feedback is to post your GitHub page on r/coolgithubprojects and r/opensource. Then things get a bit tricky, as posting on other subreddits would usually result in a ghost ban. To overcome this problem, the key is to provide value. Does your project solve some interesting technical challenges? If the answer is yes, it may be a good idea to write an article and posting it on a related subreddit. Inside the article, you can mention your project, so that new people get to know it, without looking spammy. For example, because I couldn’t find any resource about publishing a Rust project on Homebrew when working on espanso, I decided to write an article about the process and then I published it on r/rust. In this way, you are providing value to the user without being spammy.
Promoting your GitHub project is essential to its success. You need to share your repository with fellow developers and the public.