Choosing a CMS

Do my new content requirements need a new content management system?

For awhile, I had basically resigned myself to the idea that the massive amount of stray content I’m planning to bring home (thousands of tweets, Flickr photos, etc) would necessitate moving my site onto a LAMP stack CMS. I started poking around in WordPress, which I hadn’t touched in years, and Craft, which I use regularly in my work at ProPublica. The former felt bloated and the latter’s setup presumed a level of back-end know-how that I don’t possess. I was starting to realize that this project has put enough on my plate with regard to information architecture, content strategy, graphic and UI design, and front-end experimentation. I simply do not have the appetite right now to learn a new CMS, a new templating language, and/or new server-side skills. I’ve been using Jekyll for several years, I really like it, and I’d like to continue using it. But can it handle the amount of stuff I’ll need to throw at it?

As luck would have it, CSS-Tricks recently published an interesting post by Sean C Davis called “Comparing Static Site Generator Build Times.” In Sean’s benchmark tests (which acknowledge that a lot of variables factor into build times and every site is different), Jekyll performed surprisingly well, and the tests also marked my first time hearing anyone suggest that a static site generator could feasibly take on a site with tens of thousands of posts.

So I thought I’d do a test of my own. I started a fresh Jekyll site and added some of my old blog posts to it, duplicating and back-dating them to artificially increase the volume of content until I had about 2,600 posts. Using Jekyll’s default theme (Minima), the site compiled in less than 15 seconds, which I found encouraging. My current site, with 562 posts, takes around 40 seconds to compile, presumably due to inefficiencies—some necessary, some avoidable—in the way I structured the site and built my templates. When I’m working on the site and that build time gets cumbersome, I usually run Jekyll with a --limit_posts 10 flag to speed things up, since I don’t often need the entire site to be built out until I’m ready to publish whatever changes I’ve made.

So I’ve decided to try to make Jekyll work, and if it does, it will allow me to avoid one of this project’s most dreaded learning curves. I’ve already integrated my minimal V7 content and barebones templates, resulting in just about the simplest Jekyll site possible. It currently compiles in less than a second. The plan now is to begin bringing in more content and setting up the basic skeleton of the site, keeping track of build times as I go.