Writing Room and Content Query API: a different approach to Content Management Written by Sadek Drobi in Concept on March 13,2014 A quick exploration of the world of Content Management reveals obvious limitations in current classical solutions — the disdained Content Management System. These limitations certainly present a great opportunity to fix things up, and reshape what modern Content Management should look like. One of the reasons for the current state is historical. Back in the day, the main focuses of the CMS was to design and build web sites — almost making the actual content management and optimization a secondary goal. With the advances in design frameworks, CSS, web browsers and in mobile, we are no longer short of tools for building and designing apps and websites. But when it comes to content (even just a bit of it), the fun ends right there. But can't content managent be fun? And can't manageable content integration be simple and quick? At prismic.io, we took a different approach to the Content Management problem. Frameworks, builder and designer tools don't belong in Content Management Content needs to be integrated into many mediums and environments: presentation websites, transactional web apps and games, running in the browser or in native environments, on big screens or mobiles. It is impossible for a Content Management solution to offer frameworks and builder tools for all of these situations. At least not without introducing a huge amount of complexity and drastically limiting creativity and innovation. In today's world where user experience is our top concern, we have to employ the full horizon of possibilities when building applications. Moreover, content tends to live longer than a particular application or design, and we need to be able to change the way we present that content to users anytime it makes sense. These are just a few of the (myriad of) reasons why it does not make sense to couple builder and designer tools with content. A better approach is to have content at your disposal and integrate it with the technology of choice: be it web-based, client or server side (PHP, JavaScript, Rails, Play Framework, Bootstrap), native (IOS, Android), using the latest design trends (adaptive, flexible, interactive, ...) It is clear that to solve the Content Management problem we should focus on actually managing content, and that content needs to be easily queried and integrated in various — rapidly evolving — frameworks, builders, and designer tools. Content Writers & Developers This leads us to ask the question: who are the users of a modern Content Management tool. There are two different users of such a system: the content writer (or publisher), spending their time creating, experimenting with and optimizing content ideas. And the developer who will set things up and integrate content into websites and/or applications. Meet the Writing Room and Content Query API: Writing Room: the Content Writer's space to optimize and collaborate on content A Writing Room is where Content Management happens. It is the place that allows users to create content documents, write texts, upload and edit images, schedule publications, discuss and collaborate. Optimizing the Writing Room and enhancing the Content Writer's experience is an area that calls for innovation. The main focus here should be on helping users create optimal content, and make the best out of their ideas. For instance, users should not be worried about losing changes. They should not be worried about breaking production applications with their experiments. Knowing your content is safe encourages users to experiment and play with ideas. At prismic.io, our Writing Room uses versioning to achieve this: all modifications are tracked, and a user can draft changes, publish/unpublish and republish them. There's still more we do to make the content writer's task more fun. It is not the purpose of the post to enumerate them, you can see more by having a look at what we do in our Writing Room tour. Content Query API: the Developer's way to integrate manageable content anywhere On the developers' side, they need the ability to easily integrate available content into an application or website. The best approach is to open a technology agnostic API that enables integrating content in any technology and on any platform. This is what we call the Content Query API. For example, we built our Content Query API to be a RESTful web API, allowing developers to query and search in content documents and manipulate the results — and then fit them into the design or the application. The more querying power this API offers, the more you can do with your content. Queries vary from getting documents containing a certain tag, to finding related documents or performing a full text search with different criteria. An example prismic.io content query: A wider choice of designs and technologies Maybe one of the best aspects of this approach is that it removes constraints on the technology/framework you chose to build your project with. Even more importantly, it doesn't force your project to live inside the Content Management tool (something classic CMSs do). You can reuse existing projects/templates, use whatever skills you have, and think in terms of integrating content in your project instead of building your project within another project's constraints.