Software whose source code is publicly available. Anyone may examine, modify, and distribute it, subject to the license terms. Rooted in the Free Software Foundation philosophy:
Code should be freely available to examine and modify.
Contribution Models
- Maintainer-gated
A small core team controls merges. Contributors submit patches via pull requests. Used by most major projects (Linux kernel, CPython). - Consensus-based
Changes require agreement from a defined quorum of committers. Common in Apache Software Foundation projects. - Benevolent Dictator
A single person has final say. Used by Python (Guido van Rossum until 2018). - Sponsored
A company funds development and employs most core contributors. Used by projects like React (Meta), Kubernetes (Google/CNCF).
Governance
Governance defines who decides direction, who merges code, and how disputes are resolved.
- Foundation model
Neutral non-profit holds the project (Apache, Linux Foundation). Shields from single-company control. - Company-controlled
Original author’s company steers the project. Risk: forking if company priorities diverge. - Community governance
Elected steering committees. Used by Python (PSC), Rust (core team).
Forking
A fork is a copy of a project developed independently. Forks occur when governance breaks down or when a company changes terms.
Notable examples:
- LibreOffice forked from OpenOffice after Oracle acquisition.
- MariaDB forked from MySQL after Oracle acquisition.
- Node.js temporarily forked into io.js over governance disputes; later merged back.
Business Models
Selling support is one model. Others:
- Open core
Core product is free; enterprise features require a paid license (GitLab, Elasticsearch). - SaaS
Hosted version sold as a service. Code is open but running it at scale is sold (MongoDB Atlas, Confluent). - Dual licensing
Free for open-source use; paid commercial license for proprietary products (Qt, MySQL). - Support and consulting
Revenue from professional services, training, and certifications (Red Hat).
Examples: Linux, Apache, MySQL, PostgreSQL, Kubernetes, CPython.