Mura Demystified: Mastering Flow in Your Work

October 31, 2017 by Grant Shepert

Every task follows a path from initiation through to completion. The speed, ease, and enjoyability we experience in completing a task are often dependent upon the challenges we face along the way. Every task is different, so even the subtlest of differences can require unique solutions.

In Mura there have traditionally been multiple ways to find that solution. Need a piece of content on a page? Edit the body or add a component. Create a plugin or a feed or a class extension. The development and customization side of Mura is the same.

This isn't accidental, it exists for a specific reason. That reason is Flow, and we can't achieve Flow without flexibility.

Consider the example above. What if the content needs to appear multiple places? What if there are multiple versions of similarly-formatted content or content that changes often, or that needs to be entered or only viewed by a specific set of people? Every permutation requires a path with the least amount of resistance performed in the most familiar way.

Ironically, "no challenge" isn't a great option either. By this I mean, attempting to solve every problem out of the box. For us to try and do that would add too much complexity and rigidity. Mura's balance is in providing frictionless paths towards the most common problems, as well as the underlying tools you can use to resolve even the most unique challenges in your organization.

There are a lot of ways of doing things in Mura. There are also a lot of ways to get Mura to do the things it currently doesn't. The idea is, Mura exists to reduce the barriers that stand between you and your goal, whether it's an image carousel for your photos, feeding content to your cross-platform network or connecting via single sign-on to your legacy B2B application.

Over the coming months, we're going to shape our conversations around how we can help create Flow in your work, simplifying and enriching the experience of using Mura to solve the challenges that stand in front of you.

Where do we start?

Mura is a diverse foundation of content creation, management, presentation, and automation. We're going to explore each of these areas in depth over the following months, and we'll do it by demonstrating practical solutions to solve real-life problems including theme development, content as a service (CaaS), going headless, creating apps and integrating different technologies with Mura CMS.

I will start the ball rolling with a series I'm calling "Mura Demystified". It's an examination of the technologies underpinning the Mura platform, and how you can use them to solve an assortment of problems, in ways that are already familiar and comfortable to you, whether you are a CFML programmer or a JavaScript developer using Node, React, Vue.js, Ember or…well, you get the idea.

The Mura technologies I will demystify are:


The Mura Application Programming Interface provides a standardized access point for developers to connect to Mura. It is REST-compliant and uses conventional URLs which can return feeds or content, or interact with the core application, returning the data in JSON format.

Mura JS

This is a JavaScript-based engine similar in concept to jQuery, designed specifically for Mura, which exposes a huge fraction of Mura's server-side functionality to JavaScript developers. It not only provides full function-based access to the Mura JSON API but also takes care of many of the more complicated tasks like state management and authentication. It isn't just browser-based, either. You can use Node.js, and it is package friendly (Babel/Webpack/etc.).

Mura ORM

This is the object-oriented, auto-wiring core of the CMS, the engine under the hood that gives developers direct access to the foundational heart of Mura. Every entity inside of Mura - such as a page, user or feed -  is a Mura ORM object which can be extended, manipulated, and interacted with via a standardized, easy-to-use set of functions.

The Journey

It's a big story to tell, with a lot of moving parts and many possibilities hidden within, but happily all worth discovering. Mura is a creative playground where you can build seriously powerful applications and find innovative solutions to complex problems, once you understand how. In this "Mura Demystified" series, I will ignite your creativity and break down the barriers standing between where you are now, and that happy place where you—and your work with Mura—find Flow.