How We Built a New Home for WordPress.com Developers Using the Twenty Twenty-Four Theme

Posted by download in Software on 29-02-2024

In the last few weeks, our team here at WordPress.com has rebuilt developer.wordpress.com from the ground up. If you build or design websites for other people, in any capacity, bookmark this site. It’s your new home for docs, resources, the latest news about developer features, and more. 

Rather than creating a unique, custom theme, we went all-in on using Twenty Twenty-Four, which is the default theme for all WordPress sites. 

That’s right, with a combination of built-in Site Editor functionalities and traditional PHP templates, we were able to create a site from scratch to house all of our developer resources. 

Below, I outline exactly how our team did it.

A Twenty Twenty-Four Child Theme

The developer.wordpress.com site has existed for years, but we realized that it needed an overhaul in order to modernize the look and feel of the site with our current branding, as well as accommodate our new developer documentation

You’ll probably agree that the site needed a refresh; here’s what developer.wordpress.com looked like two weeks ago:

The old developer.wordpress.com homepage with the headline 'Howdy, Developers' on a blue background with several CTAs to get started and try WordPress.com for free

Once we decided to redesign and rebuild the site, we had two options: 1) build it entirely from scratch or 2) use an existing theme. 

We knew we wanted to use Full Site Editing (FSE) because it would allow us to easily use existing patterns and give our content team the best writing and editing experience without them having to commit code.

We considered starting from scratch and using the official “Create Block Theme” plugin. Building a new theme from scratch is a great option if you need something tailored to your specific needs, but Twenty Twenty-Four was already close to what we wanted, and it would give us a headstart because we can inherit most styles, templates, and code from the parent theme.

We quickly decided on a hybrid theme approach: we would use FSE as much as possible but still fall back to CSS and classic PHP templates where needed (like for our Docs custom post type).

With this in mind, we created a minimal child theme based on Twenty Twenty-Four.

Spin up a scaffold with @wordpress/create-block

We initialized our new theme by running npx @wordpress/create-block@latest wpcom-developer

This gave us a folder with example code, build scripts, and a plugin that would load a custom block.

If you only need a custom block (not a theme), you’re all set.

But we’re building a theme here! Let’s work on that next.

Modify the setup into a child theme

First, we deleted wpcom-developer.php, the file responsible for loading our block via a plugin. We also added a functions.php file and a style.css file with the expected syntax required to identify this as a child theme. 

Despite being a CSS file, we’re not adding any styles to the style.css file. Instead, you can think of it like a documentation file where Template: twentytwentyfour specifies that the new theme we’re creating is a child theme of Twenty Twenty-Four.

/*
Theme Name: wpcom-developer
Theme URI: https://developer.wordpress.com
Description: Twenty Twenty-Four Child theme for Developer.WordPress.com
Author: Automattic
Author URI: https://automattic.com
Template: twentytwentyfour
Version: 1.0.0
*/

We removed all of the demo files in the “src” folder and added two folders inside: one for CSS and one for JS, each containing an empty file that will be the entry point for building our code.

The theme folder structure now looked like this:

A WordPress child theme folder structure

The build scripts in @wordpress/create-block can build SCSS/CSS and TS/JS out of the box. It uses Webpack behind the scenes and provides a standard configuration. We can extend the default configuration further with custom entry points and plugins by adding our own webpack.config.js file. 

By doing this, we can:

  1. Build specific output files for certain sections of the site. In our case, we have both PHP templates and FSE templates from both custom code and our parent Twenty Twenty-Four theme. The FSE templates need minimal (if any) custom styling (thanks to theme.json), but our developer documentation area of the site uses a custom post type and page templates that require CSS.
  2. Remove empty JS files after building the *.asset.php files. Without this, an empty JS file will be generated for each CSS file.

Since the build process in WordPress Scripts relies on Webpack, we have complete control over how we want to modify or extend the build process. 

Next, we installed the required packages:

​​npm install path webpack-remove-empty-scripts --save-dev

Our webpack.config.js ended up looking similar to the code below. Notice that we’re simply extending the defaultConfig with a few extra properties.

Any additional entry points, in our case src/docs, can be added as a separate entry in the entry object.

// WordPress webpack config.
const defaultConfig = require( '@wordpress/scripts/config/webpack.config' );

// Plugins.
const RemoveEmptyScriptsPlugin = require( 'webpack-remove-empty-scripts' );

// Utilities.
const path = require( 'path' );

// Add any new entry points by extending the webpack config.
module.exports = {
	...defaultConfig,
	...{
		entry: {
			'css/global':  path.resolve( process.cwd(), 'src/css',   'global.scss' ),
			'js/index': path.resolve( process.cwd(), 'src/js', 'index.js' ),
		},
		plugins: [
			// Include WP's plugin config.
			...defaultConfig.plugins,
			// Removes the empty `.js` files generated by webpack but
			// sets it after WP has generated its `*.asset.php` file.
			new RemoveEmptyScriptsPlugin( {
				stage: RemoveEmptyScriptsPlugin.STAGE_AFTER_PROCESS_PLUGINS
			} )
		]
	}
};

In functions.php, we enqueue our built assets and files depending on specific conditions. For example, we built separate CSS files for the docs area of the site, and we only enqueued those CSS files for our docs. 

<?php

function wpcom_developer_enqueue_styles() : void {
    wp_enqueue_style( 'wpcom-developer-style',
        get_stylesheet_directory_uri() . '/build/css/global.css'
    );
}

add_action( 'wp_enqueue_scripts', 'wpcom_developer_enqueue_styles' );

We didn’t need to register the style files from Twenty Twenty-Four, as WordPress handles these inline.

We did need to enqueue the styles for our classic, non-FSE templates (in the case of our developer docs) or any additional styles we wanted to add on top of the FSE styles.

To build the production JS and CSS locally, we run npm run build

For local development, you can run npm run start in one terminal window and npx wp-env start (using the wp-env package) in another to start a local WordPress development server running your theme.

An active wpcom-developer child theme on a local WordPress installation

While building this site, our team of designers, developers, and content writers used a WordPress.com staging site so that changes did not affect the existing developer.wordpress.com site until we were ready to launch this new theme.

theme.json

Twenty Twenty-Four has a comprehensive theme.json file that defines its styles. By default, our hybrid theme inherits all of the style definitions from the parent (Twenty Twenty-Four) theme.json file. 

We selectively overwrote the parts we wanted to change (the color palette, fonts, and other brand elements), leaving the rest to be loaded from the parent theme. 

WordPress handles this merging, as well as any changes you make in the editor. 

Many of the default styles worked well for us, and we ended up with a compact theme.json file that defines colors, fonts, and gradients. Having a copy of the parent theme’s theme.json file makes it easier to see how colors are referenced.

You can change theme.json in your favorite code editor, or you can change it directly in the WordPress editor and then download the theme files from Gutenberg.

WordPress settings with a red arrow pointing to the Export tool

Why might you want to export your editor changes? Styles can then be transferred back to code to ensure they match and make it easier to distribute your theme or move it from a local development site to a live site. This ensures the FSE page templates are kept in code with version control. 

When we launched this new theme on production, the template files loaded from our theme directory; we didn’t need to import database records containing the template syntax or global styles.

Global styles in SCSS/CSS

Global styles are added as CSS variables, and they can be referenced in CSS. Changing the value in theme.json will also ensure that the other colors are updated.

For example, here’s how we reference our “contrast” color as a border color:

border-color: var(--wp--preset--color--contrast);

Some plugins require these files in a theme, e.g. by calling get_header(), which does not automatically load the FSE header template. 

We did not want to recreate our header and footer to cover those cases; having just one source of truth is a lot better.

By using do_blocks(), we were able to render our needed header block. Here’s an example from a header template file:

<head>
<?php
wp_head();
$fse_header_block = do_blocks( '<!-- wp:template-part {"slug":"header","theme":"a8c/wpcom-developer","tagName":"header","area":"header", "className":"header-legacy"} /-->' );
?>
</head>
<body <?php body_class(); ?>>
<?php
echo $fse_header_block;

