What is Plone

Plone: ​​The Python Enterprise CMS

Along with Django-CMS, Plone is the best-known open source enterprise CMS based on Python. Plone is particularly suitable as a Python alternative to the large Java systems and the common enterprise systems from the PHP world. One of the main strengths of Plone is its very high level of security. Plone also cuts a fine figure when it comes to accessibility.

Plone has been developed since 2001 and first appeared in 2003 as open source software. The project has been supported by the Plone Foundation since 2004. In almost every country there are organizations where the Plone community gathers. In Germany, the Python Software Association is likely to be the most important organization.

#Plone for authors

With most content management systems, the version and the configuration decide on the weal and woe of the authoring interface. This rule applies particularly to Plone. There are older demo installations that are rather difficult for authors. Other demo installations seem well thought out and leave a positive impression. One more reason to get involved in the integration of Plone as a content manager and not leave the configuration to IT alone.

Plone has made a significant improvement to the authoring interface from version 4 to version 5. While in older versions a somewhat cumbersome green bar was enthroned above the editable content area, in version 5 Plone opted for a configurable menu bar on the left side of the page.

With Plone, the author navigates through the finished website in the admin area. Contrary to expectations, however, Plone does not offer incontent editing, but relies on classic form input as soon as you switch to edit mode. In addition to the forms for editing the content, the author will find a tab bar above the editable area, which can be used to edit various meta information such as categories, publication periods or other settings.

This idiosyncratic compromise between the front-end view and form-based input has been a success. However, the editor looks a bit stocky, especially with multi-column layouts. Even smaller layouts (for example with tiles) should be difficult to edit with this principle.

Compared to some other older enterprise systems, Plone has still managed to achieve a feat with the authoring interface. Because measured against the enormous range of functions, the surface appears comparatively reduced and intuitive. The concept of different user roles also contributes to this reduction: For example, the roles can be subdivided between administrator, editor-in-chief and normal editor and thus offer different levels of functionality. The configuration options as an administrator are enormous. Almost a dozen variations from HTML to Textile to Markdown can be selected for content input alone.

#Plone for developers

Plone is based on the application server and web framework Zope and is considered the most successful Zope project. Compared to the web framework Django and Django-CMS, Zope and Plone are considered to be a little more difficult to learn.

As with most large enterprise systems, installing Plone is a bit more complex. A Unified Installer is available for Linux and Unix systems; a virtual machine is recommended for Windows systems. If you just want to get an overview, you can use one of the many demo installations and consult the Plone documentation.

Plone works with the in-house theme engine Diazo. Unlike most other template engines, Diazo doesn't work with a mixture of HTML and special tags. Instead, Diazo uses pure HTML mockups and a completely separate XML file with so-called rules. The rules work in a similar way to CSS selectors and enable the HTML mockup to be made dynamic. In other words, you can use the rules in the HTML mockup to select IDs or classes and replace the selected elements with the content from Plone. The selection of the elements works either via the CSS Expression Selector "css:" or via XPath.

As a simple example, you can create a simple div tag with the ID "header" in the HTML mockup:

Then you can select the ID as follows with an XML rule and replace it with dynamic content from Plone:

With can be used to address the elements from the HTML mockup, with the content from Plone. Besides there are also,,,, and. In addition, there are conditionals such as, or as well as. XSL instructions can be used for loops and other more complex logics.

The concept looks very smart at first, but even with this very superficial look you notice that you have to get involved in your own Plone world. The theming approach differs significantly from what one is used to from other template languages ​​with the usual Mustache syntax (for example Twig or DTL from Django-CMS). However, this should not play a major role in an enterprise system like Plone, since idiosyncratic abstraction layers and more complex development approaches are more the rule than the exception in the enterprise area.

#Plone for non-developers

An enterprise system like Plone is of course completely unsuitable for non-developers or code beginners. There are hardly any themes for Plone either, since a large company is unlikely to take a design off the shelf. If you want to get into the Python area and are looking for leaner alternatives, you can try Django-CMS, for example, or even better with a static site generator such as Lektor.


Plone is open source and under the GPL license. Costs arise from the integration and the individual adaptation of the website. With Django-CMS, Plone is the best-known Python-CMS. However, the prevalence in the enterprise area is likely to be relatively low compared to other well-known enterprise systems from the Java and PHP world. Service providers can be found via the provider directory at Plone.org, via the German Plone site, via the German Python Association or simply using a search engine.

# Possible uses for Plone

Due to the rather complex technology and the enormous range of features, the use of Plone makes more sense for large medium-sized companies, corporations and large organizations, especially when it comes to security and accessibility. Plone is used, for example, by the UN, the city of Bern or the European Environment Agency. For leaner requirements and smaller companies, you should compare Plone with Django-CMS or Wagtail in the case of a Python CMS and, if necessary, let usability decide.