Craft Content Management System

Craft Content Management SystemMy first experience with Pixel & Tonic came with their use of plugins for the popular CMS solution Expression Engine. I used this to build and oversee applications for a number of touch screens running in a tourist space in California. This included the use of their Assets plugin, Field Pack and Matrix plugin.

Craft by Pixel & Tonic is a multipurpose off-the-shelf CMS. Its support of responsive use and Live Preview feature among others make it one of the market leaders in CMS driven websites.

The Craft CMS framework is built on top of the popular PHP framework Yii. It utilises the Javascript plugin RedActor to handle its text data entry and utilises the Twig templating system when rendering at the browser to enable you to easily hook into your backend data. If you are looking to setup a simple blog with a couple of pages then you can use Craft for free of charge, however if you are looking to build something with a lot more functionality then it will set you back $199 or $299 depending on your requirements. More information on the pricing can be found here.

I have used this CMS solution on a number of projects and it really speeds up the development workflow, not only because we do not have to build a CMS to control all our content but it also enables us to easily build code and deeply integrate it with our CMS field data. After looking around at several CMS solutions we decided to use Craft as it provided all the functionality (and more) for our requirements. We are still finding things now that make building things into our website a breeze!

The Challenge

When approaching our projects we wanted a collaborative CMS that would allow us to:

  • Add and edit data whether we are in the office or on the go.
  • Have complete control over the view of our website (a blank canvas).
  • Does not make any assumptions on the type of data we are storing.
  • Plugin and customise certain aspects of the CMS accordingly.
  • Give us an opportunity to view our changes before we publish them.
  • Handle assets with ease and allows us to manipulate those assets on-the-fly.
  • Provide Matrix fields for multiple field content.

Craft handles all of this out of the box and if for whatever reason you cannot find the functionality to do this then you can either add plugins to the system or even roll your own. One of the projects needed functionality to organise tags by the most popular. Craft does not have the functionality (at this time of writing) to do this so I set about looking for a plugin. I came across a plugin pretty quickly to handle this. Because Craft is still fairly new it is pretty difficult finding plugins to achieve what you need but I did not find it difficult building a custom one that aggregated a series of home page feed items and assigning them a sequence of colours. Its integration with Yii means that creating the classes, and modules for the plugin I needed was pretty simple. You can find out all about its main features here.

The Application

The projects ran with several pages, some of which required blogs, social integration & static pages. Using the Twig templating engine I was able to easily use front end template code to add integration to all the data that was added to the CMS. When writing out entries you can use a feature called 'Live Preview'. This enables you to view your changes on the fly as you type. This is a particularly nifty feature as you can check your layout and how your content looks inside your site whilst you work.

When handling dynamically uploaded images and assets then this is where Craft really does shine. It has a simple to use upload mechanic and also allows you to resize the image to different dimensions on upload. My only gripe would be its lack of support to restrict certain asset fields for the RedActor CMS editor. This would allow us to only serve the correct assets field for that editor to stop images being uploaded through the editor to an incorrect location. I am sure that this is something they will no doubt endeavour to add during their many updates.

The Plugins

In order to integrate social items to our website I was able to find a plugin to handle this for us from the extensive list at Straight Up Craft which also works as a great resource to learn and start out with Craft. It even has a great plugin called Analytics and with just a simple setup of access to the Google API endpoints this enabled us to view the projects Google Analytics stats directly inside our CMS. One requirement for our project was to integrate a series of tweets into our home page. This was achieved using the plugins OAuth & Twitter of which the former allows you to connect many social networks to their API's and the latter providing an field that allows you to store the tweet straight into the CMS via a custom field.

The Conclusion

Craft CMS is certainly making waves in the PHP driven CMS community and has some great features that put it above some of the other big hitters out there. There are a couple of things that need to be ironed out but overall it is an excellent tool. The only thing that has cropped up for me during development was Craft's lack of plugins but I think this is something that will get a lot stronger as this new and exciting CMS takes off and the development community grows. All in all though this is a CMS solution that guides you easily enough through the development lifecycle and its features mean that your users will be able to work with content effectively.

Have you used Craft? What do you think of it? Have your say in the comments section below.