Volto: what benefit does it give

For those of us that have "no idea about volto": What is the benefits?.

As it is "another thing to learn": What are the benefits of using volto? I am 'quite happy about Plone with Mosaic (and thefragmentsI. Can anyone explain why I should learn and move to Volto for future project?

Here's my thoughts:

  • it's a lot easier to find people with React experience vs Plone. With Volto and React knowledge you can quickly spin off complex Plone-based apps.
  • You get access to a huge library of React, ready to use, components and libraries, easy to integrate. The whole webpack setup is already done, you're fully in JS web development world so you have really low friction in integrating "foreign things". Most of the times it's "yarn add somelibrary" and that's it.
  • I think one of the major reasons why we don't see a lot of Plone addons with shared content types and most of them focus on "infrastructure" is because generic but complex content types take a lot of community effort. Splitting the content types into blocks makes things much easier to reuse, and thanks to the block extensibility story, it's possible to create alternate views for the same block data structure. This is probably something that's also covered by Mosaic, so it may be a matter of preference.
  • It's possible to create complex, reusable layouts and package them as content types, thanks to the "Dexterity layout" story
  • I can't overstate the amount of effort and dedication put forward by the Volto community. There's a lot of love for Volto from those that use it daily, even fully aware of its growing pains and limitations. I consider myself a young member of this community, but we're still quite enthusiastic about it and we're really starting to cover the last 10% to have Volto a fully matured solution for everybody.

So everything in Volto needs to be 'programmed in React' ?

Sorry for my ignorance, but: Is 'Plone blocks' similar to Gutenberg blocks? I tried to make some Gutenberg blocks (for Wordpress) and it was 'quite a bit of code to just make something simple'.

@espenmn Yes, Volto is React frontend on top of Plone backend.

I don't know how difficult it is to develop Gutenberg blocks and I have the fear that I might be underestimating the learning curve of Volto, so maybe others should have an input on this. I find the process easy and enjoyable, with a minimum amount of boilerplate - literally just a simple registration like this: volto/Blocks.jsx at master · plone/volto · GitHub

Maybe (if people like me) should try to make something, it would be nice to have a 'dummy block' repo. With a very simple block, and nothing else.

(PS: I have not had the time to look at volto yet)

Maybe a good starting point are the Volto trainings.


Here is a simple, dummy one :slight_smile: GitHub - eea/volto-block-divider: A block to render a section separator


This could apply to any Plone seasoned developer that wants to know more about Volto.

If you haven't done it yet, I recommend you to spend some time to learn about the whole vision and why the community is pushing for making such a thing happen and the reasoning behind it. This vision has been shared by several members of the community during the last few years in conferences and sprints (so if you wish, you can refer to that talks in YT) and as you might know, it has been accepted and agreed by the community that it will be the default user experience and frontend for Plone 6.

After that, as @tmassman pointed out, there are fine trainings (even the full lenght videos from them of last conference), including the new "Mastering Plone 6" which is updated for Volto. I would recommend you to follow with this one.

Learning Volto means quite little compared with learning current Plone stack. Learning ReactJS is usually a good fit and this knowledge can be applied also to other areas/projects not related with Plone/Volto itself.

Check the documentation too:

After this, trying Volto in a small project, or as a side personal project is the best way to compare both classic and new approaches. After you have all these considered and you have to full view, the choosing is yours!

I can imagine a situation in which developers not yet confident to Volto try it out for small projects for training themselves first and continue doing both Volto and Classic projects depending on the type of project, the requirements, etc.

Plone Classic will continue being around, so those that feel super confortable using the classic Plone technologies can continue doing so, you won't be forced to move to Volto.

You'll realise that Volto is specially suitable for projects that require lots of user interactivity and behaviour (so lots of JS on it) or have complex landing pages with a well defined style guide (with blocks that you can model after), allowing users to create these pages by themselves effortlessly. Also it is suitable for websites or intranets that require side mini applications that can be quickly modelled with bare React, integrated effortlessly in Volto. The direct access to the whole ReactJS ecosystem is key here too.

I am aware that some of these requirements can be achieved also with Mosaic and alike, but you'll find that the user experience (and the developer effort to make them happen) after that is much better than Mosaic is able to deliver. Having into account the already existing ecosystem of Volto add-ons and blocks available. Check Volto Awesome too:

In a component based system, everything is a component and can be used across your app, even the view and edit components in a block are bare ReactJS components, no boilerplate required. From zero to all the features that you want a block to have...

As summary, I would say that give it a shot, for the people that we are already sold to Volto is difficult for us not to think that you are going to love it :wink: