Choose a user interface#

This guide explains the differences between Plone's two user interfaces, Volto and Classic UI, to help inform you to choose one when developing your new project in Plone, or whether to migrate from Classic UI to Volto. There is no migration path available from Volto to Classic UI.

The choice of user interface has implications for editors, admins, and developers.

Volto
Plone home page in Volto

For editors and other end users:

  • The user interface is a fast, modern, single-page web application.

  • Editors can create sophisticated page layouts by arranging blocks of different types.

  • There is not a comprehensive User Manual yet, and only a few pages exist.

For developers and integrators:

  • The frontend is a React-based application written in JavaScript and TypeScript.

  • The backend is a Python process which provides a REST API for the frontend.

  • Python skills are not required, but can be helpful for extending the backend.

  • Content is stored as structured JSON.

  • Customization of themes is well-documented and relatively easy for developers who have experience with React.

Classic UI
Plone home page in Classic UI

For editors and other end users:

  • The user interface is similar to Plone 5.

  • Editors create a page using a WYSIWYG editor, TinyMCE.

  • Additional widgets can be added to predefined locations, using portlets. More sophisticated page layout requires the use of add-ons.

  • There is a comprehensive User Manual for Plone 5, but it has not been updated for Plone 6.

For developers and integrators:

  • The frontend and backend run in a single Python process, so hosting is a bit simpler.

  • The frontend is implemented as server-side templates using the ZPT language.

  • Interactive functionality is implemented in JavaScript using Mockup.

  • The visual design is based on the Barceloneta theme from Plone 5, but updated to use Bootstrap 5.

  • Content is stored as HTML.

  • Customization of themes is not well-documented.