WordPress considers Plugin-first approach that promises faster core development but some are skeptical
Matt Mullenweg, developer of WordPress and CEO of Autommatic, proposed no longer adding new features to the WordPress, pivoting instead to a plugin-first policy.
This new approach to the future of WordPress has already resulted in a new feature intended for the next version of WordPress to be dropped entirely.
Canonical plugins are said to offer a way to keep improving WordPress on a faster schedule.
But some WordPress core contributors expressed the opinion that publisher user experience may suffer.
First discussed in 2009, canonical plugins is a way to develop new features in the form of plugins.
The goal of this approach is to keep the WordPress core fast and lean while also encouraging development of experimental features in the form of plugins.
The original 2009 proposal described it like this:
“Canonical plugins would be plugins that are community developed (multiple developers, not just one person) and address the most popular functionality requests with superlative execution.
…There would be a very strong relationship between core and these plugins that ensured that a) the plugin code would be secure and the best possible example of coding standards, and b) that new versions of WordPress would be tested against these plugins prior to release to ensure compatibility.”
This approach to features and options is also referred to as Plugin First, to emphasize how features will first appear in the form of plugins.
These plugins are called canonical because they are developed by the WordPress core development team as opposed to non-canonical plugins that are created by third parties that might limit features in order to encourage purchase of a pro-version.
Integration of canonical plugins into the WordPress core itself would be considered once the plugin technology has proven itself to be popular and essential to the majority of users.
The benefit of this new approach to WordPress would be to avoid adding new features that might not be needed by the majority of users.
Plugin-first could be seen to be in keeping with the WordPress philosophy called Decisions, Not Options, which seeks to avoid burdening users with layers of technical options.
By offloading different features and functionalities to plugins, a user won’t have to wade through enabling or disabling functionalities they need, don’t need or don’t understand.
The WordPress design philosophy states:
“It’s our duty as developers to make smart design decisions and avoid putting the weight of technical choices on our end users.”
Canonical Plugins the Future?
Matt Mullenweg published a post titled, Canonical Plugins Revisited, in which he made the case that this is the way that WordPress should be developed moving forward.
“We are reaching a point where core needs to be more editorial and say “no” to features coming in as ad hoc as they sometimes do, and my hope is that more Make teams use this as an opportunity to influence the future of WordPress through a plugin-first approach that gives them the luxury of faster development and release cycles (instead of three times per year), less review overhead, and and path to come into core if the plugin becomes a runaway success.”
The first casualty of this new approach is the cancellation of integrating WebP image conversion into the next version of WordPress, WordPress 6.1, currently scheduled for November 2022.
Plugin-First is Controversial
The shift to a plugin-first development process was subjected to debate in the comments section.
Some developers, such as core contributor Jon Brown, expressed reservations about the proposal to switch to developing with canonical plugins.
“The problem remains that there are too many complicated plugins standing in for what would be a simple optional feature.
Plugins are _not_ a user-friendly option to core settings. First users have to discover there is a plugin, then they have negotiated yet another settings screen and updates and maintenance of that plugin.”
The commenter used the example of a commenting functionality that is currently served by mutliple bloated plugins as a less than ideal user experience.
They noted that having one canonical plugin to solve a problem is preferable to the current state where desirable options can only be found on bloated third party plugins.
But they also said that having a settings option within core, without the need for a plugin, could present a better user experience.
“Now, I do think Canonical plugins are a better situation than 6+ bloated plugins like exist here, but so would a single checkbox added to the settings page in core to do this. Which would further improve the UX and discovery issues inherent in plugins.”
Ultimately, the commenter expressed the idea that the concept of canonical plugins seemed like a way to shut down discussions about features that should be considered, so that the conversation never happens.
“Canonical plugins” seems like a weaponized tool to derail discussions the same way “decisions not options” has become for years.”
That last statement is a reference to frustrations felt by some core contributors with the inability to add options for features because of the “decisions, not options” philosophy.
Others also disagreed with the plugin-first approach:
“Canonical plugin sounds grand but it will further increase maintenance burden on maintainers.
In my opinion, it’s no go.
It will be much more better to include some basic features in core itself instead of further saying – It’s a good place for plugin.”
Someone else pointed out a flaw in plugin-first in that collecting user feedback might not be easy. If that’s the case then there might not be a good way to improve plugins in a way that meets user needs if those needs are unknown.
“How can we better capture feedback from users?
Unless site owners are knowledgeable enough to report issues on GitHub or Trac (let’s be honest, no one reports plugin issues on Trac), there’s really no way to gather feedback from users to improve these recommended/official plugins. “
WordPress development is evolving to make improvements faster. Core contributor comments indicate that there are many unresolved questions on how well this system will work for users.
An early indicator will be in what happens with the cancelled WebP feature that was previously intended to be integrated into the core and will now become a plugin.
If you are interested in original article by Roger Montti you can find it here