Even though you don’t charge people anything for using it, you still need to promote your project a little before it takes off. How else would anyone learn about it? People are busy these days and with so much open-source code, the competition for contributors is pretty stiff.
In the past two posts of this series, we defined the target audience for our project and made sure it’s accessible enough if people decide to use it. This is the third part of the Marketing for open-source projects and it’s focused on spreading the word.
Catch up on previous posts
The idea is simple: you need to get it in front of the right people at the right time when they need to know about it. Each program has very specific functions that only a fraction of users will find useful. Don’t spam as many people as possible. Instead, target your efforts to communities that will benefit from knowing about your project.
Let’s say you made a backend framework, like ExpressJS. You probably want to target people who make websites. Even better, you want those who are thinking of making a website, but haven’t started yet. The rest will be like "Oh, cool!" and then stick to using Sinatra or Flask, because all their current codebases use it anyway.
That is what us programmers are good at. Why not use it to your advantage then? You made your project to solve a problem you had been having and it’s likely that others are dealing with exactly the same.
Make content about the problems your project solves. What it does really well? This may mean writing articles, making videos, podcasts, lectures, leading courses. Whatever you prefer. Text, however, still has a big advantage because it’s permanent and easily searchable.
You can publish these at a number of places — your personal website or a blog on Medium. You can also submit a guest post to an established blog in your niche.
Then share your article with the communities that you think will find it useful. This may include discussion boards, mailing lists, Gitter channels, Reddit or Hacker News. Be sure that the community welcomes these sort of submissions (some subreddits don’t allow links) and be extra careful with mailing lists. People can be sensitive about what they receive in their mailboxes.
If there are many channels for your niche, don’t spam all of them with the same piece. Pick 2-4 of them. If it’s good, it will spread naturally.
Keep the frequency reasonable and adjust it based on the response. Do people love it? Great! Write a follow-up next week. Not so enthusiastic? Then try somewhere else next time and maybe come back later. The response will be better if you participate in that community in other ways than just posting your stuff.
When answering, always elaborate on the subject to give a bit of context of how your solution works and possibly enumerate the other available options. That might be more time consuming than just throwing links around, but you often will be able to turn your answer into a blog post later on.
These boards are excellent ideas generators. Want to know what problems people have? Look at the questions they're asking.
Working with others
Your project doesn’t exist in a vacuum. It is built using some third-party libraries. There are other things that it can plug into or cooperate with. Tell people about how you use the libraries and show them how to combine your project with other tools.
Tailor your content for the members of the communities around these projects and if it’s useful, people will look at it. While you’re piggybacking on the popularity of an existing project, you're also spreading the word about it.
Unless you’re trying to stir controversy, there’s no reason why the authors of those projects shouldn’t be pleased about you writing about them and they might even share it. "Wow! Someone made a robot using my library? Cool!"
Don’t put down work of others to lift yours up. You probably think that your project is the best, right? That’s why you made it and it may well be true. Comparisons are fine, but don't say things like "Unlike RottenWatermelon JS, this framework has a sane API," or "For years we had to put up with the utter piece of crap that is OMG++. Today, I’m opensourcing Gobbledygook, the programming language for the 21st century."
While controversy might bring you attention, it won’t create a friendly environment for your community to grow. Remember, in 5 years time, your project may be the severely outdated technology that someone else will be replacing.
Coming up next
Your project is out there, getting it’s first users and gathering the first fans. Exciting! Keep at it and your efforts will surely pay off. The next time, we’ll take a look at turning users into contributors.
Next post: 4/5: Turning users into contributors