The new developer.wordpress.com site is now live!

The new developer.wordpress.com homepage with a black background, a pixelated W logo, and the headline 'Powerful WordPress Hosting for Developers'

Check out our new-and-improved developer.wordpress.com site today, and leave a comment below telling us what you think. We’d love your feedback. 

Using custom code and staging sites are just two of the many developer features available to WordPress.com sites that we used to build our new and improved developer.wordpress.com.

If you’re a developer and interested in getting early access to other development-related features, click here to enable our “I am a developer” setting on your WordPress.com account.

the Developer Features page on WordPress.com with an "I am a developer" toggle and cards displaying developer features like SFTP, SSH, WP-CLI, Staging sites, and Custom code

More Control Over the Content You Share

Posted by download in Software on 27-02-2024

There are currently very few options for individual users to control how their content is used for AI training, and we want to change that. That’s why we’re launching a new tool that lets you opt out of sharing content from your public blogs with third parties, including AI platforms that use such content for training models. 

The reality is that AI companies are acquiring content across the internet for a variety of purposes and in all sorts of ways. We will engage with AI companies that we can have productive relationships with, and are working to give you an easy way to control access to your content.

We’re also getting ahead of proposed regulations around the world. The European Union’s AI Act, for example, would give individuals more control over whether and how their content is utilized by the emerging technology. We support this right regardless of geographic location, so we’re releasing an opt-out toggle and working with partners to ensure you have as much control as possible regarding what content is used. 

Here’s how to opt out of sharing: 

The new toggle can be found in Settings → General → privacy section. Or, you can click here: https://wordpress.com/settings/general.

  • To opt out, visit the privacy settings for each of your sites and toggle on the “Prevent third-party data sharing” option. 
  • Please note: If you’ve already chosen in your settings to discourage search engines from crawling your site, we’ve automatically applied that privacy preference to third-party data sharing.
  • Here’s a Support Center doc with more information.

We already discourage AI crawlers from gathering content from WordPress.com and will continue to do so, save for those with which we partner. We want to represent all of you on WordPress.com and make sure that there are protections in place for how your content is used. As part of that, we have added a setting to opt out of sharing your public site content with third parties. We are committed to making sure our partners respect those decisions.

WordPress 6.5 Beta 3

Posted by download in Software on 27-02-2024

WordPress 6.5 Beta 3 is here and ready for testing!

This beta version of the WordPress software is under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, it is recommended you evaluate Beta 3 on a test server and site.

You can test WordPress 6.5 Beta 3 in four ways:

PluginInstall and activate the WordPress Beta Tester plugin on a WordPress install. (Select the “Bleeding edge” channel and “Beta/RC Only” stream).
Direct DownloadDownload the Beta 3 version (zip) and install it on a WordPress website.
Command LineUse the following WP-CLI command:
wp core update --version=6.5-beta3
WordPress PlaygroundUse the 6.5 Beta 3 WordPress Playground instance to test the software directly in your browser without the need for a separate site or setup. 

The current target date for the final release of WordPress 6.5 is March 26, 2024. That’s only four weeks away! Get an overview of the 6.5 release cycle, and check the Make WordPress Core blog for 6.5-related posts in the coming weeks for more information.

Catch up on what’s new in WordPress 6.5: Read the Beta 1 announcement for details and highlights.

How to test this release

Your help testing the WordPress 6.5 Beta 3 version is key to ensuring everything in the release is the best it can be. While testing the upgrade process is essential, trying out new features is equally important. This detailed guide will walk you through testing features in WordPress 6.5.

If you encounter an issue, please report it to the Alpha/Beta area of the support forums or directly to WordPress Trac if you are comfortable writing a reproducible bug report. You can also check your issue against a list of known bugs.

Curious about testing releases in general? Follow along with the testing initiatives in Make Core and join the #core-test channel on Making WordPress Slack.

Vulnerability bounty doubles during Beta/RC

Between Beta 1, released on February 13, and the final Release Candidate (RC) scheduled for March 19, the monetary reward for reporting new, unreleased security vulnerabilities is doubled. Please follow responsible disclosure practices as detailed in the project’s security practices and policies outlined on the HackerOne page and in the security white paper.

Beta 3 updates and highlights

WordPress 6.5 Beta 3 contains more than 45 updates to the Editor since the Beta 2 release, including more than 35 tickets for WordPress Core.

Each beta cycle focuses on bug fixes; more are on the way with your help through testing. You can browse the technical details for all issues addressed since Beta 2 using these links:

Double the haiku for Beta 3

Find a Beta bug,
it will help the team a lot,
and improve WordPress!
– submitted by @lada7042

In code, dreams are bold,
WordPress’s story unfolds,
Beta journey’s told.
– submitted by @huzaifaalmesbah

Thank you to the following contributors for collaborating on this post: @dansoschin, @swissspidy, @adarshposimyth, @davidbaumwald

My Condolences, You’re Now Running a Billion-Dollar Business

Posted by download in Software on 27-02-2024

Halfway through a relaxing winter break with my family, I opened Slack for a quick dopamine hit. The message I saw waiting from Matt, Automattic’s CEO, was quite the surprise:

“Would you be interested in running WordPress.com while I’m on sabbatical?”

In honesty, my initial reaction was “No, not really.” It seemed like a lot of work, stressful, etc. But, I named my last team YOLO for a reason: the answer is always “Yes,” because you only live once.

Many teams at Automattic use the “red / yellow / green check-in” as a communication tool. At nearly the one-month mark of running WordPress.com, I can safely say I’ve experienced the entire rainbow of emotional states. Today, I’d like to share a few of my learnings with the hope that they help you during your leadership journey.

Also, one pro tip: don’t open Slack on vacation.

Problem #1: I’m receiving 50x more pings

My former team is largely based in Europe, so their day started much earlier than mine. When I signed on for the morning, I’d usually have a few things to respond to before I dived into work.

These days, I drink from the firehose. I wake up to dozens of P2 mentions, Slack DMs, and other communication threads. I clear them out, and then they just pile up again.

Solution: Delegate, delegate, delegate

Ideally, I’d like to run the business while skiing fresh powder. In order to do so, I need a great team whom I can trust to get the job done.

For our recent efforts, the WordPress.com leadership team traveled a collective 160 hours to meet in NYC. While there, we focused on identifying goals that answered the question: “If we did this in the next 90 days, would it be transformative to the business?” Everyone went home with a specific set of goals they own. Knowing what we’re trying to do and who is responsible for what are two key elements of delegation.

Additionally, I also encourage the team on a daily basis to:

  • Actively work together before they come to me. On a soccer field, the team would get nowhere if they had to ask the coach before every pass.
  • Come to me with “I intend to,” not “What should I do?” Actively acting on their own and reporting progress represents the highest level of initiative.

Ultimately, I should be the critical point of failure on very few things. When something comes up, there should be an obvious place for it within the organization.

Problem: Something is always on fire

I am a very “Inbox Zero” type of person. Running WordPress.com breaks my brain in some ways because there’s always something broken. Whether it’s bugs in our code, overloaded customer support, or a marketing email misfire, entropy is a very real thing in a business this large.

Even more astounding is the game of “whac-a-mole”: when making a tiny change to X, it can be difficult to detect a change in Y or take Y down entirely. There’s always something!

Solution: Focus on the next most important thing

When dealing with the constant fires and the constant firehose, I’ve found a great deal of comfort in asking myself: “What’s the most important thing for me to work on next?”

Leadership is about results, not the hours you put in. More often than not, achieving these results comes from finding points of leverage that create outsized returns.

At the end of the day, the most I can do is put my best effort forth.

Problem: We’re moving too slowly

By default, nothing will ever get done in a large organization. There are always reasons something shouldn’t be done, additional feedback that needs to be gathered, or uncertainties someone doesn’t feel comfortable with.

