I have an idea for a really great open source project that I know there's going to be a lot of interest in, and no app already fills that niche. Before I open source it, I want to choose the right license, to allow people to use the app freely for whatever they want, to protect me from whatever they do with it (without forming an LLC), to allow other developers to contribute to it, but still allow me to maintain control over the project, and to protect my right to receive donations through Patreon if people become enthusiastic and excited about the app. But IANAL and have no idea what repercussions each license comes with. What are some resources where I can <i>quickly and reliably</i> choose a good license based on my requirements, without becoming a lawyer and without accidentally choosing a license that bites me later down the road?
No open source license will allow you to maintain control over the project.<p>If you can imagine having any proprietary interest in the project --- some line of business or donation revenue stream built on your thing that will naturally go to you --- you probably want to GPL. GPL adds use restrictions that make it difficult (though not impossible) to commercialize open source software, and those restrictions will apply only to your downstream users (you are not bound by the GPL for code you own and can relicense it as you see fit). This is part of the business model for a lot of open source companies.<p>If you want to go really nuts with that, look at AGPL, which imposes even more restrictions. People are generally cool about GPL and less cool about AGPL.<p>If you don't care about any of that, MIT license is the most normal choice.
Also consider dual licensing as a solution. For instance, you can release code under a restrictive open source license (such as GPL or AGPL) and also offer the code for a fee under a non-open license that allows it to be used in closed-source projects.
Besides the license think about registering a trademark. That way Docker, Linux or git manage not to dilute the name (see e.g. <a href="https://www.git-scm.com/about/trademark" rel="nofollow">https://www.git-scm.com/about/trademark</a> ).<p>As for the code, if it's open source anyone can fork. But with trademark they'd have to rename the project.<p><insert IANAL boilerplate here>
The easiest and safest approach is to choose the most restrictive license possible, like AGPL, and not accept contributions without signing an agreement, like Google does [1]. You can always switch to a less restrictive license later or sell under a different license, etc.<p>People will still be able to use your product freely, try it out, read code, contribute, but you will be protected from large corporations taking advantage of your work without paying you (like Amazon unable to use open source Mongo and Mongo unwilling to sell to Amazon).<p>[1] <a href="https://cla.developers.google.com/about/google-individual" rel="nofollow">https://cla.developers.google.com/about/google-individual</a>