For many years, large companies who could afford to pay large sums of money to large vendors for large software platforms did exactly that. The promise of a one-stop-shop, monolithic application was that everything was available out-of-the-box. The implication being that this would make things simpler.
The reality is that bundling a WYSIWYG (What You See Is What You Get) page builder with a front-end development environment, and a database tool, and a personalisation engine, and a content management system, and web application server, and more, brought complexity and technical overheads all while limiting the ability of experts in each of these individual specialisms to do good work. There are many outstanding front-end engineers, DBAs, content authors, out there. But far fewer who are also experts in building within ACME Site Manager Platform Pro™.
Thankfully the industry has responded by turning in increasing numbers to a different approach:
Composable architectures.
By using a selection of tools which were designed specifically to work independently of each other, and to be used in different combinations to offer a solution tailored to each project, we avoid the exotic, proprietary, slow, and expensive development patterns of large monolithic platforms.
This pattern of decoupling gained particular prominence in the content management (CMS) category, which has undergone a significant revolution where being decoupled from the web site hosting infrastructure is now the norm.
What is the difference between content abstraction and content decoupling?
These terms seem very similar, and it is useful to understand the distinction:
Content abstraction
Rather than the content in the pages of a site or application being populated within the code of each page itself, it can be abstracted out of that page so that it is separated from the code and presentation logic. This helps us move towards a system of reusable templates and of dynamically populating the content to be shown in any given page.
Content abstraction is a technique for organising code and content which can help keep both more easily maintainable. It might happen without going to the lengths of using an external tool or resource to fully decouple the content.
Content decoupling
Content decoupling is only possible if content abstraction has taken place. Since the content is not “baked in” to the code of any of the pages, it can be managed and made available by an external tool such as a decoupled CMS.
When we decouple the content, the content no longer resides in our code repository. Now we include it in our site by ingesting it either build time or at request time from the service that is responsible for its management and its availability. Each system now becomes focussed on its primary purpose.
What are the benefits of a decoupled content API?
By making clear distinction between the responsibilities of the content management system (which manages content and provides an authoring experience) and the site’s code (which presents the appropriate content to the appropriate audience in the most efficient way) we can enjoy many benefits such as:
Harnessing specialists and their domain expertise
This logical separation allow experts in each area to perform their roles to the best of their abilities. Front end developers don’t need to be experts in databases or content authoring flows. Content administrators don’t need to worry that their content updates will break the site’s CSS.
Finding people with the skills we need for the project becomes easier and less risky.
We also gain the expertise of teams who are dedicated to the maintenance, optimisation, and availability of specific their products with a very specific scope. CMS experts, Digital Asset Management experts, E-commerce payment gateway experts all become extensions to our team via the products and service that they provide.
Internationalisation
With content abstracted, we can more readily translate and internationalise it. With it decoupled and managed within a headless CMS we can also make use of the internationalisation tools and conventions that many of the popular platforms provide.
Tool flexibility
Nobody likes being locked-in to any particular tool or technology. When our site includes content via a content API we have a clean and logical separation of the tools which makes replacing the component parts far more straightforward than if they were all provided by a single product. They are designed to be interoperable.
You love your CMS but want to make a change to your front-end framework? No problem. You can replace the front-end without upsetting your content authors.
You started small but now your CMS lacks some of the enterprise publishing workflows that you need? That’s fine, you can replace the CMS without throwing the rest of your stack into the trash.
You use the right tools for the jobs, and update any of them over time.
Content APIs enable omnichannel support
Sometimes, particularly in the case of more established brands and businesses, we would like our content to be published into many different channels and media. Managing content with a tool that provides content a content API allows you to consume that API by the sites, apps, stores, and services living in a variety of channels such as the same content being sourced into a website and also native iOS and Android apps. Even billboards might source content from the same central content API.
Workflows and permissions
Content management often involves a degree of sign-off and publishing workflows. Keeping those flows outside of the release management for the code of your site is a huge win. And since content management products are designed to provide this, you can make use of their product features and avoid re-inventing and reimplementing this in your own application code.
Likewise, the release management process for your code is at its best when it is decoupled from the release of content and editorial copy.
In short, both velocity and confidence can increase when we decouple content and consume it in our projects via content APIs
How can we address the challenges of consuming lots of APIs
There is however some consideration needed here. The more capabilities of our sites that we outsource to third party products and services, and the more APIs we need to understand, authenticate, and consume, the more complexity creeps in to our application.
Eventually managing very many APIs can become a challenge. For this reason, Netlify recently announced Netlify Connect, which provides a means to aggregate, normalize, and simplify the use of multiple API sources in our development projects. It comes with some ready-made adapters to let your source content from Drupal, Wordpress, Shopify and more. And you’ll be able to add your own custom adapters via an SDK.
If you’d like to take advantage of composable architectures, you learn more and get a demo of Netlify Connect by registering here.