Tuesday, February 7, 2012

CMS usage pattern - choose your CMS



Now days every business wants CMS capability in their app, at minimum for home page to show promotions, alerts, news & messages to end users. On each and every project I have been on in last 5 odd years, CMS was part of application in one or the other way. At the start of the project I always had to think and decide which CMS system should I go for.  And working with different domain, some patterns started emerging in my thoughts and helped me making decision.



I have worked with multiple feature rich CMS products, which provides business critical features such as versioning, publishing work flow, content promotion... . However, one of the key pain area in all of this feature rich CMS products is that development of remaining custom components either as plugins or customization modules if very difficult. Developing these ~20% of the custom components takes lot of time & effort with specialized skills. Most of the time we need to hack to get custom component build in existing CMS. 


And another pattern of CMS stated building in my mind, 1) Obtrusive and 2) Unobtrusive CMS. What I mean by obtrusive is, CMS doesn't integrate seamlessly in your application. Application needs to be developed within CMS. So now while choosing CMS I started looking into how easy or difficult it is to develop custom features/components within CMS.


And I started looking into following criteria while choosing CMS:
  • Support for digital asset management (image repository with resizing) are very important for CMS. Look for Amazon S3 support too.
  • Content promotion from non-production env to production env is one of the most used feature. e.g. Create all the required content in stage and promote it to production before launch. Gives more flexibility to push release early to stage and get the content ready and later deploy and publish content in one go to production.
  • Free text search has become defacto requirement now days for any website. And hence more critical feature for CMS to have. Don't forget to try and see how good SEO support and inbuilt search is. This could become make and break deal for some business while choosing CMS.
  • Be aware of oversold CMS features which are hardly used in production.  Work flow management within CMS. Sounds good but practically what end user wants is just the option to preview and publish (as review mode) .


Which CMS to choose?


Type 1: Full CMS - Publishing & media websites
If you have capacity Build your own CMS. Here are some thoughts I have on the CMS system architecture. 
Or
Based on the requirement and skills available within the team decide on the full featured CMS system such as Liferay, Drupal etc. 

Type 2: Partial CMS - Online business websites
Take any of-the-shelf lightweight CMS, which integrates seamlessly (unobtrusively) in your application. 
e.g. taking open source CMS as rails 3 mounted application (www.locomotivecms.com or http://refinerycms.com/ or http://www.browsercms.org) and build you application as normal rails 3 application. hint: opensource CMS can be forked if required.
Or
Build your own simple unobtrusive CMS. Checkout this article and build your own core component.

Type 3: CMS for the namesake - few pages in application
Build your own wiki style CMS with lightweight admin interface to update markups. e.g. Markdown is very popular and available in all languages.




My take? just build what you need. initial investment will be more but it will save on customization, learning & lot with maintenance cost later. Spend time in development rather than learning, researching and hacking into CMS product.



Hope this article helps you in deciding your next CMS system.

No comments:

Post a Comment