Think twice about using a CMS…

by mattm on May 23, 2008

in Software

Some time ago myself and some other fellows decided that it would be kind of neat to build a website that would cater to musicians and offer various ways for those users to collaborate with each other. We needed user management, forums, comments on everything, a way to manage audio (upload, download, metadata, playlists, etc.), license management and lots of good admin capabilities. All of us work full time jobs in the software industry, and have come to enjoy our few hours off a day, so if possible we wanted to use something that was already 60-80% there.

Enter Drupal, version 4.7. Drupal has everything, and I mean EVERYTHING. You see, Drupal is an open source with a community of enthusiasts spending their spare time on adding modules for everything from radio station management to shopping carts. The trick with Drupal is choosing the right stuff and doing a really good job of integrating it all. So, we embarked on that mission and ended up with mix2r.fm shortly after that. Mix2r.FM has some usability issues at the moment that can be attributed to two things:

  • Us doing a poor job of theming the entire site. Our theme isn’t very deep and doesn’t address a lot of the modules.
  • Drupal’s complex set of module hooks make it a bit cumbersome to add functionality compared to something more bare-bones, like CodeIgniter.

Now, don’t get me wrong, Drupal is good stuff. The code is quality and the module selection is out of this world, but there is a humongous weakness ine Drupal-sphere: release cycle. The Drupal release cycle is fairly tight with new major versions coming out pretty darned rapidly. The core Drupal team does a splendid job in addressing weaknesses in the platform, but at a cost: breaking all of the third party modules with their new release. So, if you found yourself with a comprehensive 4.7 installation, and are unhappy with various things in 4.7 that 5.0/6.0/7.0 addresses you will have to wait until all of the authors of third party modules update their code…which sometimes never happens. You will also have to update any of your own modules, which requires you to go and learn exactly what they changed between releases.

What can I say? This is the ultimate caveat to open source: support yourself.

Recently, in trying to get a handle on Mix2r.FM, I came to the conclusion that I might as well rewrite the whole site because the work involved in getting up to the latest Drupal and modifying any modules that I wrote (or used and others aren’t updating) would be just as much work without that nice thrill of birthing a new technology with your own hands.

If you are thinking of using a CMS such as Drupal for your site, I recommend asking yourself the following question:

Do you have the time, ability and inclination to write the site from scratch? If you do, consider that the ouput from writing from scratch will probably fit your vision more closely. CMS’ such as Drupal have a lot of separate designers with different visions, and it shows in the modules. In my case, I did not have the time to write it from scratch, and I was hesitant to start on a long part time project for an idea that I was not sure would survive (it has, we keep getting new users, higher hit counts and tons of content submitted).

If your gut feeling is that it would be better from scratch, you are probably right, but if circumstances force you to leverage a CMS — fine. Just DO NOT expect it to last forever, because a moderate amount of success with your site will have you reconsidering the approach later on.

Leave a Comment

Previous post:

Next post: