Newtonian Particle Motion


    14.0.0 • Public • Published


    Volto png

    NPM Build Status Core Build Status Docs


    Volto is a React-based frontend for content management systems, currently supporting three backend implementations: Plone, Guillotina and a NodeJS reference implementation.

    Plone is a CMS built on Python with over 20 years of history and experience.

    Plone has very interesting features that appeal to developers and users alike, such as customizable content types, hierarchical URL object traversing and a sophisticated content workflow powered by a granular permissions model. This allows you to build anything from simple websites to enterprise-grade intranets.

    Volto exposes all these features and communicates with Plone via its mature REST API. Volto has the ability of being highly themable and customizable.

    Volto also supports other APIs like Guillotina, a Python resource management system, inspired by Plone and using the same basic concepts like traversal, content types and permissions model.

    Last but not least, it also supports a Volto Nodejs-based backend reference API implementation that demos how other systems could also use Volto to display and create content through it.


    You can try a Volto online demo in

    Try the demo locally

    If you want to give Volto a quick try and you have Docker installed in your computer, bootstrap the demo using docker-compose:

    git clone
    cd volto
    docker-compose up

    Go to http://localhost:3000 in your browser.

    Quick Start

    First get all the requirements installed on your system.


    Create a Volto project using the generator

    Create a new Volto project by using the @plone/generator-volto utility.

    It will bootstrap a Volto project in a folder of your choice with all the required boilerplate to start customizing your Volto site.

    $ npm install -g yo @plone/generator-volto
    $ yo @plone/volto

    follow the prompts questions, provide myvoltoproject as project name then, when it finishes:

    $ cd myvoltoproject

    Bootstrap the Plone API backend

    We recommend Plone as backend of choice for Volto.

    You can bootstrap a ready Docker Plone container with all the dependencies and ready for Volto use:

    docker run -it --rm --name=plone -p 8080:8080 -e SITE=Plone -e VERSIONS="plone.restapi=8.16.2" -e ADDONS="plone.volto" -e ZCML="plone.volto.cors" -e PROFILES="plone.volto:default-homepage" plone

    or as an alternative if you have experience with Plone and you have all the dependencies installed on your system, you can use the supplied buildout in the api folder by issuing the command:

    make build-backend

    Start Volto

    yarn start


    Go to http://localhost:3000 in your browser.

    Volto in Production

    Volto is actively developed since 2017 and used in production since 2018 on the following websites:

    Please create a new issue or pull request to add your Volto-site here!


    You can find the documentation in


    On the Plone Trainings Website you'll find Volto-dedicated open training materials, plus React and other JavaScript-centered trainings.


    Plone Conference Ferrara 2019

    Víctor Fernández de Alba - Plone Beyond 2020: Jump into Volto today!

    Rob Gietema - How to create your own Volto site!

    Timo Stollenwerk - On the Road - Plone 6 and Beyond

    Rodrigo Ferreira de Souza - Data migration to Plone 5.2 and Volto

    Nicola Zambello - A Volto story: building a website by prototyping

    Luca Pisani - Plone and React.js: An interview to Volto

    Plone Conference Tokyo 2018

    Rob Gietema - Volto

    Rob Gietema / Víctor Fernández de Alba - Volto Extensibility Story

    Víctor Fernández de Alba - Theming Volto

    Timo Stollenwerk / Víctor Fernández de Alba / Ramon Navarro - Volto Case Studies

    Timo Stollenwerk - Reinventing Plone, Roadmap to the Modern Web

    Node Support

    • Node 16: Supported since Volto 14
    • Node 14: Supported since Volto 8.8.0
    • Node 12: Supported since Volto 4
    • Node 10: Deprecated from Volto 13 onwards. It was supported since Volto 1 (and its predecessor "plone-react")

    Browser support

    Volto works well with any modern (and updated) browser, including their mobile flavors: Chrome, Firefox, Safari, Edge.

    We do not guarantee that browsers who were deprecated by their vendors (e.g. Internet Explorer 11) will be supported by Volto in the future.


    You can find the upgrade guide here:

    Volto Development

    For Volto development you need all the requirements already mentioned on the Quick Start section.

    Checkout the Volto repository

    git clone

    Install dependencies


    Install a backend

    Plone (recommended)

    Either using a Docker image

    docker run -it --rm --name=plone -p 8080:8080 -e SITE=Plone -e ADDONS="plone.volto" -e ZCML="plone.volto.cors" -e PROFILES="plone.volto:default-homepage" plone

    or using the convenience makefile command:

    make start-backend-docker

    or running Plone on your machine (advanced), additional dependencies might be required, only for Plone experienced integrators/developers. Check the Plone Installation Documentation.

    make build-backend

    Guillotina (experimental)

    It still doesn't support the full API/features that Plone provides.

    docker-compose -f g-api/docker-compose.yml up -d

    or using the convenience makefile command:

    make start-backend-docker-guillotina

    Run frontend

    Either using Docker

    docker run -it --rm --name=volto --link plone -p 3000:3000 plone/volto
    # or with Volto add-ons enabled:
    docker run -it --rm --name=volto --link plone -e ADDONS="volto-testaddon volto-slate:asDefault" -p 3000:3000 plone/volto

    or using the convenience yarn command:

    yarn start


    Browse to http://localhost:3000 in your browser.


    yarn test


    For ease the release process, we use release-it utility that helps with the process.

    For using it and start a release you need to fulfill the requirements:

    • Have permissions to push on master branch
    • Have permissions on the @plone org on
    • Have a environment variable (GITHUB_TOKEN) with a GitHub personal token with permissions to write the Volto Release page on GitHub (

    Then the command for release:

    yarn release

    a dry-release command for testing the output is also available:

    yarn dry-release

    Acceptance testing

    Volto uses Cypress for browser-based acceptance testing.

    Run acceptance tests (with the Plone backend):

    yarn ci:cypress:run

    Run acceptance tests (with the Guillotina backend):

    yarn ci:cypress:run:guillotina

    Writing new acceptance tests

    When writing new acceptance tests you usually want to minimize the time it takes to run the tests.

    To do so, start three individual terminal sessions for running the Plone backend, the Volto frontend and the acceptance tests.

    Start the Plone backend:

    make start-test-backend

    Start the Volto frontend:

    make start-test-frontend

    Open Cypress and start acceptance tests:

    make start-test

    Go to the cypress/integration folder to see existing tests. This directory is hot reloaded with your changes as you write the tests. For more information on how to write Cypress tests:

    Running the acceptance tests with Guillotina backend

    If you want to use Guillotina as backend to run the tests you should run:

    yarn ci:start-api-plone-guillotina


    If you would like contribute to translate Volto into several languages, please, read the Internationalization (i18n) guide.



    MIT License. Copyrights hold the Plone Foundation.

    See for details.


    npm i @plone/volto@14.0.0






    Unpacked Size

    8.24 MB

    Total Files


    Last publish


    • mrtango
    • petschki
    • mauritsvanrees
    • thet
    • ericof
    • agitator
    • timostollenwerk
    • ramonnb
    • ebrehault
    • robgietema
    • sneridagh