Open source is bringing people together to change the world. But how can you get a job in open source? How can your company hire and engage more effectively with open source developers? And if you work for an open source project, how can you ensure your community is healthy and that it grows and thrives? Andy Updegrove answers these questions from his deep experience as a lawyer, open source advocate, and software developer in How To Make Money In Open Source.
Open Source is an incredibly powerful tool to solve business problems, the problem is finding the right business model and mindset to leverage that power. We don’t often hear about how to make money in open source and yet thousands of companies are doing it, from hobby projects to large multinationals.
Offering paid support is one of the most straightforward revenue streams for all kinds of open source projects. As a project maintainer, you have a lot of knowledge about the codebase. This puts you in the position to offer consultancy or support services to companies that want to use your code.
On the other hand, offering paid support doesn’t provide a scalable business model for open source projects. Because most projects are maintained by a few developers, there’s limited time for them to offer support to companies. Bear in mind the time required to improve the functionality and maintain the codebase.
In conclusion, it’s an effective way to earn some money as an open source maintainer and keep the project going.
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.
Create a video course
Creating one single video or a full course where you teach how to use an Open Source product is a great way to:
- Start building an Online Presence.
- Educate people and create a community.
- Present yourself as an expert of such a product.
- Monetize your content.
If you are just starting out recording videos, a YouTube channel might be the best choice, as you’ll need some practice to feel comfortable in front of a camera.
On the other hand, if you’re already an experienced teacher and/content creator, you might want to create a fully-fledged course and sell it on platforms such as Udemy or SkillShare.
Sell Value-Added Enhancements
Although the basic open source software may be free, you can create and sell add-ons that provide additional value. For example, the open source WordPress blogging platform includes support for themes or visual layouts. Many free themes of varying quality are available. Several businesses have come along, such as WooThemes and AppThemes, who sell polished themes for WordPress.
Either the original creators or third-parties can make and sell enhancements for open source projects, making this option a great opportunity for making money.
Software as a Service
An open source project that has generated plenty of demand can choose to offer a Software as a Service (SaaS) business model. This model is most viable for projects that offer a complete application, such as a publishing platform, monitoring tool, or marketing automation tool.
Developers can choose to host the software themselves. However, this means that they have to take care of security, security, and maintenance.
It’s often much easier and cheaper to pay for a managed offering under a SaaS model. Developers pay a monthly fee to use the hosted solution. Therefore, they can focus on the tool itself instead of all maintenance-related tasks. Moreover, a marketing or content team often doesn’t have the required technical knowledge to host a solution themselves. For that reason, a SaaS solution is a great alternative to make money from open source software.
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.
Open source code is just that — source code. In some computer languages, such as C++, the source code cannot be run directly. It must first be compiled into what is called a binary or machine code. Binaries are specific to each operating system. Depending on the source code and the operating system, compiling into binary ranges in difficulty from easy to difficult.
Most open source licenses do not require the creator to give away free access to compiled binaries, only to the source code. While anyone can download your source code and create their own binary, many people either don’t know how or won’t want to take the time.
If you have the expertise to create compiled binaries, you can legally sell access to these binaries for different operating systems, like Windows and macOS.
Paid Feature Requests
It’s not easy for smaller projects to earn revenue. Often, these developers have a daytime job besides maintaining an open source project. Therefore, they are limited in time to maintain their project.
Yet, if you happen to find a couple of companies using your project, you can offer paid feature requests. In other words, you develop new features based on a company’s request. In return, they pay you for developing the features they want.
It’s one of the most straightforward models to make money from open source software. Even a small project can find a few companies that are interested in using their open source software. Often, it’s cheaper for them to hire you as a freelancer to develop the new functionality they need than having their developers spend time figuring out the codebase and adding new functionality.
Suppose a company forks an open source project to add new functionality themselves. In that case, this means they’ll have to maintain their fork and merge new updates from the original codebase to their codebase. This can sometimes become messy and increase maintenance complexity.
Learn how open source and sustainability intersect in this interview with Dawn Foster, from Canonical. She digs into the economics and business models that can support open source development and makes the case for open source sustainability as a key foundation to innovation.