An Objective Look At Craft CMS

Selvin Ortiz / March 17, 2015

Like many of you, I am a big fan of Craft. It’s a fantastic product, developed and maintained by an awesome group of people who are passionate about it and care deeply about customer satisfaction.

In many ways, I agree with all the love Craft gets folks around the web. This love is well deserved and many people giving praises, are well known and respected in the community.

I have an opinion too, but I want to share it with you in an objective way so that you can get a real sense for what Craft has to offer and where it may lack.

The good parts #

In an effort to stay DRY, I thought I’d link to articles written by others who themselves are very excited about Craft.

Here is what I have to say about it.

>I love Craft because of its templating flexibility, robust plugin architecture, solid security infrastructure, full featured control panel, amazing customer support, and the awesome people behind it.

The bad parts #

The P&T team has done a good job at stabilizing the Craft API and achieving feature completion. The effort with which they’ve tackled new issues is definitely one I cannot fault.

A few months ago, I came across a few bugs related to scalability while working with large data sets but they quickly addressed those issues and with the release of Craft 2.3, most of them were fixed or improved.

In the past, documentation was a bit lacking but that too has been revamped and we now have a fairly complete set of docs and even a class reference that has proven handy.

Not all is good in the hood, though, there are a couple of things I can definitely complain about.

1. Field management

Craft is extremely flexible and its approach to content management via custom fields seems very well executed.

However, managing those fields can be painful.

A quick look at the new feedback site will reveal that many users want better ways to manage and reuse custom fields.

You could argue that this is not a bad implementation but rather, an incomplete one. In either case, improvements can be made and should be a priority because fields are the one feature every site needs and the bigger the site, the more fields it will need.

2. TTFB (Time to first byte)

This is a really annoying 250 – 300 millisecond wait on page load and though it isn’t a huge deal for everyone, it is something that can be fixed. I expect it to be addressed in the next major release.

We should then be able to get a nice PageSpeed Insights report card from google and get snappier load times.

The missing parts #

Craft may be young but it’s not in beta anymore, in fact, the latest version is Craft 2.3.2636 as of this writing. What that means to me is that I have to take an objective look at what else I need from it to be able to pitch it to the large majority of clients without feeling like I’m gambling.

All this to say that I’m not willing to cut Craft as much slack as I used to, and neither should you.

So, what’s actually missing?

1. Official plugin store

Discussions about an official plugin store have circled the back channels for a long time but with heavy development being invested in Craft 3.0, an official plugin store seems far into the future.

What is clear to me, is that developers need a formalized approach for sale and distribution of their plugins. Business owners and site administrators need to keep track of plugin licenses and to be able to manage plugins right from within the control panel rather than having to go hunt down the plugin repo.

I also believe that an official plugin store would motivate larger agencies to invest in Craft plugin development, filling the gap that freelancers have not been able to. Additionally, it would solve the issues I mentioned and provide a more cohesive plugin ecosystem.

There is some good news, though. I’ve heard that a plugin store is planned and that most features outlined above may be implemented at initial release or shortly thereafter.

It is also worth noting that the team is currently focusing on Craft 3.0 which will be a breaking release. That means that most if not all plugins will need to be updated since a lot of new APIs are being written and some old ones are being replaced. This is probably one of the reasons the team does not want to disclose any info or timeline on the plugin store.

I was really hoping that we would get a plugin store before Craft 3.0 but I’m ok with waiting a little longer.

In the meantime, if you need to find the most up to date list of available plugins, you’ll have to head over to Straight Up Craft and do some searching.

If you want to sell a plugin, your only options right now are to do it yourself or distribute it through Craft Plus

Finally, if you need to be able to install/​update plugins from within the control panel, the Directory Plugin is probably the way to go.

2. Production ready plugins

I’m using production ready to mean that a plugin is feature complete, carries the proper license, is actively maintained, provides good documentation, and offers customer support in one way or another.

There is currently a lack of production ready plugins in specific categories that prevent clients from jumping on board. This is the case for clients that require full feature e‑commerce, event management, or a review/​approval workflow.

Craft itself is not responsible for making sure we have production ready plugins, in fact, that responsibility rests on our shoulders as plugin developers.

But… Craft is now mature enough that it should really focus on encouraging developers and agencies to build high quality, production ready plugins for more advanced use cases.

Its best chance of doing that would probably be through an official plugin store:)

In closing #

Craft is by far my favorite CMS and any negative comments expressed here should be taken as notes on what I believe should be the point of focus in its continued development.

Feel free to share your own thoughts and critiques, your input is valued here.