<aside>
On this page
Related content </aside>
Open core software includes both open source and proprietary licensing. Proprietary code should be source-available but require a license or subscription to use.
OCV prefers to start companies around projects that have a permissive license (e.g., MIT, Apache, or BSD) or the possibility of relicensing. It’s best practice to use the same open source license as the project. We will consider projects that aren’t permissively licensed on a case-by-case basis, but advocate for MIT whenever possible.
Open source license decision tree for OCV companies
Relicensing should be done through the influence of the author of the project or the key contributor in the community. If relicensing, release a blog post (example) explaining the rationale behind this change to the open source community.
Open source licensing guidelines
This might seem counterintuitive, but transparency in your proprietary code creates significant advantages. We recommend all OCV companies make all their code source available so anyone can contribute, even to the proprietary parts. There is not a great reason not to do this. Maybe competitors are copying you, but we’ve never seen a startup die because of this. Startups die because no one cares enough about them, no one is using their product, and their product is not improving fast enough.
The licensing for a repository should be stated in the master directory of the repository in a document titled “LICENSE”. Where different portions of a repository have differential licensing, it is best to be explicit about that differential licensing. The license document should describe explicitly which directories fall under which license and where specifically the software is proprietary.
It’s best practice to put proprietary features in a /proprietary
subdirectory within the open source repository. Avoid naming the subdirectory /ee or /enterprise-edition. The licensing can be described in the subdirectories themselves under separate license documents referenced in the master directory in the format of:
All content that resides under the "subdirectory/" directory of this repository, if that directory exists, is licensed under the license defined in "subdirectory/LICENSE".
Alternatively, you can delineate open source and proprietary code on a file-by-file basis, but it makes it really hard for people to kind of quickly get an idea what's proprietary and what's not.