ExpressionEngine vs. WordPress – First Impressions

Summary:
Lately I've been tinkering around with ExpressionEngine, the popular commercial CMS from Ellis Labs. There are some great things about the software and some really, really bad things. In this post I'll cover the basics of what I didn't like about the $300 content management system.
buzz_button

Okay, so I’ve been playing with ExpressionEngine for a few days now and, after building a site with it, I’ve got a few frustrations I need to get out there. I don’t mean this as an attack on the system and, in fact, I’ll review what I did like about it in the next post, but here are some of my gripes after my two-day foray into the world of the commercial CMS from Ellis Lab.

Issue 1: Custom fields and lots of rework

For those used to WordPress, you know the “Write post” page has a title field, a body field, an excerpt field, etc. These are all conducive to blogging, but ExpressionEngine is designed as a general purpose CMS and, as such, you define your own fields, such as title, body, thumbnail image, full-size image, etc. Then, you assign those custom fields to a section of the site and, when adding an entry to that section, the assigned fields appear.

Since custom fields are such an integral part of the application, I’m baffled by the inability to copy/duplicate custom fields from one site section to another. I can’t help but wonder what the hell were they thinking with this one? Most sections of your site will have their own sets of custom fields, but if you’ve got two sections that use a thumbnail field, for instance, you have to create that thumbnail field in both sections, you can’t just duplicate it from one section to another. Which means there’s a massive amount of rework duplicating fields that are to be used in multiple sections, and I hate rework.

That said, there’s a great plugin called Gypsy to help manage these fields, but I don’t like the idea of relying on a third party developer for something so basic.

Issue 2: Template management is all out of whack

Template management in ExpressionEngine is very strange. First of all, you have to create page templates from within the backend…you can’t just add a file and have ExpressionEngine see it like you can with WordPress. This is just a flat out hassle to have to deal with.

Second, let’s say I create 10 empty templates that I want to edit in dreamweaver…I can’t just create the templates and have them instantly accessible via dreamweaver. In order to edit templates as a file, I have to first open each individual template in the EE backend, check a box that says “Save as file,” and then save it…if I have 10 templates, I have to repeat this process for 10 separate files. That’s a huge waste of time and I’m not sure why a $300 piece of software doesn’t have something as basic as saving those template files in bulk, or just automatically creating the actual files when a new template is created through the backend.

Again, there is a great plugin that allows you to save templates to the file system in bulk, but I’ll reiterate, when I pay $300 for software, I don’t want to have to rely on 3rd party developers for such basic functionality.

Issue 3: Again with the templates

Another templating issue… When saving templates as flat files, they can only be saved with a .php extension. That means you have to save your CSS files with a .php extension. So, when you open your CSS files to edit in your favorite editor, the color-coding is off because the editor thinks it’s editing a php file. I managed to hack a solution by using PHP’s [block]4[/block] statement to import my real CSS files into the ExpressionEngine CSS templates, but this just adds another layer of complexity and time to site development and makes me feel like I’m hacking together a solution.

Now, don’t get me wrong, at WordPress Hacker I love to hack together solutions, but I’ll reiterate once more, when I pay $300 for a CMS I expect to not have to spend time hacking together such basic features.

Issue 4: URLs and duplicate content galore

Finally, URL handling is abysmal. When setting up your site in EE, you create what are called “template groups” to organize the different templates and setup the URL structure of the site. So, if I want a blog, I could create a template group called blog, and within that template group would be the blog index file. The URL to that index file would then, by default, be http://mydomain.com/index.php/blog/. Not too bad, but I don’t like that index.php in there and, although it’s removable via some htaccess magic, EE advises against it in a number of places, even though they appear to be doing it themselves.

Things take a turn for the strange however when you see how the urls for individual blog posts (or any other section of the site for that matter) turn out. If I use a template called single.php to display individual blog posts (similar to wordpress), your blog post urls turn out like this: http://mydomain.com/index.php/blog/single/blog-post-name/. What’s happening is EE uses the URL to decide which template to use for that page, in this case “single.” I have two problems with this…first of all, it adds unnecessary complexity to the URL structure, and secondly, that individual blog post is accessible via any template in that group, so if I have a “page” template in the blog group, I could also access that blog post above via http://mydomain.com/index.php/blog/page/blog-post-name/. All these URL problems can be fixed via htaccess if you really know what you’re doing, but come on, this is a $300 CMS…I expect to not have to rack my brain writing complex htaccess rules for something so basic as preventing the exact same content being served through 2 (and perhaps more) separate URLs.

