Craft – The CMS You Should Know
Pixel & TonicIt's for those of us who truly approach our work with the utmost skillfulness and craft. We craftsmen actually like writing every last HTML tag by hand, and we wouldn't touch an off-the-shelf theme with a ten-foot stick.
What's Different About Craft?
Most importantly: it doesn't make any assumptions about what you are going to do with it. You tell it what you want to build and it does a great job in supporting you along the way.
This is in contrast to most other systems where you have to hack your way through the system, until it does kind of what you intended. But mostly this leaves you with a back end where editors have to do the strangest things, to update their content.
Why Bother, Anyway?
Captain ObviousContent today is different than content a few years ago.
As designers and developers, we have a hard time keeping up with the fast moving developments made in all kinds of fields. One of those fields:
how content actually looks like.
Content today is not this one page template you throw text and pictures at. Cramming it all into a TinyMCE editor field as a big blob of text with a flavor of custom HTML – or even better – [b]BBCode[/b]. Good ol' times.
Content is a versatile, modular system that should work in different constellations, in different places. Editors should have the freedom to move things around, creating different kinds of pages with ease and without the fear of making a mess.
Meanwhile the CMS should do all the background work to output a front end that delivers exactly the right assets in exactly the right shape. Keeping in mind responsive interfaces and all the things you have in mind right now.
This is where Craft comes in.
Why Craft Is So Awesome
When I show Craft to other people – they usually go nuts, as soon as I show them the following three things.
Custom Fields
As promised above: Crafts doesn't make any assumptions about your goals. This is because of custom fields.
You need some nice looking text on your site? Just create a new custom field “Rich Text" and add it to your field layout. Throw in a little Twig template (more on that later) and you are done. Want to add a list of downloads? Just add an “Assets" custom field, too.
Let's look at moving pictures to see how this works in the real world:
The Matrix
A Matrix (custom field) is able to hold different types of content. The editor can add any number of those “blocks" to the page – in any order. All of the content in this article is made with a single Matrix field that holds things like text, quote, voting, video etc.
See how a Matrix field works:
Source: Mix things up with Matrix
This is so awesome! Have a look at the super simple template code for this pages Matrix field. This level of simplicity is hard to find in the CMS landscape.
Templating
I don't know about you, but I'm a PHP noob.
What about your PHP skills?
Craft uses
Twig as its templating engine. Which means, you don't have to write one bit of PHP.
It has a bit of a learning curve to really get down to it. But once you get the hang of it, it's so freaking powerful! And all that without messing around with PHP code in the template that might or might not be as good as it should be.
It basically works like this: Let's say you just added a “Rich Text" custom field to your page. It has the promising name "text". All you got to do now, is to output the fields content in your template like this: {{ entry.text }}
The Twig Primer in the documentation is a good point to get you started.
Crafty Twig Delight
When I was building my most recent Craft project that has a login section, I learned about Crafts custom Twig tag
{% requireLogin %}
. Which basically does this:
Craft DocumentationThis tag will ensure that the user is logged in. If they aren't, they will be redirected to the Login page, and returned to the original page after successfully logging in.
I was completely stoked. By adding one little Twig tag to my page template, everything else was already taken care of.
Plugins
If you find yourself looking for that Craft feature that is missing and you can't find an existing Craft plugin, you could just go ahead and write a nice plugin yourself – using Crafts powerful plugin architecture.
What else?
I could go on and on, raving about all the features I love. Turns out, Trevor Davis already did a really good job at this. So let's skip that.
How Much Is It?
There is a free plan that might be enough for very small sites. Most of the time you should be fine with the $199 licence. If you want to build a full fletched, multi-user, front-end-login, multi-language piece of work, it'll cost you $299.
The last time I showed Craft to a friend and his team – one of their developers literally asked me: “Why is it so cheap?" I don't know. Don't tell Pixel & Tonic :)
Paying money for a CMS?
For the records: If you are wondering: “Does this guy get money to feature Craft that hard?" No. I just can't help myself but spread the love for this fine piece of software that delights me every time I use it.
Learn more
If you think Craft is interesting, just dig into the feature list and go to demo.buildwithcraft.com to fiddle around with it yourself. The documentation is super helpful to get started.
If you have any more questions regarding Craft – feel free to drop me a line via Twitter or in the comments below.