Spreading the word about your open-source project

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.

Solving problems

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.

Answering questions

If your project solves a very specific problem, it might be worth watching the
places where people ask about them, like
StackOverflow or
Reddit, and help them out.

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!”

Play nice

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

Source: Radek Pazdera