Mura 10: Introduction
Introduction
Mura content management has moved with the times, evolving from a traditional CMS to one that recognizes the fluid and ever-changing process of delivering content from a variety of sources to an equally diverse set of platforms. Flexibility and maintainability are key ingredients to addressing this requirement, and Mura has matured these tools to allow developers of not only traditional HTML + CSS websites but those building advanced JavaScript-rendered decoupled and/or headless websites via advanced frameworks.
In this section we will examine the Mura API, which consists of several components but chiefly the Mura JS JavaScript framework, which is itself a standalone Node project, as well as Mura ORM and the Mura JSON API. These three components enable a wide variety of options to the modern front-end developer.
Decoupled Websites
With the increasing shift for front-end developers to JavaScript-based frameworks like React, Angular and Vue JS, decoupled websites are becoming increasingly common. A decoupled website is one where the front-end of the website is being rendered and/or delivered independent of the underlying content management system. Often the CMS provides the content via a dedicated, secure API.
Mura is fully-capable and compatible with this type of website, with an underlying JSON API, as well as the Mura JS framework for delivering content in a variety of formats, from raw data-based JSON to server-rendered, hydrated and/or compartmentalized content blocks ready for consumption and display. To help developers move to this type of development, as well as provide insights into how experienced JavaScript developers might integrate into Mura, we have developed several starter or example projects that should facilitate this need. We have also created a basic, "vanilla" JavaScript-only decoupled example, which we will examine more fully below. Otherwise, feel free to visit the GitHub repository for the framework that best suits your needs.