Open source projects have become very popular and it’s now common to find someone sharing ideas on github. The impact of this phenomenon reaches way outside the software development realm. Nowadays, people find open source research much easier to access and collaborate on. A lot of great minds are attracted by open source projects; the opportunity to join is a great source of motivation. When it comes to contributing to open source project as a beginner, you will be surprised at how easy it can be.
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.