If you’ve gotten to the point where you’re a large organization—congratulations! You must’ve done something well along the way. But, remember: stasis equals death. Going too slowly can be even more risky than making the wrong decision.

Solution #3: “70% confident”

I think “70% confident” has been kicking around for a while, but Jeff Bezos articulated it well in his 2016 letter to shareholders (emphasis mine):

Most decisions should probably be made with somewhere around 70% of the information you wish you had. If you wait for 90%, in most cases, you’re probably being slow. Plus, either way, you need to be good at quickly recognizing and correcting bad decisions. If you’re good at course correcting, being wrong may be less costly than you think, whereas being slow is going to be expensive for sure.

In leadership, I find “70% confident” to be a particularly effective communication tool. It explicitly calls out risk appetite, encourages a level of uncertainty, and identifies a sweet spot between not enough planning and analysis paralysis. Progress only happens with a certain degree of risk.


I’m excited to start sharing what we’ve been working on. Stay tuned for new developer tools, powerful updates to WordPress.com, and tips for making the perfect pizza dough. If you’d like some additional reading material, here is a list of my favorite leadership books.

Original illustrations by David Neal.

Hot Off the Press: New WordPress.com Themes for February 2024

Posted by download in Software on 22-02-2024

The WordPress.com team is always working on new design ideas to bring your website to life. Check out the latest themes in our library, including great options for gamers, writers, and anyone else who creates on the web.


Spiel

This magazine-style theme was built with gaming bloggers in mind, but is versatile enough to work exceptionally well for nearly any type of budding media empire. Using a classic blogging layout, we’ve combined modern WordPress technology—Blocks, Global Styles, etc.—with a nostalgic aesthetic that hearkens to the earlier days of the internet.

Click here to view a demo of this theme.


Allez

Whether you’re a casual observer or a diehard rain-or-shine follower, fandom means a lot of things to a lot of people. Allez is a perfect theme to chronicle that part of who you are. Built with sports-focused content in mind, the layout, styling, and patterns used all speak to that niche. That said, WordPress is versatile enough that if you like the overall feel of Allez, it can easily be customized to your particular endeavor.

Click here to view a demo of this theme.


Strand

Strand is a simple newsletter and blogging theme with a split layout, similar to Poesis. We placed the newsletter subscription form in the sticky left column, so that it’s always visible and accessible. It’s a simple design, but one we really like for the minimalist writer who puts more emphasis on words than visual panache.

Click here to view a demo of this theme.


Bedrock

Inspired by the iconic worlds of Minecraft and Minetest (an open-source game engine), this blogging theme was designed to replicate the immersive experience of these games. While encapsulating the essence of virtual realms, we also wanted to ensure that the theme resonated with the Minecraft aesthetic regardless of the content it hosts.

At the heart of Bedrock is a nostalgic nod to the classic blog layout, infused with a distinctive “mosaic” texture. The sidebar sits confidently on every page and houses a few old-school elements like a tag cloud, a blogroll, and recent posts, all rendered with a touch of the game’s charm. If this theme speaks to you, give it a shot today.

Click here to view a demo of this theme.


Nook

Nook is another blogging theme that offers a delightful canvas for your DIY projects, delicious recipes, and creative inspirations. It’s also easily extensible to add paid products or courses. Our aim here was to create an elegant and timeless look with a sense of warmth and familiarity. The typography and color palette feature high-contrast elements that evoke coziness and comfort.

Click here to view a demo of this theme.


To install any of the above themes, click the name of the theme you like, which brings you right to the installation page. Then click the “Activate this design” button. You can also click “Open live demo,” which brings up a clickable, scrollable version of the theme for you to preview.

Premium themes are available to use at no extra charge for customers on the Explorer plan or above. Partner themes are third-party products that can be purchased for $79/year each.

You can explore all of our themes by navigating to the “Themes” page, which is found under “Appearance” in the left-side menu of your WordPress.com dashboard. Or you can click below:

Small Changes, Big Impact: A Look at What’s New In the WordPress Editor 

Posted by download in Software on 20-02-2024

The WordPress project team is continuously improving the Site Editor—your one-stop shop for editing and designing your site.

The latest batch of updates—Gutenberg 17.4 and 17.5—include a handful of small but powerful changes designed to improve both your WordPress experience and that of your site’s visitors. 

Let’s take a look at what’s new. 

More robust style revisions 

Image credit: WordPress.org

When you’re in the zone making changes to the look and feel of your site, you sometimes hit a dead end or realize that the version you had three or four font and color tweaks ago was a bit better. The updated style revisions pane gives you a robust, detailed log of the design changes you’ve made and makes turning back the clock easier with a one-click restore option to take you back to that perfect design.

Newly added pagination and more granular details make this feature even more powerful. 

You can access style revisions from the Site Editor by clicking the “Styles” icon on the top right of the page, and then clicking the “Revisions” clock icon. 

Unified preferences panel 

Image credit: WordPress.org

It’s now much easier to manage your site and post-editing preferences, which have been combined and enhanced in the latest update. In addition to familiar settings, you’ll find new appearance and accessibility options, and an “allow right click” toggle which allows you to override stubborn browser defaults. You can access your preferences by heading to the three-dot menu at the top right of the editor and clicking “Preferences” at the bottom. 

Randomized gallery images 

Video credit: WordPress.org

The Gallery Block’s always been a great way to show off a collection of photos or images. And now there’s a fun new setting to randomize the order in which those images appear every time the page or post is loaded by a new visitor. 

You can turn this setting on with a toggle found at the bottom of the block settings pane: 

Streamlined edits in List View 

Image credit: WordPress.org

Not everybody knows about the Site Editor’s List View, but it can make editing your site, posts, and pages significantly faster and easier. A new addition to the List View makes editing even more convenient: just right-click any item in the list to open up the settings menu for the selected block. 

Even small changes can make a big difference to your workflow, and your site visitor’s overall experience. 

We’d love to hear what you think about the new features when you’ve had a chance to take them for a test drive! 

WordPress 6.5 Beta 2

Posted by download in Software on 20-02-2024

WordPress 6.5 Beta 2 is now ready for testing!

This beta version of the WordPress software is under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, it is recommended you evaluate Beta 2 on a test server and site.

You can test WordPress 6.5 Beta 2 in four ways:

PluginInstall and activate the WordPress Beta Tester plugin on a WordPress install. (Select the “Bleeding edge” channel and “Beta/RC Only” stream).
Direct DownloadDownload the Beta 2 version (zip) and install it on a WordPress website.
Command LineUse the following WP-CLI command:
wp core update --version=6.5-beta2
WordPress PlaygroundUse the 6.5 Beta 2 WordPress Playground instance to test the software directly in your browser without the need for a separate site or setup. 

The current target date for the final release of WordPress 6.5 is March 26, 2024. Get an overview of the 6.5 release cycle, and check the Make WordPress Core blog for 6.5-related posts in the coming weeks for more information.

Catch up on what’s new in WordPress 6.5: Read the Beta 1 announcement for details and highlights.

How to test this release

Your help testing the WordPress 6.5 Beta 2 version is key to ensuring everything in the release is the best it can be. While testing the upgrade process is essential, trying out new features is equally important. This detailed guide will walk you through testing features in WordPress 6.5.

If you encounter an issue, please report it to the Alpha/Beta area of the support forums or directly to WordPress Trac if you are comfortable writing a reproducible bug report. You can also check your issue against a list of known bugs.

Curious about testing releases in general? Follow along with the testing initiatives in Make Core and join the #core-test channel on Making WordPress Slack.

Vulnerability bounty doubles during Beta 2

Between Beta 1, released on February 13, and the final Release Candidate (RC) scheduled for March 19, the monetary reward for reporting new, unreleased security vulnerabilities is doubled. Please follow responsible disclosure practices as detailed in the project’s security practices and policies outlined on the HackerOne page and in the security white paper.

Beta 2 updates and highlights

WordPress 6.5 Beta 2 contains more than 50 updates to the Editor since the Beta 1 release, including 40+ tickets for WordPress core.

