It would be nice to create page layouts from within the Perch admin (maybe even have a code ide built-in). Within each page layout content editors could add additional regions to it, within each region you could select from an app list or the standard content templates.
That would be slick
Stay tuned. I’ve set up a Region that allows us to build out a page from scratch with sections rows and columns. It works great with Bootstrap. Using Regions, Blocks and Repeaters.
Will post how I’ve set it up here soon.
Also it should have a way to restrict adding certain things (regions, blocks etc) so the editor will stay within the rules of the design.
Eg don’t put two photos next to each other. Or a piece of text should always have a header. Or after 3 text blocks there should be an image. A page should always start with a text and never with an image.
Things like that.
Creating well-thought-out region that uses blocks seems to be the answer for me.
The default master page for most of marketing sites I build on Runway nowadays is literally just this:
You can enforce design rules and follow brand guidelines. And you're not restricted to content templates. For instance, you can create a "global" block that allows the editor to select a global section (e.g. featured products, latest blog posts, forms, etc): https://grabapipit.com/blog/a-global-block
So I feel what you're asking for is already addressed by Blocks (at least for the most part). If it falls short in some areas, perhaps it is better to explore those areas first.
(maybe even have a code ide built-in
Perhaps a textarea field with a lightweight code editor can be helpful. For example, you may set up a shared region for editors to insert analytics tags like Google Analytics. Or perhaps you have a blog and would like to add custom CSS to style some posts differently.
One of the reason I hated maintaining WordPress sites I inherited was how some of them would have HTML and inlined CSS code inserted via the control panel. I want a CMS to manage content, not code. I want to version control source code and I think storing source code in the database would cause more issues than it solves particularly for client sites.
Blocks combined with templates are well worth exploring because they are a very powerful feature. It's possible to switch layouts and set-up many website components as blocks.