Search code examples
content-management-systemfeedbackfeature-selection

Most important features of CMS


Suppose there is a new CMS coming out and you can choose and rate features to have there. Choose 5 of them. 1st place is for the most important ones, last place is for not so much important ones.

  • In-place edit (no admin panel)
  • Global content version control (articles, blog entries, any module content items, etc)
  • Single-page application as an outcome (no reloading pages, pure ajax/web-sockets)
  • Easy extensibility (inversion of control, in-production module compiling and installing)
  • Simple concept for non-IT people to understand easily
  • Import/export of all sites data (including 3rd party modules)
  • Any DB support (MSSql, MySQL, PostgreSQL, SQL CE...)
  • Easy templating system (logicless templates, such as dust.js)
  • System-level web-sockets support (services, data transferring between browser and server, real-time data pushing from the server)
  • Significant amount of prebuilt modules and features
  • Being open source rather than paid (even though quality could be lower)
  • I'd rather pay for it (a reasonable amount of money) but have it bug-free, fully-tested and fully-supported
  • To have the ability to buy CMS as SaaS

  • Anything you have to add :)

Really appreciate your feedback!


Solution

  • A very important, but missing point is that the CMS should not only be a web CMS, but a general-purpose one (ECMS, or enterprise content management system) - in which I have the ability to define my own content types and their relationships.

    In my opinion, multiple database engine support is not relevant, as long as it supports a well-known and maintained database engine that makes sense for the technology stack.

    For me, the following are very important:

    • High performance - not only the performance, but a well-documented way to benchmark the product against other CMSes is very important.
    • REST API - nowadays you can't afford to build a system without the capability to interact with external components in some way, and a REST API is a very elegant way to solve this problem. It is also useful because you can call it from client-side scripts in the browser.
    • Customizable UI framework (or, in other words, completely replacible) - Developers using the CMS should be able to completely replace the default UI and roll their own, or maybe even combine their own with the built-in options.
    • Well-defined extensibility points - Every layer of the software should be customizable with well-documented ways to extend the default functionality.
    • Decoupled design - The lower layer of the CMS (usually called a Content Repository) should be a usable product on its own, meaning that it should work with other applications and custom user interfaces.

    Here is a good article about decoupling content management and why the approach is important: http://bergie.iki.fi/blog/decoupling_content_management/

    For further reading I would also recommend the book called Content Management Bible by Bob Boiko.