Skip to content

Instantly share code, notes, and snippets.

@andreasnrb
Created March 17, 2016 14:34
Show Gist options
  • Save andreasnrb/c753b8599e4ed9c2fa47 to your computer and use it in GitHub Desktop.
Save andreasnrb/c753b8599e4ed9c2fa47 to your computer and use it in GitHub Desktop.

My vision

Introduction

What you can do with WordPress is not the place to start, what WordPress can do for you is what is important. A tool should enable you to accomplish your goals, the tool should not restrict you, should not demand to be mangled, it should not slow you down due to form. So is that what WordPress is today? A lean, easy to use, non-restrictive power drill that helps you build your house? Or is it a tool which batteries has run dry and you end up using it as a hammer? The community has invented numerous addons to overload parts of WordPress, be it theme engines, routing, editors, admin areas. All ways to work around the shortcommings in WordPress. Various hacky solutions has been used to make WordPress load things faster when all it needs to do is print some text. The various hacky solutions is also not very easy to integrate together. They all exist in some sort of WordPress imposed isoloation.

Our goal is to make WordPress be that lean easy to use tool it has the potential to be. Regardless of that is an simple blogging tool with a blogging interface, a company website, a social network or just as an administration backend for your latest Node or React project.

How can this vision come to fruition

The primary way would be decoupling the various parts of WordPress so what remains as WordPress really is the core. A sort of Minimum Viable WordPress. Each decoupled part would be a module or component that is easliy reintegrated on setup according to the needs of whatever project you are working on. This is accomplished using an integrated dependency manager.

What can modules accomplish?

For end users

Basically it can make it easier for them.

  • Make it possible to have different installation paths depending on user needs.
  • Lessen the bloat in the administration area.
  • Installation of new plugins or themes that depends on other plugins is not something that the user needs to worry about.
  • If WordPress compatibility is maintained end user will have the best of two worlds.

For product developers

  • Make hacky solutions become a first class citizen by becoming a module.
  • Makes it possible to make more customized solutions depending on client needs.
  • Be able to better control how the system works and keep various parts compatible with each other.
  • Possible to add support to plugin and theme installation/update process to support plugins and themes that require license code in a standarized way.

For contributors

  • Easier to write tests for the various parts of WordPress.
  • Makes it easier to experiment and try out core module alternatives (routing, db layer, theme engine, administration etc).
  • Lowers the barrier for new contributors to add fixes or new features.
  • Makes it easier to automate the testing and evaluation of the various modules. Inability to automate or improve one module does not hamper another module.
  • A decoupled system makes it possible to develop certain areas faster than others and still maintain compatibility.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment