I generally don’t play on github or slack - so if you think this idea is worth it, someone else make it over there if appropriate…
And yes, this is my first post, I created an account just for this. Now the idea…
In the 3D world, when designing a plant or control system you don’t care about what goes on inside any component (a pump is a pump, regardless of complexity or whiz-bangs - that’s the manufacturer’s headache). You only need to know how to talk to it.
In the case of CP, this is kinda like a plugin. So…as CP is developed going forward, why not make everything a plugin?
Essentially the “core” become nothing more than a plugin architecture. Editors, comment sections, database, admin pages, it’s all a plugin. And thus becomes a self contained “black box” insofar as the core is concerned.
– What’s the default editor? It’s just a blank text input box like this without any formatting or anything else. You just type (or paste) raw html or javascript. Want a fancier editor? Install the plugin. And even that “default” editor is a plugin.
– What database do you want? Flat file? MySQL, something else? It’s a plugin.
– Want your custom theme to use that (horrible) "customizer? It’s a plugin (that you list as a dependency in your theme). Don’t care about it? Your theme doesn’t have to use it (or even install it).
– Want comments? Load a plugin.
– Want to create a blog network at any time (subdir or subdomains)? Load a plugin.
You could even select (during install) what your default plugins are.
Yes this would be a MAJOR redesign of the core. But it would free up the core team from having to deal with any of the other issues. And a plugin architecture (almost inherently) can remain backwards compatible.
Just an idea to make things (maybe) more manageable.
JS