First time using Craft CMS

I’m working on a new project for a lab at Yale, and they’re currently using WordPress to manage their content which includes a lot of publications and quite a few lab members. I wanted a system that would be able to easily create relationships between the publications, the people, and the topics that the lab covers, and CraftCMS has so far made that a breeze.

If you’ve seen any of my portfolio, you’d probably have noticed that I’ve built a lot of websites with ExpressionEngine, and I’m a big fan. It’s an extremely user-friendly system with a lot of add-ons built by third party developers to improve it even more. It’s great for clients who may not be very tech savvy, but still need to update their website, and gives the developer the flexibility to write actual HTML and CSS without being encumbered by a complex theming system. The pitfalls are that the system can be a bit.. heavy. The codebase has grown quite a bit and with the myriad of add-ons that I would generally turn to, it meant a somewhat encumbered backend. For this project, I wanted to use something that was a little bit lighter weight in terms of code, that still gave me the non-theme-based flexibility, and would be really good at handling relational data. So I tested out CraftCMS.

I’ve known about Craft for awhile, but it was released around the time when I didn’t really need to build anymore standalone websites (I’d started working at The Onion at that point, and they’ve got a custom system). For that reason, I never got to really try it out for myself, but I did know that it was created by the folks (folk? just Brandon Kelly maybe?) behind Pixel & Tonic, one of the best (if not the best) add-on developers for ExpressionEngine. Many of P&T’s add-ons were in my list of go-tos every time, including, among so many others, an incredibly useful relationship field called Playa.

Knowing that I needed to be able to link publications to a category, as well as link people to those publications, and be able to show a person’s publications on their profile page, and be able to show both people and publications on the category pages (taking a quick breath.. that was a lot), I needed to use a system that could handle those relationships really well, and would be easy for the client to understand at a glance. Enter Craft.

I expected a nice clean system, knowing the past UI work I’d seen from P&T, so that was a given, but I really needed to see the whole system in action. It’s hard not to compare it to EE to some extent since there’s at least a history between them, but there are some glaring differences also. The settings panel in Craft is where you create the fields, the sections, and the categories, but it took me a little to figure out what they meant by sections (tbh, there’s still another level that I haven’t used yet where a single section can have multiple sets of fields.. which in theory is really cool because it means you can have, say, a news section that has one set of fields for a press hit and a different set for a blog post, but they all fall into the news section.. at least I think that’s how it works).

It’s also a different process for adding fields to the sections, which also had a bit of a learning curve. You have to create the fields and you can add them to a field group, but that doesn’t mean that they get added to that section automatically (and it shouldn’t), but it would be kind of nice if after you’ve added a field set to the section, any new fields added to that field set would be automatically added to that section. Just a thought.

There are some things that are just worlds above the last version of EE I used though (I can’t say what has changed in the past couple of years, but these are a few stand out improvements over EE that I’ve seen in Craft):

  1. Automatic updating! OMG AUTOMATIC UPDATING! Updating EE was a nightmare every single time. So happy to see automatic updating.
  2. Redactor as the default text editor. YAS. We tried to get this in use on The Onion’s CMS and unfortunately, I don’t think we ever did.
  3. Twig templating! I’m pretty sure I first heard about Twig at SXSW a few years ago, it’s a great idea and I’m always a fan of open source tools.
  4. Quick create content! When you have a relationship field in place, but the piece of content you need to relate doesn’t exist yet, you can create it on the fly! All the fields are available right on the spot!
  5. The Matrix field (this is/was an add-on field for EE created by P&T, and obviously a default field type in Craft) only seems to get better with age. No longer confined to the table format it once was, you can now have a seemingly unlimited number of replicable fields and no small space confines.
  6. Live preview! Oh man, this is key. Way to one-up WordPress! I’ve never even worked out a way to preview content in EE at all besides setting up a dev site and telling the client to try things out there before posting it live. No bueno. With Craft, you can actually edit and see the changes live in a side-by-side. What?!
  7. Responsive CP, um yes. Updating content on the fly from a phone should be a given at this point.

While there have certainly been a few times when I was a little confused or had to spend some time in the docs since I’m totally new to this system and it’s my first time actually using Twig templating, overall, I absolutely love Craft. Brandon has really taken the best of EE and given it that P&T flavor with all the great add-ons they were already creating and turned the whole thing into a lightweight system that is incredibly powerful. I still have a long way to go on this build, but every day seems to bring a new surprise and delight from this system. Great work, y’all! Might need to switch my own site over next…