This has always been the most reasonable approach, to me. It keeps content in the database (managed by the CMS), structural markup in template files, and CSS in the stylesheet.

This separation has been essential in web development over the last decade, and it has been a little concerning seeing so much talk of “the future” where we manage everything from the database, and the lines between content and presentation is ever more blurry.

The only step beyond this that would make the most sense is to enable the editor to display (and edit) all the block areas rendered on a page. True front end(ish) full site editing. There are obviously details that would need to be worked out … think page specific headers or sidebars, and how that works vs the global header, etc. … but this is REALLY close, and from a technical perspective is a LOT more likely to actually get done sometime soon.

THIS is the block based future that I want. Not the “design your whole site using the editor” future that some people talk about. I have no interest in giving users the ability to drag and drop every structural element of a page. That’s a disaster waiting to happen, IMHO.