Turning open source software into an income stream can mean a lot to your project, so it’s dangerous to skip over the details. But while monetizing can be exciting (“the project’s finally going to support itself!”), you wouldn’t rush off on a journey without a reliable map and itinerary would you? No, not at all.
So what’s the first step? Discover what and who’s successful – there’s many that have walked the path ahead of you.
This article focuses on the open source revenue models out there, what income sources there are for open source projects, and shares some success stories.
Open source monetization and ethics
First, let’s address the big question surrounding open source monetization, yes, you can create revenue from your open source project without breaking community trust, damaging project integrity, or adopting unethical conduct.
Projects that keep their ethical standards usually:
- Keep the requirements of the open source license: it’s essential to meet the requirements of the open source license your project uses. Not doing so, breaks the ethical commitments surrounding the license.
- Contribute to other open source projects: open source projects don’t exist in a vacuum. Returning value to the wider community represents a major goal for an ethical project. Pursuing open source monetization and income support while also contributing to other projects, is always a good plan.
- Keepthe community active: build bridges with your open source community, and answer their issues and questions. No one wants to feel like an afterthought, even if the open source project standards have not been met.
How to make money with open source software
There’s a few accepted methods used to make money with open source software. Here’s three ways:
1. Parent companies
The most well known path to monetization is ownership by a larger, parent company. Automattic owns Wordpress, and contributes to a number of open source projects related to Wordpress such as P2, BuddyPress, and WP Job Manager.
Of course, it’s not as simple as writing to a business and asking them to pay for and help distribute your project. But, a large part of income support in open source involves recognizing project value, and writing about the value your project brings.
There may be several established, for-profit businesses that make use of your open source project that you can contact (more on this later in regards to GitHub dependency).
2. Paid support
This is regarded as a straightforward revenue stream – offering support services and expertise for a reasonable price represents a valid pathway to monetization.
As the originator of a project (especially one that has seen growth and adoption numbers), you’re in a position to offer consultancy and expertise. That income can keep the project going in the short term. Long term though, you may need to look at reorganizing key people in the project so there are some dedicated to support, and others dedicated to maintenance and community management.
One major issue to explore (that’s infamous), is the demand placed on cURL creator, Daniel Stenberg. In 2018, one large business contacted Stenberg, demanding he fly to their offices to personally fix a problem they were facing with cURL.
The demand was certainly an overreach and inappropriate, and illustrates the need for businesses to accept paying for the support for open source projects they utilize, so the creators’ can better support their efforts, and prevent these kinds of demands on time and energy.
3. Software as a Service (SaaS)
Is your open source project a complete application? Or maybe something that could be stored and accessed through a server rather than self-hosted by default?
If you have the resources to set up some kind of accessible version of your open source project, you can ask a small subscription fee for customers to access a running version of your project. This is the basic model of all SaaS applications.
Services offered through a cloud version are a popular subscription option that's used by leading businesses of all kinds (Google, Amazon, Microsoft). However, the pathway to significant revenue through this model can be a long one. And, there’s often a lot of ‘less than exciting’ aspects to manage in becoming a SaaS success.
Open source monetization steps
While the previous section covered the three broad models of generating income, there are smaller, practical steps that projects can take to find sources of income.
a. GitHub sponsorship
For newer projects, this can be a logical step forward.
Large scale businesses may already make use of your project – that’s value you can leverage to gain income through GitHub sponsorship.
This source of income offers a path for both individual open source contributors as well as small communities. Through it, you can receive an income for the valuable work you’re doing in supporting open source projects.
You can also find out more directly from GitHub, about how GitHub sponsorship works:
b. Open project with support services
Rather than broadly offering support for your project to any business as a consultant, if your project's a community around it and there are businesses of a certain size that use your project, you can tailor your support offering around those specific groups.
Open projects with support services can take the form of different support levels – free support, professional paid, and enterprise paid are commonly offered. You could combine this revenue model with something like a paid certification to increase the support hours available.
But don’t forget, if you end up committing your team to support rather than project maintenance, the overall open source project can suffer.
That’s why you need a plan for scale. And you may also need to plan for marketing.
c. Open core with a premium service
For this model, the majority is free, open code. It’s what's referred to as the open core. The balance – a small fraction of the overall – is a premium, paid service.
This model can thrive when you tailor it to your customer base.
For example, different functions of your software solve problems for different customer groups. Once you classify what your project does for different audiences, you can then create an Open Core and Premium service.
To do this:
- Narrow down what features your project offers
- Further narrow down which features suit enterprise or large businesses
- Create a plan to support the large business segment with your software
And that’s just one pathway.
For product managers, the separation of what features fit different customer needs is an important step. Of course there is complexity. For example, in an open core model, will the premium pull requests receive more attention than the rest of the project? To answer that, do some research on open core and thoroughly evaluate your project.
Red Hat’s open source monetization story
“Customers are willing to pay to be insulated from that complexity”
~Brian Stevens. Red Hat CTO.
Red Hat is one example of a business that’s grown by making money from their open source projects.
Red Hat started in 1994, by distributing a Linux-based operating system. To grow, the main revenue source was established with an offering of services – from training to support – based around Red Hat Linux.
Since then, Red Hat has had 16 consecutive years of positive revenue.
Brian Proffitt, Open source program officer at Red Hat, reflected on how communities and open contributions keep transparency a priority. Proffitt noted that community contributions helps evaluate any project elements or parts that run counter to ‘greater prosperity’. This means, in a few words: to prevent commercialization, look after open source communities.
TinyMCE, open source and monetization
TinyMCE has always been open source. It’s grown since 2004 to become the world’s most trusted rich text editor, by having made successful use of the open core with a premium service model.
Getting to understand our customers was an essential step towards our success. To do this, we used multiple methods – NPS feedback surveys, the State the Rich Text Editors survey, and the TinyMCE Product Roadmap.
What else should you investigate?
The use of open source software helps users to increase the velocity of their development teams – by allowing them to customize the code to suit their needs instead of starting from scratch, and thereby shortening their development cycle. That has to be worth something!
Examples like this demonstrate how important it is to investigate your project audience, and decide on the best monetization model for your project.