In Praise of Static

Ever since I read this post by NetNewsWire developer Brent Simmons, I’ve been intrigued by what you might call ‘static content management systems’.

These stripped-down, relatively simple systems are proliferating at quite a rate. And all of them share one key feature: they run on your own computer, producing static HTML pages from specially-formatted text files and templates, which can then be uploaded to a server.

There are a number of advantages to this approach.

  • Serving static HTML pages is fast, faster than any system that renders pages from a database (which is why every WordPress user worth her salt installs WP Super Cache, and ExpressionEngine users are grateful for its excellent inbuilt caching.)
  • Serving static pages is secure–there’s no executable code in sight, which means there’s nothing for a malicious hacker to hack at.
  • Serving static pages is cheap–there’s no need for a fancy hostng package.
  • Slashdotting isn’t a concern. If a popular site links to your site, it will most likely stay up.
  • Backups are built in–a user always has a copy of their site on their own machines and on the server.
  • Itching to redesign? There’s no need for the rigmarole of setting up a local installation of your dynamic CMS, or the worry of tweaking the site live.
  • These systems work wonderfully with the version control system of your choice. A niche concern, maybe, but unlimited undo is nice (and once you go git, you never go back!).
  • Last, and certainly least: nostalgia. If you used to update a weblog by hand, using a static CMS will take you back.

Of course, there are disadvantages too:

  • You need to be pretty geeky to even consider using a static CMS. There’s no fancy drag ‘n’ drop uploading, no WYSIWYG editor. There’s no UI at all! These systems are not something your clients can use.
  • If you want comments, you’ll have to look to Disqus or Intense Debate.
  • If you want search, get ready to wrangle with the Google Search API.
  • As for the standard features of commercial and open source CMS software, from on the fly image resizing to auto-generated tag pages: get coding.

None of the CMSs listed below are remotely close to being ready for mainstream use, then, but I’ll go out on a limb and predict that this will change. It’ll only take another high profile security scare, a Magnolia-style loss of data, or a popular hosted system going the way of Geocities before bloggers–the kind comfortable installing Wordpress or Moveable Type on their own servers, and uncomfortable with hosted solutions, at least–will begin to turn to static CMS software. And that means static CMS software will get more user-friendly.

Futurology is one thing, but what about now? As I see it, a static CMS offers more than just a chance to geek out and try “blogging like a hacker”.

  • Consider a client who needs a small, very simple website, is far from tech savvy, and is happy to pay for infrequent site updates. Why bother with the bells and whistles of a dynamic CMS when you can edit a text file and issue a command in the time it takes to switch to a browser, log in to a CMS and click through to the edit screen?

  • Rapid prototyping: when I’m making a new website, I go from considering the data that needs to be displayed, to sketching on paper, to writing HTML and CSS. If you make sites this way, a static CMS is ideal. Tweaking a small detail across different page mock-ups is a cinch, since you’re using templates. There’s no need to worry about configurng a server, as many of the available tools include one (see webby’s ‘autobuild’ feature, or jekyll’s --server option). Collaboration is painless, just bung the whole thing in a git repo. Converting mockups to templates for a dynamic CMS could be as simple as running a find and replace.

  • Documentation. This is where I plan to eat my own dog food. We recently ported the custom CMS behind The Hawley Arms website to ExpressionEngine, to match sister pub The Wilmington Arms. While every care was taken to ease the transition from one system to the other, we need to document every last detail of the EE interface. A static CMS is perfect for this: I get to write in Markdown, my ‘native language’ when it comes to text files, and, as we add new features, or receive requests for support, I can quickly update the documentation site, instead of firing off emails to the client and their staff.

Convinced? Here’s a list–no doubt incomplete–of static CMS software:

I haven’t tried them all, but can heartily recommend jekyll. It’s not the most featureful option, but is very easy to install, configure and use, keepiing the barrier to entry low with human-readable markup and templating languages Markdown, YAML and Liquid.

Comments

  1. Static pages are the best choice for maximum SEO impact anyway, so GO STATIC!

    Posted by Thalasso at 2:21pm on Thursday, 21st October 2010

Leave a comment

Live comment preview...

A poor visual pun on the word static

Previous