Choosing a CMS for this website, I’ve just spend some time researching my options for an open-source CMS. I’d like to share the conclusions, maybe you’ll find them useful. Let’s start with some
The previous version of this website was based on PmWiki. Although this proved to be a good choice that withstood well the passing time, a lot has changed since 2006 in terms of website design, and any window dressing would not be enough to take advantage of these improvements.
Back in the old times I actually wrote my own custom CMS for the websites I designed. Nowadays, you’d be crazy to do that. As far as the CMSs are concerned, we’re spoilt for choice. Or are we really?
So, deciding the time was due for an upgrade, I opted for a zero-baggage approach, and went around shopping for another open-source CMS to start from scratch.
I used to freelance as a web designer in my student years although I don’t do this anymore: now I’m just another regular person who wants to have a running website — perhaps with slightly more residual skills to make this dream come true but with neither the time nor particular willingness to get my hands dirty.
Back in the old times I actually wrote my own custom CMS for the websites I designed. Nowadays, you’d be crazy to do that. Perhaps attesting to the grassroots, non-hierarchical ideals of the open source crowd; or maybe just because anyone can cook some makeshift PHP script in 5 minutes (although arguably not everyone should), as far as the CMSs are concerned, we’re spoilt for choice. Or are we really?
The Big Two
There are two principal players in the open-source CMS “market.” These are: Drupal, and WordPress. Going with either of the two is a future-proof choice, as the large user and developer base guarantees regular upgrades, fixes, and an abundance of extensions. It’s unlikely any of the two will become obsolete overnight, while with any other CMS, you honestly can’t be sure. This should be your first consideration.
Drupal and WordPress will not become obsolete overnight. With any other CMS, you honestly can’t be sure.
Between the two, Drupal and WordPress are anything but similar.
WordPress is essentially a blogging platform that is somewhat limited but works well out of the box, and can still be extended. It has an excellent, polished administrative interface (where you’ll be spending a lot of time writing content for your website). The community appears to be beginner-friendly (which I can’t really verify as I haven’t had the chance to ask a support question but that certainly is the impression), and the APIs are well-documented.
If you however look at the source code, chances are your eyes will hurt. File and directory structure is quite chaotic to the point that even restricting file-system access permissions is difficult. It could have really been way better had it not been for some dubious design decisions (perhaps from the past) with dozens of weird hard-coded entry points such as /some/obscure/script.php.
Drupal out of the box doesn’t really do much, and when you first log in into the administration panel it justifiably feels bloated with all kinds of textual links that seem to lead to the same place. It also has an ugly name that sounds like the site of some chemical disaster in the 1980s. The community seems less outgoing, with “I’m all right, Jack” being the prevalent attitude.
But then if you look at the source code, this is where it shows its initially-concealed beauty. Could you possibly think that PHP code could be written so clearly? You can see a lot of thought went into planning Drupal to be as abstract as possible from the start.
Right tool for the job
You’ll want WordPress for a simple, out-of-the-box site that can be up in minutes (“simple” here doesn’t refer to the number of pages but rather to the site structure — the more it resembles a generalized “blog,” the better). It’ll be great fun to edit. You’ve saved yourself a lot of time you can actually use for writing content. For these reasons, I went with WordPress for this site.
WordPress is perfect for the 80% of websites. The other 20% is probably possible but would end up in a customization quagmire. Drupal is for the remaining 20%. It can also do the other 80% but unless you have experience with it, it’ll take you more time to get there.
Now if you are building a website with a flexible, complicated structure, say multi-language, when the interface switches to a different language automatically depending on browser settings or with one click; where you have custom content types and fields, multiple custom menus, fine-grained permissions, etc. and you foresee it might need to get even more extensible as time goes on — this is where you want Drupal. I built a website like that back in my web designer days, and there WordPress wouldn’t really be the right tool for the job. If I hadn’t gone with Drupal, I’d have probably needed to program everything by hand.
WordPress is always going to be a blogging tool at its heart. This is not a problem at all: on the contrary, it’s a consistent design philosophy that lets you have a working website in minutes and greatly simplifies its future management but there is some cost to it, so be sure you understand what it is. On the other hand, out of the box and without its modules, Drupal isn’t really anything, so it can be whatever you make it to be. Although it can be made into a blog, it doesn’t need to be one unless you want it to. In general, you are not limited by many design constraints.
Very robust and extensible through “plug-ins,” WordPress can also be made to power any website but it’d take some fighting and a lot of programming time probably better spent elsewhere.
Modules and plug-ins
Drupal has a much steeper learning curve. For a working website, you’ll be using around 20 “modules,” some of which you’ll need to modify by hand, even if just a little. For this WordPress website, I’m using just a few “plug-ins,” which generally did not need any adjustments (I also wrote a few more plug-ins on my own but the difficulty of this is also nowhere near that of writing your own Drupal module).
“Modules” and “plug-ins” are not just names: modules add new functionality, while plug-ins modify what already was there in the first place. WordPress can do without any plug-ins, while Drupal needs some modules.
Note that the difference between Drupal “modules” and WordPress “plug-ins” is not down to mere semantics: Drupal has very limited core functionality, and relies upon its modules to extend what it can do; WordPress, on the other hand, has built-in basic functionality of a blog (with posts, pages, comments, etc.) but allows for plug-ins that attach to “hooks” provided by its core functions and modify the behavior of the WordPress core. Although this is much more flexible than it sounds, and often these modifications may mean doing something entirely different, they’re always about changing some original behavior that was already there. In Drupal, there’s little original behavior to be changed in the first place, and the modules are about doing something new (I’m slightly exaggerating the difference for illustrative purposes because I believe it helps to understand what’s going on).
Why it matters
There is a sheer drop in code quality between the “core” code and the extensions: this is true for both WordPress and Drupal but the difference is that while you can have a perfectly complete WordPress installation running without any plug-ins, without its modules Drupal is reduced to basically an administrator login form. If you go for Drupal, expect that you will need modules, and some of them will be abandoned or low-quality code you will need to fix yourself.
The gist of it
Also have a glance at an article about a few up-and-coming CMSs you may also want to consider despite their being less popular.
If you are in the business of making websites, it’d probably be a good idea to immerse yourself into Drupal. It’ll take you some time to get your first decent site running but anything afterwards will become easier as you build upon your experience from the previous projects. Me, I just wanted this one website running, and for that WordPress is just perfect. You’ll also appreciate its editing interface, and the abundance of decent themes.