We need to take a brief detour here and talk about what is and isn’t considered “content,” in a particular CMS. And this isn’t a meta-philosophical discussion about the nature of content, but rather it’s a practical acknowledgment that not every piece of data managed by a CMS is the same. Some are more content-ish than others.
Consider the Article we’ve used for examples. If I’m a publishing company, then my articles are most of the reason I’m managing content in the first place. They’re not incidental to my content model – they are my content model. My entire business is built around managing articles.
Therefore, we can say confidently that articles are “full” content.
What about, say, the categories I use to organize my articles? Are the categories “full” content? They have a name, and they’re organized into a tree, but are they content like an article is content?
Maybe not. Depending on the system, categories might just be some data structure managed from the interface.
But, wait, isn’t everything in a CMS “some data structure managed from the interface”? Well, yes, but some of them get more services than others.
Let’s consider all the services a CMS provides to content objects:
- Full modeling capability, with attributes and custom validation and everything else we’ve talked about so far
- Versioning, so we can maintain a history of changes and can rollback to a prior version
- Granular permissions assignment, so we can control who can do what
- Some level of auditing or logging, so we have a record of everything that has happened to an object
- An editorial lifecycle, so that changes to the object are not always published directly, but can exist in a virtual workspace until ready
- An approval process, so that progression through the editorial lifecycle has to be approved by one or more people
- A event model, so that we can inject code operations at various points in the lifecycle
- An archiving model, where content can be deleted and removed from the UI, but retained in some form
And so on. Depending on the system, there might be a dozen different services provided around content. Fundamentally, this is what makes any particular CMS more than just a database – it “serves” and enhances content by providing extra functionality around it.