Hey indie hackers,
I'm building a fullstack job orchestration/background job platform in .NET called Didact, and it's already been an interesting journey. Didact is open source, so, of course, one of the first things that I had to figure out was how to license it in the first place. I was rather surprised how confusing this was at first glance.
So here's a few tips on what I found:
Choosealicense.com is an awesome website to learn about how open source licenses work, I found it very helpful in gradually understanding what license to pick.
I also found this blog from Plausible Analytics insightful and helpful.
Here is my hard and fast rule that I learned from r/OpenSource on Reddit:
Assuming you want to de-incentivize copycats and corporations from straight up copying and reselling your work with no contributions to you or the open source community (which is the case for me), here's what I asked myself:
Is what I'm building a library/package/module that is included in a larger software work? Use GPL3.0 or LGPL3.0 for your license. For example, two very well-known background job libraries called Hangfire and Sidekiq use this licensing as their default (emphasis added to the word library because this is what makes Didact quite different from them).
Is what I'm building in and of itself a complete, standalone application or platform? Then use AGPL3.0 for your license because - chances are - you or someone else could probably offer your product or platform as a cloud product, and you don't want to miss out on that!
For me, Didact is an entire application/platform with a pre-built web dashboard, a pre-built backend .NET web API, and a pre-built .NET console app all existing in separate GitHub repos and all completely independent.
Hope that helps you!
Actually, choosealicense explains it well: pick a license that is used most by the community you target. For example, if your community is users of Apache Foundation or CNCF software, pick Apache 2.0 license.
Personally, I would not pick copyleft licenses like *GPL, as they are incompatible with some other licenses and thus result in lesser software adoption.
Thanks for the input! I disagree, though. GNU licenses help protect open source creators and encourage open source contribution, whereas something like the Apache 2.0 license or MIT license would not stop corporations from abusing the open source work. There's nothing wrong with using GNU licenses.
I also emphasized in my article that my tool, Didact, is a standalone application; it's not meant to be a library incorporated into your larger software work, so I see no issue in licensing incompatibility. It's so much so of a standalone application that I plan to offer it as a cloud service, in some ways not too different from Plausible Analytics and other such open source AGPL3.0 cloud services.
So I remain confident in my licensing decision. If I was building a library for others to incorporate into their larger software works, then I would reconsider using a GNU license, but that is not the case for me.
Thank you for the elaborated reply, I see your point. I don't doubt your decision for your project, however I would warn people of blindly picking *GPL licenses e.g. for their libraries without understanding the consequences.
I believe licensing is a tough topic, there is no silver bullet. I hope your license will work for you best, keep the community posted how it goes 🙌
Yeah you're right, I'll make an effort to clarify myself better next time I mention licensing! Especially for people building libraries, definitely agree with what you're saying.
Thanks igorz, will post again soon!
This comment was deleted 2 years ago.