Tuesday, December 15, 2009...8:30 am

Which CMS? Drupal vs Expression Engine – a diary of frustration

Jump to Comments

I’ve been posting a bit about dithering between WordPress and Drupal for a web development project, and also which one to use for a student learning environment.

Fellow blogger Soilman is in a similar position – though he’s dithering between Drupal and Expression Engine for bigger, corporate sites. Here’s how he compares the two:



  • Out-of-the-box functionality. You really can create a video/ecommerce/whatever site FOR FREE with bolt-on modules. Amazing.


  • Horrifying theming. If you want to put your own design into Drupal, you need not only to know PHP, but to be fluent in it. I’m not kidding. After extensive dicking around, it’s become clear to me that this is a pro developer’s tool only… unless you’re happy to stick with provided themes (or bought ones) and confine yourself to playing with the CSS and tweaking image files etc.

Expression Engine


  • You don’t need to know a syllable of PHP. Honestly. It’s amazing. You can input ANY HTML/CSS design into it; you simply break up the various divs and assign CMS tags to them… Expression Engine does the rest, creating the PHP behind the scenes for you. You can delve into it if you like but you don’t have to. It’s like Views in Drupal, but for theming. Very clever, and VERY easy.


  • Limits on functionality. Expression Engine couldn’t render a full-blown ecommerce site, for instance. You’d have to use Magento (or similar) for that. BUT for creating your basic, non-specialist site with a minimum of aggro and quite a lot of functionality and useability, it’s great. If you can afford it.

I don’t know Expression Engine – and the fact that it’s not open source puts me off.

It’s not just the money – I am actually prepared to pay real money for software – but the fact that you’re tying yourself into a proprietary system.

But Drupal has been a nightmare.

I realised that creating database queries to manage content using Drupal’s Views module is easier than programming WordPress PHP directly. You can create your own sidebar widgets, much as you would use in WordPress, and never touch code. There also seems to be more control over sidebars.

It seemed ideal – a CMS with a very flexible and powerful architecture (that is, the scaffolding that holds it all up and lets you manipulate the content in different and useful ways).

But Drupal has some serious problems – mainly in theming. As Soilman says:

One disappointment is how few themes are available. If you want it to look really bespoke, and unlike a typical Drupal site, it seems you have to get your hands dirty and design one yourself. My mate who makes websites for a living gave up in despair with theming Drupal. He tells me that unless you’re pretty much fluent in PHP and HTML, Drupal will break your heart.

Well – maybe that’s the point. In order to code web sites, maybe you do need to actually, you know, understand code. Anyway:

The good news is that apparently the commercial themes you can buy for Drupal do work (mostly) and are configured basically around Blocks so you can create database-driven pages in Views, then use the resulting content in Blocks around the various provided parts of the theme.

Which is nice – but expensive. And also undermines the control that you have over a site you develop yourself.

There are some other interesting potential solutions available that I want to explore.

Artisteer, for example, claims to be a simple visual web design tool that outputs theme code for CMS software, including Joomla, WordPress and Drupal.

And I don’t know much about Joomla. Steve Hill at Solent University uses it as a student CMS, for instance, and by all accounts it’s easier to set up and use.

But life is short. Drupal seems powerful – and is nothing if not a challenge. I’ll see how I get on with it…


  • Stick with Drupal and see how it goes.

    It’s known for a high learning curve and frustrating at first but it’s exactly the flexibility of the theming system that allows you build anything out of it.
    I find theming in Drupal really easy, and fear no design to bring onto the screen.

    In fact despite comments over the Admin side UI being trouble, if you put the structure together nicely your client never has to touch HTML or input special codes into the WYSWYG.

    Drupal’s ease of use depends very much on who puts it together. We make it easy by how we set up the content types, and how they produce the display to the viewer.

    Other CMS’s I have got into complex theming with sort of breakdown or turned into huge custom PHP code that might as well not use the CMS.

    So if you have the patience with it, the payoff is worth it I think.
    And using a starter theme with very few ‘special features’ is a nice way to realise that the theming isn’t that complex — Framework was a favourite base I used to use.
    After you get the hang of it you tend to make your own from a blend of things you see in other themes.

    A problem maybe with available Drupal themes is that if a developer puts in a lot of special features you are looking at their creation of a Drupal Theme and not just straight Drupal, which is why it can become crazy complicated.

  • Freelance UnboundNo Gravatar
    April 12th, 2013 at 2:22 pm

    Hi Ben

    Thanks for your input. I’ve just briefly checked out the Drupal Framework – it looks interesting. I’m spending so much time with WordPress, I haven’t had any chance to look into Drupal, but you are almost tempting me back into the water…

WordPress SEO