The site you’re looking at right now (unless you’re reading from RSS) is old, ugly, and busted. Yes, the EdgeCase site – and blog – are in desperate need of an overhaul. While @nummi kicks around some design ideas, I’ve started looking into how to power our future home on the web.
Our needs are pretty simple. We need a collection of pseudo-static pages (occasional updates, but with some dynamic content), and a blog. This sounds like a simple CMS to me, and CMS solutions are supposed to make sites like this completely painless, right?
Yes, I am that delusional.
You see, I’ve never actually used a CMS. Everything we’ve built at EdgeCase has been far too custom to be considered a CMS, so until last Friday, I’d really only heard about them. Unfortunately, what I discovered after looking at some popular Ruby CMS solutions (Radiant and BrowserCMS) is that I hate CMS systems.
A CMS might make a lot of sense for a business of non-techies – regular folks who need to manage their content without calling up the “web guy”. But that’s certainly not us. We’re an entire company of “web guys”. At this point you might be thinking I’m ignorant for not realizing we’re outside the target audience for a CMS, and you’re right. But I didn’t realize this, so I’m going to rant for a bit on why CMS systems suck for developers.
The problem is that the benefits regular users get from a CMS just don’t apply to developers, and in fact they often cripple us. Take the most obvious CMS feature of editing your site content within a browser. Is there a developer out there who is as comfortable in an HTML textarea or a Word-like WYSIWYG as they are in their preferred text editor? But really this is the tip of the iceberg, a minor issue that I can get over, and I also can’t deny the convenience of committing a content change with the click of a single submit button.
But going a step further, most CMS systems also make the templates available for editing within a browser. This is where real pain sets in for me, and for two reasons: bastardized templating languages, and lack of a real editor. As a Rails developer, I’m very comfortable with ERB, and even more so with HAML. I should not have to learn a new templating language just to build my simple website. And regardless of which language I use, I simply don’t have the patience to code HTML in a textarea. I may not be a fan of editor wars, but I at least need an actual text editor if I’m building a website.
Other CMS niceties… Content versioning? If the content is part of the code base, I get that for free with Git. Permissions? Our needs are simple – if you have access to edit the code, you have access to edit the content. Plugins? Rails certainly has plenty of plugins, and with Rails 2.3 supporting Rails Engines and Rack middleware, the possibilities are endless.
So where does this rant leave me for the EdgeCase site? A Rails app, of course – custom built, because I’m not convinced that anything pre-built is actually going to make my life easier.
For the blog component of the site, I’ve got a lot of options to explore. I could, of course, build something from scratch. This might not be a bad idea, since our needs are pretty simple. But there are also some blog engines out there that could be worth checking out: Marley and Scanty are a couple that look very interesting. I’d love to see an engine-style Rails plugin that provides a blog, but I haven’t come across one yet. Perhaps we’ll just have to build one ourselves. After all, a blog can be built in 15 minutes, right?
Follow me on Twitter if you want updates on what direction we take. Or you could just wait for the redesigned EdgeCase site. It should arrive on or before 2011.