Like those two competitors, it’s built on the PHP programming language, but it’s rare that you’ll have to write any PHP code. It works with Twig, a template language, for building Web pages. Twig is a powerful language, with variables, iteration, blocks, and inheritance. It compiles to PHP code. One downside is that it doesn’t provide much support for responsive design.
The combination offers a high level of flexibility. Rather than building your Web pages on someone else’s theme, you can build them any way you like. This means more work, of course. Craft is intended for custom websites that are worth some serious development work.
Although it doesn’t generate your HTML for you, Craft has some nice editing tools. You create Twig templates for your pages and then edit content in “rich text fields.” You can enable Live Preview to see how your page will look as you’re editing the fields. Since you have full control of the templates, you can adjust them till the page looks exactly the way you want.
Matrix fields are a feature that lets the designer vary a page without changing its underlying template. A matrix field consists of blocks which in turn hold custom fields such as images, controls, and block quotes. It allows content of any kind to appear in the flow of a page, without having to give it its own template.
Making a multilingual site is easy. Fields can be marked as translatable or left the same for all locales. You can create localized templates if necessary, which Craft will automatically recognize. Templates can inherit from other templates, so the localized templates can build on a common base.
If you need to extend Craft’s capabilities or do any database manipulation, you can write a plugin in PHP. Some plugins are available publicly, though the selection isn’t as large as for the better known CMSes. The Craft community in general is relatively small, simply because it’s not as widely used as its more famous relatives. There’s a Stack Exchange for Craft administrators, developers, designers, and users.
Craft gets high marks for security. Its design guards against SQL injection and cross-site scripting bugs. In the standard folder configuration, all of Craft’s PHP files and sensitive information are stored outside the webroot folder. The editor provides a “purify HTML” option that checks HTML for cross-site scripting and other risks.
Licensing and Source Code
Craft does cost money in most cases. The free version is for personal websites. The “Client” version allows one administrator account and one client account, and the one-time cost is $199. The “Pro” version allows unlimited accounts and costs $299. Craft validates the license key with its license server on craftcms.com each time an installation runs. It isn’t clear what would happen to a site if Craft went out of business or its license server went offline for a long period.
The code isn’t open source in the sense of being available in a public code repository, but since PHP code runs from source, it’s in the distribution for anyone to examine.
Craft isn’t for someone who wants to throw together a website quickly and isn’t unusually fussy about how it looks. It’s for the site manager who wants full control of a site’s appearance and considers that worth some extra design work. It’s a well-tested and reliable CMS for creating highly customized sites.