I have been working with Craft CMS for almost 4 years now, building commerce, brochure sites, and even content portals. Here at Roller, we have decided to move away from Wordpress and head towards Craft CMS, as our ‘go to’ Content Management System.
This, however, does not mean that all our web projects will be built in Craft CMS. We always look into every CMS option and will always recommend the best fit for every client and their project requirements. At the end of the day, the final decision will always be the clients.
Wordpress is seemingly the most well-known content management system. It has a huge community of developers, themes, thousands of plugins and it’s free to use. It’s fairly simple and after you install a few plugins, mainly the Advanced Custom Fields Plugin, it is a very flexible and versatile CMS.
Although I have my opinions, both positive and negative, on this CMS, we have chosen to move away mainly due to its limitations, lack of flexibility, structure and security. Something which is of high importance to both Roller and our clients.
Craft has been established as a successful CMS for a few years now, but in comparison to Wordpress, it’s a fairly new player in the game. It has thousands of developers, hundreds of plugins and last year, it released a huge update; Craft 3.
Custom as Standard
With Craft, the idea of ‘themes’ is no more. There is no ‘starting theme’, meaning you have to create everything from scratch. Although this sounds like it would involve more work, this isn’t a bad thing. Having no ‘theme’ means the developer is not fighting/editing code that already exists, they are creating everything from scratch, giving them complete freedom and flexibility when coding.
Instead of themes, Craft uses a templating language called Twig. Twig is a fast, secure and flexible modern templating engine for PHP. Twig then directly links with Craft, allowing you to easily pull out your custom data.
With the most recent update, Craft now comes with a built-in plugin store. Allowing you to easily extend the functionality of Craft with a few clicks and/or with Composer.
Craft is also a modern development platform. Meaning, you can completely ignore the front-end of Craft, skipping Twig entirely. You can then use Craft to handle all of your content, and distribute this content via API endpoints.
When working with traditional CMS such as Wordpress, the structure is one thing you have to fight with. Creating another section of entries within Wordpress requires you to either install a dedicated plugin or to create a dedicated file. With Craft, you just create it. When creating sections you have three choices; Singles, Channels and Structures.
A channel is your typical blog feature. It allows you to create multiple entries that all use the same template of fields. It will be used for blogs or news sections on most sites.
A structure is simply a layered version of a channel. A channel only allows one level of entries, all of them being on the same level. A structure allows you to nest entries beneath other entries within the same section. This is perfect when creating documentation or a ‘services’ section of a site.
Out of the box Craft comes with 18 field types; Assets, Categories, Checkboxes, Coloraturas, Date/Time, Dropdown, Email, Entries, Lightswitch, Matrix, Multi-select, Number, Plain Text, Radio Buttons, Table, Tags, URL and Users. Most of these fields are self explanatory, but I’ll go through the ones that have the biggest impact.
One of the best things about Craft is the Matrix field. The matrix field allows you to create repeatable blocks of defined fields. For example, you can create a Page Builder Matrix field which allows you to add an image block or a text block. These blocks can be used as many times as the content creator wishes (unless a limit is specified), giving them the freedom to create the page as they wish. This helps keep all of the pages looking consistent, but not identical and repetitive.
Entries & Categories
The Entries and Categories fields are similar, one works with content entries, and one with defined categories. The fields allow you to easily relate entries and/or categories with other entries and/or categories. Creating relationships between entries is fast and easy, allowing developers to easily create a relationship on the frontend, linking content together without the content creators having to manually input all of the links/images and text.
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
The features and functionality I have mentioned above are not Craft’s only benefits. However, there has not been a site that Craft has not been capable of handling, mainly due to the features I have mentioned above. The voice of structure allows for almost all forms of content structure, with the combination of the entries and categories fields, it allows for complex relationships to easily be built.
This has been a short introduction to Craft, and we’ll be posting more in depth piece relating to the specific functionality that allows us to build great sites with the power of Craft CMS.