April 21, 2005
If you visit my site very often, you may have noticed a subtle change that happened this month. Namely, I moved from my standard PHP file based site to one using a content management system (or CMS.)
A CMS allows me to focus more on the content rather than worrying about where files are located, permissions, or even straight HTML. That's right, I'm writing this on-line using a built-in WYSIWYG HTML editor. I have to say, it's rather nice.
There are dozens of excellent Open Source CMSs available. Most have a similar set of requirements: Apache, PHP, MySQL. After investigating a few of them, namely Plone, Mambo and a couple of others, I settled on a relatively unknown CMS, CMSimple.
CMSimple, as the name suggests, is very simple to setup and use. Unlike most of the other programs I investigated, CMSimple doesn't require MySQL. It stores all content in a single HTML file that it parses and breaks up into smaller pages. Because of this, CMSimple doesn't scale particularly well. The author suggests that 2MB of content is about as much as you'd want to have tied up in a single instance of CMSimple. Another potential turn off is that CMSimple doesn't handle multiple users. That's not a problem for me, nor is it an issue for many small businesses and organizations.
But I've leapt right in to CMSimple's limitations without an explanation as to why I am using it on a few of my sites. In short, it's incredibly simple to use. CMSimple took me literally five minutes to initially set up. Just download it, unpack it, set the permissions properly and away you go. No installation routine, no dependencies on a database. You're done before you start.
I've mentioned that CMSimple provides a WYSIWYG page editor. Hierarchical sections are created by specifying heading types. H1 is a top-level page, H2 is the first submenu and H3 is the third submenu. H4 allows you to create a heading within the current page.
If CMSimple's built-in editor is too limiting, you can switch to HTML source mode or add one of several external editors such as HTMLArea or TinyMCE. The built-in editor allows you to make text bold, insert images, create bulleted lists, insert links and other basic operations. It's good for about 90% of what I need to do routinely. For anything else, there's the HTML source mode.
Because everything is stored in one page, CMSimple can easily provide a few other nice features for free as well. Namely, I decent search function, a print-only version and a simple site map. These are things that I have often felt like adding to my original site, but just hadn't gotten around to.
CMSimple also provides a straightforward management interface. Upon logging in to the system, you are placed into edit mode. You can also verify the links on your site, upload images and edit CMSimple's settings. The settings option allows you to configure the username and password, the template to use, file size limits and whether or not to use an external editor. There aren't too many options, so things aren't overwhelming for new users.
While I have been enjoying using CMSimple, I believe it will really shine when used by people with limited HTML and web design knowledge. One can simply create a nice template for CMSimple and then allow the users to edit and create their own content. I will be using CMSimple for one site I maintain at work and am planning to use it for at least one other non-profit site that I will be helping with. In the latter case, I plan to turn over the keys once I'm done and let the customers maintain the site themselves. This is something that I would never consider doing with my standard sites.
CMSimple is a very elegant solution to many web design problems that I face. Yes, it would be nice if it was a bit more customizable, or if it had more features or finer grained security, but if you add those features in, you're looking at a database backend and far more complexity. One feature that I would love to see would be an integrated spell checker. However, overall I think that CMSimple provides a nice trade off between features and ease of use.