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.
Taking donations to the next level
There are platforms created specifically to help freelance creators who work solely based on donations.Patreon lets you build an entire community around your work where supporters can make monthly donations (just like you’re being paid a tiny salary). If you build a large enough community, you can turn those donations into a living. What many creators do with this platform is provide free products to the larger audience outside Patreon while giving premium service to those interested in paying even a small amount. This translates into exclusive content, which again translates into extra work, so be mindful that, although the Patreon way can be very profitable, it also implies an increase in workload. Such an approach would only be recommended to those who are committed to turning OSS into their main income stream.
One final thought about this point: Whether you’re trying to monetize your activities through asking for donations or if you’ve decided to go all the way and sign up for Patreon, you’ll need to create a community around you. Getting donations is more about connecting with your users rather than just making your open-source products available to them. Yes, they need to be able to check your software and make use of it to the point they find it very useful, but if you want them to spend money when they don’t have to, then they also need to understand the importance of helping you directly.
6. Sell enhancements/plugins for your OSS projects
Finally, the last way to make money from OSS is through selling paid modifications to existing (and potentially third-party) software products. An example of this would be developers selling WordPress plugins. You, as a user, can download and install WordPress without spending a single dime and you’d be able to launch your site. However, the plugin ecosystem that’s grown up around this product over the years provides you with a plethora of options for modifying or enhancing your existing installation.
Other examples of this money-making strategy are Sidekiq and Blender: Both products follow a similar pattern, in the sense that they’re both open source and free to use but there are extensions you can buy to improve them.
In the case of Sidekiq (which is an open-source background-job framework for the Ruby programming language), its creator has built a company around a free product. How? By providing extra functionalities and support levels to paying customers, such as Sidekiq Pro and Sidekiq Enterprise.
Blender does something similar by selling a complementary service related to its main product: Blender Cloud. You don’t need the cloud subscription to use its product to its full extent, but by signing up to it you gain access to other products, such as training videos and extra features regarding back-ups and synch-ups between your local files and the cloud.
When it comes to your own money-making strategy, you can either write your own OSS in a way that means it can be extended later through the use of plugins (or similar mechanics), or you can simply pick a piece of software that was already designed that way and take the time to learn it, study its community, and understand what the needs of it are and how you can help them.
That’s it for the best ways to make money from your open-source activities. As you can see, coding is not always required, but the main point you should be taking away from what we’ve outlined here is if you’re hoping to make considerable money from these activities, even to the point of making a living solely from them, it’s going to take time and will require effort in areas other than OSS, such as building a community.
This article is part of Behind the Code, the media for developers, by developers. Discover more articles and videos by visiting Behind the Code!
Want to contribute? Get published!
Follow us on Twitter to stay tuned!
Illustrations by WTTJ
More inspiration: Career hacking
Because being a developer is not just about coding, we want to share dedicated tips on soft skills and career paths, help you stay up-to-date with your favorite technologies, and learn more about the job market.
Computing’s Gender Divide: Why Tech Is Stuck in the 1980s
Discover why the percentage of women who held computing-based jobs has been in a steady decline since the 1980s.
Sep 14, 2020
5 Remote-work Lessons From the Open-source Community
The open-source movement has a few things it can share about remote working with the wider software-development community.
Jun 09, 2020
2019 Stacks Report
The most-mentioned technologies in the job specifications published on WTTJ's website in 2019 and the average number of applicants per technology.
Apr 21, 2020
Engineering Management: An Interview with Saad Rehmani
Saad Rehmani, the VP of Engineering at Reddit, shares his most effective management strategies to handle the COVID-19 crisis.
Apr 07, 2020
Engineering Management: An Interview with Rich Archbold
Rich Archbold, the VP of Engineering at Intercom, explains how to develop a management style and how to transition to managing other managers.
Mar 17, 2020
The newsletter that does the job
Want to keep up with the latest articles? Twice a week you can receive stories, jobs, and tips in your inbox.
Looking for your next job opportunity?
Over 200,000 people have found a job with Welcome to the Jungle.Explore jobs