Here we are, well into the social web era, and content management systems are still a big topic on the web. And it doesn’t look like that’s about to change. One might reasonably ask “Why are we still talking about CMS technology?”
Well, frankly, it’s because some of us haven’t completely figured it out yet. Making websites and web applications that work is still one of the main concerns on the web. Organizations from many different sectors are still trying to figure out how to move their businesses online, and this means fitting a website to their needs.
This is where a content management system is key. Of course there are different kinds of content management systems. Some are purely web CMS, some are more content management platforms which fulfill multiple functions, some are simple blogging systems, still others are web frameworks…but this isn’t meant to breakdown every single CMS system out there.
Rather, I want to talk about how important APIs are, whatever the category of content management system we are talking about. This was not the case 10 years ago, and it’s something people tend to overlook when choosing their content management software. Why are APIs so important you may ask? I asked Roland Benedetti over at Nuxeo – which provides open source document management and content management system solutions – to break it down…
Websites and web apps are not just for humans anymore
In the early days, the sole mission of a web application was as a resource for real users (that is, humans) to discover a brand, access a service, get content, and potentially comment. Today, it is a whole different story.
Often, a web application is taken up by other applications to be consumed, re-purposed, integrated, mashed up, and so on. Examples of this abound on the web. Google Analytics is a perfect example of this. A good portion of its success is due to its APIs. Other apps need analysis, and Google Analytics is there, ready to lend a hand.
If search is your thing, then maybe you are familiar with a little company called SEOmoz. Sure, it offers a nice end-user experience, but it gets even more interesting when you integrate its API into your current system to do things like create customized tools to automate otherwise time-consuming tasks (i.e. grab metrics for a large number of site).
Whether providers are aware of it or not, content management technology is following exactly the same trend. Content management systems cant just provide a service to an end user, but it must also provide content management services to other applications, and to do so they need strong APIs to function effectively.
The necessity of these API features has a significant impact on the software stack, which is not easy to evaluate if, for instance, you are in the process of choosing a content management solution. Here are the key characteristics you want in an API for your CMS platform:
1. An API that lies at the core of the software
Strong functioning APIs cannot simply be layered onto an existing application. This holds true for a CMS just as it would for any other kind of software. APIs should be designed and built as core components to the content management software. If not, they will simply not be able to evolve and perform, and will have a hard time to providing the full range of content management services to the increasing number of fellow applications clamoring for integration and mash-up possibilities on the web.
You don’t necessarily need to be an expert to figure this out. You simply have to have a clear overview of the architecture of the software you’re looking at. Obviously, legacy software with old architecture patterns will have a hard time delivering what newer solutions designed on a modern web architecture can seamlessly offer.
2. An API that you can extend and customize
At this point, the importance of a well-designed API should be clear, but there are a couple of other things you might want to look at. For instance, the API should be extensible and not limited to a subset of the platform functionality. As you implement a content management technology, you will most likely customize and extend it, which means you’ll need to customize the user interface. And that means customizing and extended the API as well. This might be hard to predict when you are launching a project, but there is every chance that you will be relying on this to integrate your web application or your website with other services on the web at some point!
3. An API that speaks your language
“API” can mean a lot of different things, and can also be implemented in many ways, with many standards, technologies, and programming languages. Make sure that your content management technology not only provides an API, but also that it is fluent in your language.
With the web came a range of different, new programming languages. Just a few years later, the Web 2.0 revolution gave rise to a generation of API-oriented web applications, and the way we conceive of APIs changed from what it was 10 years ago. You definitely want a modern API that speaks the right language. Personally, I prefer a pragmatic approach to a dogmatic one. With Web 2.0, a new generation of APIs has leveraged new ways for applications to communicate, such as REST communication, JSON, Ajax, and many others.
So, what’s next for content management?
Business analysts describe the content management market as one of the fastest growing sectors in the software industry. Increasing demand means more needs, more projects, and more budget for content management professionals, but it also means these professionals will have to reinvent content management technology. If they don’t, their competitors will.
Web content management, document management, and digital asset management are still largely dominated by first-generation solutions, and the market is entering a period of renewal. A new wave of content management technology, one that emphasizes APIs and application-to-application, machine-to-machine communication will take their place, and consultants will have their work cut out for them if forced to help clients change out their legacy systems. The benefits may not yet be clear to everyone, or may be outweighed by the fear of change, but if you’re on the market for a new CMS platform, start right from the beginning so you don’t need to waste time on upgrading your system to communicate with APIs down the road.