Will there be (should there be) a way to use Classic and Volto frontends at the same time?

I'm working on a small team and we thought it would be good to start a more in-depth discussion about running a single Plone site which uses both the Classic and Volto frontends to render different pages.

I think the argument for why this would be nice is basically:

  • We have a large website which has been developed over many years. We have lots of custom templates and schema-based content types and we believe completely re-writing with Volto would be a huge undertaking that we have neither the time nor budget for.
  • At the same time, we would greatly benefit from using volto to render certain pages. Our site's landing page, for instance, has serious performance problems. A smaller, more achievable project would be to migrate this page to Volto (with more pages to follow in time).
  • The messages we see in the documentation strongly suggest that Volto is the future ("New projects should use Volto unless a important feature or add-on is stil..."). We need to keep developing new features our website, but we don't want to get split off from the larger Plone community. If there is no smooth migration path then are we creating more migration work with each new Classic template we add?

I think these points probably hold true for many other teams maintaining existing Plone sites. So for us the question becomes: How likely is it that running classic + volto will be supported better in the future? How can it be done now and what would make the process smoother?

A good source for thought is this reaaaaaally long comment from one of mercurial maintainers: Gregory Szorc's Digital Home | Mercurial's Journey to and Reflections on Python 3 if it's too long skip to the Commentary on Python 3 part, which I think can be applied between volto and plone classic (py3/py2).

1 Like

edit: tl;dr: what about Volto as an authoring environment for publishing/delivery in Classic? And what if blocks were not trapped as blocks?
Dabbling a bit, seems like Volto-with-blocks is probably aiming at a WCMS-only environment, and not a document-centric, schema-driven environment (intranet, extranet, and specialty publishing). Volto seems hard to justify the leap without really seeing blocks as necessary and sufficient, right now?

There's going to be places where, though, at some future point, it would be nice to publishing something made in Volto in a place that is not also Volto (e.g. mobile apps with embedded HTML, export document to a print newsletter, etc). For me, a path for content not just in to Volto/blocks seems useful, but also (and for me seemingly much more compelling) a path to get things out of blocks back into document form. Seeing blocks as a document-composition tool (even for more substantial "rich text / rich media" parts of schema-driven content), not strictly tied a document-publishing tool seems like a useful idea. Lack of this probably prevents a larger number of incumbent sites from ever crossing the chasm.

1 Like

AFAIK it is possible right now to run Volto only partially on top of a Plone website. The key is setting so that you "escape" Volto when you want to go back to the rest of the Plone site. Settings reference guide - Volto Developer Documentation

EEA has a beta version of one of their website sections, running as a Volto website. Running on top of Plone 4 :slight_smile:

Edit: I forgot, there's an issue, not sure how big it is, there's no seamless authentication.

Volto right now can provide server-side rendering, so we have ways to convert volto blocks to HTML. One idea would be to provide an alternate middleware app in Volto's Expressjs server that can render content without any site layout things. That way it can then be embedded anywhere.

Good question. Like EEA, I try to combine Plone 4 with Volto. I also would like to know whether there are Pythonic solutions to get what React/Volto provides (mobile abilities & responsiveness).