Volto for public frontend only

What do you do when you want to create a frontend with Volto for Plone 5.2 that is really only for anonymous users? So the editors login on a different domain, which may either be the standard Plone UI, or standard Volto.

I can probably hide or remove the Login button, but you still get all (or maybe part) of the Javascript and CSS for authenticated users, for example for the rich text editor.

Would you use create-volto-app for this and somehow strip out all kinds of stuff?

Or would you use create-react-app to start from scratch, and maybe explicitly take over some components from Volto?


If it's really an only anonymous website, probably also Gatsby (with plone plugins) could be a good idea :wink:

1 Like

I think there is work underway to lazy load different parts of the generated javascript code and components. Maybe this will help to make the distinction between an anonyous only or anonymous & logged in site a non issue when the editor components are never requested.

Maybe @sneridagh or @pnicolli can give further info.

Hi, there's a lot of efforts trying to lead to a more modular build theme/CMSUI with code splitting in place. This is the PR: https://github.com/plone/volto/pull/967

@pnicolli also started to experiment with this: https://github.com/plone/volto/pull/970

So a lot of room to improve in that matter. However, the SSR part makes bearable the fact that the bundle is not optimized yet. We haven't found yet any issues with it, and the perceived performance is good.

I would try Volto even if the use case that you are exposing is not yet optimized. Also using Gatsby would be a good fit, specially if having a deferred build is not an issue, or give a try to the new source plugin for Plone that improves the build-deployment time.


We have a first version of a volto theme using bootstrap for public views and pastanaga for the cms views here:

It's really just a bunch of configurations at this time (notice especially razzle.config.js) and the import of our base scss styles inside src/theme.js.