Barcelona Mosaic sprint

We will explore ways to modernize the rendering model for pages in Plone. The goal is to replace the current, over-constrained model of fixed slots (left, main, right, footer) with a simpler and more flexible approach that better fits responsive designs.
When Jun 10, 2014 09:00 AM to
Jun 13, 2014 05:00 PM
Where Barcelona
Contact Name
Contact Phone +31433618933
Add event to calendar vCal


The sprint will be held in the Universitat Politècnica de Catalunya · BarcelonaTech in the UPCnet headquarters.

Visit the coactivate page for more info and join us.

Student residence

One of the nearest and affordable accomodation option is the university students residence. You should send a mail to saying that you are comming to a Universitat Politècnica conference (Plone UI Sprint) and they will offer you a special discount (50€ single with breakfast / 78€ double with breakfast aprox.). This is the URL for the residence.


Following on from the discussions at Plone Open Garden 2014 in Sorrento, we want to realize a proof of concept implementation that does the following:

1. Provide a new page rendering engine that replaces main_template + multiple slots with a grid-based responsive layout. We'd like to fuse leftcolumn, main and rightcolumn slots into a single tile-based grid that provides the affordance to realize responsive multi-column multi-row layouts without portlets, without needing Diazo transforms.

2. Provide a good and intuitive GUI for managing such layouts. Ideally this does not only provide the grid management features as demo-ed in but also provides an interface on the more advanced features outlined in (3) below.

3. Provide a mechanism for managing, storing and applying sets of layout rules. Currently the portlet system offers global portlets, acquisition, local (subtree) portlets, per-content-type portlets, user portlets and whathaveyou. We want to avoid re-creating that as-is, yet we do need ways to define layout logics that apply not just to the current page but across many pages in ways that make sense. On top of that we also need rules to manage responsive reflows.

4. Provide a "good enough" backward compatibility for the core+addon ecosystem that expects certain outcomes on metal:fill-slot="main" and portlet assignments. We've already checked the feasibility of intercepting such slot and portlet assignments and want to have these show up within the new grid layouts as manageable tiles/portlets/... Ideally switching to the new layout engine should by default have minimal impact yet enable all the goodies that we want to realize. In other words, if you want to build a traditional 3-column page with existing add-ons that should Just Work (TM).

If we manage to pull this off we'll be in a position where we can contemplate taking further steps, like bringing also viewlets within the scope of this layout engine. And making sure the engine performs like a Bloodhound.

To summarize: we want to create a single 2-D (grid) layout engine that offers page composition and responsive reflow across devices, to replace the current situation of multiple 1-D (column) renderers that composite into just a single non-responsive (desktop) page layout. In the process we will try to unify tiles, portlets and viewlets into a single layout policy management framework. Ideally, that should result in portlets being supported but deprecated.

The key deliverable for this sprint is a full vertical prototype that demonstrates the feasibility of all the features outlined in 1-4 within a coherent framework that provides a solid baseline architecture for further development. I see no reason for much branching or monkeying in core and expect that nearly all of this can be coded initially as pluggable add-ons which use ZCA registrations to obtain their effects.

More information about this event…