A Developer's Definitive Guide to Understanding, Choosing & Applying Open-Source Licenses
As a developer, every time you push code to GitHub, you're making a legal decision β whether you realize it or not. Here's why understanding licenses is non-negotiable:
No license = All Rights Reserved. By default, copyright law protects your code. Without a license, no one can legally use, modify, or share your work β even if it's public on GitHub.
Enterprise developers and companies have legal teams that review licenses before using any open-source code. If your library doesn't have a clear license:
- β They'll skip your project entirely
- β Your brilliant library will never be adopted
- β You miss out on community contributions
Understanding licensing shows you think beyond just code:
- β You understand intellectual property
- β You can make informed architectural decisions
- β You can advise teams on legal compliance
- β You stand out as a senior-minded developer
Licenses let you control how your code is used:
- Want maximum adoption? β MIT License
- Want to prevent proprietary forks? β GPL v3.0
- Want patent protection? β Apache 2.0
- Want to cover SaaS usage? β AGPL v3.0
- Want to donate to public domain? β CC0
This repository covers all 12 licenses that GitHub offers when creating a new repository. Each folder contains:
- π
LICENSE_NAME.mdβ Complete license documentation, permissions, limitations, and famous projects - π
USE_CASE.mdβ Detailed use cases, decision guides, and when to choose this license
Github-License/
β
βββ π README.md β You are here
β
βββ π _01_MIT_License/
β βββ LICENSE_NAME.md
β βββ USE_CASE.md
β
βββ π _02_Apache_License_2.0/
β βββ LICENSE_NAME.md
β βββ USE_CASE.md
β
βββ π _03_GNU_General_Public_License_v3.0/
β βββ LICENSE_NAME.md
β βββ USE_CASE.md
β
βββ π _04_BSD_2_Clause_License/
β βββ LICENSE_NAME.md
β βββ USE_CASE.md
β
βββ π _05_BSD_3_Clause_License/
β βββ LICENSE_NAME.md
β βββ USE_CASE.md
β
βββ π _06_Boost_Software_License_1.0/
β βββ LICENSE_NAME.md
β βββ USE_CASE.md
β
βββ π _07_Creative_Commons_Zero_v1.0/
β βββ LICENSE_NAME.md
β βββ USE_CASE.md
β
βββ π _08_Eclipse_Public_License_2.0/
β βββ LICENSE_NAME.md
β βββ USE_CASE.md
β
βββ π _09_GNU_Affero_General_Public_License_v3.0/
β βββ LICENSE_NAME.md
β βββ USE_CASE.md
β
βββ π _10_GNU_General_Public_License_v2.0/
β βββ LICENSE_NAME.md
β βββ USE_CASE.md
β
βββ π _11_GNU_Lesser_General_Public_License_v2.1/
β βββ LICENSE_NAME.md
β βββ USE_CASE.md
β
βββ π _12_Mozilla_Public_License_2.0/
βββ LICENSE_NAME.md
βββ USE_CASE.md
| # | License | Folder | Type | Best For |
|---|---|---|---|---|
| 01 | MIT License | _01_MIT_License |
Permissive | Libraries, tools, maximum adoption |
| 02 | Apache License 2.0 | _02_Apache_License_2.0 |
Permissive + Patent | Enterprise software, patent-heavy domains |
| 04 | BSD 2-Clause | _04_BSD_2_Clause_License |
Permissive | Academic, small libraries |
| 05 | BSD 3-Clause | _05_BSD_3_Clause_License |
Permissive + Name Protection | Brand-conscious projects |
| 06 | Boost Software License 1.0 | _06_Boost_Software_License_1.0 |
Ultra-Permissive | C++ libraries, embedded systems |
| # | License | Folder | Type | Best For |
|---|---|---|---|---|
| 08 | Eclipse Public License 2.0 | _08_Eclipse_Public_License_2.0 |
Weak Copyleft | Java ecosystem, plugin architectures |
| 11 | GNU LGPL v2.1 | _11_GNU_Lesser_General_Public_License_v2.1 |
Weak Copyleft (Library) | Shared libraries, frameworks |
| 12 | Mozilla Public License 2.0 | _12_Mozilla_Public_License_2.0 |
Weak Copyleft (File) | Modular apps, DevOps tools |
| # | License | Folder | Type | Best For |
|---|---|---|---|---|
| 03 | GNU GPL v3.0 | _03_GNU_General_Public_License_v3.0 |
Strong Copyleft | Desktop apps, OS, dual licensing |
| 09 | GNU AGPL v3.0 | _09_GNU_Affero_General_Public_License_v3.0 |
Strongest Copyleft | SaaS, cloud services, federated apps |
| 10 | GNU GPL v2.0 | _10_GNU_General_Public_License_v2.0 |
Strong Copyleft | Linux kernel modules, legacy GPL projects |
| # | License | Folder | Type | Best For |
|---|---|---|---|---|
| 07 | Creative Commons Zero v1.0 | _07_Creative_Commons_Zero_v1.0 |
Public Domain | Data, assets, specifications |
START HERE
β
βββββββββββββ΄βββββββββββββ
β Do you want copyleft? β
β (derivatives stay open)β
βββββββββββββ¬βββββββββββββ
ββββββ΄βββββ
β β
YES NO
β β
ββββββ΄βββββ ββ΄βββββββββββββββ
β SaaS / β β Need patent β
β Network?β β protection? β
ββββββ¬βββββ ββββββββ¬βββββββββ
ββββββ΄ββββ ββββββββ΄βββββββ
β β β β
YES NO YES NO
β β β β
AGPL v3.0 β Apache 2.0 MIT License
β
βββββββ΄βββββββ
β Is it a β
β library? β
βββββββ¬βββββββ
βββββββ΄ββββββ
β β
YES NO
β β
LGPL v2.1 GPL v3.0
| Your Goal | Choose This |
|---|---|
| π Maximum adoption, simplicity | MIT License |
| π‘οΈ Permissive + patent protection | Apache 2.0 |
| π Keep derivatives open-source | GPL v3.0 |
| βοΈ Protect against SaaS exploitation | AGPL v3.0 |
| π Library with proprietary linking allowed | LGPL v2.1 |
| π File-level copyleft | MPL 2.0 |
| π Public domain dedication | CC0 |
| β Java/Eclipse ecosystem | EPL 2.0 |
| License | Permissive | Copyleft | Patent Grant | Commercial Use | Must Share Source | Scope |
|---|---|---|---|---|---|---|
| MIT | β | β | β | β | β | β |
| Apache 2.0 | β | β | β | β | β | β |
| GPL v3.0 | β | β Strong | β | β * | β | Entire work |
| GPL v2.0 | β | β Strong | π‘ Implicit | β * | β | Entire work |
| AGPL v3.0 | β | β Strongest | β | β * | β + Network | Entire work + SaaS |
| LGPL v2.1 | β | π‘ Weak | π‘ Implicit | β | π‘ Library only | Library |
| MPL 2.0 | β | π‘ Weak | β | β | π‘ Modified files | File |
| EPL 2.0 | β | π‘ Weak | β | β | π‘ Modified files | Module |
| BSD 2-Clause | β | β | β | β | β | β |
| BSD 3-Clause | β | β | β | β | β | β |
| Boost 1.0 | β | β | β | β | β | β |
| CC0 1.0 | β β | β | β | β | β | β |
β * = Commercial use is allowed but source code must be shared
| Project | License | Why They Chose It |
|---|---|---|
| React | MIT | Maximum adoption for UI library |
| Linux Kernel | GPL v2.0 | Keep the kernel free forever |
| Android | Apache 2.0 | Patent protection for mobile ecosystem |
| WordPress | GPL v3.0 | All themes/plugins stay open-source |
| MongoDB | AGPL β SSPL | Prevent cloud providers from freeloading |
| Qt | LGPL v2.1 | Allow proprietary apps to use the framework |
| Firefox | MPL 2.0 | File-level copyleft for browser code |
| Kubernetes | Apache 2.0 | Enterprise-grade with patent protection |
| SQLite | Public Domain | Universal database for any use |
Contributions are what make the open-source community an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork this repository
- Create your feature branch:
git checkout -b feature/add-new-license-info - Commit your changes:
git commit -m 'Add detailed comparison for XYZ license' - Push to the branch:
git push origin feature/add-new-license-info - Open a Pull Request
- π Content improvements β Fix typos, add examples, improve clarity
- π New comparisons β Add license comparison tables or flowcharts
- π Translations β Translate guides to other languages
- π‘ New use cases β Add real-world case studies
- π Bug fixes β Fix any errors in license descriptions
- π Additional resources β Add links to helpful articles or tools
Software Development Engineer I @ CodeBucket
Specializing in Frontend Architecture & Scalable Web Applications
- π₯ Winner β GDG Patna Hackathon
- π₯ Runner-up β HackIt AUP 2025
- π MCA (8.8 SGPA) β Amity University Online
- π BCA (8.75 CGPA) β Amity University Patna
- π Choose a License β GitHub's official license chooser
- π OSI License List β Open Source Initiative approved licenses
- π SPDX License List β Standard license identifiers
- βοΈ TLDRLegal β License summaries in plain English
- π GNU License List β FSF's license compatibility guide
If this repository helped you understand open-source licensing, please consider:
- β Starring this repository
- π΄ Forking to add your own insights
- π’ Sharing with your developer network
- π Opening issues for improvements
"Understanding licensing is not optional β it's a fundamental skill that separates hobby coders from professional software engineers."
Made with β€οΈ by Ashutosh Kumar