Each beta cycle focuses on bug fixes; more are on the way with your help through testing. You can browse the technical details for all issues addressed since Beta 1 using these links:

A Beta 2 haiku

Help out with testing
Contribute! Make an impact
Let’s find all those bugs

Thank you to the following contributors for collaborating on this post: @dansoschin, @huzaifaalmesbah, @rajinsharwar, @swissspidy, @courane01.

WP Briefing: Episode 73: Inside the Interactivity API

Posted by download in Software on 19-02-2024

In the latest WordPress Briefing, Josepha Haden Chomphosy discusses the Interactivity API, a new foundational tool that helps developers create memorable interactive front-end experiences. She is joined by special guests and sponsored contributors Ryan Welcher and Mario Santos, who share more about this impactful addition to the WordPress developer experience.

Credits

Host: Josepha Haden Chomphosy
Guest: Mario Santos
Guest: Ryan Welcher
Editor: Dustin Hartzler
Logo: Javier Arce
Production: Brett McSherry
Song: Fearless First by Kevin MacLeod

Show Notes

Transcripts

[00:00:00] Josepha: Hello, everyone, and welcome to the WordPress Briefing, the podcast where you can catch quick explanations of the ideas behind the WordPress open source project, some insight into the community that supports it, and get a small list of big things coming up in the next two weeks. I’m your host, Josepha Haden Chomphosy. Here we go. 

[00:00:29] (Intro music) 

[00:00:40] Josepha: I have with me today a couple of guests, Ryan Welcher and Mario Santos, who have joined me to talk about the Interactivity API. This is an API that we’ve been working on for quite a while, and it’s a fascinating thing. It’s really specifically user-facing in its functionality but makes a lot of work streamlined for everyday developers, whether you are building something for yourself, for your family, or for a client. This whole project probably is gonna really speak to you. 

[00:01:10] Josepha: Hi, guys, and welcome to the show. First-time guests, both of you. Right?

[00:01:15] Ryan: Yes. First time for me.

[00:01:17] Mario: Thanks for inviting us.

[00:01:18] Josepha: Yeah. Well, why don’t you tell us a little bit about yourself, like your name, what you do with WordPress, how you contribute to the project, something like that?

[00:01:27] Ryan: I can go first. My name is Ryan Welcher. I’m a developer advocate and sponsored by Automattic. Then, I contribute full-time to the WordPress project by creating documentation, doing live streams, creating videos, and just generally trying to be helpful in in the space to help engineers and extenders work with the various APIs in WordPress.

[00:01:46] Josepha: I love the just generally trying to be helpful part. Mario, what about you?

[00:01:52] Mario: He really is. He really does it.

[00:01:54] Josepha: I know.

[00:01:55] Mario: I’m Mario Santos. I’m also a sponsored contributor, and I’m more focused on the project management and developer. I consider myself a mix of both. Right now I’m working on projects that are focused on improving the developer experience especially. That can go from the Block API to the Interactivity API; that is the topic today.

[00:02:16] Josepha: Very nice. Very nice. Just lots of helping that everyone’s trying to do. I think that’s a good thing.

So, we’re talking about the Interactivity API today. And, Mario, I believe it was almost a year ago that you first put this proposal out into the WordPress project. Do you wanna tell us a little bit about just, like, where the idea of this came from? Like, I know it wasn’t originally called the Interactivity API, but, like, what was you said you do some a bit of product, a bit of development. Like, what was it about this idea that was so important to you?

[00:02:48] Mario: Yeah. Sure. So, basically, well, the proposal came, like, one year ago, but it has been in the works, like, for many years, I would say. Just to give a bit more context, previously, before being a sponsored contributor, I was working at a startup called Frontity Framework, and we were building a React framework to enable rich user experiences on top of WordPress.

[00:03:13] Mario: So basically, it was a framework for headless WordPress. And at some point, we became sponsored contributors, the idea was to bring those user experiences to those rich and cool websites that lead to WordPress. So, you don’t need an external framework to create them, and you can do that directly in WordPress. So that’s where the idea of the Interactivity API comes from. From there, we started exploring different possibilities and tailoring it more to WordPress to ensure it works with its APIs.

And I think after many many months working on that, the Interactivity API is the result.

[00:03:54] Josepha: I just wanted to note that you started that answer with, like, the proposal was about a year ago, but the work had been happening for a long time. I think that’s generally true, and it’s not something that we always really acknowledge. This happens with patents also. This is going to be a strange tangent, but this is how we do in in my brain. This is how my brain works. So frequently, you’ll see a brand new product, but the patent for it was, like, 30 years beforehand, like, way before you ever see anything. And I think that’s kinda how this works also with software development. Like, the idea, has been going for a long time.

[00:04:27] Josepha: The problem was identified a long time ago. And by the time you see something that helps to solve the problem or bring a new set of features to you, like, you didn’t know, but it had been being worked on for, like, five years or something. And I think that’s such a fascinating thing. That’s always apparent to me, but I think it’s not really apparent for a lot of people in the, in I don’t know, who use software.

I was gonna say in the space, quote, unquote, but that’s not even it. Like, it’s the people who are using software. We don’t know how long anything’s been under development. We just know that at some point, a magical thing appeared, and we get to use it. 

[00:05:03] Josepha: So speaking of the problems that we have identified that we’re trying to solve with this. Like, was there an inherent problem that you all were trying to solve as you were coming up with this idea around the Interactivity API itself?

[00:05:16] Mario: I would say that trying to summarize it, it covers many things, but the main problem was that creating those kinds of interactions in the client was kind of difficult. You had to manage many things many tools, and each developer could come up with different solutions, and maybe they don’t combine well together. So, the idea is to provide an extended way so developers don’t have to take care of many things. They just have to take care of the interactions they wanna create. And ensuring that it works well with the WordPress way, it works well with the block system, and any block created with this Interactivity API can communicate with each other. You can combine those blocks, and you are not gonna encounter any problem. So, I would say that the main issue we were trying to solve is that there wasn’t a standard solution. There were different approaches taken by different developers, and that could create some issues. So, until now, Gutenberg has been mainly focused on the editor side and how blocks are created. And this is a first attempt to to cover the part of the front end, the interactions that users may want to create in the front end.

[00:06:31] Ryan: It solves a ton of problems. But, I mean, coming from someone like, I have a fair amount of agency experience. I’ve been, you know, you’re working on large projects. And every time someone solves a problem, they solve it slightly differently. And that’s problematic because you switch teams or, you know, someone else picks up the code base, and all of a sudden, now they have to learn your custom system that’s slightly different from the one that I built last week and the one that, you know, someone else built two weeks earlier. And this takes the guesswork out. It takes the sort of the plumbing out of the equation. One of the reasons I really loves working with WordPress when I started working with WordPress was that when I was building for clients, I didn’t have to worry about building the CMS. I didn’t have to worry about building a menu system or figuring out how to handle media.

[00:07:10] Ryan: I just had to do the things that that client was paying me to do. Like, I just had to make their site look the way that they wanted it to. And with the Interactivity API, I think there’s a bit of that where I don’t have to worry about figuring out how am I gonna get all these pieces to talk to each other on the front end. It’s all there. I just have to connect the dots, and it makes it very, very simple.

I’m building the site right now for a workshop that I’m gonna be giving a WordCamp Asia, which is a a shameless plug. Sorry.

[00:07:33] Josepha: Coming up so fast, y’all. WordCamp Asia is, like, two weeks away.

[00:07:37] Ryan: I’m so excited. I have so much work to do.

But I’ve built an entire voting system on a website where people can pick what we’re going to be talking about in my workshop, and I built it in the Interactivity API, and it took me, you know, probably five hours. And that’s me trying to learn some things and mess around with it. And to do that without the Interactivity API would have probably been an entire React-based, you know, completely outside of WordPress. I would have loaded one thing on the page and had it build out my whole application, and now I’m doing it with blocks and I’m doing it with a block theme. So if I wanna move those blocks around. I can move the blocks around. I can change anything that I wanna change inside of WordPress the way I would normally, and all that in interactivity just still works. And that’s It’s awesome. I just I love it. I can’t like, the Interactivity API, not my website. 

