Where the WordPress vs. ExpressionEngine PDF came from


Editor’s note: Graham put together the comparison PDF (which we’ve mirrored here) that was passed around and commented on last weekend. Before writing anything up about it we contacted Graham to find out more about it. His response was very interesting, so we asked if we might post it here for further discussion.

This PDF was put together for a client project. I’m working on a website redesign for a major university faculty, inclusive of about 6 different semi-autonomous department sites. The dream is to build a network of websites that comprise the faculty, sharing core information where necessary (such as membership, global navigation and aggregated content like news & events from each department), while maintaining discrete control for each department to manage their own content.

The big debate at the onset of this project was which content management system to go with.

The general consensus was that WordPress should be used, because it is “open source” and “popular”. As the designer and developer of the project, I strongly pushed for ExpressionEngine. I put together this PDF to back up my case.

My thesis here is that WordPress is designed as a single content channel system. Typically, this means a “blog”, with posts. Over the years, WordPress has (admirably) evolved to encompass much, much more than this, through third-party plugins, hacks and now the merger of WordPressμ and custom taxonomies in WordPress 3.0. I have no question about the power of WordPress and the incredible flexibility, ease-of-use and sexy turn-key solutions provided by thousands of ready-made themes.

My thesis here is that WordPress is designed as a single content channel system.

By contrast, ExpressionEngine is designed as a multiple content channel system. It makes no assumptions from the beginning about how the website will be structured, or how data will be used. It simply aims to bring the tools to the hands of the developer necessary to build the kind of site they need, while abstracting as much as possible away from the core PHP (ExpressionEngine is built on CodeIgnitor, a PHP framework, and it’s certainly possibly to use straight PHP within ExpressionEngine. But why? ExpressionEngine’s tagging system adds a more user/developer-friendly layer to site development).

My contention is that WordPress is not a proper content management system. As a developer, I’ve found it to be potentially disastrous to work with on large scale, complex projects, involving many content channels. It’s simply not designed to handle this architecture very well. Not that it can’t in many ways, if pushed, poked, prodded, tweaked, hacked, and jimmied. But that’s beside the point.

My PDF outlines the core architectural differences between WordPress and ExpressionEngine. Highlighting the differences is really the point of it. The bits about security and support costs are dubious. I’m sure WordPress is plenty secure, and I’m aware the support from the public community is tremendous. I know there’s probably some other bias in the sources; this PDF was quite intentionally designed by me as a pitching tool for ExpressionEngine, not as a fair and neutral analysis.

Apples and oranges

In fairness, I wish I didn’t even have to produce a PDF like this in the first place. To me, ExpressionEngine and WP are not designed for the same thing, and shouldn’t really be compared one to one like this. However, as a testament to the success of WordPress, it occupies a huge mindshare with the casual user. I often have clients come to me requesting to use WordPress simply because they’ve heard about it.

Brandon Kelly, a developer of ExpressionEngine plug-ins, put together what I think is probably the best articulated discussion I’ve seen on this topic, in general: http://brandon-kelly.com/blog/custom-fields

I especially love the quote from Rick Ellis, designer of ExpressionEngine:

Bruce Lee said that the ultimate technique is no technique. What he meant is that the goal of a martial artist is to posses such well developed knowledge, awareness, fluidity, timing, and sensitivity, that the specific techniques don’t matter anymore; the goal is to go beyond technique into a state of pure effectiveness.

So in a way I have this vague idea that Custom Fields should evolve into a vehicle that is so transparent, intuitive, flexible, and useful, that it allows a pure expression of information, without the constraints of boxes on a page. I don’t have a design concept yet, but I do believe we’re far from having perfect tools.

This philosophy really is core to ExpressionEngine’s design, which is what I believe fundamentally separates it from WordPress.

If WordPress has a mandate, I imagine it to be something like, “Blogging for the people” — a simple, easy-to-use, but powerful system that brings simple content publishing to the masses. The keyword is simple. I don’t mean this as an insult, but simply as a description of its design—a single content channel system is, by definition, much simpler when compared to a multiple content channel system. To this end, WordPress is extremely successful — people with no website experience whatsoever can have a beautiful WordPress-powered site running in minutes.

By contrast, ExpressionEngine’s mandate is something along the lines of “a blank canvas for your data”. As ExpressionEngine evolves, it is moving further and further away from “blogging” (indeed, with ExpressionEngine 2, EllisLabs intentionally dropped “weblog” as a term, replacing it with the more generic “channel”). The point of ExpressionEngine is to be as unassuming as possible about the final end form of that data.

