Skip to main content

Jahia's Digital Experience Manager

by Ford Hatfield
March 21, 2017

The Content Management Systems (CMS) market is very crowded. Even someone with almost no experience with web development could probably name a few, such as Wordpress or Drupal. In fact, my girlfriend’s 79-year-old grandfather asked me a question about Wordpress the other day. So in a market so saturated with potential solutions, what does it take for one to stand out from the rest?

Jahia’s Digital Experience Manager (DXM) is a CMS with a Java backend (JDK 1.7 Compliant), and of course we love Java here at Ippon. It executes on an application server and stores its data in an Apache Jackrabbit JCR. The core functionality of DXM is extended by modules, which are OSGI bundles that can be downloaded and added to a web project, such as from Jahia’s app store, or written by a developer for a project. All Jahia modules are fully extensible and can be tweaked or expanded to best serve the situation.

The Digital Experience Manager stands out because it has functionality and flexibility beyond a traditional CMS; Jahia calls it a full-fledged digital marketing platform. After learning the basics, it’s very quick and easy to build a modern-looking, responsive website with DXM. In addition to that, any site built this way can also easily be integrated with other Jahia products, which enable features that are not as easy or missing entirely in other CMSs. Jahia’s Form Factory and Marketing Factory can be used in conjunction with one another to provide end-to-end capture and use of user data, which can be valuable for a wide variety of reasons, such as targeting content and measuring site performance with visitors. Commerce Factory can be used to easily build a rich and adaptive user shopping experience for your business.

On top of that, Digital Experience Manager provides flexibility in implementation to ensure that you’re building exactly the site you want, not just the site that you can build with the available tools. Every module Jahia has built for DXM is extensible and easily available, which come together to form two key benefits. First, when building a site, it saves the user the time and effort of building each new module from scratch; there’s no need to reinvent the wheel when the wheel has already been written and optimized for DXM by Jahia. On the flipside of that coin, just because there is a vast resource of pre-written pieces that you can use for your site doesn’t mean that you’re limited to the functionality that they provide. If, for example, the News module doesn’t have quite the functionality you need, it’s very easy to download the sources of the module and add in a bit of custom code. This way you can take advantage of the pre-built modules that Jahia provides to cover almost all typical use cases while also getting exactly the functionality you need.

A third advantage of Jahia’s DXM is how it handles editing permissions across its three development modes: Live, Edit, and Studio. Live mode is what a visitor to the site will see when the site is published. Edit mode is where content - such as articles, images, or text - are added and changed on the site. Studio mode, which is only typically accessed by developers, is where new modules are created and existing ones are edited, background Java code is written, and resource bundles - which make for easy internationalization - are edited or created. Depending on the scope of a website, there may be many different roles necessary, such as adding or editing content, approving content, translating, or restructuring the site. A user can be given permission to, for example, translate content in Edit mode, which then requires only simple point-and-click to do their job without requiring technical expertise or training. Jahia makes it easy to compartmentalize roles within the site editor.

Because one of the benefits of DXM is the powerful sites one can build with little technical expertise, it’s important that there are sufficient examples and tutorials available to get someone up to speed who may not have much programming experience. Fortunately, Jahia offers formal training sessions for developers wanting to learn the ins and outs of DXM from scratch. Before that, it’s easy to get started with the training videos available after creating an account on Jahia’s Website. Watch the videos, with emphasis on getting an understanding of the key concepts, and follow along as they demo building a basic site using DXM. Then build something yourself with as little guidance as possible. Jahia also provides all their basic code on Github, which acts not only as a good set of basic pieces you may wish to use for your site, but as example code for some of the more technical aspects of DXM.

After I finished my advanced developer training and had gone through the tutorials several times, I found my way to my first project using Jahia’s DXM. But I ran into a few difficulties along the way that didn’t immediately offer a clear solution, and there were some things I wish I had been specifically told (or that I had paid attention to) that would have made my early days with DXM a bit easier.

Every DXM project begins with creating a template set in Studio mode, which will define the structure of your website, layouts of different types of pages, base CSS files, and maybe some modules that will be used by the site. Now, it’s important that you get the names of the page sections (such as divs) finalized before you start adding content. Going back and changing a name can cause content to disappear from the site, which can be scary. Fortunately, it’s not deleted and can still be accessed in the repository manager, but DXM can’t find it in the site tree to display it on the page once the name is changed. Other important things to note about template sets: when you create a Web Project (i.e. a website), you must already have a template set created and should be careful to choose that template set. Unlike other modules that might be added to your site, the template set can’t be enabled or changed posthumously, as the site is based around the structure it provides.

The DXM also has a solid source control module, which I didn’t try out until unfortunately late in my Jahia experience after losing my work a few times to various technical mishaps. So I can now make the obvious recommendation to set up version control on every new module and template set. New modules can also be retrieved from a repository like GitHub, which is useful for modules that are not in the official Jahia app store. I ran into a few NullPointerExceptions while downloading sources from Git a few times. It turns out that it’s important to have the right artifactID, which can be found in the module’s pom.xml file, as well as to have all the dependencies installed AND started before attempting to download the module.

Jahia is a powerful yet very flexible platform that can enable a party of any size, from a single user to a sizeable business, to quickly create a site that suits their needs. Seamless integration with form-building and digital marketing components ensures that no valuable data is lost. A robust permission management system built in means that everyone can do what they need to do without needing to be trained in other areas not relevant to their job, saving time and money. It means that a marketing division can tweak the look of the site and perform optimization tests without requiring a developer. Finally, everything is extensible, meaning that while there is a vast assortment of pre-written code, all of it can be used simply as an example or changed to perfectly fit a given situation, saving you time and, relatedly, money.

There were just a few speed bumps on the way, but hopefully documenting them can help new adopters of Jahia to gloss over my trouble spots. Jahia’s Digital Experience manager is a very valuable tool for quickly and easily building respectable websites to suit any need.

Post by Ford Hatfield
March 21, 2017

Comments