Drupal follow-up: why I still think Drupal or any generic CMS is dangerous for many startups.

My previous post about Drupal generated a lot of discussion, and it's Sunday eve with not much else to do so let me clarify why I still think that using Drupal can be dangerous.

There are a few arguments, and I'll try to be more practical in this case.

First, let's look at the node system. I start my startup with Drupal, basic content items are nodes. All's good. I get lots of functionality for free.

Next, I want to do something different with nodes, like, order them in a different way or something. That requires a database change and some extra indexes on the nodes table, say. I can hack Drupal to do this, but now I've forked Drupal and my upgrade path.

Forking is almost inevitable. (ps: note that I'm not talking about some plain content site, but a startup that'll likely require some pretty specific functionality.)

That means no more security fixes. No more upgrading from Drupal, unless I hack the new version too. I've lost a main reason to continue to use Drupal - all I've gained now is some initial work at the start of the project.

Next, my startup gets more popular and I need to optimize for performance and scalability. Drupal provides a few built-in optimization methods, I try them, they're not enough perhaps - especially because I now have a hacked Drupal.

So I need to start changing the innards of Drupal. Perhaps the node table needs to be federated. Perhaps the user table needs to be federated. Who knows these things in advance. Drupal does a LOT of stuff, and I probably don't understand it's innards as well as I would understand a system that only does what I need that I built myself. I'm in trouble now.

That's what happens to startups, and that's why I still consider Drupal dangerous for many startups. I've seen it happen again and again.

It's not the fault of Drupal. It's the fault of the expectations that it sets ("it'll be easy"). You really are better off building something lean from scratch, as far as I can tell. Am I wrong?

PS: to be clear, if you are creating content sites with a specific set of functionality (forums, user profiles, ...), and if you're not looking to create the next myspace, but instead are looking for something fairly standard, Drupal IS a good choice. It's flexible enough, fairly scalable and easy to customize. There are a few companies that are doing exactly that (customizing Drupal for clients who needs those kinds of websites) and are doing a great job.

# Jan 28, 2007