Moving to source-available licensing

I’ve made the decision to update Level‘s licensing to a source-availability scheme. This is something I’ve been giving careful thought over past few months as I evaluate my goals and my vision for the product. Ultimately, I believe it is the most sustainable way to license the codebase and will allow me to continue fearlessly building it out in the open.

 A quick tour of licensing

There are several common licensing schemes (and accompanying business models) for software businesses:

A majority choose to adopt the closed-source, proprietary model. The calculus is pretty straightforward: the company funds the development of the product and retains all intellectual property rights to monetize it.

The open core and fully open source models open up more possibilities: people from the community can download and use it for free and can contribute their development efforts back to the project if they so choose. There are many officially “approved” open source licenses with varying properties that all adhere to The Open Source Definition defined by the Open Source Initiative.

By and large, companies licensing their code as open source rely on selling hosting (or other managed services) to generate revenue. Additionally, most reserve their trademarks/copyrights to prevent a competing business from marketing their codebase under the same name (or something confusingly similar).

 Why source-available is right for Level

When I made the decision to build Level out in the open, I had several goals:

Herein lies the risk: open source licenses contain no provision preventing larger companies from forking the codebase, changing the name, and competing directly with the project creators.

If Level lives up to my expectations, then it would only make rational sense for someone to seize upon that opportunity eventually. I had to ask myself, “Is that what I desire to happen?”

I believe the answer for most companies is “no.”

There are some ways to disincentivize people from doing this:

None of these options align with my values and my vision for Level. Rather than adopting a pure open source license and attempting to play defense against opportunists, it makes the most sense for Level’s licensing to align with my original goals.

 How the Commons Clause works

Level is licensed using a combination of the Apache 2.0 license and the Commons Clause. This clause can be added to any existing open source license to disallow one particular right: the right to sell a product “whose value derives, entirely or substantially, from the functionality of the Software.”

This means you can still:

➜ Host the software for your own personal and commercial use
➜ Fork the codebase and use it as the basis for a non-competing product or service
➜ Sell consulting services to help people host Level for their own use

But, you cannot do the following without permission:

✗ Sell a hosted (SaaS) version of Level
✗ Sell a downloadable version of Level

I genuinely believe this is the most reasonable and sustainable licensing scheme for Level moving forward.


Now read this

How to display server-rendered HTML in Elm 0.19

I’m building a team communication product called Level, and one of the core features is rendering posts as Markdown. Elm has a library to handle this on the client-side. It’s a wrapper around the marked.js library that uses Kernel code... Continue →