HACKER Q&A
📣 hoofhearted

What is the best license type for my open source project?


Hey HN,

I am working on a fun little React.js project that has been getting more developer interest than I initially expected, and I'm not exactly sure which license is the best for both users and maintainers.

I've created a simple content creator tool with a pretty nice interface, and it's free to anyone with no strings attached. I've noticed that there isn't much in regards to UI editors for React anymore, and the ones that do exist have become vendor locked and have funky tight wording within their licenses.

Now that my little side project has gotten a few views and contributors, I would like to make sure that we have an air-tight license that is in the best interest of both developers, and us contributors and maintainers.

I don't believe in putting "rate limits" and such within basic UI component libraries like a number of React content UI kits out there. But I'd also like to protect our own work from said UI kits forking our own code and then trying to implement those types of terms on their users.

I appreciate everyone's input and opinons!

Thank you in advance :)


  👤 version_five Accepted Answer ✓
If you want people to use it, use MIT or Apache 2.0. It sounds like you want to limit how people can use it so they can't put their own restrictions on it - which would suggest a GPL license. But then people won't want to use it so it sort of defeats the purpose.

Imo GPL is good for finished products that you don't want being closed up and sold commercially, but are useful on their own. Like LaTeX or Pandoc. If that describes your project, maybe it will work.

For components that go into some bigger project, GPL is way to onerous a restriction as you're forcibly selecting the license of the finished project, so people will just not bother using your component.


👤 hoofhearted
For anyone interested, I created our existing license using GitHub's tool.

I'm not exactly sure how much legal weight it carries, or if it's even enforceable if I put my own language in it.

https://github.com/elegantframework/elegant-cli/blob/v2.3/LI...