Promoting open source projects

Image of growing seed related to checklist for promotion your open source project

grow your community and increase the value of your tool

Introduction

Good open source projects are more than just their code. There is also providing support, community building, and doing promotion. Most developers are more passionate about programming than the fine details of marketing. Learn how to become better at PR (for techies!).

Hosting

Basics

Location

SourceForge was a well-known location to host your open source project in the past. Nowadays, it is GitHub and GitLab that host most of the open source tools. While both look similar, it is GitHub that still hosts the most projects.

Going with GitHub for hosting your project is a safe bet. The first reason is that their domain has a high value to search engines. Another benefit is the public API. This allows external services to discover your project and see when new releases are available.

Description

When using GitHub, there are two places to add a project description. One is at the top and allows for a few lines of text. This text is also added to the title of project and visible when sharing the project on social media. By properly filling in this description, it can help greatly when the project is shared.

The other description area is by adding a 'readme' section. Typically this is done by adding a README.md file. This allows for almost unlimited room to explain what the tool does.

  • Fill in the project description text (at the top)
  • Show the purpose of the tool in the first part of the description
  • Add a README file to the repository

Optimize the GitHub project

Promoting a project needs to be done on every location possible. If you decided to use GitHub to host your open source project, this is a great place to start with optimization. GitHub allows you to define a short description at the top. Some software projects only use the name of the project itself. Obviously, this is a missed opportunity. Start here to rewrite the description and explain the outcome for a potential new user.

Besides the description, GitHub allows up to 20 tags to be added. So if you created a security tool, add a tag and start typing 'security'. The website will show all tags starting with the typed word. Be creative in what tags you use, while making sure that they are relevant and used more often. It does not make sense if your tool is the only one using a particular tag.

  • Optimize the project description
  • Add relevant tags to the project

Software packages

Using a package to promote

Discovering new tools happens via different ways, like spreading by word of mouth. Some users learn about new tools by those that are available in the software repositories. So it might be a good long-term investment to create a software package for the well-known Linux distributions. Another benefit is that packages are typically also indexed on websites, making it even easier to discover the project. With a bit of luck, they even might link to your project page.

Maintaining different package formats can be time-consuming. The biggest challenge is getting to know the right processes for each distribution. Finding a few package maintainers that are familiar with the process is therefore advised.

Check descriptions and status

When you optimized the description on GitHub, website, and other pages, it is time to review descriptions by others. The Repology project has software to gather the latest details on many types of packages. This includes the different formats for Linux, services like Brew for macOS, and ports on FreeBSD.

Promotion

Reaching out

When the basic tuning has been performed, it is time to go into active promotion. This will involve reaching out to others, interact, and tell passionately about your project. The first thing to acknowledge is that works better for some than for others. So if you intimidated to talk to people about your project at a conference, then it still might be an option to do regular Tweets with tips on how to use your tool. Let's dive into some options.

Social media

Social media platforms provide a gateway into the time and attention of others. By using it properly, you can tell people about your project, without being too pushy. As there are different platforms, the first step is to discover which one works for you.

Many open source developers can be found on Twitter. The platform is ideal to share quick updates, which are also expected to be small. Some open source projects even have their own bot account, that help users with useful tips.

Facebook has a different audience. It may work well for more in-depth discussions. Still, a technical audience is typically more active on other websites, like Reddit. Reddit has the focus on sharing new discoveries and can be a good place to do a little bit of tool promotion. The same for Quora, although that is more oriented to solving questions. It goes without saying, but spamming is unwanted on all websites.

  • Answer questions on Quora or interact on discussions via Twitter
  • Share an update on LinkedIn with the latest news about your project
  • Request via a Twitter poll if a new feature would be useful
  • Create a social media account for your tool that shares useful tips

Writing and blogging

Besides coding, do you like to write? Then maintaining a blog can be a great asset. It can be used to showcase the tool or answer frequently asked questions. Since a blog is not limited in space, you take the time to share an insight and include relevant screenshots.

Blogging is definitely an activity that takes time. At the same time, it can be very rewarding. It allows you to build a personal brand, by displaying your expertise. It is not that uncommon to see people get hired because of their expertise with a specific tool or subject. If you are the creator of a tool, blogging can be a good investment for the long term.

Another option is just doing guest blogging or writing articles. With this method, you leverage an existing network. The has a high potential of getting your name and message to a wider audience. While online resources are great, people still read magazines. Getting published in a magazine is a nice achievement and can be good for your resume.

  • If you already have a personal website, add a blog section
  • Find existing blogs that accept guest bloggers and target your audience
  • Submit an article suggestion to a magazine

Presenting

One of the best methods of promoting your project is by showcasing it. There are multiple options, from a normal 45-minute speaking slot, up to a workshop or demo. Whatever the format you choose, it is a great way to show people what your project can do. Be prepared to receive feedback and relevant questions.

If you have an open source security tool, consider submitting to the Black Hat Arsenal or DEF CON Demo Labs.

  • New to public speaking? Start with small venues, like a local user group
  • Don't be afraid of questions, but embrace them and encourage people to ask everything
  • Create stickers or a business card for your tool, so you can hand them out

Podcasts

Instead of written text, the spoken word can be as powerful. One option is to get your tool covered by a podcast that talks about open source tools. Several Linux podcasts cover useful tools as part of their weekly or monthly discoveries. Why not help them a hand and pitch them your tool? Such a pitch should be to the point and concise.

Like a podcast, an interview is another good option. The interviewer will ask questions, and you get the chance to tell everything that you want. This format works well in addition to the written version. Still, the spoken interview has the benefit that it tells a story. People may get used to your voice and relate better to a story than written lines of text.