1. Volto Client - Server duality#
Volto is based on the following three main components of the overall architecture:
Plone (and Zope) backend server
Volto Nodejs SSR server
1.1. The Plone backend#
To be able to work as a Volto backend, a Plone website needs to activate its
plone.restapi addon, which exposes several JSON-api based endpoints.
1.2. Volto Nodejs server#
Volto includes a Server-Side Rendering Nodejs-based HTTP server which runs the same code that's served to the Client (the browsers) and renders it to a single HTML string that can be served as the initial loaded page. This type of application is called an isomorphic application and, in Volto, is built on top of the Razzle framework.
This server process is based on the popular Express framework.
1.3. Volto - the SPA client bundle#
Sometimes view components have code that fetches content via async network calls. In case that content should be rendered together with the rest of the generated HTML, you need to follow the Integrate with Volto’s asyncConnect for SSR chapter.