I’ve been playing around with ExpressionEngine for a few days now, so those are all my gripes to date. However, now that I’ve vented my frustrations with the platform, I should say that, overall, I’ve found ExpressionEngine to be a pretty solid piece of software for my own purposes. Is it worth the $300 when there are so many free alternatives out there? The jury’s still out on that one….give me a few more days and maybe I’ll have an answer. And to be fair, I’ll cover what I liked about the software in another post (Update: You can find out what I liked about EE here). Until then, happy hacking.

ExpressionEngine

 
Bookmark and Share

15 Comments so far ↓

  1. Hey mate, good article! It’s great to see good constructive (non-flame-war type) blog posts like this!

    I understand all your concerns, and starting out I struggled with many of the same things. But the more you work with ExpressionEnigne, the more you’ll see that while EE does have some small downfalls the overall power of the system is tremendous. And the downfalls it does have 99% of the time there’s an add-on to correct that issue. You’ll also see that when downfalls like the ones you’ve noted are identified EllisLabs is great about addressing the issues. I wouldn’t be surprised at all to see most of the things you’ve mentioned completely disappear with the release of EE2.0

    Your Issue Number #3 was something I dealt with a while ago, and just posted a tip over at EE_Insider. Hope it helps. http://eeinsider.com/tips/view/syntax-highlighting-for-css-and-javascript-template-files/

    Hope that helps!

  2. litzinger says:

    “Issue 1: Custom fields and lots of rework – I don’t like the idea of relying on a third party developer for something so basic.”

    This is coming from a WP developer? WP’s Custom Fields are no more than an associative array, and a piss poor implementation at that. This is one of the biggest reasons WP can’t be a CMS and has to rely on 3rd party plug-ins to get it’s Custom Fields anywhere near EE’s out of the box implementation. Gypsy makes it that much better.

    “Another templating issue… When saving templates as flat files, they can only be saved with a .php extension. That means you have to save your CSS files with a .php extension.”

    Um, don’t put your CSS or JS files in to the template system. Just make them flat files and link to them like normal.

    WP isn’t a CMS, I don’t care what anyone says. Have you see the “40 plug-ins to make WP a CMS” blog posts around? I’ve seen many, and if it takes 40 plug-ins to make it a CMS, then there is something wrong. EE is worth the money. I’ve yet to have a client balk at the price. It’s pocket change for a $15k project, and they usually feel better about having a company behind it than a totally open source solution.

    “Issue 4: URLs and duplicate content galore”

    I’ve never noticed that template issue. It sounds like you need to add dynamic=”off” to the entry tag. If dynamic is on it uses the last URL segment as the slug and searches for any entry with that slug (I think). I rarely use dynamic=”on”.

    • Hi litzinger,

      This is coming from a WP developer? WP’s Custom Fields are no more than

      You’re right about WPs custom fields, but they really aren’t meant to be anything special and are really just there in case you need them…I find most people don’t use them. EEs custom fields are really an integral part of the system. I’m not saying WP is better than EE in this post…you have to use the right tool for the job…I’m just saying that I was surprised that such an integral feature of EE (custom fields) were rather difficult to manage.

      Um, don’t put your CSS or JS files in to the template system. Just make them flat files and link to them like normal.

      Okay, I’ll give that a shot. Are there any drawbacks to that approach in EE that you can think of?

      WP isn’t a CMS, I don’t care what anyone says…

      I’ll have to disagree with you on this. WP is certainly a CMS…it’s just geared toward blogging of course. If you’re looking to build a blog there’s no more effective way to get it done.

      I’ve never noticed that template issue. It sounds like you need …

      I’ll give that a shot…thanks litzinger.

  3. Evan says:

    I’m a big fan of EE and use it myself, both for my own site and for clients. You’ve definitely hit some of the bigger flaws with the system (a couple of which are slated to be fixed in EE2 due out…sometime?)

    I would recommend you take a look at nGenWorks’ Structure plugin: http://www.ngenworks.com/software/ee/structure/. It fixes a lot of the problems you’re having with the URL structure, redefining the whole way EE maps content to URLs.

    While you’re saying it annoys you to have to rely on plugins for “basic functionality” — I’d say the whole reason there’s a flexible framework built into ExpressionEngine (and WordPress/Drupal/etc.) is so people don’t have to rely on EllisLab and only EllisLab to make the CMS work the way they like. There are other people who like the way EE deals with templates/URLs/custom fields and for them the system works perfectly. Having to rely on addons to tweak some things doesn’t bother me — I’m picky, I’d expect to. And I’m glad EE has a very healthy development community churning out hundreds of addons.

  4. OrganizedFellow says:

    What to expect from WPHacker. hhmm.
    I’ve been an ExpressionEngine user for over 3 years, and I STILL find new uses for custom fields, and the powerful SEO-ability of the URLs, and the {embed} tag!

    “Is it worth the $300 when there are so many free alternatives out there?”
    While TRUE, there are tons of free and OpenSource alternatvies for the brilliant Content Management System ExpressionEngine , you must realize a few things:
    Perhaps the BIGGEST different is that WordPress powers blogs, in general. Whereas ExpressionEngine powers content (do a quick search).
    It even says so on http://wordpress.org/ “More simply, WordPress is what you use when you want to work with your blogging software, not fight it.”.

    A quick Googling brought up tons of articles, posts, entries, etc. on ‘wordpress as a cms’.
    We aren’t disputing the ‘use of WordPress as a CMS’, but you really are comparing apples to oranges.

    And besides, EE isn’t for everyone. That’s why there are 3 levels: Core (free), Personal ($99), and Commercial ($249).

    Calling WordPress a CMS is like me calling a bicycle tire A CAR.
    Sure it gets the job done of taking me from A to B, but it needs a seat, pedals, gears, etc.
    You need plugin after plugin after plugin …

  5. Robert says:

    I can tell that you are a big fan of WP. I think you are a bit blinded here. First of all i think WP is great for blogging. Not more, not less. As a CMS? I dunno… only if you add tons of – crappy – plugins you might have a CMS. I agree with Litzinger about the “40 plugins to make WP a CMS”. EE has it all out-of-the-box.

    I think you should play some more with EE before you write a post like this. Perhaps read the manual first or visit the many good tut sites about EE?

    • Hi Robert,

      I can tell that you are a big fan of WP. I think you are a bit blinded here.

      I’m really just a big fan of the best tool for any given purpose. Like I mentioned in the last paragraph above…I think EE is a solid piece of software for my needs. I’m quite certain I’ll use it more in the future if it fits the project (especially if they get some of those issues cleared up).

      I think you should play some more with EE before you write a post like this. Perhaps read the manual first or visit the many good tut sites about EE?

      As I spend more time with it I’m sure I’ll find more that I like (and perhaps dislike). But on your second point…I read every word of the manual and much of the knowledge base.

  6. Nat says:

    Nice article. I’ve been using EE for about 5 years, and for the most part these are valid criticisms. Many will hopefully be corrected in the upcoming 2.0 release.

    I agree with Itzinger that your duplicate content issues can be resolved by adding dynamic=”off” or just being more specific with your entries tag parameters.

    Also, you’re not really limited to using the default EE url structure. Once you’re familiar with the system, you can pretty much get it to work however you want. There is a pretty through article on converting http://subtraction.com from MoveableType to EE while keeping the MT URL structure: http://www.engaging.net/articles/converting-subtraction
    Beyond just the URL structure thing, it’s a really great write-up with a lot of “why didn’t I think of that” techniques.

  7. Jason T. says:

    Good article. As others are saying, I think part of the dilemma is that while their features overlap, EE and Wordpress are geared for different things. There are some tings I don’t like at all about EE, but it’s a great CMS, meant to power sites much more than blogs (with different sections that need updating, multiple users with different levels of access, etc)

    People who have attempted to use EE purely for blogging purposes, such as myself, will find a bit of frustration when it comes to that. Wordpress is best for that hands down. I use EE for most of my client sites but will probably ‘revert’ back to Wordpress for my own blogs.

    EE is a fast plane, Wordpress is a refined car. You won’t use the former just to go down the block :)

  8. litzinger says:

    I agree that if you’re just running a blog, or a very simple site with a few static pages, then Wordpress might be the way to go. The two biggest features of EE are it’s weblogs and custom fields. Which if you think about it a weblog is just a database table, and a custom field is a table column. Now given that you’re able to create an unlimited number of weblogs and custom fields, you see that it becomes more of a framework for building a site and has very few limitations.

    “EE is a fast plane, Wordpress is a refined car. You won’t use the former just to go down the block.”

    I once heard Wordpress described as the perfectly designed golden screw driver. It does what it was designed to do very very well. EE is more of a screw driver factory, where you can create whatever you want from it.

  9. Terrintokyo says:

    thank you for this – you’ve expressed my frustration with EE better than I could.

    Even something as dead simple as duplicating a page is a hassle. I’m DIY newbie hacking stuff together, but WP is so much more intuitive and clear…sigh.

    anyway, thanks again for posting this.

  10. Wow. Thanks for the warning. I’ve been hearing a lot about ExpressionEngine. You raised a number of very legitimate concerns. Thanks for the feedback.


Leave a Reply

Email is required but will not be published. All comments are moderated and no-followed. Please do not use keywords or domains as names and do not advertise.





 

1 Trackbacks / Pingbacks

  1. ExpressionEngine vs. WordPress – Final Thoughts | WordPress Hacker