September 01, 2015 • Philosophy
Why We Use Craft CMS
We build a lot of websites at Cosmic and over the past 5 years we’ve gained experience working with a variety of platforms and technologies. When building out websites, it’s common to integrate a Content Management System (CMS) to allow for easy editing and updating of content after the site launch. In theory, that’s a great and obvious solution to keeping the site relevant and timely as the business or organization grows and evolves.
With all of the platforms that we’ve worked with - including WordPress, Drupal, Expression Engine, Jekyll, Middleman, and Statamic - we’ve always had to make sacrifices between content management, design, and development in one way or another. Then, one day in our never-ending search for something better, we discovered a new CMS from Pixel & Tonic called Craft. It looked promising. And the more we looked into it, the more we knew it was the perfect platform to support our sites.
We’ve had to defend Craft against the “Big Guns” many times over the last year, educating our clients about its benefits.
Still, we don’t think of ourselves as a Craft shop, although we use it more and more. For every project that we kick-off, we explore all possible options and recommend the best CMS for our client’s needs. But for the majority of our projects we find that Craft is superior, especially given the custom, complex sites that we design and develop.
So why exactly do we love building sites with Craft so much? We’re glad you asked.
It’s Awesome for Content Creators
Content writers and managers like the simple, flexible content creation, layout, organization, and management features. Content authors can make great looking articles and posts without having to enlist the help of a designer and/or developer.
Craft allows you to store different kinds of content in the same section. In WordPress, for example, you have to create a custom post type for each type of content. This means that each content element has to be separate, even when you want them to be displayed together.
With Craft you can create different Entry Types within a single post. Let’s say you have a news section on your site that has both articles you’ve written, as well as links to external articles relevant to your article. All you need to do is make two Entry Types (News and Links) and select the proper type when you’re creating your post.
This feature makes it really easy for content authors to mix and match exactly what they want. The Craft site has a short video about this.
Matrix Fields: The Anti-WYSIWYG
Any content editor who’s used a WYSIWYG has at least one horror story to share. Craft uses what they call ‘Matrix Fields’ to prevent these nightmares.
Allowing content authors to create beautiful, interesting, and varied pages versus boring blocks of text increases the likelihood that site visitors will actually engage with the copy and read it all the way through.
For content creators the live preview is a powerful, time-saving feature. You’re able to preview a page as you’re dropping or creating content in it. You see how your content will look before it goes live, without jumping back and forth between Preview and the content entry fields. You can even share your work with others (without requiring a login), and get feedback by clicking on the Share button. Save time and your sanity.
Simple and Intuitive Backend
Another thing that makes Craft stand out is the simple and straightforwardness of the backend interface. Pages, sections and entry types are all clearly separated and designated within the portal. Dynamic fields such as WYSIWYGs, file uploads, and data pickers are crafted specifically to be easy to use and functional across all devices.
Edit content wherever and with any device with a web browser. How many times have you wanted to make a minor change or addition when you're away from the office? Craft helps you get this done when and wherever inspiration strikes.
User Groups & Permissions
You can manage your content authors and managers by creating custom user groups with completely customizable permissions on a single user or user group. Multiple user groups can be created, and users can belong to several user groups.
It’s Awesome for Designers
With Craft, designers are working with a CMS created for today’s internet and more:
Due to the flexibility Craft provides, designers have more creative freedom from a layout / design perspective. When we’re not trying to fit our designs within a fixed template or style we’re able to design around the content, rather than trying to force content into a template that doesn’t really work for it.
Craft’s flexible relationships allow our designers to bring in related information from other sections of the site easily, which opens up a lot interesting and engaging design possibilities.
We’re able to design long-form, editorial style articles and pages that our developers can actually implement, without hacking together 8 plugins to make it work.
It’s Awesome for Developers
There is a different philosophy behind what Craft offers out-of-the-box. It starts with basic building blocks and a few useful defaults. From there you can build up just the content types and inputs to create the dashboard that works best for a project.
The opposing philosophy is to give you everything and the kitchen sink. Developers then have to remove or disable features until they’re left with the interface they want or, more likely, one they can tolerate. It often takes longer to do this than to just build what you want from scratch in Craft. As a result, the development time is shorter, saving on development budget.
Craft is a perfect balance of structure and flexibility. It gives you only what you need, lets you easily create the rest specifically for the project, and then it gets out of your way. This allows us to spend as much of our time on the project as possible making the site awesome, instead of just making it work.
Built on Best-in-Class Open Source Software
- Yii (soon to be Yii2 upon the release of Craft 3.0)
- Twig (PHP template markup)
- Doctrine (ORM/Query builder)
- Composer (dependency builder)
Cloud-based asset storage with Amazon S3, Rackspace, and Google Cloud Storage is built-in and fully integrated. This makes it incredibly simple to store assets (images, pdfs, videos, etc.) uploaded through Craft on a different URL, without increasing load times. This also makes it easier to set up a CDN like Amazon CloudFront for global distribution of asset uploads, ensuring that users around the world are delivered assets as quickly as possible, resulting in speedier load times.
When building dynamic sites, relationships allow the content of the site to be integrated in interesting ways. With Craft, working with relations is a consistent experience, both for content authors and template designers. Entries are easily related with a simple Field type - whether it’s for entries, assets, categories, users, or tags - relationships work exactly the same.
With WordPress for comparison, if one post type needs to be related to another, you have to create a bridging taxonomy or category to relate them, bust out some PHP manipulation and hand write custom inputs in the post editing screen, or find a plugin that meets your need. Ouch.
Localization allows the site to adapt to the language and culture of a specific user’s locale. We’ve built sites that don’t need localization at launch, but plan to add it later. For these projects Craft is perfect because it’s ready for it without the need for additional add-ons or plugins. We’ve even built in localization for Right-to-Left languages. Craft currently supports just over 100 content locales, which is just a small subset of 774 that can be easily added. You can even add custom locales. The Craft control panel is also translated into 18 different languages.
Building Instead of Manipulating
We’re big fans of Craft’s templating tools. Craft uses a highly-regarded templating language called Twig.
Some CMS’s spit out a lot of nasty HTML that requires manipulation of the output. Craft generates nothing - no HTML at all, so we’re able to create DOM Elements tailored to our specific needs. There’s no need to work around weird default HTML outputs that include redundant classes you never use – we're looking at you, WordPress wp_nav_menu(). This means less DOM bloat which when added up, improves load times and makes the code base much easier to maintain.
Craft’s built-in Fields allow you to build your content interface in a similar manner to advanced (and often costly) plugins of other CMS’s, without having to bolt on something that should be included in the basic package from the get-go. Instead, you can just write a few lines of code specifically around the proper content structure the site requires.
Constant Improvements and Updates
The folks behind Craft are constantly working to make it better. As of this writing, since it kicked off in Private Beta in November 2012, they’ve been averaging 1.4 updates per week, they've introduced 769 new features, fixed 1192 bugs, and made 1122 improvements, totaling 199 updates. See current stats here.
What Craft Isn’t For
Bang-it-out templated sites
If you’re a Mom & Pop burger joint and you just need to bang out a quick website with a small budget, Craft probably isn’t a good fit. There is no concept of themes or templates, which means everything must be designed from scratch. We love this, but it’s not the right fit for every project.
Full-fledged web applications (although it is technically possible)
Want to build out a new web app, like Airbnb or Twitter, that needs to integrate with an iOS and Android app? Craft probably isn’t the best answer. However, as Craft is just a layer built on top of Yii, you can technically build out full-fledged web apps.
We’re In Good Company
Recently, a number of world-class agencies have started discovering the benefits of Craft. To name a few, Viget, Happy Cog, Focus Lab, Taecho Group, Big Cartel, and Mule Design have all touted a deep-seeded love for Craft, likely born from similar frustrations that we’d grown to accept with other platforms. And it’s usually not a “this is a pretty neat new platform” type of love. No, it's much more than that - more of a fall head-over-heels, “where have you been all my life?” type of love.
In our experience, clients ask to use a certain CMS because they’ve heard of it and it's what other people use. In the modern world of website design and development, they feel uncomfortable when dealing with something they don’t understand. It’s our job as a design, development, and strategy agency to recommend the best CMS for the client’s needs. In the majority of cases, we’ve found that Craft perfectly fits the profile.
Ready to Get Started?
Tell us your story.