[00:08:26] Josepha: But also both. Like, it can be both. 

[00:08:28] Mario: I wanted to say that I think it’s a great point. I like to think about it like having the best of both worlds. Right now, we have modern frameworks like React, Vue that are used to create these cool websites.

And I think the Interactivity API plus WordPress brings everything together. Like, you can create those cool user experiences while keeping the full power of WordPress, its management system, the Block editor, and to be honest, I don’t think there’s anything like that out there. Like having the best of both both worlds because we are still working with blocks, and that’s amazing. 

[00:09:04] Ryan: Given that it’s still, it’s not even been released yet. Like, it’s coming very soon. But.

[00:09:08] Josepha: Yeah. This is all still in the Gutenberg plugin. So, like, if you don’t know what we’re talking about, get the Gutenberg plugin.

[00:09:16] Ryan: But just how mature the API is now, considering it is still kind of not even fully released, it’s only gonna get better? I just think it’s awesome.

So, kudos to Mario and your team for doing all this stuff.

[00:09:28] Mario: Thank you. Kudos to everyone involved.

[00:09:32] Josepha: So, I’ve a question that I think probably, Ryan, you can start with, but then also probably, Mario, you’re gonna have some opinions on also. In this conversation so far, we’ve done a lot of, like, when you want to have these interactions and also when you want to have these cool experiences. For folks who actually do not know what the Interactivity API is yet, and they don’t know what we’re talking about when we say these interactions like, what exactly are we talking about from a user perspective?

Like, what types of things will users be able to see when they are experiencing the Interactivity API’s features and functionality.

[00:10:07] Ryan: I think it’s a great question. From a user standpoint, it’ll just look like your regular website, I think. Depending on what you’re doing. So, like the interactions that we’re talking about is when you’re in the browser and you wanna click a button and expand something, for example, or you wanna click an image and have the lightbox pop-up, which is in core now, that’s driven by the Interactivity API, but these interactions are basically when a user wants to interact with something, what it does. That’s a really generic way of saying it. 

[00:10:34] Josepha: Our current favorite example and, Ryan, it sounds like you also have another example. But our current favorite example is like a movie collection site, you know? And so, like, when we’re talking about what the Interactivity API is going to power, it’s things like, when you favorite a series of movies, and then you can, and it just updates that on the fly, and you’ll be able to in essentially real-time as instant as reasonably possible based on your computer and stuff.

[00:11:03] Josepha: Like, then look at your list of things that you favorited or things like that. Like, for folks who don’t understand interactive site like, all of us know that that, like, if you get on a site, you have interacted with it. But when we’re talking about Interactivity API, we’re talking about types of direct actions users can take. Right? 

[00:11:19] Mario: I would say yes.

They are just only triggered by some actions. It could be scrolling, clicking, or, or whatever. But, it can go from a simple example like drop down or a popover to more complex things like the movies demo, where you can navigate and the page is not reloading, and that allows you to play a trailer. It starts in a pop-up, and you can keep navigating through different pages, and the trailer keeps playing without reloading. Another example could be instant search; like you start typing the search, and it directly updates the list of films, in this case, that are shown, those kinds of things that happen In the browser. 

[00:12:00] Josepha: And Ryan said you, you said that you, like, built a whole survey system, A whole polling system. 

[00:12:06] Ryan: Yeah, a voting system. So there’s a series of buttons, each one representing a certain topic, and people can vote, and it tallies the amount. So each, I’m calling them recipes, has amount of time associated with it, and then so you vote until you run out of time, at which point, like in its tracking it all, and it’s showing you how much time you voted, how much is left, and once you’ve run out of time it blurs like it disables all of the voting buttons so you can’t add more because you run out of time.

[00:12:30] Ryan: So if you remove one, you can add again. It’s very, very powerful. And, like, before the Interactivity API, you would have to have, I would have built that whole thing in React, and it would have been one single application that just get loaded on a page. And I just think it’s amazing. And, like the, the ability to create what are called, like, single page applications or what have always sort of been called SPAs or single page applications where you’re not reloading the browser every single time you click on a link.

You have to do some things to make that work, but that’s just available to you and in WordPress. That’s amazing. I just think that’s so neat. I mean, it’s already powering things like the Query Loop block has the ability to move pagination without reloading the page, which is, sounds like a sort of a like a okay, great, like sort of, you know, mundane thing but imagine you had two or three different query loops sitting on your homepage and you wanted to be able to paginate through each one and not refresh the page. That’s a fantastic user experience that now is just enabled and otherwise was not possible prior to the Interactivity API.

[00:13:28] Josepha: I feel like the Query Loop block was, like, a three-year project four years ago. And I had forgotten about it, which is surprising because I was so concerned with it when we were working directly on it all the time. But yeah. Yeah. That’s exactly the kind of example. 

So we’ve talked about kind of the user thing and people who are gonna build stuff for clients. But, like, if you’re a contributor and you want to figure out more about either how to use this or how to expand on what is already there.

[00:14:01] Josepha: We already talked about how it’s in the Gutenberg plugin. It’s kind of experimental over there. But, like, do you all have like, good first bugs? Things that can be worked on in there? Or is there, like, an experiment zone where people can just be like, this is what I tried with the Interactivity API until it broke? How do people work with that?

[00:14:20] Mario: I would like to clarify first, it’s right now, it’s private in, it’s a private API in WordPress core in 6.4, And it’s public in Gutenberg, but it’s gonna be a public API already in WordPress 6.5. So, yes. Anyone can start testing it.

The best way to get involved is first sharing what interactions you want to see. I mean, everyone has different ideas, and we will love to know the interactions that people want to create using the Interactivity API, so that would be the first step. Then, test it, create your own blocks or site, and send feedback what do you like what you don’t like. Raise issues, and for that, we are mainly using GitHub. We created a new category in GitHub in the Gutenberg plugin discussions, and we try to to keep everything there.

[00:15:13] Mario: So if you have any questions any feedback, you can share it there. You can also find more discussions about the road map, the change log, many things that are going on right now. And, yeah, I would say those are the ways of getting involved, and I can also expect, maybe Ryan can tell you more here, to start working more on tutorials or videos or whatever. And for me, personally, I would love to see the community working on that as well.

[00:15:43] Ryan: Yeah. I can, yeah. I think that from a contributor standpoint, especially those who are trying to get into contributing, because, I mean, it’s not not complicated. Let’s put it that way, like the Interactivity API. And that’s not meaning to be a barrier to anyone, but a great place to start is documentation. A great place to start is going through those docs and making sure they’re up to date and, you know, saying, oh, well, that’s supposed to do this, so let me go try that. And if it works, great. If it doesn’t, you know, file a bug, update the documentation, that’s a great way to get started. It’s gonna familiarize yourself with the code base and what it’s supposed to do. And then, sort of, just through osmosis, you’ll start to pick up more about it. And for anyone starting to contribute to the WordPress project in general, I would say starting with documentation or unit testing is a really, really great way to kinda, dip your toe in the water and not feel too frustrated. And tutorials and demos and show us what you’re building. We wanna see it. I mean, send it to me, and I will show everyone that I know.

[00:16:40] Ryan: I mean, we wanna see what what people are building with it and because, you know, just like WordPress, I always use this example, but, like, people used to hack WordPress until we got a hook added for that particular thing that they were adding. So, if we don’t know what people are building or wanting to build with it, we can’t make those things happen. So knowing what people are building, how they’re building, and what they can’t build, what they’re running into, what issues they’re running into is the best way to contribute. So, so people smarter than me can build it for you. 

[00:17:08] Josepha: I love that call out, frankly.

