At this point, however, I find myself wanting to focus 100% of my attention on Drupal. For the smallest, for the largest and for all the sites between, I prefer Drupal.
Often I feel there is a fight between Wordpress and Drupal in my head. Recently, though, Drupal knocked out Wordpress and now I consider myself to be Drupal at my core. Here's the play-by-play of the fight. (Note: I'm not going to go deep into each point.)
Round 1: Suitability to task
Drupal is heavier, but can respond to more unique scenarios. Drupal comes in with a flurry of punches!
While I can build any site using either platform, that doesn't mean I'd want to. In a complex website, you have many different types of content — home page rotator, articles, blog posts, general pages, calls to action, testimonials … the list goes on and on.
- Drupal wins on custom content types. It is possible with both platforms, but it is simpler to set up in Drupal.
- Even the simplest brochure or blog site will need some extra piece of information. Drupal blocks are more robust than Wordpress widgets.
- We often need to display data in a unique way. Drupal views is the most powerful way to make the web page do whatever I need. In Wordpress, I can do similar things in the PHP of the theme, but it just doesn't compare.
Round 2: Ease of development
Wordpress sucker punches Drupal on theme simplicity. Seriously!
When I develop a site in Wordpress, I have never started from a pre-built theme. I start with beautiful, clean HTML/CSS markup and then add in Wordpress theme API calls.
Drupal needs this simplicity in theming. With Drupal, I start from a base theme like Zen and bend the base theme to my design. This is fine, but on more than one occasion I have found myself spending too much time looking for a style class in the theme — if the code had all been mine to begin with, I would have been faster.
The learning curve for Drupal is steeper — I hear this a lot. I disagree! Every platform requires a developer to check the API documentation. I have used Wordpress navigation countless times, but I still have to check the syntax of the specific api call from time to time. In Drupal, I do the same thing. The documentation for both platforms is rubust. If you know PHP I think they are the same.
Round 3: Robust platform
Knockout! Drupal wins!
Drupal has modules, Wordpress has themes. I can do amazing things with each.
Drupal knocks out Wordpress with Views, Blocks, and Content Types! Enough said.
Wrap up
Today, I can still deploy a small Wordpress site faster than a small Drupal site. That does get Wordpress a number of points for small web shops working to stay profitable. But, by working hard to define consistent processes and keeping our base installation of Drupal up-to-date, we can now set up a Drupal site in about the same time as a Wordpress site. Then, when the client asks for X new function, we smile because we used Drupal and the unique thing they asked to do is possible because it is Drupal.
In my experience, if you need to implement a site based on a psd from a designer, go drupal, if you suspect the site you're building will end up having lots of extra stuff bolted on in the future, go drupal (this almost always happens).
The only case I would go with wordpress is when someone wants a blog with a few extra pages and likes an existing wordpress theme, that's it.
Because the moment you have to make something pixel perfect, or you have to turn a site which started off as a blog into something more complicated wordpress will make your life miserable compared to drupal.
Wordpress on the other hand is not a development platform, it is a blog software at its heart and for more complex sites it is harder to progressively enhance like Drupal, making new features harder to implement, usually it will mean disabling plugins to enable new ones.
WordPress is perfect for smaller builds, plus it's SO stable and easy to support. It's also great if the client is going to be taking over total control of the site post-build.
But nothing matches Drupal for its flexibility and customization options. Just one more reason to love it. :)