WP Feature Notifications: 2023 Status Update

The WP Feature Notifications (formerly WP Notify) project was first proposed in 2019 in order to improve and modernise the way in which WordPress handles user notifications.

In the last few months we’ve had a good amount of progress, as well as a number of changes, which have led to the recent publication of prerelease 0.2.0.

0.2.0 – A robust JavaScriptJavaScript JavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a user’s browser. https://www.javascript.com/. system

You can test out the current state of the feature pluginFeature Plugin A plugin that was created with the intention of eventually being proposed for inclusion in WordPress Core. See Features as Plugins. by downloading the latest release at https://github.com/WordPress/wp-feature-notifications/releases/latest. Please note that you will need to be using WordPress 6.2 or above.

Alternatively, if you’d like to get involved in development, you can clone and build the repo at https://github.com/WordPress/wp-feature-notifications, which includes ongoing work for the 0.3.0 milestone.

What originally started as a UX proof of concept has evolved into a more sophisticated JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors.-based system for displaying notifications based on serialised data. At the moment this uses static dummy data, however in a future update this will interface with the upcoming REST controllers to display persistent data.

Props to @codekraft and @bitmachina for some exceptional work here, which has really progressed the project.

Leadership, planning and the team

After extensive work as project lead, @psykro has decided to step down from the role. On behalf of the whole team, I’d like to thank him for the massive contributions he’s made, and the time and effort he’s put into the project over the last few years. @sephsekla has taken over project leadership in his stead.

In addition to our weekly office hours (15:00 UTC on Wednesday), @sephsekla, @codekraft, @bitmachina and @jason_the_adams have started a monthly planning call, in order to better scope out the future of the projects

To support the project’s long-term goal of becoming part of WP CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress., the team is looking for partnership from a core committercommitter A developer with commit access. WordPress has five lead developers and four permanent core developers with commit access. Additionally, the project usually has a few guest or component committers - a developer receiving commit access, generally for a single release cycle (sometimes renewed) and/or for a specific component., who can provide guidance on strategy as well as potential barriers to entry.

Core Feature vs Canonical PluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party

Matt’s post around Canonical Plugins late last year sparked some discussion as to whether this should be an option to consider for the future of the project. While this is a valuable concept, and indeed the approach taken for development, the team are in strong agreement that the update to notifications should be merged when ready, and not kept as a separate plugin.

To quote the original project proposal by @psykro and @schlessera:

WordPress is currently lacking a fundamental mechanism: sending notifications to users to give them feedback about state changes in the system.

Notification functionality is indeed fundamental, and already in constant use via the admin_notices hook, a workaround that has major issues of standardisation and accessibility. The new APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. needs to be universal, and available by default, otherwise admin_notices will remain the de facto option.

GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ Phase 3

The team was excited to see the upcoming evolution of the adminadmin (and super admin) experience, which was recently detailed in https://make.wordpress.org/core/2023/03/24/phase-3-collaboration/. As the WordPress dashboard continues to modernise, we are keen to play our part in improving the current admin_notices experience. It’s crucial to ensure that our designs and functionality mesh with the work being done here.

Roadmap and Next steps

The team has recently picked up momentum, but there is still much to be done in order to achieve the project’s goals. Currently the focus is on refining scope and transforming the demo into a minimum viable productMinimum Viable Product "A minimum viable product (MVP) is a product with just enough features to satisfy early customers, and to provide feedback for future product development." - WikiPedia (MVPMinimum Viable Product "A minimum viable product (MVP) is a product with just enough features to satisfy early customers, and to provide feedback for future product development." - WikiPedia). The upcoming 0.3.0 prerelease is planned to be a minimal, but functional notification system, with all demo content removed.

The next (and largest) piece of the puzzle is persistent database storage of notification data. We’re working on finalising the proposed schema, as well as discussing other issues such as retention, translations, multisitemultisite Used to describe a WordPress installation with a network of multiple blogs, grouped by sites. This installation type has shared users tables, and creates separate database tables for each blog (wp_posts becomes wp_0_posts). See also network, blog, site support and more.

As we move on to this major phase, the team would greatly welcome additional contributors onto the project, particularly developers specialising in PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher and SQL.

Expect a consultation and call for feedback on how we approach this database architecture soon!

Get involved

The project is always on the lookout for new contributors. If you would like to contribute to the project, we invite you to join the #feature-notifications channel in the Making WordPress Slack for our weekly office hours, every Wednesday at 15:00 UTC.

We will have a presence at the WordCampWordCamp WordCamps are casual, locally-organized conferences covering everything related to WordPress. They're one of the places where the WordPress community comes together to teach one another what they’ve learned throughout the year and share the joy. Learn more. Europe Contributor DayContributor Day Contributor Days are standalone days, frequently held before or after WordCamps but they can also happen at any time. They are events where people get together to work on various areas of https://make.wordpress.org/ There are many teams that people can participate in, each with a different focus. https://2017.us.wordcamp.org/contributor-day/ https://make.wordpress.org/support/handbook/getting-started/getting-started-at-a-contributor-day/., where we would love to see some new contributors. Regardless of skill set or expertise, Developers, designers, users or any other interested parties are very welcome!

Props to @erikyo and @bitmachina for their collaboration writing this post, and and @bacoords and @psykro for reviewing.