Recently I had to pick a CMS for building a new website. Here are a few observations and ideas I ran across.
If you're planning to dust off your PHP chops and build a new site from scratch, you should consider using a CMS (unless you're being paid by the hour). A flexible CMS can take care of many mundane details and give you a stable framework for developing something specific. The main issues I've had with choosing a CMS are: - Platform/Language : I considered using Scoop because I love the setup and workflow of kuro5hin.org (for which it was written). Too bad it's written in Perl, and uses a tonne of Perl modules that I'd have to install myself, something I can't do with cheap, high capacity shared hosting. Go for something standard - PHP, MySQL, Apache, etc. - Not quite plug-and-play : You typically get a core CMS with very limited functionality, and you can choose from a large collection of packages (components, extensions, modules, etc.) to add more features. I spent a lot of time tracking down and installing packages to do specific things. Beware : not all packages will be compatible with the latest version of the CMS core. - Roll up your sleeves : You'll probably have to do some hacking to make things work the way you want them. It's not quite like Lego. - Template engines : Your CMS probably uses some sort of template setup to turn data into HTML, with enough markup (div, span, id stuff) to allow CSS to style it. You'll probably end up modifying templates to make things look the way you want them. Some template engines have their own language (e.g. Smarty) you'll need to learn, while other sites use PHP or just hardcode (ouch!) the HTML. - Components : I ended up changing several modules, and also writing one. Have a look at some of the source code before you commit yourself to a CMS - if it looks like hieroglyphics, just run! - Themes : A decent CMS will have CSS-based themes that you can pick from and modify. See if anything tickles your pickle (unless you're a CSS nerd). I almost convinced myself to go with Joomla, then chose Drupal (http://drupal.org/). At the time, I wasn't aware of all the points above, but I'm still happy with my choice. Drupal is written in PHP and works with MySQL/PostgreSQL, has a great user community, lots of modules, uses straight PHP for templating, and has decent free themes. Drupal also lets you build custom content types using a mixture of fields (images, text boxes, radio buttons, etc.). Note : I haven't done an exhaustive comparison of Drupal to other CMSs - it just seemed a better fit at the time. There are lots of CMS demos here: http://opensourcecms.com/ Don't be distracted by the visual styling - that seems to be the easiest part to modify. Daniel R