So there’s, you know, the theory of tech adoption. And for things like the Interactivity API where we’re still kind of in the early adopter phase like, Ryan, you’re an early adopter. You’re doing everything you think you want to be able to do until it breaks. And, like, I love, like, test it till it fails as a concept of how to get involved in something because, like, you’re just experimenting, and we encourage experimentation in open source and in open source software and certainly in WordPress. And so, like, it is an unusual thing to think of, like, the best way that I can give back to this project, that I can contribute to this project and make sure that it continues to succeed long term is by using it until the wheels fall off and then tell people what made the wheels fall off.

Like, that is a change in thought, But you’re right. Like, it’s a very old school open source idea to just get in there and see where it breaks, and tell us. That’s it. That’s all we need. And I love it.

[00:18:08] Josepha: But I just passed my 9-year anniversary being a sponsored contributor, and I was in WordPress for a little bit before it. And so, like, I’m officially the old guard of us, and so the fact that I’m, like, so excited about the fact that people are gonna come in and break Mario’s stuff. Mario, don’t be scared. It’s how it works. But also, like, I do find that very exciting.

[00:18:31] Mario: I’m willing to see how people break things; that’s what we need. I totally agree with your reasoning.

[00:18:38] Josepha: Exactly. So I do have kind of, just, like, a final question for y’all. If there were one thing that you wanted the people who are listening to the WordPress Briefing to know about the Interactivity API, like a hidden gem, a little secret trick. Like, what would it be?

[00:18:57] Mario: For me, the most exciting part of the Interactivity API is the functionality the client-side navigation enables because there are many, many things there. And I’m sure that there are many things we haven’t thought about yet, and the community will come up with some ideas and that would be amazing.

[00:19:17] Ryan: For me, the thing is, I love how integrated it is with WordPress, and I know a lot of thought has gone into that without getting too into the weeds. The reasons the decisions that were made were made was so all the hooks and filters and all that goodness that we’ve had for 20 years is still gonna work. And with the HTML API, the tag processor stuff that’s going on behind the scenes, it’s just so cool. It works so well with WordPress. It just works and that’s probably it for me.

When I work with it, I’m not having to do any weird janky filtering or stuff that, like, you know, the things that I want to do are not hindered by the Interactivity API. The rather, I’m able to do more things because of it.

[00:19:58] Mario: I prefer Ryan’s answer.

[00:20:00] Mario: It’s something really important and it’s something we usually take for granted that it just works with WordPress APIs and the Block Editor, but if you think more about it, it’s amazing. Like, It’s what makes it really powerful, I I believe.

[00:20:15] Josepha: For what it’s worth, I think that’s true for a lot of, like, the R&D type things that we’re working on in the project right now. Right? Across Our ecosystem, like WP Playground. It is mind-boggling how progressive that is as a concept, and we currently have, like, you know, 25 ideas about what we could do with it, and we’re currently working on, like, five because we’ve got two and a half developers on it or something.

But, like, the expectation that it will just work is there for everybody who has, is not part of the R&D process, but for everyone else who’s, like, been watching its development over time, shocking. Shocking that it works at all. Not because it wasn’t supposed to work, but because, like, if someone had asked you five years ago if it was gonna be possible to run WordPress development environments locally and then also just export it and import it into whatever host you want. Like, without a host, without a server, we would all think that you were nuts. 

[00:21:22] Josepha: Amazing what’s happening there and, like, some of the things that we’re seeing, people who are, like, researching with AI in the WordPress space doing? Equally shocking. All of these things. Like, had you said anything to me about it five years ago, I’d be like, well, that is a mystery. So, every once in a while, I do have wild ideas about things that I wish we could do with our software. And so yesterday, I went and looked at a prototype for something that someone built based on a wish that I had in 2019. In 2019, I was like, you can play Skyrim on an Amazon Dot using just your voice. So like, why can’t we build a website?

[00:22:01] Josepha: And then in 2021, someone prototyped that for me. It was ridiculous. It was very bad. It was hilarious. But, also, like, it took 35 minutes to create a ‘Hello world’ page, which was ridiculous.

And now, like, what we’re looking at, the research that I keep seeing from that AI space is people saying, like, I’m gonna put in a plain text prompt. I need a website as a yoga instructor who also makes custom hats. Right? And then, like, poof. You have this thing that kinda looks like a website with your basic functions and features using the blocks that we have created for WordPress. Like it’s fascinating how far it’s come. And that’s in 2021. It was literally impossible the last time that I was talking about it with anyone, equally literally impossible. Everyone’s like, plain language prompts for stuff, like that is just a pipe dream. Get away from us.

And now I keep seeing, like, these demos of the research, and it’s not as far away as we all thought it was. For all these things, Playground, Interactivity API, The AI research is being done. Like, we’re just a walking R&D group over here in WordPress, and I love it. It’s fascinating. We’re just making the impossible possible every day, and I think that’s really cool.

[00:23:16] Ryan: So cool.

[00:23:18] Josepha: Sorry. I got really sidetracked. Do y’all have anything that you wanted to be sure to share about either the Interactivity API or anything that’s coming up? Something you wanna make that our listeners know? 

[00:23:29] Mario: I would just like to emphasize that we love feedback. Please share your feedback. If you test it, yeah, if you think it’s bad feedback, share it with us as well.

That’s especially the feedback we like. I don’t like this part. That’s great. We we want to know because the idea is that it serves all purposes for this kind of interactions. 

That nothing new, but I would like to emphasize that part.

[00:23:56] Josepha: You know what? There’s nothing new under the sun. It’s fine. You’re good. You should always tell people what you need.

[00:24:01] Ryan: If you’re interested in getting started with the Interactivity API and just don’t have any idea where to begin, there’s actually a pack there. There’s a Create Block template. So the Create Block package allows you to to quickly scaffold blocks.

And there’s a template that’s part of the Gutenberg repository. It’s been published on it and NPM. And it will scaffold a very simple block out for you and it’ll give you, it’ll show you all the plumbing and how all the pieces work together. So, I think that’s a fantastic place to get started. It’s a very simple block. It just basically shows and hides a message, but it’s all done via the Interactivity API, but it’s a really, really great sort of, like, like, ‘Hello world’ style. I’m gonna shamelessly self-promote myself at WordCamp Asia. I’ll be at WordCamp Asia this year doing a workshop where I will be doing some stuff with your Interactivity API. But, if you’re there and you wanna chat more about the Interactivity API, I am all ears, and I love talking about this stuff.

[00:24:51] Josepha: Cool. Ryan, Mario thank you so much for joining me today. This has been a wonderful conversation.

[00:24:58] Ryan: Thank you.

[00:24:58] Mario: Thank you.

[00:25:01] Josepha: So I hope that you all find that whole project as fascinating as I find it. The Interactivity API is, I know, something that we’ve kind of been talking about for a while. It showed up specifically in State of the Word, and it’s hard to understand how important, how vital that work is going to be until you really get your hands on it.

So I recommend you get in there. You take a look at it. I think also Ryan has a few live streams that he does, and he’s planning on a couple for the Interactivity API coming up. And so just keep an eye out for all of that as we go. 

[00:25:37] (Music interlude)

[00:25:49] Josepha: Now that brings us to our small list of big things.

Today, it’s a bunch of feedback and documentation. So, first things first. Did you know that the Documentation Team holds an online monthly Contributor Day on the fourth Tuesday of every month. It’s just an online docs day, and I love it. So, the next one that’s coming up is February 27th. We’re looking for folks to help. So show up, figure out how to get some docs done, and make the WordPress project easier to follow, one bit of documentation at a time. 

[00:26:16] Josepha: The next thing that I have is a request for feedback. So, we announced in December that we have a new centralized WordPress events landing page on WordPress.org, and we wanted to give more visibility to all kinds of WordPress events across the globe. But as always, we really could use your feedback about what is useful for you, what you had hoped to see, what you didn’t see. So, leave your comments with any relevant feedback about how you would improve those pages and the text on it. If you’re missing anything relevant, if there are ideas that you have for what could be there, all ideas are welcome. 

