License Selection for Software and Content
Purpose
Guide users through selecting appropriate licenses for code, documentation, and content. Provide decision trees, use case analysis, and multi-licensing strategies with emphasis on practical outcomes.
When to Use This Skill
Use this skill when:
- User needs to choose a software license
- Selecting Creative Commons licenses for documentation/media
- Discussing multi-licensing or dual-licensing strategies
- Comparing license options (MIT vs Apache, GPL vs permissive)
- Understanding license compatibility
- Considering FSL-1.1-MIT or time-delayed open source
- Setting up license files in repositories
License Hierarchy and Recommendations
For Code Projects
Tier 1: GitHub-Approved Licenses (Recommended First)
Present these licenses first for code projects:
- MIT: Maximum adoption, simple, permissive
- Apache-2.0: Permissive with patent grant protection
- GPL-3.0: Strong copyleft, derivatives must be open source
- AGPL-3.0: Network copyleft, closes SaaS loophole
- BSD-3-Clause: Permissive with trademark protection
Tier 2: Special Purpose
- FSL-1.1-MIT: Commercial now, MIT in 2 years (Sentry model)
- MPL-2.0: File-level copyleft, good for libraries
- LGPL-2.1: Library-focused copyleft
Tier 3: OSI-Approved (Not on GitHub List)
Recommend only if specific requirements demand them.
For Documentation and Media
Tier 1: Creative Commons (Recommended First)
Present these for non-code content:
- CC-BY-4.0: Attribution only, most permissive
- CC-BY-SA-4.0: Attribution + ShareAlike (copyleft)
- CC0-1.0: Public domain dedication
- CC-BY-NC-4.0: Attribution + NonCommercial (limits commercial use)
Tier 2: Code Licenses
Use only if documentation is code-adjacent (API docs in repo).
License Decision Tree
Quick Selection for Code
Question 1: Do you want maximum adoption?
- YES → MIT License (recommended for most projects)
- NO → Continue
Question 2: Do you need patent protection?
- YES → Apache-2.0 (includes explicit patent grant)
- NO → Continue
Question 3: Do you want copyleft (derivatives must be open source)?
- YES → GPL-3.0 (strong copyleft) or AGPL-3.0 (for network services)
- NO → Continue
Question 4: Is this a commercial SaaS that will become open source?
- YES → FSL-1.1-MIT (2-year delay, then MIT)
- NO → Review detailed comparison
Quick Selection for Documentation
Question 1: Should others give attribution when using your work?
- NO → CC0-1.0 (public domain dedication)
- YES → Continue
Question 2: Should derivative works also be open?
- YES → CC-BY-SA-4.0 (ShareAlike, like GPL for content)
- NO → Continue
Question 3: Should commercial use be allowed?
- YES → CC-BY-4.0 (most permissive with attribution)
- NO → CC-BY-NC-4.0 (non-commercial restriction)
Multi-Licensing Strategies
What is Multi-Licensing?
Offering the same software under multiple license options, allowing users to choose which license terms they prefer.
Common patterns:
- Permissive + Copyleft: MIT + GPL (user chooses)
- Open Source + Commercial: GPL + Proprietary (dual licensing)
- Time-Delayed: FSL → MIT (automatic transition)
When to Use Multi-Licensing
Good candidates:
- Commercial open-source projects needing revenue
- Projects wanting copyleft but not wanting to scare away permissive-only users
- SaaS products transitioning to open source
Business models:
- Open Core: Base under OSS, premium features under commercial
- Dual Licensing: GPL for open source, commercial for proprietary use
- Time-Delayed: FSL today, MIT automatically in 2 years
FSL-1.1-MIT (Functional Source License)
What it is:
- Source-available now, production use restricted
- Automatic MIT license after 2 years from release
- Used by Sentry and other commercial OSS companies
When to recommend:
- Commercial SaaS products
- Projects wanting eventual open source with revenue period
- Companies following "open source with a business model"
Key points:
- Users can read, modify, test the code immediately
- Cannot use in production or competing services for 2 years
- After 2 years, becomes fully MIT licensed automatically
Not OSI-approved but ethical and sustainable
License Characteristics Reference
Permissions Comparison
| License | Commercial Use | Modifications | Distribution | Patent Grant | Private Use | |---------|---------------|---------------|--------------|-------------|-------------| | MIT | ✓ | ✓ | ✓ | — | ✓ | | Apache-2.0 | ✓ | ✓ | ✓ | ✓ | ✓ | | GPL-3.0 | ✓ | ✓ | ✓ | ✓ | ✓ | | AGPL-3.0 | ✓ | ✓ | ✓ | ✓ | ✓ | | FSL-1.1-MIT | Limited* | ✓ | ✓ | — | ✓ |
*FSL: No production/competing use for 2 years, then becomes MIT
Conditions Comparison
| License | Disclose Source | License Notice | State Changes | Same License | |---------|----------------|----------------|---------------|------------| | MIT | — | ✓ | — | — | | Apache-2.0 | — | ✓ | ✓ | — | | GPL-3.0 | ✓ | ✓ | ✓ | ✓ (copyleft) | | AGPL-3.0 | ✓ | ✓ | ✓ | ✓ (network) | | FSL-1.1-MIT | ✓ | ✓ | — | — |
Practical License Recommendations
By Project Type
Open Source Library:
- First choice: MIT (widest adoption)
- If patent concerns: Apache-2.0
- If want copyleft: LGPL-2.1 (library-specific)
Open Source Application:
- First choice: MIT or GPL-3.0 (user preference)
- If network service: AGPL-3.0 (prevents proprietary SaaS)
- If eventual open source: FSL-1.1-MIT
Documentation/Tutorials:
- First choice: CC-BY-4.0 (attribution required)
- If want ShareAlike: CC-BY-SA-4.0
- If public domain: CC0-1.0
Commercial SaaS:
- First choice: FSL-1.1-MIT (delayed open source)
- Alternative: Dual GPL + Commercial
- Open core: Apache-2.0 for base, commercial for premium
By User Goal
Goal: Maximum adoption and contributions → MIT (most permissive, well-known, widely accepted)
Goal: Prevent proprietary forks → GPL-3.0 (strong copyleft, derivatives must be open source)
Goal: Prevent proprietary SaaS → AGPL-3.0 (network copyleft, closes SaaS loophole)
Goal: Patent protection → Apache-2.0 (explicit patent grant and retaliation clause)
Goal: Business model + open source → FSL-1.1-MIT (revenue window, then open source) or Dual GPL + Commercial
Multi-Licensing Implementation
File Structure for Dual Licensing
repository/
├── LICENSE (primary license, e.g., GPL-3.0)
├── LICENSE.commercial (commercial terms, or link to purchase)
└── README.md (explains licensing options)
README Section Template
## License
This project is dual-licensed:
- **Open Source**: GNU General Public License v3.0 (GPL-3.0)
- Free for open source projects
- Derivatives must also be open source
- **Commercial**: Proprietary commercial license
- For use in proprietary/closed-source projects
- Contact: sales@example.com
Choose the license that best fits your use case.
FSL Multi-License Pattern
repository/
├── LICENSE.md (FSL-1.1-MIT with both licenses)
└── README.md (explains time-delayed transition)
Additional Resources
Reference Files
For detailed analysis and comparisons:
references/license-comparison.md- Side-by-side detailed license comparisonsreferences/multi-licensing-guide.md- Dual licensing models, business patterns, real-world examples from FOSSAreferences/fsl-explained.md- FSL-1.1-MIT deep dive, use cases, companies using itreferences/creative-commons-guide.md- Complete CC license guide for content creators
License Templates
Complete license templates available in plugin:
../../templates/LICENSE/github/- 21 GitHub-approved licenses (MIT, Apache-2.0, GPL-3.0, etc.)../../templates/LICENSE/creative-commons/- Creative Commons licenses (CC0, CC-BY-4.0, CC-BY-SA-4.0, etc.)../../templates/LICENSE/fsl/- FSL-1.1-MIT and variants
Use the populate_license.py script to render templates with project-specific variables (copyright holder, year, etc.)
Quick Reference
For most code projects: MIT (permissive, popular)
Need patent protection: Apache-2.0
Want copyleft: GPL-3.0 (code) or AGPL-3.0 (network services)
For documentation: CC-BY-4.0 (attribution) or CC-BY-SA-4.0 (copyleft)
Commercial SaaS: FSL-1.1-MIT (delayed open source)
Multi-licensing: GPL + Commercial (dual) or FSL → MIT (time-delayed)
Consult reference files for detailed comparisons and multi-licensing strategies.
微信扫一扫