Latest additions

What is Magnolia CMS?

Magnolia CMS is an open-source Web Content Management System that focuses on providing an intuitive user experience in an enterprise-scale system. Its combination of ease-of-use and a flexible, standards-based Java architecture has attracted enterprise customers such as ING, JBoss.org, Johnson & Johnson, Lloyds TSB, Sony, Seat, Unilever and The US Department of Defense. Magnolia CMS is used by governments and Fortune 500 enterprises, and in more than 100 countries.

Magnolia CMS is not a framework to build web applications, like JSF or Struts. However, Magnolia CMS can be used to manage data. You can for instance manage products and use them as content for Web pages.

Author and Public Instances

Magnolia CMS is distributed as two web-applications, one acting as the authoring instance and the other as the public environment. This allows for better security, having one application inside your firewall and one outside. It also enables clustering configurations.

  • Author instance is where all authors work. It typically resides in a secure location such as behind a corporate firewall, inaccessible from the Internet. The author instance publishes content to public instances.
  • Public instance receives the public content and exposes it to visitors on the Web. It resides in a public, reachable location. You can have more than one public instances, serving the same or different content.

Content delivery

Content is published from the author instance to the public instances via activation. Content authors create new content on the author instance and then activate it. Activation can trigger an optional editorial workflow in which an editor reviews the changes and approves them for publication. On approval, the new content is transmitted to the public instance.

Public instances that receive the activated content are known as subscribers. Any number of subscribers can subscribe to a single author instance. Subscribers are key to building high-availability, load-balanced environments since they can be configured to receive targeted content. A subscriber configuration defines the address of the subscriber and the type of content it should receive.

Content storage

Magnolia CMS stores all content (web pages, images, documents, configuration, data) in a content repository. The repository implementation we have chosen, Apache Jackrabbit, adheres to the Java Content Repository standard (JCR).

A content repository is a high-level information management system that is a superset of traditional data repositories. It implements content services such as:

  • Granular content access and access control
  • Hierarchical, structured and unstructured content
  • Node types, property types (text, number, date, binary)
  • Queries (XPath, SQL)
  • Import and export
A content repository can store text and binary data (images, documents). You don't need to worry about how the data is stored. The repository provides a standardized way to store and retrieve it whether it resides in a traditional database or in a file system.

Modules

Magnolia CMS has a modular architecture. A module is a independent component that performs a particular task or packages content and functionality. The system itself is built of modules: AdminCentral, the built-in Document Management System and the Workflow functionality are all modules.

You can use modules to:

  • Create a custom component to address a specific requirement or use case. The Forum module is an example; it provides discussion forums where site visitors can participate.
  • Package an entire website for easy deployment, including customized templates, paragraphs and content.
  • Package and deliver a set of assets such as images or documents.

Templating

All Web pages created with Magnolia CMS are based on templates. Templates ensure that page structure and presentation remain the same while the content varies from one page to another. For example, an event template helps you generate event pages that look and feel the same but display a different unique event each.

The system generates pages by merging a template with corresponding content from the repository. The position and inclusion of each paragraph on the page is defined by the page template. In many instances, the page template will allow authors to choose from a number of different paragraph types in a single content area.