The 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 also release their software under the GPL, 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 paired with a commercial license is 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 pay me for my work.