This is a bit of a brain dump about something that’s been bugging me for weeks, it doesn’t have a great deal of coherence to the idea yet.
I’ve been working for the last few months on the excellent Silverstripe CMS and the framework Xebidy has developed on top of it called Bootstrap. We are releasing the source of Bootstrap (not soon enough) and plan to support it as a plugin or alternative input system for Silverstripe. Anyway, the point is these systems are really based on pure content management systems – every piece of data entered into the system is purely for displaying on the page. Everything is written expressly for the webpage and rarely will be used for any other purpose. This is what most people expect they are getting when you tell them they are getting a CMS, I’m not sure it’s the best way to run a content heavy website.
What I’m suggesting is to move to a more data centric management system. Rather than creating pages and putting information on the page about a product, we should create a product in the system and let the webpage display that in a properly formatted page. This way, things such as product reviews, tags and comments are attached to the product itself, rather than to the page. Now, let me say I’m aware that a lot of websites are built in this manner, (I’ve worked on them before) however it isn’t a viable option on a smaller level.
There are a few reasons for this, firstly building the site around the companies products can be a very difficult process, first of all the designer/architect needs to have quite an intimate knowledge of how each product relates to each other and the company which can take a great deal of effort, time and money. Secondly, this approach can be limited in flexibility, obviously adding new products shouldn’t be a problem, but what happens if there is a new class of product or the company moves into selling services. The website will not necessarily have been designed with these things in mind and then the database will need to be adapted to the new structure.
I think to solve these problems, a new type of CMS needs to be designed (or an existing one adapted) which lets the web manager develop and adapt the database for themselves. I’m not quite sure how that would work, but it could leverage some of the existing web apis (GData & Pipes for example) to pull together the data.