Wordpress vs Drupal for Complex Sites

WordPress vs Drupal

Dries, the creator of Drupal recently started a conversation about WordPress vs. Drupal. This is the first time I’ve read a great discussion about the pros and cons of each platform. John Eckman, the founder of one of the best WordPress agencies responded well on his blog.

John’s experience with the two communities seems similar to my own because I’ve also been an active participant in both communities. In fact, 3 years ago, I considered myself a WordPress expert. Over the past 3 years, I’ve become a Drupal person because, unlike John, I work for a leading Portland Drupal agency. I know I can build anything in WordPress. But, there are pros to both platform that leads me to choosing one or the other for specific projects. The truth is, both platforms are amazing for making websites.

Pros for WordPress

  • 1 click upgrades. This feature dramatically reduces the cost of ownership and my boredom.
  • Blazing fast performance on uncached pages.
  • Commercial module support. The premium model for WordPress drives a lot of revenue for their ecosystem.
  • Monolithic, Microsoft-like project structure. I can predict your WordPress database without even seeing it.
  • Comment spam protection.
  • The Loop. The WordPress loop makes it very easy to do certain things fast.
  • Out of the box editor experience that’s the same on every site.
  • Easy to use drag and drop widget system for sidebar blocks.

Pros for Drupal

  • Massive contributed module community with many developers per module.
  • Advanced search experiences with Solr.
  • Editorial multistate workflow moderation.
  • Group based permissions on content where users can create, moderate, and join their own groups.
  • Data modeling and list creation is straight forward and expected.
  • Responsive design support including completely adaptive AJAX driven pages.
  • Easy issue queue support with a patch management workflow. If it’s broken, I can snag the fix on D.O.
  • Modular permissions and caching for logged in users in Core.