Friday, March 09, 2007

Can you split the CMS please?

A few weeks back I got my own domain name. I am planning to create a personal site where I can put up my working papers and code. Right now it is just a placeholder made up of a few HTML files that I have typed by hand. But the cutting and pasting is already becoming a maintenance nightmare. I want some system where I have to enter only the variable part of the content and the rest is generated automatically.

One system which I have looked at is the open-source content management system Drupal. There are lot of good things about it. The templates look slicker than anything that I could manage on my own. There are a whole lot of modules that deal with content management and presentation and even with such things as creating and submitting Google sitemaps. The process for creating new modules for things specific to my site does not appear to be too difficult.

There is only one difficulty. Drupal requires you to manage content by interacting with the live site. This leads to a number of problems:
  • Trying to have a separate staging site where I can edit and experiment with content before pushing it out to my live site requires ugly hacks to maintain synchronization between the two.
  • Given the nature of the content I am planning to put up, my final site would not require any complex dynamic machinery. Since it would be edited infrequently and I would be the only person doing the editing, having the content management system sitting on my local machine is not really a disadvantage. So, having to maintain a complex system like Drupal on a shared host seems like an unnecessary burden.
  • There is the security angle too. I cannot afford to pay for SSL hosting, which means that I am open to vandalism from someone sniffing my password. [Though the point is somewhat moot since the cheap webhosts that I can afford require you to update the site using FTP which is as vulnerable to password sniffing.]
Other popular open-source CMSs have the same problems. There are other programs like Tahchee and Rest2web which take templates and the description of a website in some 'high-level' form and generate static HTML. But from what I have looked at so far, they seem to be too restrictive for the type of site that I have in mind. Particularly their basic unit of organization seems to be a page, while I really like the concept in Drupal and other CMSs of the basic unit being an article with pages being created by selecting and organizing articles in various ways. And Tahchee etc. have no built-in content management, so you either have to keep hacking at unstructured text files or roll your own.

Like every amateur programmer, I am sorely tempted to do the last. I can feel it in me to write the next revolutionary CMS which will allow proper separation between the content and its management. Hopefully this mood will pass and I will find a tool that I can use.

No comments: