Large Headless Plone deployment

A few months back we finished an upgrade to older Plone site with over 160GB of images and moved it to a full headless setup with Plone 6.1 on the backend and a next.js frontend that implements the UK government GDS design system.

There is a more detailed case study written up at Modernising the UK Land Registry's 1862 Register with Headless CMS

But the short version is

  • Main client motivations were Security, Design system and WCAG compliance
  • We also decided to take the opportunity to reduce the resources required for hosting and to reduce future upgrade costs and "future proof" the solution.
  • This lead us to avoiding a solution that took a monolithic CMS approach where you theme and customise an out of the box CMS which is the case with both plone classic and plone volto.
  • We decided on Headless CMS approach. Headless means that any deployment or upgrade to the frontend doesn't require redeployment or retesting the of the CMS/admin UI or the api server, and visa versa.
    • Frontend was next.js (server side rendered/hybrid)
    • Plone 6.1 as the api
    • The Hydra editor developed with GSoC last year as the admin UI. No customisation so can be easily upgraded.
  • The freedom to develop the frontend how we wanted led to significant drop in CPU and response time, as well as corresponding increase in lighthouse site performance. It also meant we could bring in the design system without combining it with any CMS css or html which made development easier and should make future design system changes easier to incorporate.
  • The hydra editor gave the editors the same DND editing you get from Volto but our frontend team didn't have to know volto to achieve this.

Other than enhancements to hydra we also contributed back some patches to plone to significantly speedup upload and exportimport of images and large files by preventing reading and loading them into memory.

7 Likes