License Decision Flowchart

Visual guide to choosing the right license

Click on any license to learn more
flowchart TD
    Start[Choosing a License]
    Start --> Public{Is this a public
open source project?} Public -->|No| Private[Private Project] Public -->|Yes| Goal[What's your goal?] Private --> PrivateChoice{Do you need
explicit license?} PrivateChoice -->|No| NoLicense[No LICENSE File

✓ Strongest protection
✓ Zero maintenance] PrivateChoice -->|Yes| PropLicense[LICENSE.md
All Rights Reserved

✓ Crystal clear
✓ Professional] Goal --> ShareFreely[Share Freely
Maximum adoption] Goal --> KeepOpen[Keep Open
Force sharing back] Goal --> Business[Business
Prevent profiting] ShareFreely --> Patent{Want patent
protection?} Patent -->|Yes| Apache[Apache 2.0

✓ Patent grant
✓ Trademark protection
✓ Enterprise-friendly] Patent -->|No| MIT[MIT

✓ Simplest
✓ Widely used
No patent grant] KeepOpen --> Scope[What scope?] Scope --> FileLevel[Modified files] Scope --> ProjectLevel[Entire project] Scope --> NetworkLevel[Cloud services] Scope --> LibraryLevel[It's a library] FileLevel --> MPL[MPL 2.0

Weak copyleft
File-level only] ProjectLevel --> GPL[GPL v3

Strong copyleft
Like Linux] NetworkLevel --> AGPL[AGPL v3

Network copyleft
Companies may avoid] LibraryLevel --> LGPL[LGPL v3

Library copyleft
Can link proprietary] Business --> OSIChoice{Stay true
open source?} OSIChoice -->|Yes| AGPL2[AGPL v3

✓ OSI-approved
Cloud can compete] OSIChoice -->|No| SourceAvail[Source Available

SSPL / BSL / Elastic
✗ NOT open source
Dual-licensing] %% Clickable nodes click Apache "/result/apache-2" "Learn more about Apache 2.0" click MIT "/result/mit" "Learn more about MIT" click MPL "/result/mpl-2" "Learn more about MPL 2.0" click GPL "/result/gpl-v3" "Learn more about GPL v3" click LGPL "/result/lgpl-v3" "Learn more about LGPL v3" click AGPL "/result/agpl-v3" "Learn more about AGPL v3" click AGPL2 "/result/agpl-v3" "Learn more about AGPL v3" click SourceAvail "/result/source-available" "Learn more about Source Available" click NoLicense "/private" "Learn more about private projects" click PropLicense "/private" "Learn more about private projects" %% Styling style Apache fill:#33507a,color:#fff style MIT fill:#a8bfdd,color:#000 style MPL fill:#e5e7eb,color:#000 style GPL fill:#9ca3af,color:#000 style LGPL fill:#d1d5db,color:#000 style AGPL fill:#4b5563,color:#fff style AGPL2 fill:#4b5563,color:#fff style SourceAvail fill:#111827,color:#fff style NoLicense fill:#ffffff,color:#000,stroke:#9ca3af style PropLicense fill:#ffffff,color:#000,stroke:#9ca3af

Color Legend

Blue
Permissive licenses (recommended)
Light gray
Weak copyleft
Mid gray
Strong copyleft
Dark gray
Network copyleft
Near black
Source available (not open source)
White
Private/proprietary

Quick Tips

  • Most developers: Use Apache 2.0 or MIT
  • Want improvements shared: Use GPL v3 or LGPL v3
  • Prevent SaaS: Use AGPL v3 (or source-available)
  • Private code: No LICENSE file is simplest
  • When in doubt: Apache 2.0 is the safest choice