And then, the third thing that I have on our list today is another documentation thing. So, over the last year, a group of contributors have been working to improve the block development onboarding experience within the Block Editor handbook. That contains over 400 published pages, and the effort in 2023 to kind of overhaul that and make it easier was just the beginning. So, it’s a daunting task. It’s big. It’s complex, but improving documentation is one of the easiest ways to contribute to the WordPress project, especially If there are just quick fixes like typos or formatting. Feedback on the existing content, such as the new block tutorial, is invaluable. And so, if you have not taken a look at those yet, wander over to the show notes, click a link or two, take a look, get some feedback to us. 

[00:27:41] Josepha: And that, my friends, is your small list of big things. Don’t forget to follow us on your favorite podcast app or subscribe directly on WordPress.org/news. You’ll get a friendly reminder whenever there’s a new episode. If you like what you heard today, share it with a fellow WordPresser. Or, if you had questions about what you heard, you can share those with me at WPBriefing@WordPress.org. I’m your host, Josepha Haden Chomphosy. Thanks for tuning in today for the WordPress Briefing, and I’ll see you again in a couple of weeks.

[00:28:09] (Music outro)

2023 Annual Survey Results and Next Steps

Posted by download in Software on 14-02-2024

Each year, WordPress seeks to collect high-level data about trends and themes across the vast ecosystem of users, site builders, extenders, and contributors to help inform decision-making and provide valuable feedback on the project’s status. 

For 2023, the survey process was updated to enhance accessibility, usability, analysis, and multilingual support. Additionally, a few questions were replaced or updated to ensure the survey captures relevant data on current and future WordPress topics.

The data collected is used as one of many signals that inform the project’s road map and areas of focus, both near and long-term.

Highlights from 2023

Overall, awareness and/or use of block-based features is up year over year, as well as resources such as Learn.WordPress.org. This reflects project-wide efforts to increase utilization of these, respectively. However, positive sentiment about WordPress is down modestly, and a bit more so among contributors. The analysis of the annual survey highlights certain areas that could benefit from increased attention in 2024.

Here are the highlights split into three parts, logistics, general trends, and contributor sentiment.

Logistics

  • Completions were up 17% in 2023, though short of a goal to double them, despite increased promotion and partnership with some hosting partners.
  • The Polyglots team translated the survey from English into 9 different languages, the most ever for the survey.
  • Debuted a new platform, Alchemer, for improved accessibility, usability, data collection, administration, and analysis. 
  • The completion rate increased again from last year’s high of 63% to 79% in 2023, proving that investing some time in the new platform and clarifying wording was well worth it.

General trends

  • NPS was 30.1 overall, with contributors at 27.9 and non-contributors at 32. The NPS has trended downward since 2021, when it was 45. 
  • 60% of respondents indicate usage of Gutenberg, 8% are unsure, and 12% use something other than Gutenberg and/or the Classic Editor. This is up from 2022 (54%).
  • 45% of respondents indicate that the WordPress Site Editor meets their site-building needs, 26% are indifferent, and 29% disagree.
  • 61% of respondents indicate familiarity with block themes and plugins. While this question was not asked previously, in 2022, 53% said they had used blocks
    “In the new site editor.”
  • Security, performance, and stability were the top three critical areas respondents considered when building their website, plugin, theme, or style variation.
  • 63% agree that WordPress is as good or better than other CMSs, down from 68% in 2022
  • Respondents indicated that the best things about WordPress are that it is open source, has ample plugin options, incorporates good customization, is easy to use, and offers flexibility. This is similar to 2022.
  • Limitless configurations, performance, scalability, accessibility, integration, hosting, and support all saw 100% or more increases compared to 2022 regarding favorite things about WordPress.
  • Respondents cited “too many plugins,” “the site editing experience,” “security,” and “performance” as the top four worst things about WordPress. Most interestingly, though, 16% indicated that none of the 20 topics were terrible, and there was a 43% decrease in the number of people indicating that “site editing is difficult to learn.”
  • Search engines and YouTube continue as the two most common resources for finding information about WordPress, while those writing about WordPress, in general, saw a sharp decline year over year.

Contributor sentiment

  • 58% of self-identified contributors to WordPress said they agree with the project’s roadmap plans for “Phase 3” and “Phase 4” as a good plan to enhance the WordPress experience for developers, creators, and publishers alike.
  • While about one-third of respondents indicated they contribute to the WordPress project, only about half knew how to get involved, knew about WordCamps and meetups, understood the difference between WordPress.org and WordPress.com, and knew the benefits of open source. 
  • Of 22 topics, the distribution of the top three things that WordPress needs to focus on from the perspective of contributors was broad, with only a 13.5% raw percentage point (1350 basis points) difference between performance (18.6%) in first position and collaborative editing (5.1%) in 22nd position. This shows a need for more consensus among contributors regarding where to focus resources and/or illustrates that the project has many essential elements with passionate supporters.
  • Fewer contributors had a positive experience in 2023 (55%) versus 2022 (64%).
  • Similarly, the feeling of being welcome in the WordPress community among contributors decreased to 57% versus 64% in 2022.
  • Furthermore, contributors feel appropriately recognized less in 2023 (46%) than in 2022 (51%).

Bringing it all together

The 2023 annual WordPress survey participation and results highlight the possibility of survey burnout within the WordPress community and some declining overall satisfaction among contributors. There is an opportunity to increase awareness regarding critical initiatives such as WordCamps and other resources for WordPress users and contributors alike, and to increase messaging on improvements made within the project to the CMS.

What’s planned for 2024

In the next iteration of the survey, the plan is to improve the survey’s questions further to ensure they continue to provide valuable insight into the project’s trends. This means some questions will be replaced while others might be refined.

Additionally, plans are being explored to distribute and promote the survey at each of the three annual flagship WordCamps, (Europe, U.S., and Asia). This would be in contrast to a single yearly survey. More exploration on this topic will take place in the months to come.

View the 2023 Slide Deck

View a web-based version of the results. Note, this link may expire in the future.


Thank you to @dansoschin for the analysis and editorial support. Thanks also to @angelasjin, @eidolonnight, and @cbringmann for their reviews and final edits.

WordPress 6.5 Beta 1

Posted by download in Software on 13-02-2024

WordPress 6.5 Beta 1 is ready for download and testing!

This beta version of the WordPress software is under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, you should evaluate Beta 1 on a test server or site.

Test WordPress 6.5 Beta 1 in four ways:

PluginInstall and activate the WordPress Beta Tester plugin on a WordPress install. (Select the “Bleeding edge” channel and “Beta/RC Only” stream).
Direct DownloadDownload the Beta 1 version (zip) and install it on a WordPress website.
Command LineUse the following WP-CLI command:
wp core update --version=6.5-beta1
WordPress PlaygroundUse the 6.5 Beta 1 WordPress Playground instance to test the software directly in your browser without the need for a separate site or setup. 

The current target date for the final release of WordPress 6.5 is March 26, 2024. Your help testing this version is key to ensuring everything in the release is stable.

Get an overview of the 6.5 release cycle, and check the Make WordPress Core blog for 6.5-related posts in the coming weeks for further details.

How to help test this release

Testing for issues is a critical part of developing any software, and it’s a meaningful way for anyone to contribute—whether or not you have experience.

If you encounter an issue, please share it in the Alpha/Beta area of the support forums. If you are comfortable submitting a reproducible bug report, you can do so via WordPress Trac. You can also check your issue against a list of known bugs.

Curious about testing releases in general and how to get started? Follow along with the testing initiatives in Make Core and join the #core-test channel on Making WordPress Slack.

WordPress 6.5 will include many new features previously only available through the Gutenberg plugin. Learn more about Gutenberg updates since WordPress 6.4 in the What’s New in Gutenberg posts for versions 16.8, 16.9, 17.0, 17.1, 17.2, 17.3, 17.4, 17.5, 17.6, and 17.7 (scheduled for release on February 14).

