Competition, Ethics, and Add-ons
EllisLab is committed to making ExpressionEngine the best content management platform available. Today’s developer preview for ExpressionEngine 2.7 includes a feature that was previously only available through the third-party add-on market: a fieldtype that allows authors to used grouped fieldtypes to publish any number of rows of related content within an entry. We’re calling it Grid, and it’s great for photo galleries, addresses, product details, baseball statistics and more. We thought it would be beneficial to provide some insight into this decision, as well as answer some pertinent questions about the third-party market for ExpressionEngine in general.
One of our primary goals with ExpressionEngine 2 was to create a true platform, enabling a robust and diverse add-on ecosystem. This often left us taking a hands-off approach to features that were made available and well-executed by third-parties, even when the feature was something we wanted to build or already had a base for in the core product. In this way we helped create opportunities for third-party developers to succeed: if a third-party’s solution is widely adopted and well-supported, ExpressionEngine ostensibly has that feature.
It’s no secret that a prominent developer in the ExpressionEngine add-on community decided to release their own publishing system, intending to compete directly against ExpressionEngine. What surprised us about this was not that it happened, but the way that it happened. A formerly friendly developer unveiled a competing product behind closed doors at
our own conference, and tried to convince the organizers to let him use the A/V equipment that we were paying for to do it .†
Competition is both expected and vital for innovation, and it is a good thing for consumers. There are some nuances to this situation that make it unique from competing with Drupal, Wordpress, or Joomla. Pixel & Tonic did not just set up shop across the street from us. We invited Pixel & Tonic to sell flavored syrups to our customers inside our own coffee shop. We left a few syrups off our menu because the friendly business in the corner was providing them. But then they began telling our customers that the coffee at their new shop was better - certainly their prerogative, but we would be irresponsible to ignore it.
So quite simply, we are putting those flavors back on our menu. Our customers do not have to worry whether or not Pixel & Tonic can develop and support something as complex as a publishing platform and still maintain the time and interest required to continue offering and supporting add-ons for a competitor’s product. It is a sincere and realistic concern that many of you have shared with us. And for those of you who relied on both Playa and Matrix regularly, your per-site software licensing costs will decrease by $120.
Additionally, our third-party development community (including Pixel & Tonic for that matter) does not have to worry that we will attempt to legally prohibit anyone from duplicating, improving, or modifying functionality that we decide to build into ExpressionEngine. If we are concerned about a third-party providing native functionality better than we have, it’s our responsibility to improve what we offer, not legally bar that developer from making his or her own improvements.
Ironically, the license agreement currently in place for Pixel & Tonic’s CMS explicitly forbids the type of add-ons that enabled Brandon Kelly to build his company within our community. Wygwam, Playa, Matrix, Assets, none of those could have existed if EllisLab took a similar view of third-party development for ExpressionEngine. Nor would User, Membrr, Zenbu, Wyvern, Expresso, Photo Frame, Updater, Low Search, CE Cache, and countless other add-ons that are intended to either improve or replace native ExpressionEngine features.
Two things we’d like you to take away from this. First, we are committed to ensuring that our customers (and most importantly the end users) that rely on our platform will not get caught in a lurch, relying on functionality from a company that has a conflict of interest in our users’ ability to succeed with ExpressionEngine.
And second, we are committed to making ExpressionEngine the best content management platform available. Some features should be available out of the box. We will build those features, and will not intentionally avoid them simply because a third-party has made similar functionality available. At the same time, we will continue to make our code extensible and invite add-on developers to do their own thing. Your approach at solving the same problem may be different and wonderful. We will help you make that work with our application, and continue to write our code in such a way that invites third-party developers into our community, fostering a spirit that encourages a diversity of solutions and feature sets for ExpressionEngine users to choose from.
† I had a recent conversation with Brandon Kelly and discovered we were misled about the attempted use of equipment for his presentation, and extended our apologies.