The New Hotness
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 Code Igniter 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.

Comments
zalm
December 18, 2006 12:09pmWoohoo!
I’m probably more excited about this than I should be, but I loves me a redesign, especially an ExpressionEngine redesign.
The more I use EE, the more I love it. And you did a good job of explaining its strengths.
I see that you’ve opened comments back up, which is another welcome change. If you haven’t already, make sure to install the Askismet module/extension (search the forums… and you’ll need a key from a wordpress.com account, but they’re free). It’s the best comment spam filter I’ve used.
I’ve got to get to work, but I just wanted to give you a quick thumbs up. I look forward to exploring more of the new goodness later.
zalm
December 18, 2006 12:12pmHmmm… one quirk that I just noticed:
The e-mail and website fields in your comments area default to your e-mail address and website. I put my info in, but then when I clicked “Preview” it reverted back to yours. I didn’t catch it until after I clicked on the “Post” button, so that last comment will almost look like it came from you.
Jason
December 18, 2006 12:20pmThanks much for the kind words.
I’m still in the process of refining the new comments system. For some reason, it’s the one aspect of EE that I’ve had some issues with.
I’m not going to open comments on every entry, but I’m definitely moving away from my previous “no comments ever” policy.
The MIke
December 18, 2006 1:01pmIf Opus where a man, I would give it a slightly uncomfortable front hug with an obligatory slap on the back.
I am no PHP whiz by any stretch of the imagination. I know just enough to be dangerous, and my efforts could best be described as “tinkering.” Wordpress allows me to do this without any major problems. I’ve spent much of the last six months adding “stuff” to my blog, because this allows me to mess around with the code and learn how to do stuff I didn’t know how to do before. You’re right though, about the simplicity direction. I usually find myself thinking, “wouldn’t it be fun if I could do X on my blog?” and then finding a way to do it, and then realizing it cluttered up my blog and didn’t need to be done in the first place. Then, I delete whatever it was that I tried so hard to figure out how to do in the first place.
All that to say (here’s the boiled down abstract), I’m afraid if you looked under the hood on my blog you would shreik like a school girl who just found a dead mouse in her lunchbox.
paige
December 18, 2006 3:33pmI love it. Great work.
TheCMS
December 18, 2006 10:01pmI love this design geek jive. Your site looks amazing and I really dig the font on the titles. I’d love to sit down and chat more about this EE action… perhaps some day, perhaps some day. More record reviews too!
CMS
Jason
December 19, 2006 10:09amAlright, I think I’ve got the commenting issue figured out. Let me know if you see anything else that seems a little odd.