Minbook
KO

Open Source License Selection Guide — MIT vs Apache vs Fair-code vs Additional Clauses

· 4 min read

License Selection Is Your First Business Decision

When starting an open source project, most people treat the license as an afterthought — “I’ll pick one later” or “MIT should be fine.” But the license defines the boundaries of what business models are possible.

Synthesizing the license choices of the eight companies analyzed in G4a through G4d, clear patterns emerge:

CompanyLicenseRevenue ModelLicense Change History
LangChainMITFramework to LangSmith (SaaS)None
LlamaIndexMITFramework to LlamaCloud (SaaS)None
CrewAIMITFramework to Enterprise (SaaS)None
LangfuseMIT + EEMIT core + paid Enterprise featuresNone
DifyConditionalResale restrictionsNone
Hugging FaceApache 2.0Hub to compute salesNone
n8nFair-codeFree self-host to paid CloudNone (Fair-code from start)
ElasticSSPL to AGPL addedSelf-host to paid CloudApache to SSPL (AWS response)

License Permissions and Restrictions Comparison

graph LR
    subgraph PERMISSIVE["Permissive"]
        MIT["MIT"]
        APACHE["Apache 2.0"]
    end

    subgraph COPYLEFT["Copyleft"]
        GPL["GPL v3"]
        AGPL["AGPL v3"]
    end

    subgraph RESTRICTED["Restricted (Source Available)"]
        BSL["BSL 1.1"]
        SSPL["SSPL"]
        FAIR["Fair-code"]
    end

    MIT -->|"+ Patent protection"| APACHE
    APACHE -->|"+ Modification disclosure"| GPL
    GPL -->|"+ Service included"| AGPL
    AGPL -->|"+ Competing service ban"| BSL
    BSL -->|"+ Full stack disclosure"| SSPL

    style PERMISSIVE fill:#e8f5e9,stroke:#4caf50
    style COPYLEFT fill:#e3f2fd,stroke:#2196f3
    style RESTRICTED fill:#fff3e0,stroke:#ff9800
AspectMITApache 2.0GPL v3AGPL v3BSL 1.1SSPLFair-code
View source codeYesYesYesYesYesYesYes
ModificationYesYesYes (disclose)Yes (disclose)YesYesYes
Commercial internal useYesYesYesYesYesYesYes
RedistributionYesYesYes (disclose)Yes (disclose)RestrictedRestrictedNo
Offer as SaaSYesYesYesYes (disclose)NoNoNo
Fork & competeYesYesYesYesNoNoNo
Patent protectionNoYesYesYesYesYesVaries
OSI certifiedYesYesYesYesNoNoNo

One-Line Summary of Each License

  • MIT: “Take it and do anything. Just include the attribution”
  • Apache 2.0: “MIT + automatic license termination in patent disputes”
  • GPL v3: “If you modify it, the modified code must also be released under GPL”
  • AGPL v3: “GPL + source disclosure required even when offering as a service”
  • BSL 1.1: “Competing services prohibited. Automatically converts to open source after 4 years”
  • SSPL: “To offer this as a service, you must disclose the entire service stack”
  • Fair-code: “Internal use is free, resale is prohibited”

Decision Framework by Project Scale

Decision Flow

graph TD
    START["Starting an open source project"] --> Q1{"Could the code\nitself become a\ncompetitive threat?"}

    Q1 -->|"YES\n(Infrastructure, platform)"| Q2{"Could AWS/cloud\nproviders build a\nmanaged service?"}
    Q1 -->|"NO\n(CLI, library, tool)"| Q3{"Is the revenue\nsource the code\nor content/services?"}

    Q2 -->|"Likely"| R1["Fair-code / BSL\n(Defend from day one)"]
    Q2 -->|"Unlikely"| Q4{"Are community\ncontributions\nessential?"}

    Q3 -->|"Code"| Q4
    Q3 -->|"Content / services"| R2["MIT\n(Maximum adoption)"]

    Q4 -->|"YES"| R3["MIT / Apache 2.0\n(Minimize contribution friction)"]
    Q4 -->|"NO"| R4["AGPL / MIT+EE\n(Defense + contribution balance)"]

    style R1 fill:#fff3e0,stroke:#ff9800
    style R2 fill:#e8f5e9,stroke:#4caf50
    style R3 fill:#e8f5e9,stroke:#4caf50
    style R4 fill:#e3f2fd,stroke:#2196f3