WordPress 6.5 Beta 1 contains approximately 681 enhancements and 488 bug fixes for the editor, including about 229 tickets for WordPress 6.5 Core.

Vulnerability bounty doubles during Beta 1

The WordPress community sponsors a monetary reward for reporting new, unreleased security vulnerabilities. This reward doubles during the period between Beta 1 on February 13 and the final Release Candidate (RC) scheduled for March 19. Please follow responsible disclosure practices as detailed in the project’s security practices and policies outlined on the HackerOne page and in the security white paper.

Discover what’s on the way in WordPress 6.5

This year’s first major release will add finesse and fine-tuning to how you control your site-building experience, with lots to explore specifically for developers. You’ll find more ways to manage your fonts and styles, notable upgrades to synced patterns, a collection of Site Editor and performance updates to help you get things done, and new ways to leverage design tools in Classic themes.

WordPress 6.5 will include breakthrough foundational APIs that will start to transform how you use blocks to build memorable experiences. This release invites you to dig into these early-stage frameworks, discover how you’d like to see them evolve, and have an impact on their future improvements and capabilities.

Excited yet? Keep reading for some highlights.

Meet the Font Library

Initially slated for release in WordPress 6.4, the Font Library is one of those great things worth the wait. It gives you new capabilities for efficiently managing a vital piece of your site’s design—typography—without coding or extra steps.

With the Font Library, you can handle fonts across your site regardless of your active theme—much like how you manage assets in the Media Library. You can install local fonts or Google Fonts, and it’s easily extensible, with the ability to add your own custom typography collections.

Synced patterns get an upgrade

Synced patterns bring efficiency to the design process, letting you make global changes to particular layouts with minimal effort. However, there’s often a need to make contextual changes when it comes to content.

WordPress 6.5 introduces new enhancements to synced patterns that let you override the content in each specific instance. You can choose what content can be updated within a synced pattern—while maintaining the design and layout you’ve already created. Use it for templated pieces like recipes, testimonials, or case studies that use recurring elements to frame unique content. 

This major release will introduce overrides for the Paragraph, Image, Heading, and Button blocks, with support for more blocks to come as work on synced patterns continues.

Connecting blocks and custom fields or other dynamic content

WordPress 6.5 will finally make it possible to connect core block attributes to custom fields. This capability lets you use the value of a custom field without creating custom blocks. For example, a digital publication could use custom fields with Paragraph and Image blocks. It could pull information from its individual staff writer profiles to dynamically display on its team page, like headshots and names.

The Block Bindings API powers this functionality and is designed to be extensible enough for developers to connect blocks to any dynamic content—not just custom fields. If your data is stored elsewhere, you can easily point blocks to that new source with only a few lines of code.

This is the first step in a larger project to simplify how custom fields and other dynamic content are managed.

The Interactivity API gets baked into Core

What started as just a taste in WordPress 6.4 with the lightbox feature for images is officially making its way into Core. The Interactivity API is a new framework that offers developers a standardized method to bring interactive front-end experiences, or interactions, to blocks. It aims to simplify the process, with less dependencies on external tooling, while maintaining optimal performance.

Interactions create engaging user experiences, whether showing new comments or fetching search results without reloading a page, allowing visitors to interact with content in real time, or incorporating effects like countdowns and transitional animations that surprise and delight. Check out this demo site to get a taste of what this framework can do.

6.5 is just the beginning of bringing this developer experience into Core. Find out how you can follow along with the work or lend a hand and test more features.

Get more from your revisions

Revisions are the markers of progress. For creative projects, they’re also a welcome fallback when you’re working through a new design or concept. This release brings more detail to your style revision history in the Site Editor.

Style revisions in 6.5 present a more detailed picture of your work, with design updates like time stamps, quick summaries that outline changes, and the ability to see a full list of revisions made—not just the previous 100. View revisions from the Style Book to see changes that aren’t reflected in the template you’re working on. Style revisions are also newly available for templates and template parts, giving you a broader view of your site’s changes.

Expect to see more work happening to expand and improve revisions across the WordPress experience. It’s a foundational part of the collaborative editing and workflows focus of the Gutenberg project’s Phase 3.

Classic themes can opt into appearance tools

As the design experience in Block themes evolves and improves, many of these upgrades are also available for Classic themes. Theme authors can choose to add support for appearance tools to any Classic theme—even without the use of theme.json. Opting in gives designers and site creators using Classic themes access to a varied set of design options, from spacing and border controls to typography and color options.

Switching themes can feel like a big undertaking, and for folks who aren’t ready to jump into the flexibility of Block themes, these pathways to adoption can help ease that tension. Once a Classic theme gets initial support for appearance tools, more design options will be automatically added as they become available.

More design tools are on the way

Each WordPress release brings more thought and attention to the way you can create with the Site Editor. The latest improvements to the design experience help bring your creative vision to life:

Site Editor updates to streamline your workflow

Bring ease and simplicity to your site-building process with the latest advancements to the Site Editor’s capabilities, from important interface improvements to upgraded tools.

Going beyond Group blocks, you can now rename every block in the List View. You can also rename or duplicate individual patterns to help keep them organized. Other notable UI improvements add access to your block settings with a quick right-click from List View, adjust preferences with consolidated settings in the Editor preferences panel, and the ability to use the block toolbar on hover when you’re in Distraction Free mode.

You’ll also notice a cleaner and more unified link-building experience that improves link controls, making it easier to create and manage links in various blocks.

This release has a bounty of drag-and-drop enhancements to make your editing experience feel more intuitive. You’ll notice helpful visual adjustments, like displaced items in List View when you drag them around to reorganize. You’ll also find that you can drag and drop anywhere you’d like in the Editor, from the very beginning to the end of you workspace.

New Data Views in the Site Editor

Every piece of your site comes with a library of information and data. Organizing it, finding what you need, and making informed changes should be as effortless as your site editing experience.

WordPress 6.5 includes data views for pages, templates, patterns, and template parts. You can view data in a table or grid view, with a new UI for toggling fields and making bulk changes. It’s a refreshing and feature-rich experience that leads the way for the upcoming Admin Redesign project on the WordPress roadmap.

Plugin dependencies improve the plugin experience

WordPress 6.5 improves how users manage plugins that require other plugins. Plugin authors can supply a new Requires Plugins header with a comma-separated list of required plugin slugs from the WordPress.org Plugins repository, which will present users with links to install and activate those plugins first.

Required plugins must remain active and installed for as long as plugins that require them are active and installed. If any required plugins become inactive or uninstalled, the plugins that require them will be automatically deactivated.

Big performance gains across the editing experience and more

WordPress 6.5 contains more than 110 performance-related updates, including an impressive increase in speed and efficiency across both the Post Editor and Site Editor. Loading is over two times faster than in 6.4, with input processing speed increasing to nearly four times faster than the previous release. You’ll also find yourself navigating through the Site Editor six times faster than before.

The loading time for translated sites gets a boost due to merging Performant Translations into Core. This greatly improves the load time of translated sites across the board by loading multiple locales simultaneously, making switching between them a faster and more enjoyable experience.

Accessibility highlights

Ensuring that WordPress remains highly accessible is crucial for its success and fulfilling the mission of democratizing publishing. With this in mind, 6.5 will ship more than 65 updates to improve accessibility throughout the platform. These updates include fixes to contrast settings, cursor focus, submenus, positioning of elements, and more. For more information on specific tickets and improvements, please visit WordPress Trac and GitHub for Gutenberg.

Please note that features highlighted in this post are subject to change before the final release.

Just for you: a Beta 1 haiku

Freedom to publish
Blocks, fonts, patterns all around
Design as you wish

Thank you to the following contributors for collaborating on this post: @dansoschin, @rajinsharwar, @webcommsat, @courane01, @hellosatya, @bph, @greenshady, @richtabor, @priethor, @annezazu, @joedolson, @santosguillamot, @cwhitmore, @costdev, @ehtis, @huzaifaalmesbah, @audrasjb, @get_dave.