Wednesday, May 28, 2014

The curious case of the missing "management" in content management systems

In the past 20 years, a lot of Content Management Systems have seen the light of the world. No matter how you count them, pretty much everybody will agree that there are thousands of products that allow you to "manage content". Yet for all those CMSs, it is surprising how little management functionality actually exists in these systems.

If we talk about Content Management, we mainly mean the ability to create content and publish it to the web and other channels like mobile apps, POS, Google Glass or smart TVs. Your CMS will most likely also contain some form of sign-off workflow, although many of the simpler ones don't. For a CMS that can be used for global communication, some form of translation management might be included: the ability to write content in one language and eventually publish in others. (this typically includes workflow for a review process as well as some export/import functionality or calls to cloud APIs that handle the assignment to translation software and the humans – or machines – that perform the translation). But that is pretty much where the management part stops. So what else needs to be managed? Let's start by looking at what management means. Wikipedia tells us that
"Management in business and organizations is the function that coordinates the efforts of people to accomplish goals and objectives using available resources efficiently and effectively"
Google simply states that 

For instance, these days there is ample talk about content strategy. Is any CMS able to manage your content strategy? Do you have a CMS that even allows you to define a strategy? How about managing the creation and lifecycle of content? A CMS that manages a publishing calendar? Automatically assigns content to be written to the next available resource? Or a CMS that, based on the analytics of existing content and the stated goals of your website (or app) automatically creates new tasks for content that needs to be written?

Editorial Calendar App in Magnolia 5
Editorial Calendar App in Magnolia 5

Imagine a CMS that detects how 3% of your visitors are looking for "management self help" on your site, but no article exists to satisfy their need. Shouldn't it create a new item in your task box, or in your editorial calendar to ask for it to be written?

How about a CMS that realizes that a particular article isn't accessible anymore? Or that a certain SEO-heavy landing page uses outdated terminology? Shouldn't it notify you?

As you can see, once you start thinking about what could be done, you realize that Content Management still has a long way to go. Luckily, some systems allow you to add functionality in the form of modules or apps onto an open platform. It will be exciting to see the kind of "content management apps" we'll see in the future. What is the "management" part you miss most in today's content or experience management systems? Feel free to leave a comment or come to the Magnolia Conference 2014 and discuss your ideas with us.

Sign up in the upper right corner of this page now to never miss any of my blog posts.

Wednesday, May 21, 2014

Jackrabbit Oak – the revenge of the JCR API

First of all, congratulations to the Jackrabbit Oak team for making it to the 1.0 release. This is very exciting news for every vendor whose software is based on the JCR API (aka JCR-170) like the Magnolia CMS.

Jackrabbit Oak is the next generation content repository. Its goal is to be "a scalable and performant hierarchical content repository for use as the foundation of modern world-class web sites and other demanding content applications. The Oak effort is a part of the Apache Jackrabbit project. Apache Jackrabbit is a project of the Apache Software Foundation."

And "The implementation should provide more out-of-the-box functionality than typical NoSQL databases while achieving comparable levels of scalability and performance".

So in a nutshell it is a JCR implementation for a world of big data and user generated content, where the NoSQL approach to solving scalability issues has become the mantra of the current generation of web applications. Or in even less words: it brings the MongoDB to the JCR world.

Any vendor whose software uses the Jackrabbit JCR repository will be able to switch the implementation to Oak and gain a lot of interesting functionality, e.g. concurrent content updates. Unlike the original Jackrabbit implementation, which created search indexes automatically, in Oak administrators will need to create indexes just like they used to do in the old DB world. This has long been a demand from real world users, as this allows to fine tune performance to search queries used within your application and will boost performance of queries.

If Oak fulfills its promise, as I am sure it will, Magnolia will be able to reach a new level of scalability. It also means that everybody who claimed that JCR is dead did not fully understand the beauty of a standardized content repository API: the underlying implementation can be changed if needed. And that is exactly what happened.

Here is an architecture overview slide from Jukka Zitting (a fantastic developer whose only known fault is that he is working for the wrong company ;-)). Oak Documentation and Downloads available.

Magnolia will evaluate the status of Jackrabbit Oak in the coming weeks and we'll surely let you know about our findings in the Magnolia Dev Blog.