Recently we’ve seen various open source projects have issues. From lack of contributions despite high usage, to maintainer burnout, to pushing of malicious changes to popular packages.

An argument goes: if your software is open-source you might as well have as many people as possible use it. So why not have a very permissive license? The GPL requires people using your software to release theirs under the same license, limiting who is willing to use yours. So instead pick the more permissive MIT, BSD, or Apache licenses.

But, as you have more users you get more feature requests, more demands for weird configurations, and more requests for support. If you’re a company selling your software then more users means more money, more money means you can hire more people, and, congratulations! you have a successful business.

Yet when you release your code for Free, you don’t have that feedback loop. You may get more contributors from your growing user base, but the work changes. You now must review code, give good feedback (hard at the best of times), and most likely keep the testing infrastructure going because no one else is interested. In my experience the number of people filing issues grows far faster than the number of people who are willing to contribute.

And so I have come to the conclusion that a more restrictive open-source license (such as the AGPL) paired with a commercial license is probably the sustainable way forward for (my) open-source software. Those who are paying it forward by releasing their software as open-source get mine for free. Those who aren’t can pay for a comercial license, supporting the health of the project.

Of course, this comes with its own challenges of billing and enforcement, but perhaps it’s better than the status quo.