It’s no secret that Open Source projects have a difficult time being financially sustainable and search for sources of income. Fact is many projects struggle just to keep the lights on. This is often because project maintainers have to look for stable sources of income, which can be difficult to find. Sadly, this often leads to project abandonment.
The way I see it Open Source projects face similar problems to startups, and often end up becoming startups. However, there are ways to keep your open source project financially sustainable, or at least try to do so.
In this article I will try to give you an overview of the methods that I have researched.
Different Financing Methods
You will find different approaches to financing. From common to less common and from commercial to non-commercial. Here is a simple list of these:
Non Commercial
- Donations
- Sponsoring & subscriptions
Commercial
- Support contracts
- Licensing (Dual, Commercial, etc.)
- Specialized Hosting Services
- Bounties for Bugs and Features
- Saas: Software as a Service alternatives
- Affiliation
- Conferences
- Brand Licensing
- Selling merchandise and other products
- Tokenization (SourceCred, DevProtocol, CommonsStack)
- Crowdfunding
- Foundation Grants
The most common forms of financing
In open-source, the three most common financing methods are donations, sponsoring, and support contracts. Let’s take a look at each of them in more detail.
Donations
Donations are perhaps the most obvious way to try to keep your project afloat. You can set up a donation page on your website or use a service like Patreon. The problem with donations is that they’re often not very reliable. You might get a big influx of donations one month and then nothing the next month. This can make it difficult to budget and plan for the future of your project.
Sponsorship and Subscriptions
Sponsoring is another common method of open source financing. In this model, companies or organizations pay you to work on your project. This is usually done in exchange for some kind of recognition, such as a link on your website or mentions in your project’s documentation. The advantage of this model is that it can provide a steady stream of income. The downside is that it can be difficult to find sponsors, and you may have to give up some control over your project in order to get them onboard.
Support Contracts
Another option is to offer support contracts for your project. In this model, companies or individuals pay you for help using or developing your software. This can be a great way to generate income, but it requires quite a bit of work on your part. You need to be able to provide timely support and have a good understanding of your project’s code base.
Other forms of financing
Licensing (Dual, Commercial, etc.)
Some open-source projects choose to release their software under a dual license. This means that you can use the software for free, but if you want to use it commercially, you need to pay a fee. This model can work well if your project is popular and has a lot of users. The downside is that it can be difficult to enforce.
Specialized Hosting Services
Another option is to set up a specialized hosting service for your project. This can be a great way to generate income, but it requires quite a bit of work on your part. You need to be able to provide timely support and have a good understanding of your project’s code base.
Bounties for Bugs and Features
You might also give rewards for bugs and features. Companies or individuals may pay you to fix defects or develop new features on your project in this manner. This can be a lucrative business, but it comes with a lot of responsibilities on your side. You must be able to offer timely assistance and have a thorough knowledge of the source code base.
Saas: Software as a Service
This approach offers the option to use the Open Source project as a hosted online service. This approach pays a fee for its use without having to deal with any IT infrastructure or maintenance costs. This is a good way to generate income, but it requires quite a bit of work on your part. You need to be able to provide timely support, and have the necessary people and IT infrastructure setup. This service usually brings with it legal responsibilities.
Affiliation
In this approach, open-source projects can have an affiliation with the organization. The project gets some financial support, but not full funding. This model is a good way to get started, but it’s said to not be sustainable in the long run, though companies like Mozilla, affiliated to Google, having established it as their default search engine is a clear example of its potential for income.
Conferences
Conferences are another great way to generate income for open source projects. You can either organize your own conference or participate in someone else’s. This is a great way to get exposure for your project and meet other like-minded people. The downside is that it can be expensive and time-consuming to organize a conference.
Brand Licensing and or Certifications
This is the process of licensing your project’s name and logo to other companies. This can be a great way to generate income, but it comes with a lot of responsibility. You need to make sure that the companies you license to are reputable and will use your project’s name and logo in a positive light.
This approach can be done once a project has a large user base and requires for example specialist consultants who could be certified as for example “Linux” Specialists, etc.
Selling Merchandise and other products
You can also sell merchandise and other products related to your project. This is a great way to generate income. You need to be able to promote your products and have a good understanding of your target market. Examples of this are for example companies who sell T-shirts, mugs, etc. and others which supply ready to use specialized products with their software installed.
Tokenization
This is a process of funding open source projects with the help of cryptocurrency. In this approach, people can contribute to your project by buying tokens and or becoming a part of it in some instances.
Crowdfunding
Crowdfunding is a great way to generate income for open source projects. You can use platforms like Kickstarter or Indiegogo to raise funds for your project.
The downside of this approach is that it can be difficult to reach your funding goal unless you already have a follower group or community of users that can be interested in it.
Things that are often funded are for example games, technological gadgets, art, etc. Check out Kickstarter.com for some insight.
Foundation Grants
These are usually donations from foundations of government institutions. There tends to be some formality involved in addition paperwork. Examples of such are:
Implications to be considered for project owners
When one receives money either through a sale or through a donation one usually has to declare it and pay taxes on it. It is unfortunate but this is usually expected.
Here is a screenshot to show you what I mean from the sponsoring tool by GitHub:
Some countries have more tax and others have less, still the paperwork a project owner or contributors who receive funds have to be considered but in essence they are these four:
- Taxation of received funds
- Necessary legal implications
- Surrounding administrative complexity, paperwork and cost
- Book keeping of fund allocations for payments etc.
In essence, once you receive money you will have to pay one way or the other part of it.
Open Source Project Owner and Contributor Types
In Open Source projects you can find mostly these different types of owners and contributors which can be divided into legally ready for receiving funds and others which are not:
Legally prepared to receive funds:
- For-profit companies
- Not-for-profit companies and institutions
- Individuals who are set up as freelancers
Legally not prepared to receive funds:
- Individuals who are not set up as freelancers
- Individuals who are under age
The first group is usually able to open a bank account, have a PayPal account and can receive official direct payments. The second group has some limitations in this area but there are solutions that can help them do so. Nevertheless, they will have to become freelancers, create a company, another form of legal institution or channel the funds in case of minors through their legal tutors.
Simplifying Receiving Funds
In order to simplify receiving funds nowadays you have various digital options, some are solutions, services or software add ons for your repositories. I will go through a few marked in pink below just to give you an idea. The others require also talking about business models and are beyond the scope of this post.
In addition below these examples you will find the link to the entire list that I have collected from different internet sources. The list is organized by the categories I have mentioned above. This list is one I will be exploring more in detail myself with my team of colleagues for our projects.
Non Commercial
- Donations
- Sponsoring & subscriptions
Commercial
- Support contracts
- Licensing (Dual, Commercial, etc.)
- Specialized Hosting Services
- Bounties for Bugs and Features
- Saas: Software as a Service alternatives
- Affiliation
- Conferences
- Brand Licensing
- Selling merchandise and other products
- Tokenization (SourceCred, DevProtocol,CommonsStack)
- Crowdfunding
Available Online Tools and Solutions to Simplify Receiving Funds
Donations and Sponsoring
The tools come in different flavors so to say. In a way you could say that there are two main approaches and then there are some innovative and different ones.
The more common are recurrent donation and subscription platforms and one time small amount donation platforms.
Examples of the first are Patreon.com, Ko-fi.com and Liberapay.com. Examples of the second are Tipee.com and buymeacoffee.com.
Then you find a full service solution run by OpenCollective.com in the (USA) where they will deal with all the necessary paperwork, legal setup etc. and you can function through them.
Then there is GitHub’s solution that they are rolling out right now:
There is one additional approach that I found different but interesting and easy to use:
It is basically an online platform for social project funding which includes all types of Open Source as well as other public goods and non-profit social projects. The platform is about giving in crypto currencies such as Ethereum.
Another slightly different approach is the one of Gitcoin.co. They come in the form of Grants so to say. You create a project and description where you include links etc and people can fund you with money which then gets replicated via a fund through a quadratic funding formula.
Essentially the more people fund you with amounts, no matter the size, the more funds you receive from a pool of grants for open source projects on the platform. These grants have different rounds during the year. Here is a link to this product: https://gitcoin.co/grants/
There are quite a few more so check out my compilation of resources.
Bounties for Bugs and Features
Is a platform where freelancers essentially offer specific services or “gigs” as they are referred to which are paid for using Ethereum. The Bounties are specific jobs that those freelancers do custom to the customer who hires their services. More than a Bounties platform it looks like a Freelancer hiring platform.
Was an easy and approachable platform. You signed up with your GitHub account, added your repositories and could install an app on your repository. This then allows you to be paid for issues which were requested to be solved. Unfortunately this platform seems to be inactive though one can log in and check it out as to how it functions. Their video tutorials also give you an idea, but they seem outdated.
Is an interesting platform with different options in addition to their Bounties, such as Grants, Kudos, Quests, Hackathons, etc. The Bounties can be set up by anyone who can create an issue in a repository, though that person is the one funding it. It can be thus used for users for example who want a specific feature, or bug resolved which they then fund if the issue gets done. If one were to make use of this site one can indicate this on the Readme and then advertise it from there.
Tokenization (DevProtocol, SourceCred, CommonStack)
Their project description is the following:
“ SourceCred (in the most basic sense) is a technology that makes the labor of individuals more visible and rewardable as they work together in a project or community. The goal of SourceCred is to use this technology to make rewarding labor as nuanced as human contribution often is. We hope to be one piece in the puzzle of a healthier future where systems serve community members, where financial maximization isn’t the end-all be-all goal, and where wealth actually flows to those who are creating the value in our world.”
They essentially have developed a software which you run as an instance on your repository and which then assigns Credits or “Cred” as they call them, based on an algorithm that analyzes contributions interlinkages of generated “value”.
This “Cred” is then rewarded through their own project specific Crypto Currency “Grain” to which funds can be assigned.
Then later external parties can purchase Grain and fund issues of their interest, etc.
In a way it is like creating your own project economy with its own currency.
The project’s leading introduction line is:
“Decentralized funding where creators and backers work together to drive project growth and are equally rewarded.”
Their vision statement is:
“Empowering all creators for sustainable challenges. Decentralized funding, Social tokens, DAOs and everything you need for a sustainable creator economy is here.”
They attempt to provide the necessary infrastructure tools for a fair creator, backer ecosystem. The way I interpret it, it does not exclude closed source projects. Their focus is to speed up creating a system where creators and backers work together and get both rewarded.
The Commons Stack stands for an organization whose vision states:
“We want to create a world where public goods are valued fairly for the benefits they deliver. Our current economic system frequently exploits the environment, and undervalues open-source software, open research, and other altruistic efforts addressing the collective needs of our society. We aim to change this.”
Their intent being also mentioned as:
“To advance the design of commons-based economies, we need an open-source ecosystem of token engineering tools and a robust token engineering methodology.”
Their Commons that they are working on is a library of Open Source components whose aim is to help project owners incentivize work towards common goals, providing accountability, help with governance and communication through feedback on what they call one’s Commons.
Commons standing for your Open Source project and the common good for the community that it represents. The idea from what I have understood is that of creating DAO (Decentralized Autonomous Organization) for each Open Source project.S
Crowdfunding
Under this category you find the usual suspects and some specific to Open Source projects in addition some additional which you can find in my list.
Here is the link to the complete list.
Conclusion
As you can see there are many options to simplify generating income. It is a matter of what you need. I would take some time to check them out and study them since depending on your situation they may be appropriate or not. Still you never know what that extra knowledge can bring you in the future.
Nevertheless, these are just a part of making your Open Source project sustainable through contributors, users, etc. which still remains the most difficult and keystone for becoming sustainable and able to grow long term.
In the next weeks I will test some of these or our projects and then write about for anyone who can use this information. The company group for which I work expects all its members to write about their experience while working on our projects. Anything useful that we learn we are to share it either through blog posts or repository documentation. I think it is great and a way of supporting the development of the Open Source ecosystem by adding value to the community.
If you are interested in the Open Source Guide repository we are creating here is the link and if you are interested in what projects we are currently working on, here.