I'll make a video of this in the near future but here's the extremely short version of the page builder journey I went on.
There are 2 approaches that ultimately make sense: section-based and component-based
Section Based:
This is the "intended" way repeater matrix (and similar fieldtypes in other CMSes -- WordPress ACF has flexible content, Craft has Matrix) is supposed to be used. Each matrix-type represents a section with the necessary fields to populate that section. No depth.
Pros
easy for editors to understand
they just need to put in the content and it will work; no need to worry about layout because it's baked in; hard to mess up
Cons
not flexible / requires a lot of discussion to make sure all sections, fields and their variations are covered
can't move content from one section to another
can lead to field bloat
Component Based:
Each matrix-type represents a component (headline, text, image, video, description list, etc.). Furthermore, 4 additional matrix-types for layout: section, container, row, column. Depth is enabled as well as the new "family friendly" option which I pushed Ryan to implement earlier this year and makes this approach more usable.
Pros
extremely flexible; closely follows YOOtheme Pro's approach but in a matrix-way
can move content anywhere
Cons
higher learning curve compared to section-based since layout and nesting is involved
structures must be repeated over and over again since each component is independent
uses many more pages behind the scenes
--
Which approach is better? The answer is it depends on the nature of the content of the site and the technical ability of editors. If the site has a level of consistency from page to page, the section-based approach would work better. However if there is less consistency and/or the editors need and/or are willing to put in extra effort to build truly unique pages, then the component-based approach makes sense.
The thing is, you can actually use both approaches. The matrix field name for the section-based approach that I use is called 'sections' and the component-based approach field name is called 'builder'. My base module sets up these fields automatically and uses Mystique for all the settings.
You can add both the 'sections' and 'builder' fields to a template and the editors can decide which one makes more sense given a page's needs.