I have been thinking a lot about open-source projects, and licensing them in a way that you are able to build a for-profit company on top of it.
Open source is intrinsically a net-positive thing - I am not going to write why I would like to make a project open source in this post. Instead, I am going to ponder a bit - mostly for my benefit - about what are the common pitfalls of making something open source, and what can one do to avoid those by picking the right license.
Ways to make money with open-source
Typically, I have seen the following ways to make money from your FOSS projects:
|Donations||Most optimistic ;)||Uncertain future - you can't mandate that people donate money||GitHub Sponsors, Open Collective, Buy me a Beer|
|Services||Works well with small teams||Doesn't scale well - number of services deal that you can do is proportional to the number of people you have||SWUpdate|
|SaaS||Works well||Have to worry about Amazon and others offering your project as a cheaper SaaS offering||GitLab, MongoDB, Ghost|
Note that most of the things written in the pros and cons are my opinions. The only factual thing above are the examples I have put up in the last column.
Real life examples
Let's also learn from other people's decisions and mistakes -
Qt - a popular GUI library for embedded systems - is offered under a copyleft license (LGPL) as well as a commercial license. This allows students, and other open source projects to use the project without any costs - but if you are aiming to build something closed source using Qt, you'd have to get their commercial license.
Qt is listed as QTCOM on NASDAQ and is worth 1.67B$. It employs around 700 people.
MongoDB famously changed their license from AGPL to SSPL - which is considered as a non free license. MongoDB also offers commercial license of their software. The language specific drivers for this NoSQL database are offered under the more permissive Apache license.
MongoDB is listed as MDB on NASDAQ and is worth 16B$. It employs around 4500 people.
MongoDB's switch to SSPL was widely discussed on the Internet - and resulted in AWS launching their own fork called DocumentDB from the last version of MongoDB that was released under the old license.
MongoDB's SSPL was considered controversial because it said that any cloud company that offers MongoDB as a service needs to make their changes open source - something that didn't go down well with AWS - who supposedly don't give back as much as they take.
“Whenever a new open-source project becomes popular, cloud providers strip mine the technology, put the freeware on their platform, capture most if not all of the value but give little back to the community." - Dev Ittycheria, president and CEO of MongoDB
I am hesitant to include this because this is quite recent - but the awesome folks at Prusa are discussing in the open how to take forward their open source-ness. They recently wrote a blog post where they are asking folks to comment on what would be an acceptable way forward for folks to continue doing open source while ensuring that everyone who benefits from a project has a similar attitude of contributing back to a project.
Prusa's net worth is not public, but the website says that it employs over 700 people.
Redis Labs the company behind the popular in-memory database, changed the license to their extensions for Redis to the Commons Clause license which forbids the use of other cloud companies offering those extensions as services.
Redis isn't listed but its valuation based on the funding it has received is upwards of a billion dollars. It employs more than 500 people.
- Heather Meeker is the author of the Commons Clause license that Redis uses for it's extensions now. She has some very informative videos available on her video - I'd start with the one on distribution.
- PolyForm Project is a bunch of lawyers and programmers who have drafted easy to understand and use open source licenses that have a variety of restrictions. For example, the PolyForm Shield license permits uses other than those that compete with the provider of the software.
PS - I am going to keep updating this blog as I find more resources and examples around it.