Building on Bedrock: The license Craft CMS deserves

TL;DR: The Craft 2.0 license eases my inital concerns as a 3rd party add-on developer


Last year I wrote an article, titled “Building on Sand: Concerns with the Craft CMS license.”

The article was in response to a post Derek Jones of EllisLab made about the flak EllisLab had been receiving for releasing core updates to ExpressionEngine that some said competed with several of Pixel and Tonic’s add-ons (backstory: in addition to Craft CMS, P&T is a major 3rd party add-on developer on the ExpressionEngine platform). If you’re interested in year old drama, my article has plenty of links to back trace the history.

Anyway, point is that at the time Craft had a license that I felt was pretty risky for commercial 3rd party developers to do business with. To quote the article:

This was the first time I had heard any restrictions to add-on development in Craft so I decided to comb over the license […] Sure enough, the current Craft’s license forbids:
modifying core code or database tables
developing or using modules that replicate, duplicates (whole or in part), or replaces features in Craft core or its Packages
creating plugins that use undocumented features or APIs in the system

Now let me be clear. I consider modifying core and using undocumented features to be extremely bad practice and something to be avoided at all cost. However, this was the first time I actually saw it in an end-user license and I felt it opened up potentially innocent clients to action if an unscrupulous developer hacked their copy of Craft.

Honestly though, restrictions 1&3 weren’t nearly as bad as the 2nd restriction (bolded above). To me that was a bridge too far, it would be the equivalent of Microsoft terminating your license of Windows if you installed Firefox or Chrome.

As a 3rd party developer on the ExpressionEngine platform, considering moving to Craft add-ons, the license made Craft a no-go.

This makes Craft’s license by far one of the most restrictive CMS licenses I’ve seen. Craft’s closest competitors, Statamic and ExpressionEngine both let you modify core (as long as you don’t redistribute) and neither restrict developers or users from creating/using competing add ons.
[…]
My clients rely on me as a consultant to offer software solutions for their business, if I propose a solution that exposes them to litigation or a TOS violation that effectively shuts down their website, that’s a show stopper.

This was a shame, because Craft CMS is a great CMS and even a year ago brought a lot to the table to make it a strong competitor to ExpressionEngine.

I firmly believe there are other requirements a web professional must consider beyond technology for a project. A clear and reasonable TOS & license agreement for the tools used one of those requirements. At the time I just couldn’t recommend Craft beyond a limited hobby/personal site, or for commercial add-on development.

Fortunately today I’m VERY happy to say the new Craft 2.0 license eliminates the duplication/competing line entirely:

7. Plugins
Craft has an extensive plugin architecture that makes it possible for third party code to alter and extend the application’s functionality without modifying the core code. This is permitted with the following restrictions:
You may not write or use a plugin that is destructive, deceptive, or otherwise malicious in nature. You may not write a plugin that breaks or tampers with any of Craft’s built-in functionality, including any restrictions related to license/edition enforcement, its core feature set, or its Premium Features.

And while it still restricts modifying or altering core components. The language has been reworked to at give the user an opportunity to work with P&T on an alternative:

6. Installation and Usage
You may install and use Craft only in the nature that is described in Craft’s documentation.
You may not make any alterations to Craft’s code or the database tables/columns put in place by Craft, unless instructed to do so by Pixel & Tonic. If you have a need that is not addressed via Craft’s core feature set, its Premium Features, or a plugin, and you lack the means to write a plugin to fill the need yourself, please contact support@buildwithcraft.com.

I have to thank Brandon Kelly and all the awesome people at P&T and give them all the praise in the world. I know first hand how hard it is to hear criticism about your product. The fact they listened to the feedback and changed their practices speaks volumes about how they work as a company with the community to improve the product without sacrificing their core goals.

Okay, back to building.

Patrick is the owner of the development agency Anecka. He also writes articles and guides for freelancers to help improve their development productivity at PatPohler.com.