Going Headless with Mura - Mura Digital Experience Platform
In Flow: The Mura Blog

Going Headless with Mura

January 15, 2019 by Grant Shepert

It has been a long time coming, but it's fair to say the future is here. The concepts of Headless CMS, and Content as a Service (CaaS) have moved from optional, to imperative.

Predicting where your users will access your content, be it mobile, a website, chat, voice (or whatever comes next), will become increasingly important, requiring you to come to the party prepared, solution in hand.

Mura has been striking ahead of this curve for several years.

As early as version 6.0, we have been integrating tools like Form builder, the Object Scaffolder and Assember, and iterative improvements to our Mura JS API.

Headless, You Say

Headless, in this case, refers to the entirely optional requirement for a website to be attached to the content administrator. Even a few years ago this would have made little sense, but with the advent of so many separate avenues of distribution, from mobile and assorted digital platforms, integrated email and B2B channels and all else, it has become an essential component of any modern DX platform.

Further to this, Mura's tight integration with Docker containerization means that any developer can access these tools with a minimum of fuss, deploying with their preferred toolset already integrated into their environment and fully functional content management system.

Methods of Delivery

To qualify as a truly headless content delivery system, a platform should provide not only a robust API, one that includes rigorous security and authentication, but also the tools that assist the developer in extending the platform's content repository to include their business model. Most often this is achieved through the use of JavaScript-based frameworks and platforms like Node, React, Angular or Vue. You'll be happy to learn that Mura has already developed comprehensive hooks for all of these, with ample examples and lessons to extend these into other frameworks.

You can find examples of Mura's framework integrations in the following locations (as noted, all of these locations include a Docker and/or Node instance that you can quickly spin up for testing and eventual deployment):

Angular & Mura: https://github.com/blueriver/MuraAngularDecoupled

Vue & Mura: https://github.com/blueriver/MuraVueDecoupled

React Native & Mura: https://github.com/blueriver/MuraReactNative

React/NextJS & Mura: https://github.com/blueriver/MuraNextJSDecoupled

React/NuxtJS & Mura: https://github.com/blueriver/MuraNuxtJSDecoupled

Node Mura.js package: https://www.npmjs.com/package/mura.js

The last entry is particularly useful if you are using something other than the listed frameworks. The Node mura.js package is the JavaScript component of our extended API and along with the other examples should provide a seamless integration into whatever your preferred framework, even if it is entirely Vanilla/custom to your organization.

You can also access the Mura Docker container at https://hub.docker.com/r/blueriver/muracms, which will allow you to quickly spin up a Mura instance as a test instance or base for your next project.

Starting with Mura as the foundation of your Headless CMS solution will future-proof your digital presence. We'll be providing continuous updates to our work in this realm, starting with a more detailed look at our Angular integration, and enhancing the existing projects as the technology matures.

Next Steps

 

About the Author

Grant Shepert has been a developer for nearly 20 years, and started using Mura the year it was released. Since then he has written dozens of plugins, spoken about Mura in conferences around the world, contributed code to the core project in numerous ways (his favorite being the FormBuilder), acted as Mura instructor, mentor and evangelist and, when time has permitted, written a blog post or two.