Open source projects are great projects to choose when you want to make your mark in the software development industry. There is much that you can learn from these types of programs as there is everything to gain if you put your best foot forward. The following information will teach you how to promote your open source project.
When you are working in the open source project almost every day, it is difficult to get new contributors when you need them. I was in a similar situation during my work with cvxopt project. I would like to describe how I converted an unknown student into a serious contributor.
Ease into self promotion with shameless plugs.
Start off with a disclaimer at the beginning of the message you are preparing to send out to your audience; tell them that what you’re about to say is self promotional. I’ve found people are not offended by this and are grateful for your forethought—particularly on mailing lists. Not to mention, most of your peers have probably been there too and understand.
Personally, I use the shameless plug all the time and there are two things I do each time. First, word things in a straight-forward way, remove the gimmicks and marketing fluff. Second, I consider my audience. Are these people that know me well? Or a new audience where perhaps some tip-toeing is needed to test the waters?
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.
Common points of failure in marketing
“Even so, marketing often fails to happen in open source. A common reason is that many people in tech despise marketing. But you shouldn’t automatically recoil from the mere mention of marketing, because you need to be doing it if you want to survive. It will be difficult to do marketing well, if you go into it thinking it’s sleazy,” Deirdré said.
Sometimes resistance to marketing comes from a literal machismo, according to Deirdré. Marketing is considered a soft skill, a job for women, as opposed to the (ahem) “manly” work of coding. It is perceived as a lower-status role (until you get to the VP or CMO level). Other reasons for lack of marketing involve lack of funding, or simply the fact that nobody working on a project happens to know how to do it.
At its best, Deirdré said, marketing helps people understand what the technology is about, and how they can use it. It is a form of communication that is informative, truthful, convincing, and even inspiring.
Use the buddy system
A great way to overcome the anxiety of most things we do for the first time is to find a partner. Someone who will share the load, support us when we need an ear, and help us figure out what to do next. This person can do a variety of things to help, like listen to your message and suggest people you should connect with.
Nowadays, people will crowdsource their ideas to social media, perhaps finding a few like-minded folks to connect with and pitch their idea to. This is key: return the favor. Promote their progress and accomplishments where it seems fit. You want this to feel organic, not forced. Don’t over do it; it’s a delicate balance that’s dependent on each person or group in the relationship.
By buddying up, it’s easier to overcome any shyness and build a network. Over time, you’ll create a valuable resource of people you can count on for future needs. Again, do what feels the most natural, you don’t want to abuse the relationship.
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.
Highlight your contributions.
In Nathan McMinn’s article, Need a resume boost? Get involved with an open source project, he discusses how the value people bring to open source projects are ripe for recruiters because of the natural visibility (due to transparency) of an open source landscape. Pick a recurring time (weekly, monthly, or quarterly) to publish the work you do and promote yourself. Look at it this way, if you’re contributing your work to the world, the least you can do is build your resume.
Alternatively, maybe your project has a newsletter that can perform a similar function. The project leader or project manager can piece together different contributions and highlight different contributors. This serves two purposes. First, it’s a great way to thank contributors—we all like to be thanked now and then don’t we? Second, it gives credit where credit is due. And in the open source world, our street cred is part of our resume.
You want to give back and help to improve the world of open source? Here’s how you can start developing an open source project, how you can help it grow, and how you can get the community involved.