Sunday, October 29, 2006

Requirements for a personal CMS system

For the last few weeks I've been thinking a lot about my web presence on the Internet. At the moment I got dozens (ok, I cannot count) of sites that are not linked together. They are:

All sites have different layout and publishing engines. I also have som lab sites - but I guess they are OK to keep out of this list.
This document will try to point out my requirements for a CMS system based on my experience in the past with my existing systems.
All requirements does not have to be in place for me to choose a system, but this is what I'm looking for.


Cacheability. I want a CMS to provide the right HTTP headers to the client where content is not personalized. That is the Last-Modified and Cache-Control headers.
With these headers I can scale out a system with Squid if performance is needed. Also crawlers will work more efficient.
More information about these headers are to be found here.



Scalability. In the past I've seen lots of custom made web publishing tools that won't scale to more than a few concurrent users.
Given the right architecture a CMS should scale to lots of concurrent users without the need of external proxies.
I test a website using either OpenSTA or siege.



Readable URL's. My CMS should have nice, readable URL's like /fun/cat_mess instead of ?ID=333. This makes crawlers more happy and makes it easier for almost any log analysis tools to show you what pages have been visited. I use Google Analytics for statistics.


 
RSS/atom feed from articles. And with channel support so I can provide different channels (like dagens and GPS) for different users. One feed should give all channels, for use with Feedburner to enable quick indexing of new content. Feed file should be cacheable as described above.
 
Content editor. Other persons should be able to write content without the knowledge of HTML. This includes a WYSIWYG editor with basic formatting. People with HTML knowledge should be able to write as well. Layout of the site should be separated from the content.
 
Menus and navigation. The CMS must provide navigational means. I belive all do, so I won't elaborate about this point. But it is a requirement.
 
Mobile content. More and more users are using Windows Mobile or other handheld computers. There should be som abillity to display a scaled-down version of the site for these users.
 
Index and search. Indexing and searching is a requirement today. Either you can use Google Custom Search Engnine as your search engine or you need to provide this on your own. Google is slow at indexing new pages so it can take weeks after you added content before is searchable. (With RSS feed and Feedburner blog searches are updated much faster.)
 
Web community. The CMS should have a web community where support and new functionality can be found when needed. No need to reinvent the weel all the time :) Short learning curve for programming to the CMS is also required as I belive there is a need for customization.
 
Blog functionality. Not necessary but can be nice to have. Feedback on content is (almost) always appreciated.

In the future I'll try to test variuous CMS against this requirements. And reviews will be posted here as well.

Labels:

0 Comments:

Post a Comment

Links to this post:

Create a Link

<< Home