The content of this site is completely managed by fieldtype RepeaterFlex which offers a scalable and portable solution for quick content creation.
In contrast to the RepeaterMatrix the item types are not defined via a GUI but implemented as PHP classes. Similar to a fieldtype in ProcessWire such a RepeaterFlexItem class implements both its config fields and the required code to create markup. As a consequence these implementations can be easily copied to a different installation and work instantly.
The fields each item class uses may be standard fields like bodytext, checkboxes, image collections or page selection provided by the installation or install their own fields if required.
Check out the Making of to see how this little site was made and the Docs section for more information.
If you are interested in a performance comparison and a tiny tip on how to improve performance of regular Repeater/RepeaterMatrix, check out the Performance Comparison page.
To see how RepeaterFlex can be used with CSS frameworks like UiKit or bootstrap, have a look into the ContentRenderer documentation.
RepeaterFlex may not only be used for page content, rendering sitemaps or menus work nice as well.
Item configurations may be transported easily between installations.
Output is generated from a simple call to the render method, no iteration of the matrix required.
Item types may easily be added or removed from the matrix field.
Field definition and render code for each item is defined in a single, compact file.
Due to the concept modifying item behaviour or adding new items can be done easily.
Only required code is loaded during rendering, this reduces PHP memory and performance footprint.
RepeaterFlex may not only be used for page content, rendering sitemaps or menus work nice as well.
Item configurations may be transported easily between installations.
Output is generated from a simple call to the render method, no iteration of the matrix required.
Item types may easily be added or removed from the matrix field.
Field definition and render code for each item is defined in a single, compact file.
Due to the concept modifying item behaviour or adding new items can be done easily.
Only required code is loaded during rendering, this reduces PHP memory and performance footprint.
There also is support for much more complex items which may require user opt-in and additional scripts to load, like an interactive map: