# ADR 0006: AGPL-3.0-or-later License - **Status**: Accepted - **Date**: 2025-01-10 - **Track**: Process ## Context KoproGo's mission emphasizes: 1. **Transparency**: Public code, auditable by users 2. **Collective power**: Prevent proprietary forks by large players 3. **Sustainability**: Ensure improvements benefit community, not only shareholders 4. **Openness**: Encourage contributions while protecting commons We need a license that: - Allows commercial use (ASBL can sell services) - Requires derivative works to remain open-source - Prevents "SaaS loophole" (hosting modified code without sharing changes) ## Decision We chose **AGPL-3.0-or-later** (GNU Affero General Public License version 3 or later). **Why AGPL over GPL**: - AGPL **closes the SaaS loophole**: Modified code hosted as a service MUST be shared - Example: If a competitor hosts modified KoproGo without releasing changes, they violate license - GPL would allow this (only binary distribution requires source sharing) **Compatibility**: - ✅ Compatible with MIT/Apache crates (can use as dependencies) - ✅ Allows commercial use (ASBL can charge for hosting/support) - ✅ Users can run modified versions privately without sharing - ❌ Incompatible with proprietary software (by design - this is a feature) ## Consequences **Positive**: - ✅ **Prevents capture**: Large players cannot fork without open-sourcing improvements - ✅ **Ensures transparency**: Users can audit financial calculations, security - ✅ **Encourages contributions**: Improvements must be shared back - ✅ **Mission-aligned**: Supports collective ownership, not private extraction - ✅ **Long-term sustainability**: Community benefits from all improvements **Negative**: - ⚠️ **Limits partnerships**: Some companies avoid AGPL due to legal concerns - ⚠️ **Smaller contributor pool**: Some developers prefer permissive licenses (MIT/Apache) - ⚠️ **Compliance burden**: Must track dependencies, ensure compatibility **Risk mitigation**: - Target contributors aligned with mission (cooperatives, civic tech, open-source advocates) - Provide clear CONTRIBUTING.md and LICENSE guidance - Offer dual licensing for partners if needed (future consideration) ## Alternatives Considered 1. **MIT/Apache-2.0** (permissive): - ✅ Maximum adoption, no restrictions - ❌ Allows proprietary forks without contribution - ❌ Misaligned with mission (collective power) - **Verdict**: Rejected as incompatible with values 2. **GPL-3.0** (copyleft): - ✅ Requires sharing binary distributions - ❌ Allows SaaS loophole (host modified code without sharing) - **Verdict**: Close, but AGPL preferred for SaaS nature of KoproGo 3. **Business Source License (BSL)**: - ✅ Becomes open-source after time delay - ❌ Not open-source initially (violates OSD) - ❌ Complex, less understood - **Verdict**: Rejected as not truly open-source 4. **European Union Public License (EUPL)**: - ✅ EU-specific, copyleft - ❌ Less well-known, weaker network effects - **Verdict**: Good option, AGPL preferred for global recognition ## Copyleft in Practice **What requires sharing changes**: - ✅ Hosting modified KoproGo as a service - ✅ Distributing modified binaries - ❌ Using KoproGo internally without distribution - ❌ Calling KoproGo API from proprietary client (API boundary exception) **Example scenarios**: **Scenario 1: Syndic self-hosting** - Syndic downloads KoproGo, modifies for their needs, hosts for their clients - **Required**: Share modifications (AGPL triggered by network use) **Scenario 2: SaaS competitor** - Competitor forks KoproGo, adds proprietary features, sells as service - **Required**: Share all modifications including proprietary features (AGPL) **Scenario 3: Mobile app** - Developer builds proprietary mobile app calling KoproGo API - **NOT required**: API boundary exception (app is separate work) ## Communication Strategy **Messaging**: - "Open-source for transparency and collective power" - "We believe property management software should be a commons, not a commodity" - "Your contributions improve the platform for everyone" **FAQ**: - Q: Can I use KoproGo commercially? - A: Yes! AGPL allows commercial use. You can charge for hosting, support, customization. - Q: Can I modify KoproGo for my own use? - A: Yes! If you don't distribute or host it publicly, no obligation to share. - Q: Why not MIT/Apache? - A: Mission alignment. We want improvements to benefit the community, not private shareholders. ## Next Steps - ✅ Add LICENSE file to root (**Done**) - ✅ Add license headers to all source files (**Done**) - ✅ Document in CONTRIBUTING.md (**Done**) - ⏳ Add dependency license checker to CI (cargo deny) - ⏳ Publish license FAQ on website ## References - AGPL-3.0 full text: https://www.gnu.org/licenses/agpl-3.0.html - FSF AGPL FAQ: https://www.gnu.org/licenses/agpl-3.0-standalone.html - TL;DR Legal: https://tldrlegal.com/license/gnu-affero-general-public-license-v3-(agpl-3.0)