The New Hotness

The latest version of Opus is even more streamlined than before and boasts some significant changes under the hood.

Sheesh, it hasn’t even been a year, and yet I’m compelled to redesign Opus yet again. However — and I realize I say this every single time — this redesign is quite a bit more significant than most.

In some ways, it’s very much like every other redesign I’ve done. Which is to say that I’ve continued on the trek of trying to simplify and reduce Opus as much as I can.

It’s been said that good design is the process of removing, piece by piece, every bit that doesn’t work or is superfluous, so as to reveal that which is truly important. This was impressed on me back in high school, courtesy of Mr. Dennison, my 10th grade English teacher. At the beginning of the semester, he had us write a term paper (on what, I can’t quite remember). Once we were finished, he had us rewrite it so that it would fit on a single page, and still make sense. Then he’d have us rewrite it again as a single paragraph. And then as a single sentence. We were graded on how well we could still get our original point across, even with just a single sentence.

That may have been high school English, but the principles apply to any creative act, including web design. Remove what is unnecessary and add in only those things that make sense, that improve the work as a whole.

And so you’ll notice that the latest version of Opus is even more streamlined than before. I’ve removed a lot of the graphic elements, introduced a few new ones, and overall, have tried to make things subtler. Lots of white space, plenty of soft, subtle fades, and an overall grayscale theme are par for the course now. And there are also a few little surprises here and there — but I’ll let you discover those on your own.

And that’s just on the surface. The most significant changes are all ​“under the hood”.

Under The Hood

Up until now, Opus had been running on a homebrew content management system that I built using PHP and MySQL; this was several years ago, long before Movable Type, WordPress, Blogger, and other popular content management systems appeared on the scene. It certainly wasn’t the most advanced system out there, and contained more than its fair share of duct tape and hacks, but it got the job done, and I was really proud of it.

About 4 months ago or so, I sat down and began sketching out plans for a brand new version of Opus’ CMS. I was going to take everything I’d learned about PHP and MySQL since I built the original version, as well as everything I’d learned from working with Movable Type, WordPress, et al., and rebuild Opus from the ground up. I was even going to go so far as to utilize pMachine’s excellent CodeIgniter framework. And things went very well. I actually succeeded in building the first version and was ready to roll it out, only to be faced with a not-so-minor issue.

Once upon a time, Opus was actually several systems running side-by-side — a blogging system, a music review system, a movie review system, etc. About a year ago, I condensed everything into a single system, the blogging system. Now everything was a blog entry, and I loved it.

However, several months later, I found myself missing the highly organized and compartmentalized nature that Opus used to have. True, it wasn’t perfect, and was more complex than it needed to be. But on the other hand, it didn’t feel right to try and cram all of the bits of information involved in, say, a music review — artist name, year of release, label, genre(s) — into a handful of generic form fields. And so I went back to the drawing boards again, to begin work on a much more flexible version of Opus’ CMS. All in all, I went through about three or four iterations of this process.

All this time, I had never considered using a third-party CMS such as Movable Type or WordPress. While they’re fine tools, they felt far too inflexible. With most of these systems, you’re basically limited to just a handful of generic fields for an entry (“Title”, ​“Entry”, ​“Extended Entry”, and maybe a list of categories), regardless of what type of entry you’re dealing with. Which leads to an increased genericization of your website’s content.

True, there are workarounds — for example, WordPress does allow you to add custom fields to your entry — but they never felt comprehensive enough for what I wanted. You’re still left with an essentially ​“one size fits all” app. Which might be fine for most, but can be a challenge for those who want something a bit more specialized.

As such, I had pretty much resigned myself to a homebrew CMS, which meant even more time beating my head against PHP and MySQL. That is, until I started learning more about ExpressionEngine.

Express Yourself

I’d known about EE for awhile, through various blog posts and whatnot, and had even taken the on-line demo for a spin. However, I’d always written it off for one reason or another. Then I read Jeff Croft’s entry concerning personal content management and the challenges of using current blogging systems.

Croft’s entry touched on many of the issues that I’d encountered with blogging apps so far, namely that so many systems require you to take your highly structured data and force it to fit within a generic, predefined template. This ​“one size fits all” approach has its advantages, and may be fine for most folks, but for those looking for something more customizable, it can be a hassle. Several of the commenters mentioned EE and its ability to address this issue by easily handling multiple weblogs, each with its own set of custom fields. Which sounded exactly like the solution to my dilemma.

But what ultimately sealed the deal was Mark Boulton’s detailed explanation of why he moved to EE almost two years ago. As I read through his entry, I found myself getting increasingly excited. Everything he described was exactly what I was looking for. What’s more, it was exactly what I was trying to build on my own with Code Igniter.

Suffice to say, I decided against reinventing the wheel.

I won’t give a detailed review of EE here. For one thing, there are plenty of detailed assessments out there (like Mr. Boulton’s), and for another, this entry is already getting long enough (sorry, Mr. Dennison). But in the weeks since I’ve begun porting Opus over to EE, I’ve been nothing short of impressed. In fact, every single time I think I’ve discovered the limits of what EE can do for me, I discover 5 new things that cause me to reassess everything I knew beforehand (and giggle like a little schoolgirl).

While EE is very similar to Movable Type et al. in some regards, it’s very different in others. It is certainly much more flexible. So flexible, in fact, that sometimes I find it hard to believe that I’m actually doing what I’m doing. However, EE is also quite a bit more complex. Not frighteningly so, but there is a lot to deal with at first (you could easily spend several hours tweaking its myriad config settings). Fortunately, EE has some very thorough documentation courtesy of the folks at pMachine, as well as some very helpful discussion forms.

All of this is to say that I’m simply loving ExpressionEngine. It’s exactly what I was looking for, and it’s enabled me to do some things with Opus quite easily that would’ve been much more difficult to do had I stuck with my own CMS.

The Obligatory Caveats

As always, there are a few caveats. For one thing, you’ll notice that not everything that was on the old version of Opus is part of the new version, namely the music reviews. Opus has over 900 music reviews, but only 200 or so appear on the site. Don’t worry, they’re still there but I’m going back through and reformatting all of them for the new system — a very time-consuming process. In the coming weeks and months, all of the music reviews will make it back into circulation.

Also, the site’s URL structure is different now, so broken links might appear from time to time. I’ve tried to remove as many of the offending links as I could, but some inevitably slip through the cracks.

And finally, users of Internet Explorer 6 might notice a few design oddities. Nothing serious, primarily weird spacing issues and whatnot. At some point, I’ll go through and try and fix some of the odd IE-specific oddities. But right now, IE6 is getting on my last good nerve. If IE6 were a man, I’d give him a good swift kick in the nuts.

On that note, I hope you enjoy the new design, as well as all of the new entries and reviews (Jesus Camp, Sufjan Stevens, etc.). More new stuff is on the horizon, so keep your eyes peeled.