The amount of money you can make from open source code depends on several factors. First of all, the popularity of your open source project plays a significant role that determines your possible revenue. On top of that, adoption and credibility play an essential role.
Credibility can be expressed in various ways. How fast do you respond to new issues? Do you frequently maintain the code? It’s unlikely that an infrequently maintained project will receive a lot of adoption. Therefore, monetization chances will be lower.
However, there are plenty of monetization options you can employ — even for projects with low adoption.
Here are six methods you can employ:
Software as a Service (OpenSaaS)
Paid feature requests
Get paid to build open source extensions for existing products
1. Paid Support
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.
2. 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.
3. 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.
4. GitHub Sponsors
Since May 23, 2019, GitHub introduced GitHub Sponsors.
“The world runs on open source. None of it would be possible without the global team of maintainers, designers, programmers, researchers, teachers, writers, leaders—and more—who devote themselves to pushing technology forward. These extraordinary developers can now receive funding from the community that depends on their work, seamlessly through their GitHub profiles.”
The primary benefit of using GitHub Sponsors is that they charge zero fees. 100% of sponsorships go to the developers. The feature aims to reward developers for maintaining free software. Yet, alternatives exist to receive sponsorships, such as Open Collective or Patreon.
(Source: Babel sponsors on GitHub)
Sponsorships are a great revenue stream for well-established open source projects that require more funds to stay afloat.
5. Get Paid To Build Open Source Extensions for Existing Products
Building open source extensions for existing, often paid, products can be an interesting path to explore for many developers. Did it ever happen to you that you paid for a service you wanted to integrate into your project, but the project didn’t offer an SDK for your programming language? In this situation, you had to write all API calls yourself.
However, some developers take the extra effort to develop an SDK for their programming language that wraps the product’s API. If you’ve developed an SDK or wrapper for a popular API, it’s likely your open source project will gain some traction.
This situation is an ideal starting point to negotiate a deal with the company providing the product. For instance, you can ask them if they want to support you in maintaining the open source project financially. In other cases, companies offer bounties to developers for creating tools that support developers in using their products. It’s even possible to develop a plugin or connector that integrates a product with a different tool. As you can see, there are many possibilities for developers to help existing products and get paid for their work.
6. Open-Core Model
The open-core model offers an interesting alternative for open source projects to monetize their code. The idea behind this model is that you open source the majority of your code. However, a small fraction of your code is licensed as proprietary code. Most often, you want to package modules or extensions for enterprises as proprietary code.
Therefore, developers can freely use the software in other open source projects. However, companies have to pay for using enterprise-specific modules or integrations. A typical example here is offering proprietary features that are required for configuring the software for production usage.
Bear in mind that it’s not that straightforward to offer an open-core model. It’s quite a challenge to separate proprietary features from the existing code base into packages or modules. An open source project requires an excellent architectural setup to support the open-care model.
In conclusion, many revenue streams exist for open-source software. Besides the revenue streams mentioned in this blog post, it’s worth exploring other revenue streams such as certifications, training, and VC investments.