Recommendations by Scale

Project ScaleCharacteristicsRecommended LicenseReasoning
Solo side project0-100 users, no revenueMITMaximize adoption; defense unnecessary
Solo + monetization attempt100-1K users, early revenueMIT (non-code revenue) or AGPL (code revenue)Branch based on revenue source
Startup (Seed-A)1K-10K users, VC-fundedApache 2.0 + EE or BSLPatent protection + competitive defense
Growth stage (Series B+)10K+ users, $1M+ ARRFair-code or BSLAWS defense essential

MIT vs Apache 2.0: When Is Apache Better?

The practical difference between the two licenses comes down to patent clauses:

  • MIT: No mention of patents
  • Apache 2.0: Contributors automatically grant a patent license. If a contributor files a patent lawsuit, the license automatically terminates

In patent-sensitive domains (AI algorithms, database engines, etc.), Apache 2.0 is safer. For CLI tools and utilities, MIT is sufficient.


MMU’s License Decision Process

Applying the Decision Criteria

QuestionMMU’s Answer
Could the code itself be a competitive threat?No — the probability of AWS creating a managed service from a CLI checklist is zero
Is the revenue source the code?No — revenue comes from Playbook Pack (content) and AI Coach (service)
Are community contributions essential?Yes — maintaining 534 items alone is difficult
Patent issues?No — no patentable technology involved

Conclusion: MIT

Risk Assessment

RiskProbabilityImpactMitigation
Someone forks and launches a competing CLILowLowContent differentiation (Playbook Pack)
Company adopts internally without contributingMediumLowMIT’s adoption benefit outweighs contribution loss
Someone turns MMU into a SaaSVery lowMediumContent + AI Coach serve as defensive moats

For MMU, Fair-code would be overkill. When there’s no “competitive threat” to protect against, blocking resale only reduces adoption without providing meaningful defense.


The Cost of Changing Licenses

“Start with MIT and change it if problems arise” is a strategy that’s theoretically possible but practically very expensive — this is the key lesson from the case studies covered in G4d.

Costs Incurred When Changing a License

Cost TypeDetails
Community trustHashiCorp to OpenTofu fork. Developer community resentment
Legal complexityExisting contributors’ consent required. Retroactive CLA (Contributor License Agreement) nearly impossible
Fork riskCompeting projects emerge based on the pre-change version
Enterprise customer confusionLegal teams must review the new license, delaying adoption
Brand damage”It’s no longer open source” media and community criticism

Once a license is set, changing it is hard. “Post-hoc change” is far more expensive than “upfront design.”


Practical Checklist

When starting an open source project, answering these five questions determines your license:

#QuestionIf YESIf NO
1Will you earn money by selling the code itself?Consider AGPL or aboveMIT / Apache
2Could a cloud provider build a service from your code?Fair-code / BSLMIT / Apache
3Do you want to prevent contributor code from ending up in closed-source products?GPL / AGPLMIT / Apache
4Is the technology patent-relevant?Apache 2.0MIT works
5Do you want to promise full open source conversion after 4 years?BSLFair-code

If the answer to all five is NO, choose MIT. This applies to the majority of solo projects.

CLA (Contributor License Agreement)

If there’s any possibility you may want to change your license in the future, it’s critical to have a CLA (Contributor License Agreement) in place from the start. Without a CLA, changing the license requires individual consent from every contributor — which is practically impossible at scale. One key reason Elastic, MongoDB, and HashiCorp were all able to execute their license changes was that they had secured CLAs from contributors upfront.

Even for solo projects, introduce a CLA once you start accepting external contributions. Tools like GitHub’s CLA Assistant can automate the process — the initial setup cost is low, but it preserves the flexibility to change your licensing strategy later.


Summary

Key PointDetails
License = business model frameDetermines which monetization paths are possible and which are blocked
The most important question”Could your code itself become a competitive threat?” YES = defensive; NO = permissive
Solo project defaultMIT (maximize adoption, no need for excessive defense)
Post-hoc change costsCommunity trust, legal complexity, fork risk — expensive
MMU’s choiceMIT — revenue comes from content, not code, so defense is unnecessary

The next post covers the series conclusion — Can a solo builder monetize open source without enterprise sales? It synthesizes the G4a-G5 analysis into a 5-stage framework that a single person can actually execute.

Share

Related Posts

Comments