Yesterday I started on a new CMS project. At the beginning of each project I like to reassess the tools that I'm using to make sure I'm not stuck using just what I know. To start, I listed some basic things I want from my CMS:
- Manages a page tree
- Can be extended to manage structured data
- Rich text editor
- Image Management
- File Management
- Link Management
- User Management
Image and File Management
These are the very basics. I originally had Image and File Management listed in as Asset Management. But I find that these are presented slightly different. Images are presented in a gallery, where "files" such as PDF's are listed in a "file" manager. The Image Gallery and File Manger are accessed directly to upload and organize new assets, and integrated into the Rich Text Editor.
Editor Integration
When inserting an image, this uses the image gallery to chose an image. When adding a link, this will either use the File Manager for assets, or a Page Browser to link to another page on the website. This is what I class as Link Management.
User Management
Most CMS solutions offer sufficient User Management in terms of authentication. However, granting authorization to specific areas of the website is more involved.
Advance Options
These are necessarily "advance", but to go beyond the basics, most website I work on are bi-lingual. Therefore I require some i18n for the administration interface and some method to manage translations.
Other features include search and versioning of content.
Extensible
Finally, it has to be extensible. As mentioned in my post A CMS is Not Out-of-the-box Software, a CMS is not a product until you have tailored it for you client needs. A CMS is a platform. They BrowserCMS team describe this succinctly in their presentation at acts_as_conference. Their slide summarizes this concept: