After several times dealing with major open source CMS ( Mambo, Joomla, Drupal, WordPress ), I have developed certain wisdom over the matter in a holistic ( pvuwaah !! :) ) ) approach.

Well, NOT… haha

Okay, seriously… in my point of view now, a CMS is a rigid blob of code, needed to be hacked, tweaked, whipped hard like a mule, just to get it working the way you want it to, that is manage your content…

Yes, true that they are designed to ease the development process, especially when you don’t have that much resources around. A web designer could use Joomla for example , to have a dynamic website up and running in matter of days from scratch, but that’s just a plain good website taking its content from database, plus some some plugins and add on stuck all over it just to get client eat the eye candy happily…

The fact is, after the final payment, the designer going home happy, while the horror for the client has just began … CMS usually designed to be general purpose, therefore many things are just unnecessary bloat… to make it flexible, the developer usually compromise on many thing, like deliberately unoptimized query… why it’s not optimized ? because it is necessary to be unoptimized… otherwise no way to get things done, not necessarily done gracefully, but just done. period.

My latest experience is with Drupal… a CMS with great review, popularity, and a horde of fanatical fans… how am I doing with it ? I tell you, my first impression is great, it’s slim ( just under 400kb of source script ) , easy install, no nonsense administrative panel, multiple site with one installation, possibility to make sigle sign on for multiple site, etc.

The “community plumbing” motto sounds good, the plug in architecture is nice, user management is just about everything you need… but then comes the horror… what i needed to for the site i developed is a full featured media management system, that is a system that is capable to handle video, audio, and image, plus i have to develop certain degree of social network and commerce function on top of it. I tried all available add on , plug ‘em in, configure, tweak… no use… everything just plain messy, disintegrated, and worst, it force user ( and me as developer ) to think the way Drupal ( or its developer ) think. The ugly magic showed up, weird stuff popping up here an there… just like you are on a boat in the middle of a lake, where the boat turn out to be a wreck because the shiny paint that looks great on shore , simply dissolve in the water, revealing horrific holes and ugly creaking patches.

okay, enough with the horror story, the thing is that after grinding my brain on moving things in Drupal molasses, I just fed up and swallow the fact that it’s just only good for prototype, a proof of concept. I wouldn’t even bother to imagine using it for real production site, which will handle thousands of concurrent user every second. It just won’t stand it.

Now, back to square one… well not entirely, i got the whole plan mapped out and all pitfalls and bewares noted from the proto site. All i need to do now is to rewrite the whole thing nearly from scratch, using lower level library and framework. that way I know what’s under the hood, as I’m the one writing it, i know the kinks and bends as i created them :)

So… don’t get too excited with CMS, my good friend… it could only get you that far, but never beyond…