Why I switched from Expression Engine back to WordPress

As I’ve written before, I’ve been working with Expression Engine a bit lately. I had heard lots of really great things about it, and its feature list is impressive. The main project I had in mind for it was Soft Black Stars, my Current 93 site, but as a learning exercise and to see how it handles multiple domains I also modified two Synaesthetic Network sites and Six Twenty Three to use it as well. Soft Black Stars and the main Synaesthetic.Net site were running WordPress previously while the others were simple, mostly static HTML/PHP.

ExpressionEngine is working out fairly well for Soft Black Stars. I’ve got some additional features in mind for the site that I think EE will help out with, things that aren’t easily done in WordPress. This is a big win, despite having to pay $100 for the software. And the other sites? Well, I’ve switched them back to WordPress. While it’s true that EE is working out ok for Soft Black Stars, it also has some problems that I’m just not willing to deal with on the other sites. This C93 site needs some functionality I can’t easily get from WordPress so the trade-offs are worth it to me.

One of my problems with using EE for Synaesthetic.Net is cost. ExpressionEngine starts at $100 but jumps up to $250 if one of the sites its used for is commercial. Now that I’m transitioned to full-time consulting, this site fits the bill, but I’m not willing to drop another $150 for the “commercial” upgrade.

Another reason is ExpressionEngine’s non-semantic URLs and clunky URL rewriting. Sure, EE can do “search engine-friendly” URLs, but they seem to be kind of an afterthought and it shows through in a few places.

First, URLs are tied to what EE calls “template groups” and so describe the site’s backend structure rather than the content, as they should.

Second, the way EE’s mod_rewrite rules work requires that you update them manually every time you add or remove top-level content (ie, “template groups”).

There are various ways of working with these two issues but they nearly all involve code duplication and creating lots of extra template groups for no other reason but to be able to use the name in URLs. Yuck.

“Effective interfaces do not concern the user with the inner workings of the system.”
Bruce Tognazzini

The last deal-breaker is the sub-par templating language. Expression Engine uses its own templating language with its own rules and quirks, and requires mixing a good deal of logic in with your presentation in the templates. It’s possible to use regular PHP in templates as well but there are certain things you have to use their templating language for (at least to the best of my knowledge) and so you’re left with having to get the two to work together nicely. Not fun.

What I’ve learned from this is that while Expression Engine looks like a great, do-it-all CMS, it isn’t the right tool for every job. Like I’ve said before, I’ll keep it in mind for future projects, but WordPress remains my CMS of choice.

Update – June 2008

I’ve just switched my one remaining ExpressionEngine site back to WordPress. Anyone want to buy an EE Personal license cheap?


Ro says:

The more CMSes I look at, the more I like WordPress. Maybe it’s just serendipity, but for some reason it seems to strike the perfect “core vrs contributed’ functionality balance. The default install, with no plugins besides Akismet, works great for 90% of users.

Throw in about 5-10 useful plugins and two hours later you have a fantastic CMS.

I know that Expression Engine (and Joomla, and Typo3, and Drupal, etc.) offer more core functionality, but it seems you often end up writing custom contributions to extend them anyway. Might as well just write that custom code into a WordPress plugin.

Your point about the sub-par templating engine also strikes a chord with me. I have seen threads complaining about WordPress’s lack of templating/theming engine, but I like it that way. Every CMS I’ve ever used with a templating engine inevitably requires hacks and workarounds and direct database calls — even Drupal’s. I say keep it open-ended and keep it in PHP, as is. Also the fact that you can edit WordPress template files directly through the admin is genius — no FTP/file-upload required. It’s the little things like that which make all the difference.

Another little thing: Drupal doesn’t even come with a WYSIWIG – instead you have to parse a dozen forum threads to decide whether tinyMCE or FCKEditor is better, than install an image uploading module, then an image editing module, etc. With WordPress, just install and — bam — world’s best WYSIWIG editor ready to go. (Not trying to bash on Drupal; I just happen to know it a little better than other open source options.)

I don’t have to concern myself “the inner workings of the system.” And I find that to be the case time and time again with WordPress. For me right now, it’s the best CMS out there, open source or otherwise.

IOW, I agree with the gist of your post :)

- Ro

Kenn Christ says:

Great, I’m glad it’s not just me. EE has a lot of fans out there and for a while I was thinking it was just me that didn’t get it.

Learning some Drupal is actually on my to-do list. I didn’t realize it uses a templating system rather than plain PHP. That’s disappointing. But WordPress is where the majority of my energy if focused when it comes to working with systems like this.

Tom Kiss says:

I must say the mod_rewrite comment is a bit harsh. I use the ‘exclude’ method (http://expressionengine.com/wiki/Remove_index.php_From_URLs/) which works fine for me. Manually adding template_groups would be madness!

Take a peek at EE 2.0 and say you’re not itchy:


I’ve been working with EE for 3 years now and I’ve stormed through my announces, and it’s better on the other side.
I really dont have the time for Drupal though, despite its awesome module repository. I can get a site up in EE within minutes…

Kenn Christ says:

Honestly? Not really. That preview is extremely light on the details anyway, unless I can be bothered to watch a movie about it, which I can’t (I really hate this trend of making screencasts for everything). I lost interest after “modest price increase” anyway.

EE has some fundamental problems which I just don’t see being addressed, particularly those mentioned in this post. If these things are fixed, then great, but I still can’t justify spending even more money on EE when I can already get everything I need from one of the many open source applications out there.

Rokwan says:

EE is looking pretty slick, but I’m not itching for it either. Especially not with WP 2.5 out, with its smart separation of that which you use 90% of the time (write,manage, design, comments) from that which you use 10% of the time (plugins, settings, users).

Just keeps getting easier for the computer-illiterate to use, without compromising extensibility.

Just one glance at the first frame of the screencast demonstrates that EE 2.0 hasn’t made that logical separation. Mind you, it doesn’t look like its information architecture is bad at all, but it just doesn’t impress next to that of WordPress.

I don’t think there is much to add to WordPress, which is why Auttomatic is cleverly focusing on cool new, theme-driven extensions like buddypress.org.

Tatiana says:

I would like to see the inscription “to be continied”:-D