CMS Rivalry: WordPress vs Drupal vs ExpressionEngine
WordPress vs Drupal vs ExpressionEngine
We’re constantly asked to rate WordPress vs Drupal vs ExpressionEngine, but the truth is: No two clients or projects are the same. I think this is a simple fact that you should really consider before reading on. Far too often, I see freelancers and firms adopting a single system or technology and hacking it to meet the demands of the client, and this post serves as a warning and thought about how technology should and shouldn’t be used in solving problems; specifically when it comes to content management.
Note that this is a shortened comparison of some of the most popular PHP-based Content Management Systems (CMS). The views and opinions expressed are simply that; derived from years of working with different technologies, with various clients and challenges. I’m intentionally picking only three platforms to compare at this time, as they are the most commonly used platforms in our industry and used by our competitors. I should state now that I absolutely love wordpress and expressionengine and loath drupal, but that my emotions towards these platforms are not unprecedented.
At the time of this post, I’m talking about Drupal 7 and older. If by some miracle, Drupal has evolved to be an OOP system with any kind of programming pattern at it’s core, you may ignore this rant.
Why companies suggest Drupal
Drupal is a very robust and extensible platform due mainly to the fact that it’s been around since the first internet boom. The platform has been pushed and prodded to evolve from a blogging system to a CMS, forum, and intranet over the years. Drupal is also extremely easy to learn, as most of the code is very linear and managed from within the system. This makes drupal ideal to low level developers as it’s extremely accessible with many docs, and gives a developer the feeling that they can build anything. Drupal is also one of the few systems that can run within a windows environment without ripping your hair out fully.
Should you use Drupal? (Hint: the answer is “no”)
If you’re a junior or mid-level developer, you’ll be enticed to use drupal because it’s a step above wordpress in terms of hands-on-code, but it’s not so technical that you’ll ever get in over your head. Drupal is a very tempting choice to developers for it’s mid-level range, but I encourage you to avoid it if you don’t want to be constant support for the client or if you want to grow as a PHP developer, and here’s why:
Drupal drops the ball when it comes to Backward Compatibility: Drupal is in constant development, and each launch lacks backwards compatibility with the previous version. This makes it extremely frustrating as each year you have to upgrade old sites manually and modify the code to have it working correctly with the new version. The reason why drupal really bites with backwards compatibility is because the code is SO LINEAR. This system is nowhere near modular when it comes to architecture, and as such, maintenance for the core team of developers means small changes in one area impact the entire chain of modules, functions, etc.
Your clients will hate Drupal from a Usability Standpoint: Most aspects of Drupal’s administration interface are confusing and intimidating, particularly for new administrators. This makes it difficult to train clients and you usually have to provide documentation and instructions for clients to be able to use it correctly. Most casual users are willing to sacrifice features for ease of use, making Drupal less popular than systems such as WordPress which offers point and click extensibility and a great user interface.
It’s actually really amusing to me to call WordPress a CMS finally. Years ago, when I originally wrote this article, I didn’t even bother discussing WordPress because it was really only a blogging platform. Well over time, all platforms are pushed to become more than they were originally intended for, and WordPress is no exception to that rule. I really only have good things to say about wordpress overall, with some slight caveats.
WordPress is STILL mostly a blog-based solution
And the best damn blog you’ll ever use. With community support and effort, WP has implemented great plugin and theming frameworks that really take the platform to another level of blogging. In terms of really simple content management, WordPress dominates with it’s slick interfaces and ease of use. However, this is also the downfall to WordPress, especially if you break the barrier of blogging and want to grow into a larger website. WordPress is not easily scaled to perform advanced Content Management or even mass amounts of blogging content. In fact, we’ve found that many sites really start suffering on Worpress once the break a threshold of roughly 750-1000 posts or 100k in monthly traffic. If you don’t believe us, run the benchmarks yourself. Further, wordpress simply doesn’t want to become a bloated and robust content management system. Requests and need for further expansion has been separated into projects like BuddyPress and paid plugins. The WP team has traded strength for agility, and in their case it was definitely the right choice.
ExpressionEngine: One platform to rule them all
I’m bias, and it’s obvious, but my opinions are not blind or malformed. I’ve worked extensively with both WordPress and Drupal, and have launched at least 50 sites on each of them. After working with ExpressionEngine on both small and large projects I’ve come to a few conclusions: expressionengine is faster, more powerful, and as easy to use as both drupal and wordpress. EE has so many features that I could go on and on about but let’s just assume it can do everything that WP and Drupal can, and move on to address usability, scale, and programming which the other frameworks lacked in.
Corporate and plain or simple and easy?
WordPress wins the battle in terms of beauty, but EE is no slouch when it comes to design and usability. ExpressionEngine is easily 10 times larger than WordPress and generally with scale and features come disorganization and clutter in most systems (ahem, Drupal). Thankfully EllisLabs, the inventor of ExpressionEngine, played it smart when it came to building a CMS that is both expansive and well managed. By going the enterprise route and charging a nominal fee, EllisLabs was able to build EE with well thought out navigation, plugin management, and built on the framework, CodeIgnitor, which means as a programmer I have the power of a custom application framework at the core, which makes EE infinitely more powerful than WP or Drupal.
Don’t take my word for it
You’re likely either a developer or curious client reading this, and you’ve probably formed your own opinion (or been impressed with the opinions of others) without fully understanding these three platforms in detail. For the non-believer, I encourage you to check out the following links and read what they have to say. You’ll find many articles with opinions, but keep in mind opinion is a matter of experience. In my case, I’ve worked with all three for over 3 years (each) and launched at least 50 websites, intranets, or custom applications on all of them. With that, I leave you to explore, or argue at will:
Articles on WordPress
- Ranks well on this guy’s list for the same reasons I outlined.
- WordPress needs an entire knowledge base on overcoming it’s performance hits in high volume
- There are clear memory leaks with WordPress
Articles on Drupal
- These benchmarks show that Drupal is better than WordPress in terms of load
- Paul Kortman sides with Drupal in terms of developer support and scale
Articles on ExpressionEngine