HACKER Q&A
📣 AntDes

Which OSS License should we choose?


Hey HN,

We're building a terraform visualizer (https://github.com/inkdrop-org/inkdrop-visualizer) and have a few users requesting we clarify our license. I'm not a lawyer and I don't know the advantages/disadvantages of each.

We would like to use a widely used license that allows us to charge users when they cross a certain usage threshold and allow us to build derivative products on top of our platform.

To my understanding, this can be achieved with a dual license. We are also unsure if we should use an Apache / MIT license or a copyleft license like GPL.

We also want to add something like a “commons” clause, to make sure we get a part of the value should someone resell / create a derivative of our software.

Would love some pointers!


  👤 __d Accepted Answer ✓
OSS (Open Source Software) is defined by the Open Source Definition. You can find that at https://opensource.org/osd

Your wish for a clause that ensures someone distributing a derivative has to give part of their revenue to you immediately means you're not actually looking for an Open Source license.

Additionally, being able to charge users once they cross a usage threshold is not a part of any existing Open Source license, and the only way I can think of to get that would be an additional contract. And that's prohibited by clause 7 of the OSD.

So ... in summary, you're not looking for an Open Source license: your requirements will need something else, possibly something written specifically for your needs, and you could choose to make the source code available under the terms you've outlined, but it won't be Open Source (or Free Software).

You might start looking at the Business Source License or the Server Side Public License to see if they'd meet your needs (neither of them are Open Source).


👤 keikobadthebad
> OSS > make sure we get a part of the value should someone resell / create a derivative of our software.

These are different animals, FOSS means you give downstream users most of the key rights in the software that you have, including sources, the rights to use it and distribute to others.

If you want to restrictively license it so people have to pay you, that's something very different, "all rights reserved".

Dual-license means you make the free option 'too free' for most commercial users, forcing them to supply changed sources and also allow anyone to distribute it under the same terms, GPL3 is a common choice. It's 'viral' and probably forces anything linked to it to be GPL3 or freer, including any of their own secret source. But those guys are not obliged to pay you anything.

The commercial users who don't want to share their work on top of yours can approach you for a separate, paid, restrictive licence allowing that.

How well it works depends on how common it is to bind stuff to the GPL3 version and how objectionable that is for commercial users, funnelling them into your paid licence.


👤 happymellon
> We are also unsure if we should use an Apache / MIT license...

It is unlikely that you want an Apache/MIT license. That would allow your customers to take your source, add proprietary extensions and close it up without paying you.

You probably want GPL/AGPL with a proprietary option, so the choice for companies is it's free but you have to give everything you do back to us, or pay to keep it secret.

But I would consult a lawyer rather than engineers.


👤 gtirloni
Have you entered in a contract agreement with Hashicorp to base your product on their proprietary software?

https://www.hashicorp.com/license-faq


👤 cpach
Do you want open source or shared source? Open source is more common. Shared source gives you more options do restrict what users can do with the software.

👤 wmf
Sounds like you want dual FSL/commercial.

https://fsl.software/