What is Dual Licensing?
Dual licensing is a software licensing strategy where the same code is made available under two different licenses simultaneously. Users choose which license to accept based on their needs.
The Basic Concept
With dual licensing, a software project offers:
An open-source license — typically a copyleft license like AGPL-3.0, which allows free use but requires derivative works to be open-sourced under the same terms
A commercial license — a paid license that permits proprietary development without the copyleft restrictions
Users who are happy to comply with the open-source license's terms (like releasing their own code as open source) can use the software for free. Users who want to build proprietary, closed-source products can purchase a commercial license instead.
Why Two Licenses?
Different users have different needs:
Open-source projects and developers often want to:
- Use, modify, and redistribute code freely
- Contribute improvements back to the community
- Comply with copyleft requirements
Commercial organizations often want to:
- Incorporate open-source code into proprietary products
- Keep their own code private and proprietary
- Avoid copyleft restrictions that would require open-sourcing their work
Dual licensing serves both groups: it keeps the code open and freely available to the open-source community while creating a sustainable revenue stream from commercial users.
How It Works in Practice
Consider a developer who creates a useful open-source library:
Without dual licensing:
- The library is available under a permissive license (like MIT)
- Anyone can use it for any purpose, including large corporations
- The developer receives nothing for commercial use of their work
- Or, the library uses a copyleft license (like AGPL)
- Businesses avoid it because they can't use it in proprietary products
- The developer still receives nothing, and adoption is limited
With dual licensing:
- The library is available under AGPL for open-source use
- Businesses that want proprietary use purchase a commercial license
- The developer earns revenue from commercial users
- Open-source users still have full access under AGPL
- Everyone gets what they need
The CodeLibra Approach
CodeLibra simplifies dual licensing by handling the complexity:
- Standard commercial license — The CodeLibra License provides clear, consistent terms for commercial use
- Automated transactions — No need to negotiate individual license agreements
- Subscription model — Licensees subscribe to receive ongoing updates; licenses for covered releases are perpetual
- Dependency management — Revenue is automatically shared when your module depends on other CodeLibra modules
- No upfront costs — CodeLibra only earns when you do (20% commission on license revenue)
Classic vs. Voluntary Dual Licensing
CodeLibra supports two dual licensing models:
Classic Dual Licensing
- Open-source license: Copyleft (e.g., AGPL-3.0)
- Commercial license: Required for proprietary development
- Best for: Developers who want to ensure commercial users pay
Voluntary Dual Licensing
- Open-source license: Permissive (e.g., MIT)
- Commercial license: Optional (for users who want formal licensing, support, etc.)
- Best for: Developers who want broad adoption with optional paid support
Is Dual Licensing Right for You?
Dual licensing works well when:
- Your software provides clear value to commercial users
- You want to maintain open-source availability while generating revenue
- You're willing to maintain and support the software
- Your module can function independently or as a dependency
It may not be ideal when:
- Your software is purely hobbyist or experimental
- You don't want any commercial involvement
- The software has no clear commercial use case
Next Steps