The Content Editor module provides a platform for handling well-defined blocks of content in Magnolia. The core of the platform is the Magnolia Content Editor submodule, implemented as the stories-app submodule which allows editors to create and edit stories in the Author instance using the Stories app.

Module structure



Parent reactor.


Provides a free-form content editor (including the ContentEditorSubApp).


Provides a custom widgetset for the Content editor.


Provides the Stories app, the default Magnolia implementation.


Provides the Articles app, an example Magnolia implementation.


Provides a basic API for the blocks (content sections).


Provides the functionality to render the blocks.


Provides utilities for unfurling external web links.

Unfurling means fetching and displaying metadata for a given URL (for example. a preview image, a title and description etc.).


Maven is the easiest way to install the modules. Add the following dependencies to your bundle:

If you want to use the example Magnolia implementation – the Stories app – add this dependency to your webapp:


If you want to build your own custom implementation, add this dependency to your module:


If you intend to build custom blocks, add this dependency to your module:


Maven dependency management will include the other required content-editor submodules. Make sure use for all dependencies the same version. The latest version of the module is 1.1.5

Pre-built JARs are also available for download. See Installing a module for help.

Content editor modules in Magnolia webapps and bundles

Preconfigured Magnolia EE bundles or webapps, such as or magnolia-enterprise-pro-demo-webapp-5.6.14.war for example, already contain the following six submodules:

  • magnolia-content-editor

  • magnolia-content-editor-widgetset

  • stories-app

  • magnolia-block-api

  • magnolia-block-templating

  • magnolia-link-unfurl

Demo modules decorate the stories-app

Be aware that Demo decorates the stories-app

#trackbackRdf ($trackbackUtils.getContentIdentifier($page) $page.title $trackbackUtils.getPingUrl($page))