License Picker
Choose and generate the right license for your project.
Choosing the Right License
Selecting an open source license is an important decision that affects how others can use, modify, and distribute your code. Here's a guide to help you choose.
License Comparison
| License | Best For | Key Feature | Used By |
|---|---|---|---|
| MIT | Maximum freedom | Very permissive, minimal restrictions | React, Rails, jQuery |
| Apache 2.0 | Patent protection | Includes express patent grant | Android, Swift, Kubernetes |
| GPL 3.0 | Keeping code open | Requires derivative works to be open source | Linux, WordPress, Bash |
| BSD 3-Clause | Academic projects | Protects project name from endorsements | FreeBSD, Django, Flask |
| ISC | Simplicity | Functionally equivalent to MIT, simpler language | Node.js core, npm packages |
| Unlicense | Public domain | No conditions whatsoever | Small utilities, examples |
Decision Guide
Choose MIT or Apache 2.0 if:
- You want maximum adoption and flexibility
- You're okay with commercial use without contribution back
- You want simple, easy-to-understand terms
- You're building a library or framework
- Patent protection is important (choose Apache 2.0)
Choose GPL 3.0 if:
- You want derivative works to remain open source
- You're building end-user applications
- You want to prevent proprietary forks
- You support the free software philosophy
- You want strong copyleft protections
Choose BSD 3-Clause if:
- You're in academia or research
- You want to prevent name misuse in promotions
- You prefer a permissive license with name protection
Common Misconceptions
No License Does NOT Mean Public Domain
Without a license, your code is under exclusive copyright by default. Nobody else can use, copy, distribute, or modify your work without being at risk of lawsuits. Always include a license!
License Best Practices
- Include a LICENSE file: Place it in the root of your repository
- Mention in README: Add a license badge or section
- Header comments: Include license info in source file headers
- Be consistent: Use the same license across your project
- Check dependencies: Ensure your license is compatible with your dependencies
- Consider dual licensing: Offer both open source and commercial licenses
License Compatibility
When using third-party code, ensure licenses are compatible:
| Your License | Compatible With | Not Compatible With |
|---|---|---|
| MIT | Almost everything | Proprietary without attribution |
| Apache 2.0 | Most licenses | GPL 2.0 (but GPL 3.0 is okay) |
| GPL 3.0 | GPL, LGPL, permissive licenses | Proprietary, some commercial |
Quick Chooser
I want...
- Simple and permissive: MIT
- Patent protection: Apache 2.0
- Share improvements: GPL 3.0
- Academic use: BSD 3-Clause
- No restrictions: Unlicense