Maik Derstappen: When Blicca and Aurora meet to have fun — sharing blocks across Plone's two UI's
Presentation at Plone Conference 2026
We have had lots of ways to make pages consisting of multiple sub parts. We had BernArticle, ATMediaPage, PortletPage, ContentPanels, Collage, Cover, Mosaic, ContentSections. The smaller parts were content items in a tree, views, portlets, or tiles. In Aurora, the page is one Plate.js tree.
So either you have separate objects, which can also be handled individually, also having workflows. Or you have Documents, with full, more fluid editing, but the contents are opaque to Plone, just a bunch of html or json.
Currently, between Blicca and Aurora/Volto, nothing is shared. We can change that.
The idea: you have an Aurora block, so just the data, defined in one way, and use that on both sides. On the Aurora side you have a view in React, use the Aurora editor (JS) and store it in the blocks/blocks_layout fiels. On the Blicca side, the view is a Python renderer as one small extra layer, the same editor but using the Blicca content browser instead of the Aurora object browser, and storage is identical, in those two fields. So both UIs use Aurora blocks, and the same Aurora editor. Blicca adds a small Python rendering layer. Same JSON, same block types.
For each block, the Python side would check the block type and look up a view for it.
Sharing is caring. Build a block once, and use it in both UIs. Blicca-first blocks publish their JS to npm; Aurora-first blocks get a thin Python wrapper. That is the goal, so a block should always be available on both PyPI and npmjs.com.
DEMO.