Derek Jones makes this point well, regarding the new Publish Layout feature in ExpressionEngine 2:

This came about entirely in response to the demands being made on ExpressionEngine for publishing wider varieties of content. The HTML form that is well suited to publishing articles for a newspaper or online magazine are entirely different from the form that is well suited to entering hundreds of business addresses and phone numbers. Extending on EE’s principle of making no assumptions about your data, we decided to make no assumption about what your client’s publish form needs to look like, and let you decide.

This really lends itself to large scale, custom projects, where the form of data is anything but a standard theme. For instance, a university faculty website featuring six very distinct departments, each with their own content needs.

WordPress 3.0 was a step (leap?) in the right direction, to open up WordPress to a broader context of use. I applaud the movement. But as a developer, I can’t say it is there yet for the kinds of sites I develop. WordPress’ custom fields and taxonomies are still very primitive (the PHP is nasty, sorry—I don’t want to have to pop the hood to turn on the windshield wipers, so to speak) and structured for a single content channel. Because of this, the prospect of having to work in WordPress was giving me cold sweats before my client mercifully agreed to move forward with ExpressionEngine. I couldn’t imagine how I would accomplish the things I needed to under this model without a lot of headache—and no official support.

Use the best tool for each job

At the end of the day, both are PHP, and mostly just a fancy frontend to a MySQL database. Which is “best” doesn’t actually matter that much. What matters is what tool will get the job done in the hands of the developer who is developing it. In my case, the best tool is ExpressionEngine. I know it, I love it, and I wouldn’t trade it in a second for WordPress. In the case of many WPCandy readers, I suspect the exact opposite may be true.

There’s often a great deal of (possibly misplaced) passion on the subject of WordPress “vs” ExpressionEngine, when—as noted above—the two are really apples to oranges.

