Three types of community open source

Any project or product that uses open-source software becomes dependent on it. Introducing such a dependency should be thought through in detail, in particular if the software is to be used as a component in a commercial product. Most notably, you need to understand the intentions of the open source programmers then and how they will affect your product.

There are basically three types of community open source projects and they most clearly express their intentions by choice of license.

  • No commercial use. Strictly speaking, these aren’t open source projects, because by definition open source does not discriminate against specific uses. However, there are other ways of preventing commercial use (than using licenses with a non-commercial clause) that range from the soft (ignoring user needs) to the hard (trademark protection).
  • Not your choice (of business model). Proper open source licenses allow for commercial use, but some, most notably copyleft licenses, limit the user’s choice of business model. Some projects don’t want you to keep (some of) your code proprietary and try to enforce this with a copyleft license. Your product must then use the same copyleft license.
  • Enlightened self-interest. Finally, some project communities assume that they should not meddle with your choice of business model and that it is sufficient for you to contribute the project when you see fit (rather than trying to force it through a copyleft license). This is most commonly expressed through a permissive project license.

Needless to say, you should define your business model first, and then choose your dependency in such a way that they are aligned with your choice of business model, not somebody else’s.