Volto 4.0.0 released

Volto 4 released

Dear Plone Community,

Today Volto 4.0.0 has been released. After a 9 month period of alpha stage, it’s been nurtured from the outcome of last year Beethoven sprint, the Plone Conference sprints, discussions and feedback, and at least two more sprints until this release has finally shipped. It hasn’t been easy, since it’s the one that marks the transition to maturity of Volto. Reaching here implied to introduce a number of breaking changes that we wanted to keep away from early adopters to prevent hurting the stability of current projects and already deployed production sites.

Volto 4 is ready for prime time now and for all the community to enjoy. A lot of effort has been put on the approachability and the developer experience so the learning curve to learn Volto remains low and developing on it is a delightful experience.

These are a few of the new features:

  • Improved Pastanaga Editor
  • New Pastanaga Editor sidebar
  • New mobile first toolbar
  • Developing blocks experience simplified
  • New Object Browser
  • Listing, ToC, Lead Image blocks
  • Improved existing blocks (Image, Video, Maps)
  • New blocks chooser and future proof blocks definitions
  • Definition of default Blocks per content type
  • Body classes like Plone ones hinting content types, section and current view
  • New message system
  • React hooks support
  • Several internal libraries updated, including Redux, Router ones that support hooks as well
  • New locales (es, it, ja, pt, pt_BR)
  • Tons of bug fixes

You can see the full changelog here: https://github.com/plone/volto/releases

Despite all the new features and bug fixing it is in constant evolution process, Volto 5 is already planned to happen soon, and it will include exciting new features like code splitting, a brand new date widget, and the ability to split public and CMS styling to name a few.

If you want to try it and test it now, you have these resources available:

Developer documentation: https://docs.voltocms.com/
Github repo: https://github.com/plone/volto/
create-volto-app: https://www.npmjs.com/package/@plone/create-volto-app
Demo site: https://volto.kitconcept.com/
Quick start: https://github.com/plone/volto/#quick-start

Volto is being done from the Plone Community to the Plone Community. We, the community, are the only ones who can make it a reality. Hopefully, with the help of everybody we will make it so.

Thanks to everybody!

17 Likes

If you try it out, do not forget to update your @plone/create-volto-app package locally. A matching 4.0.0 version has also been released. Specially applies for the early adopters that installed the alpha version of the boilerplate tool.

Also, if updating Volto from an existing Alpha or previous versions, make sure you follow the upgrade guide:
https://docs.voltocms.com/upgrade-guide/

2 Likes

The out-of-the-box experience is not yet given..due to CORS

Working on it, next versions will have a built-in proxy for development, so the developer won’t have to take care of it.

An integration package/profile for Plone 6 alpha is on its way.

hm..how did you develop on work on Volto with this restriction? Always through a proxy/reverse proxy?

You can use the pre-prepared local api buildout.cfg in the Volto repo.

Do you think that including such an api folder in create-volto-app will improve the developer experience?

Let me know if you have problems setting CORS correct In your own buildouts. I agree it’s needed its own section in the docs. In the meanwhile, take a look at the api folder buildout.

1 Like

For reference, let's copy the example from Volto api folder buildout here:

zcml-additional =
  <configure xmlns="http://namespaces.zope.org/zope"
             xmlns:plone="http://namespaces.plone.org/plone">
  <plone:CORSPolicy
    allow_origin="http://localhost:3000,http://127.0.0.1:3000"
    allow_methods="DELETE,GET,OPTIONS,PATCH,POST,PUT"
    allow_credentials="true"
    expose_headers="Content-Length,X-My-Header"
    allow_headers="Accept,Authorization,Content-Type,X-Custom-Header,Origin"
    max_age="3600"
    />
  </configure>

I wonder, if that sometimes requires <include package="plone.rest" file="meta.zcml" />.

3 Likes

Is the demo site updated?

Thanks for the heads up! It should be the latest, although I just saw that the text for the used versions in the homepage were wrong. I just updated it now again, FYI volto.kitconcept.com runs always on Volto master.

In fact, you can see the current ones (from the code) in the Site Setup view.

@zopyx Volto does an OOTB proxy since 5.1.0 pointing (by default) to http://localhost:8080/Plone. So the only requirement is to have p.restapi installed in your test instance and point Volto to it. If it's not in the default location:

RAZZLE_API_PATH=http://.... yarn start

BTW, yesterday we released 6.0.0

Try it out!!

3 Likes