What do you look for in a CMS?

Just like the last post, I am looking for some ideas. As you probably know by now, I have been working very slowly over the last year or two on developing my own content management system. I am at the point now where I am simply trying to finish up a few pieces of code before I make an official release.

However, while I’m working on the system, I am always looking for ideas on how I can improve the software.

When you research content management systems for your Web sites, what features do you look for?

So far, I have the following features and plug-ins written for the system I’m developing:

  • User permissions – I’ve developed a rather complicated matrix of user permissions, and am actually currently working on implementing all of those permissions.
  • News posting – Basically, this is a blog script that’s built into the content management system
  • Extra menus – For those of you that are constantly finding that you want an extra menu added to specific pages on your site, this is a wizard that makes that an easy task. For instance, if you have a file repository on your Web site and you want to add some options to each download page (download the file, view the readme, view screenshots, etc.), this is a wizard that facilitates that.
  • Screenshot block – This is another block that can be tailored specifically for each page. If you have pictures that you want to show on a specific page (designed for screenshots, as the name would imply), this makes it easy to do so
  • Polls – You will have the ability to add opinion polls to individual pages.
  • Flexible templating – Almost everything within the CMS is templated, which means you have almost complete control over the look of every single element that appears on your site. Menus, pages, news blocks, etc. are all templated. Numerous variables are available within the templates that can be easily inserted using HTML style tags (<foobar>) or traditional template tags ({{foobar}}).
  • XHTML Transitional output – I am working very hard to ensure that, assuming the templates that the user builds are valid, all of the output from the CMS will validate through W3’s XHTML validator.
  • Three levels of navigation – Rather than allowing infinite nested levels of navigation, I have developed the CMS to automatically use three levels of navigation: Sections, Categories and content pages. I’m not sure if this would be considered a feature or not, but I feel that it encourages the CMS users to think about their end-users more when developing their Web sites. If you only have three levels of navigation, it will be much more difficult for your users to get lost in your site through endless levels of navigation. Everything on the site should have a logical place in the outline of the site.
  • Multiple menu options – I’ve built multiple menus that can be generated dynamically through the CMS. You can use a navigation menu that shows all items in your site tree together, one that show only the sections, only the categories or only the content pages, combinations of various elements, etc.

I am also planning to implement SEO-friendly URLs, meta tag wizards and YaBB user-integration when I finish up. However, those are all features I’ve not yet worked on.

I would also like to work on a file/asset manager at some point, but I don’t think that’s going to make it into the first release.

What do you think of that feature list? Are there key elements missing from the list of features?

One Response

  • I really like the ideas you’ve setup for your CMS system. Particularly, the multiple menu option along with a straightforward but fairly basic menu navigation system. I think if you pull this off well, you’ll find a ton of support for your CMS :)

    I’ve always thought it would be a great addition to a CMS if the admin panel was able to display basic explanatory tool tips. Of course, it would be handy to have this be a feature that could be turned off…I do think it would be very beneficial to users who are new to your system.

    You may want to swing by a site like Codango and take a look at some existing CMS’s, which ones are popular, which aren’t, and so on. Armed with that knowledge, you may even find some more little tweaks based on user thoughts. Good luck in your endeavor!