30 thoughts on “Where the WordPress vs. ExpressionEngine PDF came from

  1. I wholeheartedly agree. I get all sorts of enquiries from people asking for a website built on WordPress. When I get the initial requirements from them, it’s clear it’s not the right tool for the job and they only mentioned it because they heard about it.

    One should never start with the platform as a requirement. The platform should be determined by the requirements and goals of the project. If those goals are to blog and do a simple image gallery, WordPress would be fine. Something more complex might be better suited to EE. Yet other projects might need an entirely custom solution.

    There are far too many “web developers” who are simply using the wrong tools for the job. It’s about time that we re-educated these developers, as well as potential clients, on the way this process should work.

    Use the right tools for the job and stop trying to fit square pegs in round holes.

    • “Something more complex might be better suited to EE. Yet other projects might need an entirely custom solution.

      I would like knowledgeable developers to assess my argumentation’s validity “when one would better avoid EE CMS and go for the custom solution.”

      Some PHP developers I encountered, who do not use EE, advised me to avoid it. “We need custom solution, no CMS.”
      I like several features (user management, files management, etc.) which are already packed in the EE box. Thus, paying someone to do them again is not worth it (“reinventing wheel issue”).
      Would like to know when you avoid EE and go for customized PHP projects.
      my assumptions
      a. “Complex, customized features/plugins/modules are needed.”
      practical examples:
      videochat, text chat modules (like Facebook.com);
      crossplatform technology is used (such as Adobe Flex)
      games are combined in the website (like friendster.com) with a lot of content.

      b. “When no multi-project structure for different clients is being created.”

      c. Other suggestions?

      Have a good day!

  2. Good comparison – Multiple Content Channels, Flexible (any code can be used) Templating, and the biggie, a Blank Slate philosophy make for a great, flexible CMS. Most of the sites I do require this and couldn’t be done in WordPress without many tears.

  3. Why not consider Drupal? Drupal is very flexible, offers content form customization, includes flexible profile features, data relationships, was designed as a CMS and a lot more.

  4. I understand that no tool is ideal for every job, and I’m sure Expression Engine is better suited for some sites. But I want an *honest* discussion of the strengths and weaknesses of the tools at hand. The distortions in this pitch make me deeply distrustful.

    For example, the price listed for support is for hosted support at WordPress.com, but EE doesn’t even have a hosted service, does it? And there are no prices listed at all for EE, and the costs can be considerable, once you add up all the licenses and modules. That’s simply dishonest.

    If EE can do better than WP’s kludgy custom post types, fantastic! Show me how! If the relative costs for EE end up saving me time and therefore money, awesome! Let’s break it down!

    But claiming that WordPress has limited support for multiple sites? That’s just embarrassing. Especially in comparison to purchasing, installing and configuring a Multiple Site Manager add-on module. Talk about having to pop the hood to turn on the windshield wipers…

    • In the end, you need to understand that Graham was doing a sales pitch for a CMS that will make development easier for him.

      There’s really no point in comparing them, since they work very different one from another 🙂

    • If EE can do better than WP’s kludgy custom post types, fantastic! Show me how!

      That’s the WHOLE POINT of EE (and other similar CMSs)! If you don’t know how, you should start doing some reading. It’s a totally different beast to WP, and can build any site you can think of with little programming knowledge. Try doing that in WP without hiring a specialist PHP programmer — you can’t.

  5. Thanks for the comments, everyone.

    @iCosmin – Thanks for stepping up for me. Yes, it’s important to remember this doc was produced as a pitch tool for a presentation. There was an open question as to whether WP would be better (safer?) in the long run simply because of its critical mass. In the end, it’s about what’s going to get the job done best.

    @zota – This PDF was produced before the (non-beta) release of WordPress 3.0, before the MU merger. Even so, what’s significant about EE’s multiple site support over MU’s is the ability to pull content in discreet channels across multiple sites. This is an extension of the “multiple vs single content channel” argument above. A network of single channel WP blogs is not the same as a network of independent entities that can share any and all of their content with the complete flexibility of EE’s multiple channel system. It may be hard to appreciate just how significant that is if you haven’t had a chance to build a site with EE. And again, this really only comes into play for complex sites that have content interactions that go beyond a single channel blog. Too often, I see EE dismissed as “too complicated” when compared to WP, when it’s specifically designed to do so much more than a blog.

    @zota – EE has a hosted service, yes – http://www.enginehosting.com . To clarify my point about the pricing: for a paying client, $15,000/yr is the minimum cost for official WordPress support. By contrast, official support is included in the license cost of EE (in my client’s case, that was $150, for a non-commercial license). $150 < $15,000, even with a few $50 add-ons thrown in there!

    Actually, on the topic of $50 add-ons… (this is a whole separate conversation, but anyway) — One positive off-shoot of EE's "commercial open source" business model has been the creation of a sustainable and profitable market for add-on developers. What this means is that add-on developers for EE can — and do — get compensated well for their time and effort in creating quality software. It also means they can — and do — support their add-ons. A great example is Brandon Kelly, who was able to quit his day job to develop EE plugins full-time: http://www.pixelandtonic.com

    Maybe $50 upfront seems steep, but consider that what a paying client really wants an end product that works well and works right. That is worth $50. I know I couldn't write such quality software (and properly test/debug it) for $50 of my time. Add-on developers who can get to profit from their work. Clients get a working product, and I get to sleep at night. So, everyone wins.

    As much as I like "free", it's very frustrating when the low-cost (or no-cost) availability of WP brings up the argument of why anyone should have to pay anything at all for results. It doesn't add up. Even for WordPress it doesn't; hence, $15,000/year for official support.

    @Rob Safuto – Why not Drupal? Because while I love competitive free markets, I am deeply skeptical of the technical veracity of socialism. Drupal is very powerful, but I've found the architecture to be very confusing and occasionally tripping over itself. I much prefer the commercial (read: for-profit) vision of EE, because I believe it's a very powerful motivator of human behaviour. At the end of the day, someone needs to be held accountable. Often, the most reliable way to do that is to have someone on the line who is getting paid. Each to their own.

    • “EE has a hosted service, yes”

      This is kind of what I mean about making me distrustful. As far as I can tell, enginehosting.com is just a web host. I don’t see anything about top-to-bottom Expression Engine management on their site. Drawing a direct comparison between EE support and wordpress.com vip support isn’t apples to oranges. It’s like comparing apples to robots. It’s dishonest.

      I understand why you did it. You *really* wanted the client to use EE, and you were willing to bend some facts to make your point. I’ve been there. The reason I’m emphasizing this is I am actually very similar to the client you describe — I run multiple academic department sites, and I’m always looking at CMSes. I also know quite a bit about the options, I haven’t used Expression Engine, and I am willing to be sold on it as a better tool than WordPress.

      But then I look at the support documentation, and see that official EE support is through forums. I look at the “hosted” option, and see it’s self-installation and management at a rather expensive web host. I look at the “native” forum support and see that it’s through add-ons.

      It makes me wonder why, if it’s *that* superior for the task at hand, does it have to be sold dishonestly? Maybe the client you were working with was swayed. But as a potential EE user in a similar situation, I feel like I’m being sold a bill of goods, and I don’t appreciate it.

      • @zota – Hmm… Some of my sources may be biased, but “dishonest” is a little far. I didn’t bend any facts. I just made the case that tit for tat, EE provides more necessary function in specific areas vital to the project I was pitching on.

        In terms of “support” — From a client point of view, this realistically means, “Is someone accountable when something goes wrong?”. To get someone accountable from WordPress (the company), the minimum buy-in is $15,000. By that way, that only actually includes forum support as well. If you want in person support, it’s $80,000: http://vip.wordpress.com/support – Again, I’m not making this stuff up.

        By contrast, if you post to the EE forums with a problem, you will get an answer from an EllisLabs rep. They are extremely helpful, by the way… I’ve had them go as far as to personally log into my control panel to check things out. That’s pretty remarkable for the price.

        re: hosted service – you asked if EE has a hosted service. It does. What else is a hosted service but a web host? As for price, WP’s hosted service is $500/month + $1,500 per blog: http://vip.wordpress.com/hosting

        When I say the forum, wiki, etc is “native”, I mean that the software for these components was created by the original developer. The fact that you need to buy them as extensions is just part of EllisLab’s business model, which I have no problem with (see above re: plug-ins) — I just build that cost into projects.

        It sounds to be like you’re curious about EE and are kicking the proverbial tires before you buy. That’s cool… I recommend installing the (free) core and playing around with it a bit. I think a lot of your questions will be answered that way, with no “hard sell” or “dishonesty”.


        • Look, I don’t want to belabor the point. But wordpress.com VIP hosting is not even remotely the same thing as a self-managed wordpress install, or purchasing bare shared hosting. You are conflating many different things and calling them “WordPress.” Obscuring these sharp distinctions is, if not dishonest, at least disingenuous.

          I’ve been kicking the tires of EE for years – I’ve actually been put off by the sales pitches. I’d love to hear more honest accounts of the relative drawbacks of the various tools. By nature, open source communities are great at complaining about themselves, while commercial tools try to sell themselves. There’s also a shortage of honest, non-ideological Drupal vs EE comparisons – tools which share more in common with each other than with WP.

  6. Great article and I wholeheartedly agree with the sentiments. WordPress is an amazing blogging tool, not a CMS. We’ve done a number of sites in EE but then skinned a wordpress blog for the blog section. When looking for a blog, it would be tough to re-create that in EE.

    But as far as CMS goes, EE is hands down the best CMS we’ve found. I only question EllisLabs design of the EE DB structure. The channel_data table is pretty horrendous.

    • In full agreement here. I love EE and have many corporate sites, personal sites and client sites totaling over 25 under my belt with it.

      The DB design of field data and relationships should be redone sometime soon but for the bulk of users they will never run into issues. I have implementations with 8+ sites on the same EE MSM install and begin to run into issues once the total number of custom fields approaches 1500. That should be a bit of a testament to what EE can handle. A DB redesign would remove this limitation (which is really imposed by MySQL’s limit of data per row).

  7. @Rob – I’m a massive EE fan too – the number one reason I wouldn’t use Drupal (or WP, or Joomla for that matter) is because I don’t know a single line of PHP, and tbh, don’t have the time or inclination to learn.

    Not knowing PHP however doesn’t stop me creating very powerful, flexible and content rich sites when I use Expression Engine – Wireless Bollinger and Beanies were both developed without a single line of PHP on my part.

    I appreciate people have their CMS of choice – mines EE almost exclusively for the above reason.

  8. “When looking for a blog, it would be tough to re-create that in EE. ”

    LOL, you’ve obviously haven’t tried it then. I admit WP is awesome for a blog, but there’s little stopping you from having a fully functional blog (with all the bells and whistles) built on EE.

    • That’s true.

      Some people prefer WP simply for the Admin panel, which is quite valid — It’s pretty slick, and handles some things more gracefully than EE does natively (media management, I’m looking at you).

      While it won’t duplicate the WP Admin experience (which, I agree, is awesome for blogging), you can pretty much cut and paste the source from any WP theme, swap in a few EE tags, and viola, EE-powered WP themed blog, while having your content accessible for the “greater potential”. As we move more and more toward a medium agnostic web, this is becoming very important. WP syndication with RSS feeds is a good start, but again — as I keep coming back to — it’s about single content channel vs multiple content channels.

      I think what WP most successfully brings to the table is accessible content publishing for everyone. EE can do for you is make that content itself more accessible, if and when your site needs that.

      The two also work quite well in tandem.

    • I don’t know that I agree with the distinctly biased “analysis” but I do agree that WordPress isn’t a general purpose CMS.

  9. Pingback: Decent alternative to Wordpress?

  10. Graham, you couldn’t have written this article at a better time. WordPress has been very good to myself and my company, and the majority of our sites are built out of its platform. 3.0 was very much a step, not a leap. Personally, the advancement of Magic Fields has played a greater role in cleaning up the Admin user experience, and helping make the dashboard more “client proof”.

    We just started getting into Expression Engine, and I haven’t found any faults yet. You nailed it with the pros/cons. For multi-site projects, requiring a single CMS, I believe Expression Engine is the way to go.

    Like you said, evaluate each job based on its own requirements. Its good for WordPress designers to know other platforms. One of my favorite quotes is “If the only tool you have is a hammer, everything starts looking like a nail!”

  11. Thank you; very informative!

    A usage note: I believe you meant “discrete” as opposed to “discreet.”

  12. I propose drupal, same like @Rob Safuto , in the last 5
    years i worked with many cms-ul , and sincerely drupal is the best
    for everything …

  13. Just found this when looking for an article to steer client away from WP. It’s true, WP has much more visibility, which means simply that client have heard of it. That doesn’t mean it’s the right tool for the job. Also, on a $5,000 project, $500 for ExpressionEngine + add-ons is 10% of the cost, but that fact that the developer doesn’t have to write cumbersome PHP saves hours of headache and troubleshooting.

    • To be fair, there is a huge collection of WP plugins that will give you a lot of functionality out of the box. WP 3.1+ has also extended WP’s core functionality to be much more flexible as a CMS.

      I would say the true value of EE is how easy it makes it to develop your *own* solutions, as needed. Instead of being dependant on a WP plugin that may or may not exist (or that may or may not fit your client’s requirements), EE generally makes it very easy to do what you need to get done.

      Any PHP involved is generally abstracted through CodeIgnitor to be more manageable than the WP equivalent. For instance, have a look at EE’s database class for making queries directly: http://expressionengine.com/user_guide/development/usage/database.html

  14. Pingback: Making The Case For Drupal | devblogging.com

  15. Well, I never tried EE ( I am a WP user), but, from what I have read – as I can see – WP and EE can do pretty much the same, with almost the same ease (or diffucluty). The difference is only in approach and in statement: if you are EE person you claim – “I’m a designer”, if you are WP you claim – “I’m a developer”. EE is more snobbish thing.
    Oh, and please stop repeating like parrots that “WP is blogging tool, not really a CMS”. That’s simply not true, and for quite some time now … And, what is CMS ? Content managment system ? Well, WP is managing content from it’s beginning …
    I’m not natively programmer, and I must say, it’s really not that hard to learn to customize WP (without plugins). There are few tricks which you learn fast which you just repeat later, and you can easily concentrate on frontend.
    I’m only planning to use EE because I want to enter into more expensive niche, and sell my work for more money, as it seems that EE is one of the symbols of designers.

    • @AnyDog

      Well, it’s not really about the ease of customization so much as the assumptions the publishing system (EE or WP) makes about the data.

      Both EE and WP are highly customizable, and WP has made big leaps in the 3.x updates toward more flexible CMS-like content structure. I say “CMS-like” because WP still is, and is designed to be, a publishing platform first, and a content management system second. Arguably, one could say EE is the opposite way around (CMS first, publishing platform second). To this point, EE users may pine for many of the publishing tools WP offers.

      I can’t really comment on the “snob” thing, but it’s interesting that you have identified EE as a more lucrative market based on the cost. The price of EE over the “free”-ness of WP is continually a huge point of contention — nice to see a counterpoint that actually justifies the cost as a potential positive!

      At the end of the day, I still say it is about which is best for your client’s needs, “status symbols” aside.

Comments are closed.