⬇️

Distribution

An open core company should have one distribution that includes both open source and proprietary code.
Distribution should be publicly available. Anyone can download.
The features in the proprietary codebase are activated with a paid subscription.

Activating the proprietary features and code:

  1. Have the customer instance talk with your entitlement service. They report statistics (customer id, number of users, aggregate usage numbers of certain features) and you report to them how many users they are entitled to. Don't have license files, it should be an online check.
    1. Use Unique ID for each customer (probably, UUID).
    2. Customer ID come out of your sales software (Zuora, Salesforce, etc.)
  1. Proprietary features should be source available (every can see and contribute to them) and stored in a subdirectory called /proprietary (not /ee) in the same repository as the open source code.
    1. Examples:
      1. That subdirectory should be in the same repository that also contains the open source code. The repo license should call out the different licenses