If you’ve been paying attention to my site, you’ve probably noticed that it looks a little different than it used to. It’s not just the look of the site though, it’s a whole new website, inside and out. I’ve completely rebuilt the site from the ground up in Craft. Craft offers a lot of development opportunities that were prohibitively time consuming in my old CMS, Wordpress. I’ve already done a few things that I’d been putting off in Wordpress and plan on doing quite a few more.

I first learned about Craft at my job with Say Insurance. We were using Craft for the website that we built there. I found it to be a robust and flexible content management system. It does a very good job of separating the content from the functionality of the website. This makes development very easy. Wordpress ties functionality and settings into the content management system (and Drupal does it even more so). Craft lets you define your content types however you want, with whatever fields you want, and then you decide what to do with them. This separation of content from settings and functionality means that you spend more time building and less time managing CMS settings.

One of the things that I’d been wanting to do for a long time is build an art portfolio. Craft makes this super easy. I made a new content type, laid out the template, and that was it. With Wordpress, making a new content type isn’t completely straight forward. And then, to make a new template with the features I wanted, I would have had to make a completely new plugin. This functionality is just built into Craft.

Craft also makes multi-environment development easy as pie. You can simply define a base URL to a variable for each environment. Then you can use that variable in the Craft admin panel so that all the links on the site resolve to the correct environment. If this is possible in Wordpress, I have no idea how it’s done.

Another advantage of this multi-environment configuration is that it’s easy to set up variables to use with feature flags. I can define global variables that Craft sets based on the URL. This gives me the ability to easily hide and show features based on whether I’m viewing my site on my local machine while I work, or if an end user such as yourself is looking at the site. I can set the feature as visible for me while it’s in progress and not working correctly, but still hide it from the rest of the world. When it’s ready for prime time, I simply remove the flag.

The makers of Craft claim that it’s “a great alternative to Wordpress if you’re building a website.” I find that to be true. Wordpress has grown out of a blogging platform, and that’s evident in the difficulty of trying to build something beyond a blog with a few flat pages. Craft is a content management system first. By nature, this means that you can use it to build a blog site, but it also means that you can do so much more with it, with so much less work. I’m very excited to be switching my site over to Craft. I’m releasing it with a bare minimum of features, but you can be assured that the site will continue to evolve, making use of the flexibility of Craft.