Many developers run passion projects on the side because they really find value in them. Whether the motivation is personal growth, the ability to help others through their tools, or simply to develop a crazy and fun idea, they are happy to work on them after their paid job is done for the day. Why, though? You can’t make a living from an open-source project—everybody knows that!
However, this is probably one of the biggest misconceptions when it comes to open source. When you think about it, most of our day-to-day work relies on open source, in ways that include using free tools to help us automate a task (how many of you have used Jenkins to automate your continuous integration?) and libraries that already do what we were looking to do (are we talking about ReactJS? Vue? Log4j? Yes, yes we are).
Right now, the software industry is largely dependent on open source, yet the field is often perceived as being a financially unrewarding one to work in. In this article, we look at the common ways (adaptable to your own context) you can make money from open-source projects.
1. Bug bounty programs
Bug hunting, or as it’s usually known, bug bounty programs, is a way of earning money either by reporting errors on other systems or by solving them and submitting your pull requests with the code that fixes them. These programs are usually part of the entire vulnerability audit of the software being tested and accompany other internal processes the developers are implementing.
There are very big companies who submit their products for this type of treatment, and when we say “big,” we’re not kidding. With a basic search, we can find some interesting options, but in order to keep with the theme of “making money from open source,” here are some examples of high-paying organizations with bug bounty programs on their open-source products:
- Mozilla: They have two main programs, one for their actual software and one for their websites. Offering to pay up to $10,000 on the first one and up to $5,000 on the latter.
- Apache: This web server is probably known to most (if not all) back-end developers. Through its program it pays bounties of up to $3,000 to those able to solve the most critical bugs.
- Google Android: Also interested in making the most stable and secure mobile OS out there, Google offers up to $150,000 dollars for the most critical problems found and solved (yes, you read that number right).
There are many different lists of bug bounty programs, but you can find a good, up-to-date one on this website. Overall, this option is quite lucrative if you are able to put in the hours. That being said, you also need to specialize your knowledge and focus on security bugs if you want to reap the big rewards.
Last but certainly not least, aside from bug bounties, you can also get paid by fulfilling OSS (open-source software) bounties over at BOSS, a relatively new initiative that has lots of potential. Here, project owners can submit development tasks that they pay for on completion. This is certainly not as lucrative as the above programs but also requires less of a focus on security and can be tackled with a more generic software development profile.
2. Provide support
This option is definitely one of the classic ways of making money from your own and others’ open-source work. It involves selling support for OSS products, ideally your own libraries, frameworks, or any other type of system that is free to use for others.
Usually, OSS maintainers perform basic support for their products, but that can vary depending on a lot of issues, such as:
- The popularity of the product. The more people use it, the more motivated its creator will be to fix its problems.
- The number of issues the product has. Following on from the previous point, the more issues a popular product has, the more work its maintainers will need to do.
- The amount of time the creator or the maintainer of the code has. This is crucial, as normally OSS maintainers don’t get compensated directly for their products, which can directly affect the type of support they provide.
This is where you come in: If you decide to start providing support for a piece of OSS, you can charge others for the help they need and aren’t getting (for free) from the original author. The type of tasks the word “support” stands for can be anything, so you’ll need to be specific. Here are some examples:
- Help in basic installation or usage.
- Code and bug fixing.
- Adding new and extra features.
- Written documentation (e.g., books and tutorials).
Just keep in mind that if the support you’re offering includes some form of code change to the OSS, you’ll need to check the license that product was released under to make sure it supports that type of activity. And, of course, you’ll have to maintain your own copy of the product—you can’t just modify the author’s original source code.
3. Make it your calling card for companies looking to hire
Now this one is a bit of a curveball, mainly because it isn’t a direct way of making money from any OSS products you might release. Instead, it represents a way for you to use the popularity of one or more of your open-source products to give you access to companies you normally wouldn’t have.
Maybe you’ve been wanting to get noticed by Microsoft but haven’t had any luck with your job applications. A good option might be to make some useful contributions to its open-source products, such as TypeScript—you could become a regular maintainer for its main product, creating some good OSS support tools (e.g., frameworks around TypeScript or tools to automate the development process), or even one of the main authors of its product.
Whichever way you choose to do it, if you provide quality content for the community that has grown up around a particular open-source product, you’ll get noticed and thus, companies will find out about you and might even consider hiring you to work on their products.
4. Sell associated content
Following on from point #3, you could also look at writing content for OSS rather than maintaining it or providing direct support for a product. If this sounds appealing, look for popular, or even quickly rising, OSS products and start creating user tutorials for them.
Here are a few examples of how you can create content for OSS products:
- Write and sell books about them. This can be done both through self-publishing or by pitching topics to publishers. The latter will take care of the editorial process and publishing steps, letting you focus on the writing. You’ll have to split the earnings with them, of course, but it will be worth it.
- Create video courses for platforms such as Udemy and Pluralsight. Doing this will generate passive income in the same way books do after you’ve published them. Plus, these platforms usually provide video training.
- Write sponsored posts about the products. This does not mean the owner of the open-source product will always pay you to write these posts, rather that some blogs will be interested in the topic and will be willing to pay writers to provide content about other topics.
In all these cases, it’s important to understand that, to make money from an open-source product, you don’t really need to write code. You can provide user-specific content based on these products and still make money.
Getting the users of your open-source product to pay you a fixed salary every month might sound like a highly unlikely scenario—after all, who are you to demand a monthly salary? By definition you’re releasing your code for others to use for free. While that’s true, many coders are requesting voluntary donations from those using your products.
Examples where this is happening include:
- ChatSecure. This free chat app for iOS states clearly that it receives different types of donations.
- Git. Yes, this extremely popular open-source tool can be used for free, but it also clearly states that it accepts donations via PayPal or even checks.
- Transmission. This BitTorrent client discreetly adds the option to make a PayPal donation at the bottom of its homepage.
There are many ways you can ask for donations and, depending on the popularity of your product, you’ll get different results. Remember that only a relatively small percentage of your users will care enough (or even have the funds) to actually contribute.