Starting an open source project

Header image for the checklist about starting an open source software project

Checklist

Basics

Project name

If you want to successfully promote your open source project, the foundation needs to be right. Did you already choose a project name? In that case, hopefully you picked a good name. Otherwise, follow the following tips to select a powerful project name.

  • As short as possible
  • Easy to pronounce and remember
  • Is the domain name available?
  • Tool name may hint on what the tool will do

Introduce your project with a description

Without a clear description, your project will find a hard time to get traction. Most new users to a project want to understand what a tool does and what problem it tries to solve. They also want to know what is expected from them to use it. Some tools will be focused on Average Joe, while others are for that technical pentester that only needs a few words to start using the tool.

  • Explain what the tool does in simple words
  • Share examples of the problems it solves
  • Describe the audience of the project

Using the right language

If you are not a native English speaker, it might be attracting to describe your project in your own language. By doing so, you introduce a language barrier for many others. In the end it will also impact the number of users that can use your software. So use English as the standard tool language. If you like to add your native language, then make your tool modular with the option to select the preferred language.

Most software projects are created by people with a technical background. One of the big mistakes is the usage of jargon and abbreviations. New users are often not familiar with them and might be turned away by them.

  • Use English in descriptions, documentation, and your code
  • Avoid jargon and replace these with simple common language
  • When using abbreviations in a paragraph, use the full description the first time

License

During hundreds of tool reviews, we saw a repeating issue: projects without a license. Even if you share the code, that doesn't make it automatically open source software. Users may actually be forbidden to use the software by law or company regulations. So if you like your software to be used by the community, provide at least a license.

There are many licenses available, often closely related. It is the fine subtilities that define what license matches the best with a particular project. For example, you want to ensure that every bit of code used from your project stays open. In that case, the GPLv3 license might be a good bet. If you rather want others to reuse your code and not restrict how it is used in other software, then Apache 2.0 could be a better match. Don't care how people use it, as long as they mention your project or your name? Then one of the BSD licenses makes sense.

Ownership

First-time visitors to your project page will be curious. They want to know what the tool does, if they are the right audience, and they even want to know who created it. For that reason, use your real name and link it to the project. It will give users more trust and might be a good career booster for yourself.

Using your real name together with your social profiles (LinkedIn, Twitter, etc.), can be a good way for personal branding. Most technical-oriented people are not good at selling themselves. If you created something like a tool, website, or otherwise useful resource, let others know. Also, don't be shy when it comes to your code quality. Experiment, learn, and improve it along the way. It might even attract contributors and boost your project.