TL;DR at the bottom

There’s been a lot of fuss about in the dev community about the “funding experiment” and I figured I’d toss in my 2 cents. There were some comments about consumers who don’t contribute back to OSS with money or time, and that “No one cool was upset” by this experiment. I was upset, but granted I’m not a cool dude. I have contributed to open source projects I’ve used a few times, however, I’m not prolific so you can gatekeep being a contributor if you want. You can call me a “consumer”, taking things given freely by the open source community. But I don’t think this is something you can really call people in good faith when your software is licensed as free. We don’t volunteer at food banks expecting to be paid. The difference here is if I am volunteering at a food bank and a company shows up and just starts taking copious amounts of food, filing issues, and then never giving back I’d be a little upset. But wait! There’s a sign on the door that says “Infinite free food, whether you sell it as your own food or not.” If this fictional food bank existed and had an infinite supply of food (since code isn’t single use) no bakery or restraunt would ever go to the grocery store again. Hell no I don’t want to volunteer at a food bank where some faceless companies are going to profit off my free work.

Open Source is currently like Nestle and water. Many companies taking a freely abundant resource, packaging it up in to their product, and then making money off of it while almost never contributing back to the environment that made it available.

But OSS has a secret weapon against these uncharitable “consumers”. You pick your own license. If you want to get paid for your work when it’s used to make a company money, don’t license it as MIT, BSD, or any other open license that give your code away for free. Change the sign on your door. It can stay open source but with a provision saying that if you make money from this you’re required to pay. Unreal Engine’s EULA is a great example of this. You won’t be able to say you have a truly open source license anymore, but hey, who cares. You’re trying to make money in open source from people using it the way your license said they could. If you don’t like it, change your license. And don’t forget what you as an open source maintainer owe consumers of your code. Jack squat, you don’t owe anyone anything. The fact that your code is out there for free is more than most people do. People are not owed issue responses, new commits, security fixes, or updates. The code is out there to be used, forked, updated by anyone else openly. If you’re upset with people using your code that you contributed freely to the world with a very permissive license, the onus is not on them to fund your charity. It’s on you to change your license. Fuck them, get paid.

TL;DR

If you want to make money writing open source, change your license to something that has a condition saying sometimes people/companies have to pay you money. Something like “Any for profit business using this source code making over $100,000 in revenue has to pay $500 a year to retain a license to use this software.” I am not a lawyer, and this does not constitute legal advice.

Footnotes

I do recognize that relicensing is a pain as is evidenced by the lerna project when it attempted to relicense last year and contributors wanted their contributions removed.