Domain driven content modelling

Published on May 30, 2016 by Jan Schulte

Creating a strong content model to provide a streamlined author experience

Content apps are a real USP in Magnolia, allowing your authors to have a streamlined and efficient user experience.  However high performing content apps need a strong content model in order to generate full value.

This article tells you how to craft an efficient content model for your business by using domain driven design principles.

An initial pure page based implementation of a site with a shallow information architecture can be produced quickly. However the problem is that structural changes and content re-use can turn your content management operations into a maintenance nightmare.

Constant changes on multiple sites

Most marketing teams use analytics to improve their content and generate more leads.However, this requires constant change on existing content. Applying the same change on multiple affiliate sites multiplied by different language versions can easily keep your authoring team busy for days.

Requirements to re-use and re-combine your content are the new normal nowadays. So a traditional pure page based approach just doesn’t cut it any more. Typical requirements that drive the need for modular content are:

  • Affiliate websites with shared content
  • Multi-channel and omni-channel publishing
  • Data driven websites with constant updates
  • Integration with existing business applications
  • Interactive app-like experiences
  • Mobile apps and connected devices

You need to make sure your implementation is efficient to ensure that your content reflects your core domain and that you can add changes easily as time goes on. Therefore a clean information and content architecture is key. So how can you come up with a content architecture that is both future proof and efficient to maintain?

Domain Driven Design

Some concepts from domain driven design (DDD),initially described in the book of the same name, are a great help on the subject of building the content architecture.

DDD is a methodology used to create a shared language for a common domain.  This shared common language helps to create a common understanding through the team.

This ubiquitous language is formalized in an entity relationship like model.

Having the domain model helps you to identify the key entities that are re-used on multiple locations. Those entities should be transformed into content apps.

Content apps allow you to capture just the content, not the presets or templates.  And this allows you to distribute your content in a centralized way.


Various aspects of your business are relevant for your site. That might be sales, support or technical aspects. Here comes the ddd bounded context pattern into play.


It allows you to deal with large models by dividing them into different Bounded Contexts and being explicit about their inter-relationships.


Building the content model

It all begins with understanding the domain. This starts with discussions between information architects and your domain experts.

Knowledge about the domain from the domain experts may be a little unpolished. Their organization of knowledge is very specific for their usage and sometimes not suited to building a digital experience. We should get the right information by asking relevant questions with the aim of transforming it into a useful form - the content model. A workshop setting is often the best way to explore this.

When you are done with your workshops you’ll end up with an entity–relationship like model.

This diagram is an excellent discussion basis for your team to decide which parts are the really relevant core and supporting domains for your project. These core parts are then used as your content model.


Content apps should reflect relevant core domains

Based on this model it is easy to generate content apps in Magnolia that represent your content model.


Let’s for example have a look on to see what real life content apps look like.

From a technical point of view, one of Magnolia’s key strengths is its feature rich open architecture as well as the connector ecosystem.

It would be inefficient to manage a dedicated page for every single connector and feature. Therefore we created apps for to manage them in a centralized way. Apps can include new partners, jobs and customer references. For other companies, they create apps for products and features.  have a look from the business perspective: Magnolia has a vast partner network as well as a fast growing customer base. Managing those records alone would end up in 400+ pages.


Typical content apps that reflect aspects of the core domain are

  • Marketing related
    • Interest rates/Hero figures
    • Teasers
    • Customer references
    • Sales
    • Products
    • HR related

    • Job offers

  • General apps
    • Contacts
    • Stores/Locations
    • Events
    • Technical
  • ​HTML5 blobs


Content driven websites

If it comes to content mass management it makes sense to use content apps in combination with categorization. Therefore you can capture and manage the content in your content app. The according pages are automatically assembled without the help of an author.


For example all our customer references are managed in a content app. Each reference entry has categories like customer industry, country and region.

This way our authors don’t have to manage 320 different pages. They just manage the content in the customer references app to provide the full experience. Layout and page structure is automatically created by magnolia.


Additional features like personalized references based on the visitors origin are easily created with this approach.  Magnolia detects the visitors origin and selects the right references based on the matching category. This way the content automatically drives the website.


Roles and domains

Using apps allows for efficient data management through the use of oles. A team member sees only the relevant apps that they need to carry out their tasks in an efficient way.

To model a good information architecture, you need to deeply understand the domain for which the site is built.

The knowledge of the domain is known to the people inside it - the domain experts. The software should always start from this domain knowledge.



Having a strong content model in place helps you to stay agile because your business core domain content entities tend to be relevant and are often reused through your various channels.

Content apps can help you to minimise the efforts maintaining complex sites.

Real value can be gained when parts of your content model are managed in content apps.



{{item.userId}}   {{item.timestamp | timestampToDate}}

About the author Jan Schulte

Jan Schulte is a Magnolia consultant. He joined Magnolia 2013 after working for various big IT companies as a consultant, software architect and team lead. He is supporting customers in all kind of tasks and projects. Additionally, he is also regularly involved in pitches and is currently driving Magnolia's Internet of Things initiative. He has 8 years of Java, web development and consultancy experience.

See all posts on Jan Schulte