DEV Community

Discussion on: Which licence do you use for your open source projects?

Collapse
 
aleixmorgadas profile image
Aleix Morgadas • Edited

I would say each License has a purpose, and you should take that into account choosing some for a project.

I'm gonna try to summary the main Licenses I used depending on the purpose of the project.

When:

  • GPL and alike? When you aim to create a communty. GPL forces forks to disclosure the source code and you are able to merge back enhancements. So, as a communty, you put what you create first, preventing third party to take advantage of your work and don't contribute back.
    • When AGPL? When your type of software is a web application. For example, dev.to is a communty that creates a web application.
    • When LGPL? When you are creating a "Library", you want the enhancements to be shared, but you would like close sourced projects to use your library.
    • MPL has become more popular this days I think. mozilla.org/en-US/MPL/. I'm contributing to a project that has this license and I'm happy.

Why do I try to contribute to GPL alike licensed projects? Because I want my work to be for the communty and protected to be taken advantage of and not being contributed back.

  • Apache-2.0 or BSD alike? When you want to achieve adoption but you don't mind others do a private fork. Scenario? You aim to create enterprise software, and you want what you are creating to win as much as adoption as you can. You probabily want to achieve a high user base so then you can a) sell consultancy for that product b) win some competitor by software popularity.

I think Apache-2.0 is more popular for companies that aim to drive their business by open-source product. Apache-2.0 only restricts that you cannot reuse the brand. I think...

  • MIT. It's suuper permissive, you allow others fork, reuse the naming, ... only prevents the next:
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE 
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

When I use MIT? for some libraries and minnor projects like Katas. Software that I will not dedicate a lot of effort, that I don't aim to create a community around it, or that I am not aiming to get a lot of adoption to then create a business around it.


My 5 cents about licensing, of course it's quite opinionated and there are more purposes. I just tried to give an inside of what I think, I might be wrong!!!, that those licenses can be used for.

I hope it helped you ^_^