WP Briefing: Episode 78: Guided Growth: Cultivating Contributors Through Mentorship

Posted by download in Software on 29-04-2024

Explore the transformative world of the WordPress Contributor Mentorship Program with guest host Angela Jin and special guest and sponsored contributor Hari Shanker. Whether you’re a long-time WordPress enthusiast or new to the scene, this episode is packed with insights, stories, and tips to help you engage more deeply with one of the most passionate open source communities.

Credits

Guest host: Angela Jin
Guest speaker: Hari Shanker
Editor: Dustin Hartzler
Logo: Javier Arce
Production: Brett McSherry and Nicholas Garofalo
Song: Fearless First by Kevin MacLeod

Show Notes

Transcript

[00:00:00] Angela: 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 insights into the community that supports it, and get a small list of big things coming up in the next two weeks. I am your guest host, Angela Jin.

Let’s go! 

[00:00:30] (Intro Music) 

[00:00:40] Angela: I am delighted to be guest hosting this episode of the WordPress Briefing and to talk about the Contributor Mentorship Program, a community-driven initiative in the WordPress space that is proving to really support contributor journeys. And joining me today is special guest, Hari Shanker, Five for the Future Program Manager. Welcome, Hari!

[00:01:02] Hari: Thank you, Angela. Excited to be here.

[00:01:04] Angela: Now, before we dive into the Contributor Mentorship Program, can you first tell me a bit about yourself? I’d love to know a bit more about your role as Five for the Future Program Manager.

[00:01:16] Hari: Sure. So, my name is Hari Shanker. I live in India in a city called Kochi. And I’d like to share some context to explain what I do. I am a sponsored contributor working full-time on WordPress, and I have been contributing primarily to the WordPress Community Team full-time since April 2020, where I am a Community Program Manager, formerly known as a Super Deputy.

Since September 2022, I have been working exclusively on projects that bolster the WordPress contributor experience. A key part of this work is my role as the Program Manager for the Five for the Future program, where my day-to-day work involves supporting and empowering companies and individuals that have pledged a part of their time to contribute to WordPress.

[00:02:00] Hari: In parallel, I also lead the Contributor Working Group of the WordPress Community Team, which has the goal of making the contributor experience in WordPress the best it can be. Our recent focus has been on running an experimental contributor mentorship program as well. 

[00:02:16] Angela: Excellent. Thank you. So, I was recently at Open Source Summit, and figuring out funding and commitments to projects was a very hot topic. And people were really interested in Five for the Future. And so, Hari, would you mind giving us a quick overview of what Five for the Future is, and how it aims to support the WordPress open source project?

[00:02:44] Hari: Absolutely. The Cofounder of WordPress, Matt Mullenweg, launched Five for the Future in 2014 as a call to action for organizations and individuals who have benefited from WordPress, either the CMS or the community, to contribute up to 5 percent of their resources to the continued success of the WordPress project.

[00:03:03] Hari: In 2019, this idea was formalized as a program with a pledging page that lives in the URL WordPress.org/five. Right now, this program attempts to foster generous collaboration towards the long-term health and stability of our project for the future. So, like any large and successful open source project, WordPress has a lot of big goals and tasks, not all of which can be accomplished by volunteers in that available time.

Here’s where sponsored contributors come in. Sponsored contributors have more time, availability, and bandwidth to make an impact on a lot of these tasks. They also work on some routine but important administrative and housekeeping tasks that are essential to keep the project running smoothly. At this time, the program has 868 contributors from 183 companies, who have pledged 7,722 hours of contribution time per week for the program. I can also share that roughly 70% of contribution activity in WordPress is coming from these sponsored contributors. That is the Five for the Future program in brief.

[00:04:15] Angela: Thanks, Hari. That’s incredible that so much of our contribution comes through sponsored time and clearly is very necessary to keep the WordPress open source project running. Wonderful. All right, well, I would love to dig into the Contributor Mentorship Program. Can you tell us a bit more about how this came to be? What is the Contributor Mentorship Program?

[00:04:41] Hari: Oh, absolutely. It is one of my favorite programs and one of the best things that I’ve worked on personally. So, the Contributor Mentorship Program aims to onboard new contributors to WordPress by providing them one-on-one and cohort-based mentorship for a period of typically four to six weeks. The mentorship program typically coincides a major WordPress release.

[00:05:04] Hari: And the idea behind the program is to help new contributors kickstart their WordPress contributor journey by providing them an in-depth overview of the WordPress project as well. To talk a bit about how this started, it all began in 2022-2023 when I started researching on the WordPress contributor experience. I discovered that there were gaps in the onboarding experience for new contributors. And I did some research on how we can solve this issue.

Now, while those gaps can be fixed by improving the overall WordPress contributor onboarding experience through technical changes or changes in the program. Mentorship really stood out as an excellent solution to solve the problem. Based on my discovery from this research, I worked on revitalizing the WordPress Contributor Working Group of the Community Team. And together, our group we started working on building a mentorship program. We did a few months of collaborative discussions and brainstorming. And as a result, the group put together the idea for a pilot cohort-based mentorship program, which paired up 13 new contributors as mentees with one mentor each. The cohort worked together for four weeks, and 11 of these mentees graduated after making impactful contributions to the project, with over half of the cohort staying on to make long-term contributions. In fact, we just wrapped up the second cohort of the program in February 2024, which had 52 participants, of which 44 graduated from the program.

[00:06:34] Angela: Amazing. Congratulations. And I speaking just for myself, I know how important mentorship was to, to a lot of my journeys, both within WordPress and outside of, and so I think it’s wonderful that we’re able to bring mentorship to this space. What sort of benefits are there to participating in this program, either as a new WordPress contributor or as a mentor? 

[00:07:04] Hari: There’s a bunch of benefits for both new contributors and mentors in this program, starting with new contributors. First and foremost, new participants in this program they get to kick off their WordPress contributor journey by making initial contributions. So, in my mind, the biggest benefit that they get is they get a chance to actually make their first contributions in the area of their choice with help from a mentor. The other main benefit that I see is that these mentees or new contributors. They get to learn a lot about the WordPress project and how it works. They get to learn about the WordPress release process broadly. And in short, participants in this program also get a chance to network with and learn from experienced WordPress contributors.

And finally, this program is a great opportunity for mentees or new contributors to pick up a lot of valuable skills that they can use in the real world. For mentors, they also get a lot of benefits from this program. In fact, to share another anecdote, some of our mentors they contributed for the first time to WordPress core in the last cohort.

[00:08:14] Hari: So, that is also something that they also get to learn, which means mentors also get to learn new skills when they be a part of this program. So, for mentors, even they get to enhance their skills, they get to expand the network within the WordPress community, but in my mind, the biggest benefit that they gain is they gain fulfillment from guiding new contributors. And personally, as a mentor myself, it’s one of the most valuable thing that you can gain from such a program. That feeling of belonging, that feeling of, you know, fostering sustainability and innovation in the project. I also feel that mentoring new contributors is a great way to bolster your leadership and communication skills, which is extremely valuable in any professional context.

[00:08:54] Angela: Absolutely. I definitely see that being able to share your experience and mentor others is a really valuable way to help the next generation of WordPressers be successful in our space. Now, you’ve talked a bit about what results you’re seeing from this program, and it’s really exciting to see that so many mentees are successfully graduating from this program. I’d love to hear more about the impact and results that you’re seeing from the mentorship program. Could you give us more details there?

[00:09:32] Hari: Absolutely. So, I shared some numbers earlier. We had 11 mentees out of 13 graduating from the 2023 cohort and 44 outta 52 mentees from the 2024 Q1 cohort graduating. From the first cohort we have six of these mentees continuing to make impactful contributions to the project, but we have more encouraging results from the second cohort, in fact. So, ten of our mentees in the second cohort got props for contributing to WordPress 6.5, and one of our mentees was a noteworthy contributor. That’s about 22% of all the mentees. Fourteen mentees from the latest cohort, which is 31%, they have committed to join the WordPress 6.6 release squad. And the program actually gave eight new core contributors to the project, which includes mentors, as I mentioned earlier.

[00:10:21] Hari: We did pre and post-cohort surveys, and the results are very interesting. I can definitely share some numbers here. So, we had a question on contributor familiarity. The familiarity of contribution for new contributors went up from 53% to 80%, that’s around 26% increase. The contribution confidence went from 57% to 82%, which is around 28%-29%. We asked if the mentees how many of these mentees were satisfied by the program. We heard that 88% of all the mentees were satisfied. 80% of mentees achieved their personal goals as part of the program. A key part of the program experience was that we asked mentees to create contribution plans to make future contributions.

[00:11:06] Hari: 62% of our mentees actually made a future contribution plan. So which means, which is a 30, 60, 90-day plan. So, these mentees they’re gonna follow a plan to contribute to WordPress for the next three months. Finally, we also created a ton of learning materials for these mentees, and we are in the process of releasing them. So these are, most of these are videos, so we plan to release them in WordPress or TV and in the Learn WordPress platform. So, in my mind, seeing these mentees out in the world making impactful contributions that is the biggest impact that I’m seeing. So, having them in the project as long-term contributors. That is, in my mind, one of the biggest impacts that we’ve had from this program.

[00:11:46] Angela: Yeah, that’s really incredible to see that new contributors to WordPress, upon joining this program, able to better navigate this vast ecosystem and make important contributions to our space. And that they’ve made these connections, so they are sticking around and staying with us and continuing to help us build WordPress. That’s incredible. 

[00:12:14] Angela: Now, I understand that between the first cohort and the second cohort, the Contributor Working Group made some important updates and iterated on the cohort itself. And one of the big changes, I understand, was to design cohorts around contributor projects. I’m curious now that we’ve talked about how fantastic this program is. Are there plans for future cohorts, and what might those cohorts look like?

[00:12:44] Hari: Absolutely. So, we have received a lot of interest in future cohorts. So, our working group just did a chat last week, and there was overwhelming positive interest and from all our working group members and other participants saying that we would love to be in a future cohort. So, short answer, yes, we will have a ton of these cohorts going forward. And we are, in fact, hosting a new cohort alongside WordPress 6.7. In October-November, 2024. And we will most likely continue to host at least one mentorship cohort every year. Ideally two, but I’m just saying one to make sure that we are sustainable. It is hard to predict how future cohorts will look like, but based on all the discussions our working group has had, I can definitely tell you how the next cohort is going to look like.

[00:13:35] Hari: So, as per current plans, we will have around 20 to 30 mentees supported by mentors. And the cohort will most likely start early on in the 6.7 release process. The idea is that we would like our mentees to be more deeply involved in the 6.7 release as early as possible. We also plan to have a lot more learn-up sessions in the next cohort.

One feedback that we heard was our mentees really enjoyed some of the learn-up sessions, and they would like these sessions to be scheduled in advance as much as possible so that they can attend as many of them as possible. So, more learn-up sessions.

[00:14:14] Hari: And finally, you mentioned projects when you spoke of the latest cohort. We are going to double down on projects in the next cohort. So the hope is to have a host of projects for folks to work on and, ideally, have all mentees work on some project or the other. So, we had projects as an experiment for the earlier cohort. Some mentees did work on projects, while some they were broadly contributing. So, ideally, for the next cohort, every mentee in the program will be a part of some project or the other. It could be a small one. It could be a big one, but there will be some project of some sort for every mentee in the program, ideally. And finally, some contributors in our cohort, they received a scholarship to participate in the last cohort. We hope to expand that. We hope to provide more opportunities for scholarship for contributors.

[00:15:05] Hari: I’m not sure how viable it is, but we did see that the folks who received scholarship, they got a chance to contribute more. So we would ideally like to provide more opportunities for scholarship, especially for folks from underrepresented backgrounds, so that they can contribute to WordPress and, you know, upskill as part of this program.

[00:15:23] Angela: Fantastic. Well, hopefully, we have convinced our listeners today to get involved in the Contributor Mentorship Program. And so, if somebody wanted to get involved, either as a mentee or a mentor, how should they go about doing so?

[00:15:42] Hari: That’s a great question. We have not opened up signups for mentors and mentees for the next cohort yet. As I mentioned, it’s going to happen later this year. However, those interested in the next cohort of the program can comment on the post. I think we can share the link in the show notes. We just published a post announcing the graduation of our mentees, and we had asked folks who are interested in joining the next cohort comment there.

[00:16:07] Hari: So if you’re interested in joining the next cohort, either as a mentor or a mentee. You can comment on that post. Alternatively, you can also DM me. If you’re not comfortable commenting in a public space, my name is Hari Shanker. I am Hari Shanker, which is H-A-R-I-S-H-A-N-K-E-R. That’s my username in the Make WordPress Slack. You can DM me there expressing your interest, and I will make sure that we send you the call for interest form when it’s published.

Additionally, and this is especially to all the mentor applicants, we have a Contributor Working Group, which meets every third Thursday of the month in the Community Team channel on a text chat. It’s called a mentorship chat. It happens every month, and you can find a link to it in the Make WordPress meetings, P2 blog. So, if you’re interested in being a mentor, or if you’re interested in building the Contributor Mentorship Program, or contributing to the Contributor Mentorship Program, I would invite you to join our chat. So, the next chat is being held in May. Please join our next chat. That’s also a great way to contribute to this program, especially if you are interested in being a mentor. 

[00:17:10] Angela: Wonderful. Thank you so much for joining me today, Hari. It’s been a pleasure.

[00:17:16] Hari: Thank you. It’s been an honor, and thank you for inviting me to be a part of this program. 

[00:17:19] (Music interlude) 

[00:17:27] Angela: And now it is time for our small list of big things. We’ve got three things for you this week.

The first is a proposal to explore the Support Team contributor ladder. If you are not familiar with the concept of the contributor ladder, it is based on the five stages of volunteering, which examines how a volunteer gets onboarded and steps into progressive roles. By thinking through the contributor ladder, Make WordPress teams are able to improve onboarding, engagement, and connection with contributors and generally improve the health of their team. If this is of interest to you, we have a great overview post about the contributor ladder, and you can see the discussion in action over on the Support Team. 

[00:18:14] Angela: Second, is that the WordPress Foundation has just announced the Kim Parcell Memorial Scholarship for 2024. This scholarship is in honor of Kim Parcell, an incredible long-time contributor, and is awarded to a current WordPress contributor who is a woman, has not previously attended WordCamp US, and requires financial assistance to attend this year’s event. The scholarship will provide travel assistance for the recipient to attend WordCamp US this year in Portland, Oregon, and covers travel from your home city, hotel, and your ticket to the event. The application is open through May 30th, and you can apply on the WordPress Foundation page. 

Third is a reminder of our next big WordPress event, WordCamp Europe, which will be in beautiful Torino, Italy, June 13th through the 15th. You can still get tickets on their website. If you can’t make it to Italy, never fear. This time of year sees a good number of WordPress events around the world, and they are a great way to connect with WordPress friends and hear all about the latest and greatest in WordPress. You can go find upcoming events on events.WordPress.org to see what events are happening in your area. If there isn’t a WordPress event near you, you can become an organizer and start hosting events locally. 

[00:19:42] Angela: And that, 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 liked what you heard today, share it with a fellow WordPresser, or if you had questions about what you heard, you can share those by emailing WPBriefing@WordPress.org. I am your guest host, Angela Jin. Thanks so much for tuning in today for the WordPress Briefing. In a couple of weeks, Josepha will be back as your regular host for the next episode. 

[00:20:21] (Music outro) 

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

Posted by download in Software on 26-04-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 minimalist bloggers, retailers, and creatives of all stripes.


Alter

Alter is a lean theme for bloggers that gets directly to the point, showing text-only posts right above the fold ornamented by a single image. The bold default color scheme plays against the minimalist content design for a fun and surprising aesthetic. And, of course, you can always change those default styles if pink and purple aren’t your thing.

Click here to view a demo of this theme.


Swag

As you might have gathered from the name of this sharp new theme, Swag is built with product sales in mind from the very start. This theme boasts a minimalist design aesthetic, ensuring your products take center stage. While Swag is perfect for fashion boutiques, its versatility knows no bounds. Whether you’re selling apparel, accessories, or even digital goods, this theme provides the perfect canvas for your unique brand identity.

Built with WooCommerce compatibility at its core, Swag ensures a seamless shopping experience for your customers. From product pages to checkout, every step is optimized for maximum conversion.

Click here to view a demo of this theme.


Stage

Stage is where artistic expression meets simplicity and is a new go-to WordPress.com theme for artists and creatives. Its simple yet powerful interface allows for easy content organization, while the elegant two-column grid layout beautifully highlights your work. With seamless mobile responsiveness and a focus on readability, Stage lets your creativity take center stage (sorry, we just had to!).

Powered by the Inter Tight font and a subtle duotone color palette, this theme exudes authenticity and raw creativity. Personalize your site effortlessly with included color variations.

Click here to view a demo of this theme.


Roam

Roam invites bloggers, travelers, and creatives to embark on a seamless journey of storytelling. With its captivating full-page cover photo and sleek one-column layout, Roam offers a canvas for your unique voice and vision. Tailor your blog effortlessly with customizable fonts, colors, and layouts and let your best work shine with Roam’s featured article showcase. Built-in SEO optimization ensures global visibility and searchability.

Click here to view a demo of this theme.


Boxed Bio

Boxed Bio heralding a new era of dynamic expression in the “link in bio” category of themes. Through an artful arrangement of column blocks adorned in vibrant hues and captivating images, Boxed Bio transforms simple links into enduring and inspiring narratives. With its three column groups, each a canvas for visual storytelling, and jazzy typography choices this invites you to unleash your creativity. These aren’t just links, after all, they are doorways to possibility.

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:

Meet Studio: Your New Favorite Way to Develop WordPress Locally

Posted by download in Software on 24-04-2024

Say goodbye to manual tool configuration, slow site setup, and clunky local development workflows, and say hello to Studio by WordPress.com, our new, free, open source local WordPress development environment.

We’ve built Studio to be the fastest and simplest way to build WordPress sites locally.

Designed to empower developers, designers, and site builders, Studio offers a seamless solution for creating and running WordPress sites directly on your local machine, as well as showcasing work-in-progress sites with your clients, teams, and colleagues.

Check out a few of our favorite features in the video below:

A new way to develop WordPress locally, available for free

Studio is now available to use for free on Mac*, and you can get up and running with a new local site in just a few minutes:

  1. Download Studio for Mac.
  2. Install and open Studio.
  3. Click Add site, and you’re done!

Once you have a local site running, you can access WP Admin, the Site Editor, global styles, and patterns, all with just one click—and without needing to remember and enter a username or password.

You can even open your local sites in your favorite development tools, such as VS Code, PhpStorm, Terminal, and Finder, making it even easier to add Studio to your existing development workflow.

Plus, Studio is open source; feel free to fork away on GitHub.

*A Windows version of Studio is coming soon, and you can request early access here

Effortlessly share your work and keep moving forward

In the realm of web development, showcasing local work has often been a challenge when projects live solely on your machine. With Studio’s demo sites, you have a convenient, built-in solution for sharing your progress with your team, clients, or designers. 

These publicly-accessible demo sites, hosted on WordPress.com, are a convenient way to share your work without the need for complex server setups or lengthy deployments. In less than 15 seconds, you can have a shareable link to your local site that stays active for seven days.

The best part? Demo sites can be refreshed to reflect your latest build, allowing you to easily convey any updates or changes!

a cursor clicking a blue Add demo site button

Breaking free from traditional constraints

Unlike traditional local environment tools like MAMP or Docker, Studio takes a fresh approach to local WordPress development. Studio is a lightweight and efficient solution that minimizes overhead and maximizes simplicity by forgoing the need for web servers, MySQL servers, or virtualization technologies.

Behind the scenes, Studio uses WordPress Playground, the WebAssembly-powered PHP binary. Thanks to this technology, there is no need to use a traditional web server, making your development experience much quicker and smoother.

Say goodbye to complex setups and compatibility issues. Studio makes it easier than ever to build and manage WordPress sites locally.

a cursor clicking a white Add Site button on Studio by WordPress.com

Let’s get building

At WordPress.com, we’re committed to making your website management experience seamless. In the last few years alone, we launched staging sites with synchronization features, SSH and WP-CLI access, global edge caching, GitHub Deployments, and more. 

Studio is yet another powerful feature to add to your toolkit. Stay tuned for more exciting updates, and remember to follow our blog to stay in the loop.

And, of course, download Studio today. Your local development workflow will thank you.


Major kudos to the Studio team on this launch! Antonio Sejas, Antony Agrios, Kateryna Kodonenko, Philip Jackson, Carlos García Prim, David Calhoun, Derek Blank, Siobhan Bamber, Tanner Stokes, Matt West, Adam Zielinski, Brandon Payton, Berislav Grgicak, Alexa Peduzzi, Jeremy Massel, Gio Lodi, Olivier Halligon, Matthew Denton, Ian Stewart, Daniel Bachhuber, Kei Takagi, Claudiu Filip, Niranjan Uma Shankar, Noemí Sánchez, and our beta testers.

WordPress Block Patterns Give You Superpowers

Posted by download in Software on 23-04-2024

With the power of block patterns you’ll be a WordPress superstar in no time, whether you’re an establish pro or just starting out. Block patterns are professionally designed layouts that you can add your site in a single click. What makes them especially powerful is that once they’re inserted, you can edit and customize every aspect. (Or, you can leave them be!)

In today’s Build and Beyond video, Jamie Marsland walks you through everything you need to go to become a block pattern expert, in under four minutes.

Get started on your site today with a free trial:

10 Amazing WordPress Design Resouces

Posted by download in Software on 18-04-2024

Designing a beautiful website from scratch can be difficult for developers of all skill levels. Luckily, in today’s Build and Beyond video, Jamie Marsland reveals his ten favorite WordPress design tools and websites to elevate your next build.

Get inspiration for your next website’s design and then start building with WordPress.com. Ready to get going? Click below to embark on your free trial today:

Here are the sites and resources mentioned in the video:

Heikei

Stunning backgrounds and visuals

WordPress.com Assembler

A design-your-own-theme tool using block patterns

Glassmorphism

Free CSS generator for a glass effect

Designspiration

Save and explore inspiring designs

Shots

Easy mockups for products and thumbnails

WordPress.com Pattern Library

WordPress.com’s free library of block patterns

Coolors

Generate color palettes with a click

WordPress.org Pattern Library

Another block pattern library, but with community-uploaded designs

Midjourney

The best AI image generator

Instant Images

WordPress plugin to easily find free-to-use images

Making 43% of the Web More Dynamic with the WordPress Interactivity API

Posted by download in Software on 17-04-2024

Creating rich, engaging, and interactive website experiences is a simple way to surprise, delight, and attract attention from website readers and users. Dynamic interactivity like instant search, form handling, and client-side “app-like” navigation where elements can persist across routes, all without a full page reload, can make the web a more efficient and interesting place for all.

But creating those experiences on WordPress hasn’t always been the easiest or most straightforward, often requiring complex JavaScript framework setup and maintenance. 

Now, with the Interactivity API, WordPress developers have a standardized way for doing that, all built directly into core. 

The Interactivity API started as an experimental plugin in early 2022, became an official proposal in March 2023, and was finally merged into WordPress core with the release of WordPress 6.5 on April 2, 2024. It provides an easier, standardized way for WordPress developers to create rich, interactive user experiences with their blocks on the front-end.

ELI5: The Interactivity API and the Image Block

Several core WordPress blocks, including the Query Loop, Image, and Search blocks, have already adopted the Interactivity API. The Image block, in particular, is a great way to show off the Interactivity API in action. 

At its core, the Image blocks allow you to add an image to a post or page. When a user clicks on an image in a post or page, the Interactivity API launches a lightbox showing a high-resolution version of the image.

The rendering of the Image block is handled server-side. The client-side interactivity, handling resizing and opening the lightbox, is now done with the new API that comes bundled with WordPress. You can bind the client-side interactivity simply by adding the wp-on--click directive to the image element, referencing the showLightbox action in view.js.

You might say, “But I could easily do this with some JavaScript!” With the Interactivity API, the code is compact and declarative, and you get the context (local state) to handle the lightbox, resizing, side effects, and all of the other needed work here in the store object.

actions: {
			showLightbox() {
				const ctx = getContext();

				// Bails out if the image has not loaded yet.
				if ( ! ctx.imageRef?.complete ) {
					return;
				}

				// Stores the positons of the scroll to fix it until the overlay is
				// closed.
				state.scrollTopReset = document.documentElement.scrollTop;
				state.scrollLeftReset = document.documentElement.scrollLeft;

				// Moves the information of the expaned image to the state.
				ctx.currentSrc = ctx.imageRef.currentSrc;
				imageRef = ctx.imageRef;
				buttonRef = ctx.buttonRef;
				state.currentImage = ctx;
				state.overlayEnabled = true;

				// Computes the styles of the overlay for the animation.
				callbacks.setOverlayStyles();
			},
...

The lower-level implementation details, like keeping the server and client side in sync, just work; developers no longer need to account for them.

This functionality is possible using vanilla JavaScript, by selecting the element via a query selector, reading data attributes, and manipulating the DOM. But it’s far less elegant, and up until now, there hasn’t been a standardized way in WordPress of handling interactive events like these.

With the Interactivity API, developers have a predictable way to provide interactivity to users on the front-end. You don’t have to worry about lower-level code for adding interactivity; it’s there in WordPress for you to start using today. Batteries are included.

How is the Interactivity API different from Alpine, React, or Vue?

Prior to merging the Interactivity API into WordPress core, developers would typically reach for a JavaScript framework to add dynamic features to the user-facing parts of their websites. This approach worked just fine, so why was there a need to standardize it?

At its core, the Interactivity API is a lightweight JavaScript library that standardizes the way developers can build interactive HTML elements on WordPress sites.

Mario Santos, a developer on the WordPress core team, wrote in the Interactivity API proposal that, “With a standard, WordPress can absorb the maximum amount of complexity from the developer because it will handle most of what’s needed to create an interactive block.”

The team saw that the gap between what’s possible and what’s practical grew as sites became more complex. The more complex a user experience developers wanted to build, the more blocks needed to interact with each other, and the more difficult it became to build and maintain sites. Developers would spend a lot of time making sure that the client-side and server-side code played nicely together.

For a large open-source project with several contributors, having an agreed-upon standard and native way of providing client-side interactivity speeds up development and greatly improves the developer experience.

Five goals shaped the core development team’s decisions as they built the API: 

  1. Block-first and PHP-first: Prioritizing blocks for building sites and server side rendering for better SEO and performance. Combining the best for user and developer experience.
  2. Backward-compatible: Ensuring compatibility with both classic and block themes and optionally with other JavaScript frameworks, though it’s advised to use the API as the primary method. It also works with hooks and internationalization.
  3. Declarative and reactive: Using declarative code to define interactions, listening for changes in data, and updating only relevant parts of the DOM accordingly.
  4. Performant: Optimizing runtime performance to deliver a fast and lightweight user experience.
  5. Send less JavaScript: Reduce the overall amount of JavaScript being sent on the page by providing a common framework that blocks can reuse.  So the more that blocks leverage the Interactivity API, the less JavaScript will be sent overall.

Other goals are on the horizon, including improvements to client-side navigation, as you can see in this PR.

Interactivity API vs. Alpine

The Interactivity API shares a few similarities to Alpine—a lightweight JavaScript library that allows developers to build interactions into their web projects, often used in WordPress and Laravel projects.

Similar to Alpine, the Interactivity API uses directives directly in HTML and both play nicely with PHP. Unlike Alpine, the Interactivity API is designed to seamlessly integrate with WordPress and support server-side rendering of its directives.

With the interactivity API, you can easily generate the view from the server in PHP, and then add client-side interactivity. This results in less duplication, and its support in WordPress core will lead to less architectural decisions currently required by developers. 

So while Alpine and the Interactivity API share a broadly similar goal—making it easy for web developers to add interactive elements to a webpage—the Interactivity API is even more plug-and-play for WordPress developers.

Interactivity API vs. React and Vue

Many developers have opted for React when adding interactivity to WordPress sites because, in the modern web development stack, React is the go-to solution for declaratively handling DOM interactivity. This is familiar territory, and we’re used to using React and JSX when adding custom blocks for Gutenberg.

Loading React on the client side can be done, but it leaves you with many decisions: “How should I handle routing? How do I work with the context between PHP and React? What about server-side rendering?”

Part of the goal in developing the Interactivity API was the need to write as little as little JavaScript as possible, leaving the heavy lifting to PHP, and only shipping JavaScript when necessary.

The core team also saw issues with how these frameworks worked in conjunction with WordPress. Developers can use JavaScript frameworks like React and Vue to render a block on the front-end that they server-rendered in PHP, for example, but this requires logic duplication and risks exposure to issues with WordPress hooks.

For these reasons, among others, the core team preferred Preact—a smaller UI framework that requires less JavaScript to download and execute without sacrificing performance. Think of it like React with fewer calories.

Luis Herranz, a WordPress Core contributor from Automattic, outlines more details on Alpine vs the Interactivity API’s usage of Preact with a thin layer of directives on top of it in this comment on the original proposal.

Preact only loads if the page source contains an interactive block, meaning it is not loaded until it’s needed, aligning with the idea of shipping as little JavaScript as possible (and shipping no JavaScript as a default).

In the original Interactivity API proposal, you can see the run-down and comparison of several frameworks and why Preact was chosen over the others.

What does the new Interactivity API provide to WordPress developers?

In addition to providing a standardized way to render interactive elements client-side, the Interactivity API also provides developers with directives and a more straightforward way of creating a store object to handle state, side effects, and actions.

a table showing the differences of developing interactive elements on WordPress with and without a standard
Graphic from Proposal: The Interactivity API – A better developer experience in building interactive blocks on WordPress.org

Directives

Directives, a special set of data attributes, allow you to extend HTML markup. You can share data between the server-side-rendered blocks and the client-side, bind values, add click events, and much more. The Interactivity API reference lists all the available directives.

These directives are typically added in the block’s render.php file, and they support all of the WordPress APIs, including actions, filters, and core translation APIs. 

Here’s the render file of a sample block. Notice the click event (data-wp-on--click="actions.toggle"), and how we bind the value of the aria-expanded attributes via directives.

<div
	<?php echo get_block_wrapper_attributes(); ?>
	data-wp-interactive="create-block"
	<?php echo wp_interactivity_data_wp_context( array( 'isOpen' => false ) ); ?>
	data-wp-watch="callbacks.logIsOpen"
>
	<button
		data-wp-on--click="actions.toggle"
		data-wp-bind--aria-expanded="context.isOpen"
		aria-controls="<?php echo esc_attr( $unique_id ); ?>"
	>
		<?php esc_html_e( 'Toggle', 'my-interactive-block' ); ?>
	</button>

	<p
		id="<?php echo esc_attr( $unique_id ); ?>"
		data-wp-bind--hidden="!context.isOpen"
	>
		<?php
			esc_html_e( 'My Interactive Block - hello from an interactive block!', 'my-interactive-block' );
		?>
	</p>
</div>

Do you need to dynamically update an element’s inner text? The Interactivity API allows you to use data-wp-text on an element, just like you can use v-text in Vue.

You can bind a value to a boolean or string using wp-bind– or hook up a click event by using data-wp-on–click on the element. This means you can write PHP and HTML and sprinkle in directives to add interactivity in a declarative way.

Handling state, side effects, and actions

The second stage of adding interactivity is to create a store, which is usually done in your view.js file. In the store, you’ll have access to the same context as in your render.php file.

In the store object, you define actions responding to user interactions. These actions can update the local context or global state, which then re-renders and updates the connected HTML element. You can also define side effects/callbacks, which are similar to actions, but they respond to state changes instead of direct user actions.

import { store, getContext } from '@wordpress/interactivity';

store( 'create-block', {
	actions: {
		toggle: () => {
			const context = getContext();
			context.isOpen = ! context.isOpen;
		},
	},
	callbacks: {
		logIsOpen: () => {
			const { isOpen } = getContext();
			// Log the value of `isOpen` each time it changes.
			console.log( `Is open: ${ isOpen }` );
		},
	},
} );

Try it out for yourself

The Interactivity API is production-ready and already running on WordPress.com! With any WordPress.com plan, you’ll have access to the core blocks built on top of the Interactivity API. 

If you want to build your own interactive blocks, you can scaffold an interactive block by running the below code in your terminal:

npx @wordpress/create-block@latest my-interactive-block --template @wordpress/create-block-interactive-template 

This will give you an example interactive block, with directives and state handling set up. 

You can then play around with this locally, using wp-env, using a staging site, or by uploading the plugin directly to your site running a plugin-eligible WordPress.com plan

If you want a seamless experience between your local dev setup and your WordPress.com site, try using it with our new GitHub Deployments feature! Developing custom blocks is the perfect use case for this new tool.

The best way to learn something new is to start building. To kick things off, you may find the following resources a good starting point:

WordPress Website Speed Build: The Masters Golf Tournament

Posted by download in Software on 16-04-2024

Congratulations are in order for Scottie Scheffler, the winner of the 2024 Masters Tournament in Augusta, Georgia! In today’s Build and Beyond video, Jamie Marsland takes on the slightly less intimidating task of re-creating the Masters website as quickly as he can. Can he possibly do it in just 30 minutes?

Along the way, you’ll learn about sticky navigation menus, image overflows and breakouts, card layouts, and more.

Interested in a free trial that allows you to test our all that WordPress.com has to offer? Click below:

How WordPress Is Creating a Faster Web

Posted by download in Software on 15-04-2024

Today, WordPress powers more than 40% of the web. That’s a massive reach—one that comes with a similarly large responsibility. With so many people using the CMS, the WordPress community should always consider strategies for improving the visitor experience. This is where website performance plays a crucial role.

How fast a web page loads, how quickly a page reacts when you click a button, or how smoothly it scrolls can all significantly impact the end-user experience. A more performant site can lead to higher reader engagement and more conversions. Thankfully, over the past few years, the WordPress project has made major performance improvements across the board for the core platform, plugins, and themes.

Many enhancements are available out of the box, with no configuration required. They improve the website frontend’s performance—the part visitors see—and various parts of the administrative experience, such as the editor.

Here’s a partial list of performance upgrades from the past year:

In addition to the Core enhancements listed above, the WordPress project continues to work on several efforts that indirectly benefit the ecosystem’s performance.

For instance, WordPress Core leverages automated tooling for continuously monitoring its performance, covering every product update. This helps measure new features’ performance improvements and enables contributors to detect potential performance problems during the development of a new feature or release so any issues can be proactively addressed long before end users are affected. A project is currently underway to make the same tooling used by WordPress Core developers available to plugin and theme authors as well.

Additionally, the new WordPress plugin checker allows checking any plugin for performance best practices, among other requirements and recommendations. The plugin checker should lead to more performance awareness in plugin authors and, eventually, faster plugins. If you develop plugins, consider integrating this tool into your development and testing workflow.

Last but not least, WordPress 6.5 introduced the Interactivity API, which is a technical foundation that facilitates more performant user interactions. This new infrastructure drastically simplifies the implementation of interactive website features and can even centrally control certain aspects of performance, keeping multiple independent plugins operating efficiently.

These performance updates result from a collaborative effort from all corners of the community, including the WordPress Performance Team. This team, founded in 2021, underscores the WordPress project’s commitment to performance. And the results are substantial: Compared to a year ago, 8% more WordPress sites deliver good load time performance at scale—significantly better than the overall web’s 5.5% load time improvement. The web is getting more performant, and WordPress is leading the way.

WordPress contributors are determined to continue this trend by working on further performance iterations. Whether you’re a WordPress end user, administrator, site builder, or developer, you can contribute to this effort. Anyone can test the performance features before being released in Core through individual feature plugins. Each feature can be tested via the Performance Lab plugin, so please try them! Testing features early helps the team assess their impact and collect valuable feedback.

Are you eager for more WordPress performance news and updates? Then check out the 2024 performance roadmap. Thanks to the entire community for your hard work. Not only does it ensure WordPress’ continued improvement and growth, but it benefits the entire open web.

Thank you to @annezazu @clarkeemily @tweetythierry @swissspidy @westonruter @adamsilverstein @joemcgill for content review and @provenself @dansoschin for editorial review.

Registering Custom Post Types in the WordPress Admin: Our CloudFest Hackathon Report

Posted by download in Software on 15-04-2024

With WordPress today you need to use custom code or a plugin to create a custom post type like “Book” or “Member.” This is a popular need, and there are a variety of approaches; however, one challenge is that the end-user experience can be confusing and non-standardized.

A few weeks ago, some Automatticians and I went to the 7th CloudFest Hackathon in Rust, Germany to explore a solution for this. We started hacking on a deeply nerdy project, JSON Schema forms and fields, and ended up with a fascinating approach to an age-old question: What if you could register custom post types and custom fields directly in the WordPress admin?

Forty-eight hours turns an idea into reality

The CloudFest Hackathon is an event that allows developers from around the globe to take ideas and turn them into realities.

During the Hackathon, teams of developers from various content management systems and hosting companies come together to contribute to projects that align with the core principles of the event: the projects must be not-for-profit, interoperable, and open source.

Last year, we worked on a project that allowed us to embed WordPress directly in VS Code. We built the WordPress Playground VS Code extension on top of WordPress Playground. It uses WebAssembly to run WordPress entirely within the browser, and it turned out pretty darn slick

This year, we focused on a JSON Schema Field/Form Renderer. While most of us explored using JSON Schema to dynamically register admin forms and fields, Dennis Snell and Adam Zieliński decided to take the project one step further! They hacked together a plugin that introduced the ability to register custom post types and custom fields directly from the WordPress admin. More notably, everything happens within the block editor—you have to see it to believe it:

This work poses some interesting possibilities for custom post type and custom field implementation because it could fundamentally change the way low- to no-code WordPress users modify their sites.

Naturally, I took the idea to Twitter/X:

I got quite a range of responses, ranging from “Heck Yes! It should have already been a core feature now. Such an integral part of every other site” to “Admin should only be for content and user management. Everything else should be configured in code and version controllable.”

So why the range in responses? Let’s discuss.

It turned out to be pretty simple

Dennis and Adam built our prototype using the following conventions:

  • A custom post type wp_data_type holds templates for user-defined data types.
  • The title of a post in the wp_data_type defines the name of the new data type. The post itself is the rendering template and comprises any set of normal blocks. Names are given to select block attributes within the post, and these names are mapped into the data type.
  • When creating new posts for the given data type, the locked template is copied from the wp_data_type template, and the block attribute annotations are preserved.
  • Finally, when rendering the wp_data_type template, the attributes are pulled from the individual post of the given data type and spliced into the template.

The fascinating idea is that we don’t have to think about form fields; blocks already provide a rendering view and a modal editing experience. We can rely on the fundamental way blocks work and use the very same user experience to create custom data types in a way that users are already familiar with when editing a post or a site.

An orange arrow pointing to the Content field in the block settings for a custom post type.
We can provide JSON-LD markup properties to the block editor using our Custom Fields Names block settings.

Custom post types define custom data types, so we use a template to not only define the data type, but also to provide a default rendering template. Each data attribute within a post type has a field where it’s possible to define that field with its JSON-LD property. 

For example, say you had a “Book” custom post type. A few JSON-LD properties you could define using custom fields are:

  • description
  • copyrightYear
  • author
  • bookEdition
  • bookFormat
  • isbn
  • numberOfPages

We also chose to store a copy of each block attribute in the JSON attributes for that block. Since WordPress can now provide a post-to-JSON function, which merges the extracted attributes with the names assigned in the custom post type template, that template may have changed since the custom post was created. This means that no database migrations are necessary to render an updated version of a post.

The best part? The WordPress infrastructure that already exists (aka Gutenberg!) defines the data type. Because these custom posts are normal posts, and because they adopt the locked template for the data type definition, they are, in fact, renderable on their own! Even if the template has been updated and only the post itself is rendered, it will still display a meaningful representation of the data type as it was when it was created.

While our original Hackathon project was tailored towards developers and UX designers who would love to see a forms and fields API in WordPress, this prototype puts more power in the hands of low- to no-code WordPress users.

It also opens up a world of possibilities for providing a rendering view for any structured data. Imagine uploading a CSV and mapping the column names to block attributes, or connecting to a database or JSON API to map the records in the same way. 

For example, if you had a CSV with business names, addresses, a rating, and a description, we could take that template post and insert a map block, a heading block, a star rating block, and a paragraph block and set the attributes to map to the CSV columns. It’s essentially an instant structured data renderer!

But even if we can define custom post types and fields in the editor, should we, as a WordPress community, consider adding it to core?

The existential question: Should it exist?

Adding this kind of functionality into WordPress core could open up a ton of opportunities for the average WordPress user. Instead of needing to get a developer involved to add a custom post type to their site, a user could simply do it themselves and define the necessary fields and structured data attributes. 

On the other hand, allowing everyday users, who may not have a full grasp of how custom post types and structured data should work, free reign to create these data types themselves could have detrimental effects on the user experience of their websites. Clunky or incorrect implementation of structured data markup could also cause issues with how search engines crawl these sites, causing unintended negative impacts to search traffic.

Not only that, but as of right now, if a custom post type is accidentally deleted, all of the content posted to that custom post type will no longer be accessible through the admin (even though it will still be stored in the database). The user could think they “lost” their data.

Let’s talk about it

What do you think? Are you in favor of giving website owners the ability to change and customize their custom post types and attributes? Or are there some website features that should always require a more technical hand and implementer? 

We’d love to chat with you about your thoughts in the comments below.

For another interesting exploration on a related idea, check out this discussion on GitHub with the core team.


Thanks to Lars Gersmann for leading the JSON Schema project with me and to everyone on the Syntax Errors team: Adam Zieliński, Dennis Snell, Julian Haupt, Michael Schmitz, Anja Lang, Thomas Rose, Marko Feldmann, Fabian Genes, Michael Schmitz, Jan Vogt, Lucisu, Maximilian Andre, Marcel Schmitz, and Milana Cap.

WP Briefing: Episode 77: Let’s Talk About Data Liberation

Posted by download in Software on 15-04-2024

Explore the WordPress Data Liberation project in this exclusive behind-the-scenes episode discussing WordPress migrations. Joining us is WordPress Executive Director Josepha Haden Chomphosy, along with special guest and sponsored contributor Jordan Gillman. Together, they’ll look at how the project is expanding opportunities to benefit from the freedom and flexibility WordPress offers. Don’t miss this enlightening discussion!

Credits

Host: Josepha Haden Chomphosy
Guest: Jordan Gillman
Editor: Dustin Hartzler
Logo: Javier Arce
Production: Brett McSherry and Nicholas Garofalo
Song: Fearless First by Kevin MacLeod

Show Notes

Transcript

[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:28] (Intro Music) 

[00:00:40] Josepha: Today, I want to talk about the Data Liberation project that we first introduced at State of the Word. It’s a very big project with a lot of philosophical underpinning. So today, I have with me Jordan Gillman, who’s going to help us dig in a little bit deeper.

Jordan, welcome to the show. It’s so great to have you here.

[00:00:57] Jordan: Thank you. It’s lovely to be here.

[00:00:59] Josepha: Before we get started, why don’t you tell us a little bit about yourself? Like what parts of the WordPress project you contribute to, and how long you’ve been hanging around in open source?

[00:01:09] Jordan: Yeah, beautiful. I would love to. My name is Jordan. I live on the east coast of Australia, about an hour out of Sydney—about 10 minutes from the beach, which is a pretty great place to live. My relationship with WordPress began 19 or 18 years ago, I guess. I was tinkering with Movable Type, and they changed their license.

And I went, I need to find something that’s free. And at that point, I had no idea what open source was. I just knew that I could use this WordPress platform for free to you know, tinker around and build websites. At the time, I was a graphic designer and, so web stuff was just fun. But gradually, that kind of took over, and I ended up doing a lot of front-end development and eventually freelancing for about ten years, building WordPress sites for churches and schools and kind of non-profit organizations like that. And through that, I’ve also then ended up doing some support for WordPress and landed being lucky enough now to be sponsored to contribute full-time into the WordPress project. I do a lot of work with the support team, so working in the public forums, particularly on core WordPress plugins and themes like Gutenberg and bundled themes, Twenty Twenty-Four.

[00:02:15] Jordan: But also working with the team itself, trying to make sure the forums are a nice place for people to hang out and answer questions and get their questions answered. And I also help out with a few other things around the place. I have an eye on the work the plugins team’s doing, working with the WordPress Foundation on a few different things. I’m lucky to have my fingers in a few pies but the biggest pie at the moment I have is the Data Liberation project.

[00:02:36] Josepha: Yeah. So let’s talk about that. We’re going to give everyone a quick like starting line. If, for some reason, you have not read or seen anything about the WordPress project plans so far in the last four months, you may not know what the Data Liberation project is, and that’s fine, too. Because Jordan and I are here to help you understand what it is. But, the Data Liberation project is something that Matt introduced to the project at State of the Word last year in December. And you, Jordan, are the one who are really helping us to take this project into a space where we have everything that we need, all the kind of tools and guides that users will need in order to do what exactly? Like, let’s go through what this Data Liberation project is from your standpoint and what made you excited to work on it.

[00:03:27] Jordan: Thank you. Yeah, so the general idea of the Data Liberation project is it should be super duper easy for anyone to bring their site to WordPress. That’s the first main part of it, is that regardless of the platform you are on currently, be it something that’s pretty open, be it something that’s really kind of walls and closed, be it a social media platform, another web building platform, it should be really easy to bring your content over to a WordPress site, because once it’s in a WordPress site, it’s essentially free. You can then take it and do what you want with it once it’s in WordPress, but we want to make it as easy as possible to get it here, basically. 

[00:04:03] Josepha: Free as in liberated, not free as in like, now the stuff that was in your mind has no value.

[00:04:10] Jordan: Yeah, free as in liberated, free as in you own it and can do what you want with it. So that’s a big part of it. It’s, let’s get, make it easier for people to come to WordPress. I think it’s also important that if we’re talking about Data Liberation and freedom of content and democratizing publishing, that also means we make it easier for people to take their content from WordPress and use it somewhere else if that’s the decision that they make. And there’s some moves we can make to make that easier and nicer for people as well.

[00:04:37] Josepha: Yeah. Yeah, absolutely. So, recently, we just finished up an outreach period where we were making sure that we were talking to, like, folks in the community and anyone, anyone who uses WordPress that wanted to talk to us about what they needed, what they were hoping for, what issues, what pain points they’ve had when they were looking at site migrations.

So, what, to the best of your knowledge at the moment, like what are the big themes that you got out of that feedback loop? Out of that outreach?

[00:05:08] Jordan: Yeah, thank you. That was really enjoyable, actually. I was lucky enough to, I got to speak to a bunch of people in person at WordCamp Asia, which was great. We’d done some, some online, did a hallway hangout, and we’ve had a survey out for a while to folks predominantly kind of in the hosting agency freelancer space. So, folks who are working with end users who are often the ones doing migrations. We got a lot of feedback about WordPress to WordPress migration and the challenges of different hosting platforms and access from users and a bunch of information, which is useful and interesting but not immediately relevant to the comparison to migrating to WordPress from another platform entirely.

But at the same time, talking to particularly agencies who do a lot of big-scale migrations, there’s a lot of challenges just when it comes to, for starters, getting the content out of the platform. Some platforms are kind of helpful, and they’ll even provide a WordPress formatted export. For every one of those, there are…

[00:06:03] Josepha: That’s very helpful.

[00:06:05] Jordan: Yeah, those are super helpful. For every one of those there are probably two or three who aren’t as helpful, and you start to resort to tricks with, you know, manually exporting databases or getting RSS feeds and trying to convert them, or a lot of agencies said, “You know what? Often, we end up just copying and pasting page by page from the source site into a brand-new WordPress site.”

[00:06:27] Jordan: So, there’s challenges about the access to the content. There’s lots of challenges around getting the content from the shape of one platform into WordPress. What constitutes a page? What constitutes a post? How do we handle all of the extra metadata of images and dates and taxonomies, and anything else that might be associated with a blob of content in one platform?

How do we translate that into the way WordPress likes to handle those things? And particularly taking that to another level, even just bringing it into the Block Editor? It was great to hear how many people are just migrating straight to the Block Editor like they want the content in blocks, which is wonderful to hear.

[00:07:05] Josepha: Yay!

[00:07:05] Jordan: But there are challenges. I know it’s great. But there are some, there are challenges with that and getting it to kind of format the way they expect, when it comes in particularly because there’s some kind of functional challenges with that in validating the way the content comes in because it all happens client side in the browser. 

It’s hard to do that in big batches. So, there was some really great feedback around all of those kinds of places. It was really interesting to see how much of it centers around that getting the content and then getting the content, and yeah, for the agencies I spoke to, they do a lot of trial and error of, you know, custom scripts, and let’s try it. Oh, that did this. Let’s try again with a few tweaks. So I’m excited to see how we can kind of make that easier for them and, you know, maybe get it happening first time. 

[00:07:49] Josepha: Yeah, absolutely. It has been a long time since I migrated any sites personally, but I remember the first time that I tried to migrate a site. So, I was on Xanga before Xanga was on WordPress, and I remember that when I was like, I can’t figure out this WordPress thing, but I think I need some stuff in it so that, like, I know what it’s going to look like.

[00:08:11] Josepha: I know what to move around cause I didn’t know the names for anything in, in CSS or HTML. Like I didn’t know what to look for in the code, but if I had a piece of content in it, I could be like, find the content in the code and then move that. And so I was like, I’m going to export everything because there was an export option in Xanga. And move it into WordPress, and WordPress was like if you can manage to get it out of Xanga, super easy to get it in. But it was actually really difficult to figure out how to get it out. And fortunately, I’d only been writing on it for like four years, three, four years at that point. So there wasn’t like, a huge amount of content, but also, I was a pretty prolific writer. I was a bad writer, but the only way to get better at things you’re bad at is to do it a lot. So, I did a lot of bad writing for three or four years. And I think that in the end, I did, like, just pay some service to scrape everything that was public on it, and then go through and get the private things and pull it out later.

[00:09:08] Josepha: I think later on down the road, I did an actual like full migration when it was easier to get it done and got all the content out, including like drafts and private posts and things. So that’s good. But yeah, it was really difficult then. And then, like, we have the blocks now that are supposed to help get a little bit more consistency in the way that you can move content in and out of a WordPress site.

And is that something that we are then focusing on with the Data Liberation project? Is that something that’s being done in concert with our Gutenberg plugin, or like how are we accounting for that?

[00:09:46] Jordan: That is a great question. The way things are looking at the moment, having come out of this feedback and the way we’re looking at going forward that, that work on getting content coming into blocks is going to be a really, really major part of Data Liberation. And it kind of sits in the middle of things to my mind.

[00:10:01] Jordan: The improvements that we can make with handling the way content is transformed into blocks gives us the potential of wins in a lot of places. So, as long as we can get to the content, this work on HTML to blocks for a better, lack of a better way of putting it, gives us wins with importing from another platform because we can take the content in whatever form it is, turn it into blocks in the post editor.

It gives us wins with migrating from classic editor because, similarly, we can take the HTML of the classic editor generates and turn it into blocks. That already kind of happens, but there’s definitely some work that we can do to keep improving that. It gives us potential wins around the spaces of moving from between proprietary builders and block libraries and things. Because if we start to have a better-standardized set of ways to handle HTML into blocks.

Then, you can essentially move from whatever form your content is in into, you know, core native blocks in the editor. So, I think work there is going to be really important because it gives us a foundation to aim for from whatever the migration is happening from.

[00:11:09] Jordan: So, there’ll be some work there. There’s already work happening on the HTML API. Like, ongoingly and regularly and so we’ll be talking to those folks. There’s obviously going to be a lot of overlap with the work within Gutenberg as well, which is doing you know, parsing of content into blocks. So, it’s going to take a lot of collaboration and a lot of work from everyone, but I’m really excited because if we can get that foundational platform of transforming HTML into blocks really, really smooth, then what we can do is we can, you know, activate contributors in the community say, we’ve got this part figured out. If you can get it to here, it’s going to come in beautifully. So what we want your help with is to say, how do I get out of this platform to a format that we can do the rest? So, hopefully, we’re getting a common flow for a big part of that important migration process. And then we can throw it open to others to say, “You’ve got expertise with this platform. That’s excellent. Can you get us to here? And we’ll take it from there.” And maybe we’ll get some wins by doing that work in parallel, and we’ll really start to see some movement.

[00:12:13] Josepha: And speaking of the, we’ll take it from there. I know that also, in addition to the work that you are doing with Data Liberation and that is happening on the Gutenberg side and WordPress core in general, we also have a little bit of work happening on the after you get it to here point.

So, the folks over at Playground have been doing a bit of research about how to use the guides and tools that are in the Data Liberation repo. To run all of that through Playground so that you can not only like import it, but you can put it into Playground and check it before you launch it in someplace else, which I think is a great user-facing, like, super important thing for an everyday user to be able to have at their fingertips that way.

But then also the tour plugin that was built, I think specifically for the Polyglots team, is where we are looking at using, and I can’t remember which little project we’re doing some research on to make this possible, but we’re looking at taking that tour plugin and making it so that anyone can build a tour on anyone’s version of something in a browser so that you can just say, okay, so I did these things. I got it to here as you requested. I’m moving it to here. But now that I have got it into WordPress, what are the literal buttons I have to press in order to make sure it’s live? What do I literally have to press in order to make sure that I’m in the right time zone? Like, things like that. And we tested it on Wix, and it was able to work.

[00:13:40] Josepha: Not that we’re trying to get anyone to Wix. But on the subject of, like, getting things out of WordPress and into someone else, that sounds counterintuitive for folks, like, you’re here listening to a WordPress podcast, and we’re talking about how and why we want to make it easier for people to get their content to us, of course, but then also, if needed, get it out of a version of WordPress and either into a different version of WordPress with a new host or, whatever.

Or if this is not your long-term destination, which we think it will be once you figure us out, but like, if it’s not, like, how to get out of it, too. So, from your perspective, how does that fit with the basic philosophies of open source or of WordPress in general?

[00:14:24] Jordan: Yeah, thank you. If I may, there’s a couple of things I wanted to touch on from what you’ve said. First of all the other work that is going on in the project at the moment that you mentioned, the tour guide and the Playground, I think both of those are going to be super important to the approach we take to Data Liberation.

I wanted to elaborate just a little bit on the Playground because I’m particularly excited about the potential that gives for two particular scenarios two particular use cases for migration. One is, where I’ve already set up a WordPress site, I’ve got the theme that I’d like, and I’ve got some, you know, some plugins, maybe I’ve got a little bit there, but I want to import content, but I want to check how it is the potential for the Playground to make essentially a staging copy of my site and migrate the content into that staging copy so I can see how it lands in my chosen theme and check everything out and then go, yep, that looks great. And apply it. That’s great for it’s safe. You can check how it looks before it’s, you know, committed. So that’s brilliant. I’m excited about that. I’m also excited about the potential it has for people who don’t know WordPress, or don’t have a WordPress site, or they don’t have a host, they don’t have anything.

[00:15:30] Jordan: But if they can say, I want to see how this would go in WordPress. Playground, through some platform, somewhere, will allow them to just have an immediate in-browser preview of what their site would look like on WordPress. And if they like it, we then move them. We help them find a host. We help them export that in a way that they can use, but it helps the people who already have sites.

But I think, more importantly, it helps those who don’t have a site yet. And they don’t have to set up an empty WordPress install in order to start migrating. They can just get into it. 

[00:16:01] Josepha: And also, you don’t have to, like know who your host needs to be before you can take a look at the back end of a WordPress site and see if it makes sense to you. Like I think that that is a huge, huge win on behalf of users, current users, and future users of WordPress.

It’s the try before you buy. Come kick our tires without having to find a server. If you all don’t know what we’re talking about, if you have not heard of Playground yet, you can go to playground.WordPress.net and give it a try. It’s a one-click, serverless local version of WordPress that you can test out themes on and plugins, and just like put all your data into all your content into, and pretty soon also be able to export or just load directly onto the host of your choice. It’s really, really cool.

[00:16:44] Jordan: It’s, it’s pretty much magic, I think. 

[00:16:47] Josepha: Yes, I remember the first hackathon where we took it because we took it basically on a hackathon roadshow for six months. I remember the first one we took it to. Routinely, we could get developers, not me, routinely, Adam Zieliński could get a developer to do the thing, and they’d be like, I can do it if you’re next to me telling me what to do, but it’s literal magic. I don’t know what’s happening. And he was like, okay, I’ll come explain it to you. And like, he was using English, but also I was like, that is still magic. I’m so glad someone understands it. It’s brilliant.

[00:17:18] Jordan: Yeah, so the Playground I’m super excited by. I think it’s going to be really important. The tour stuff the tour functionality is going to be really important as well. Because on some level, We’re going to have to wrap all of this work on improving HTML to blocks, the process of taking an export file and importing it into WordPress, the process of telling people how to get the content, all that’s going to have to be ideally wrapped up in a nice user-friendly way so that users aren’t having to, you know, read plain text articles and then going and installing a plugin and all of those kinds of things.

I think the potential for the tours is we may have some kind of wrapper plugin or something which will detect the platform of your existing site if you put the URL in, and it will start walking you through the steps. So, part of that might be action you need to take on your existing platform, and we have some of that information already in the guides on the Data Liberation site at WordPress.org/data-liberation. That information is already there, but I’m hoping that we can start pulling those guides into the WP Admin so you just get walked through it while you’re there. And we can start using the tour functionality to really specifically pinpoint: you need to go here, now you can do this, go and click this, and just walk users through that migration process a little bit more neatly.

[00:18:37] Jordan: I’m really excited that we’re going to be able to utilize a lot of these existing projects that are exciting and happening at the moment. And I think, ideally, they’re all going to make it much easier for users to not have to jump through so many hoops. And the hoops that they do have to jump through, we can hold their hand while they do it.

[00:18:54] Josepha: Yeah, absolutely. Create safe scaffolding for fun, I used to say.

[00:18:59] Jordan: So those are the two projects existing that are happening at the moment that I’m excited about rolling into and working with for the Data Liberation work.

[00:19:07] Jordan: You also asked about the getting content back out, which is something that I’m particularly passionate about, I suppose. Which may be ironic when a lot of the aim of this project is to get people into WordPress. But I’m a really firm believer that if our mission is to democratize publishing, then that doesn’t mean just get everyone onto WordPress and go, yes, now you’re trapped. It’s like the Hotel California, you can never leave. If we’re going to be, you know, fully all in on democratizing publishing, then that means giving folks the freedom to take their content to do with it, whatever they want. It’s fair to say at the moment that that is possible.

So you can export your content from WordPress. We don’t hang onto it. We don’t lock it down. You can take it. At the moment, the format that you get that content in has some limitations. It’s fair to say it doesn’t handle bringing the media of your site particularly well unless you’re turning it into another WordPress site somewhere else.

So, the export functionality is very, very focused at the moment on migration to another host, or to a local site, or to another WordPress installation, basically. But if you want to use that content for something else, maybe another platform. Maybe you just want to have a copy of your blog posts that you can. 

[00:20:17] Josepha: Print it into a book.

[00:20:18] Jordan: Yeah, to put into a book. Maybe you want to put it on a thumb drive and put it in a lockbox somewhere. Maybe you want some kind of hundred-year archive of your intellectual property that you’ve written and created. And so I think we’ve got some room to make improvements there. Not only to the way we provide content for other platforms to pick up and bring in but also just in the ways that we provide content to users who just really want to have a physical, digital copy of what they’ve created. 

There are some challenges at the moment when you get an export, if you’ve got shortcodes in your content, if you’ve got content that’s generated by plugins, all kinds of dynamic content that is great when it’s a website, and WordPress is wonderful. And there’s all of these options, but if you take an export, you have references to those functions, and you have references to those shortcodes, which aren’t actually fully realized. So I think there’s some room for us to investigate what does a better export for other platforms look like and what does a better export for “I want to print it out or turn it into a book or just have a static version of that” content look like. And so I’m particularly excited about that, even though it’s kind of, bring it in, and we want to let them get it out. But that’s part of the whole liberation of data, I suppose, is, you know, the freedom to do with it what you want.

[00:21:40] Josepha: Yes, absolutely. And everything that increases freedom on the open web, I think we are in favor of. So, I don’t know if you follow many, like WordPress futurists, our people who are out there saying, if only WordPress had these additional 2,500 hours worth of work, then we could do this with it. Like, I don’t know if you follow a lot of them. 

[00:22:02] Josepha: But, a lot of them look at that thing that Matt said, like, I want to say, five years ago about WordPress becoming the operating system of the web and putting some thought into what would be required to make that possible. And when we look at composable CMSs, like the option to have something that is a framework and a core of what you are doing in your digital experience of the web. And making it possible to add anything to it required. 

I think that also the work that we’re doing with Data Liberation to provide a little bit more consistency and just standardization of the way that content comes in and out, I think, can only help with that potential future implementation of WordPress as the operating system for the web so that you have this basic place where you hold and manage all your content and also not only does WordPress cooperate nicely with all these other tools and applications that you can put on top of it but also all of the content has standard conversational touch points and so everything moves quickly in and out including the dynamic content that is maybe being created inside your WordPress core itself. I think that is also a really important not primary focus, but certainly future-like, if only we could get to that state kind of focus. 

[00:23:31] Josepha: I’m really interested. I think that the Data Liberation project is big, and I know that we expected primarily only new contributors to work on it, but honestly, we know that’s not the case. It’s you’re working on old WordPress in here and so not necessarily new contributors. But I think that you’re right that the place for new contributors to help us is saying like we can get the content to here, we can get the data to here, and then we need help getting it into WordPress or help getting it into something else.

So, as like a last question here, or if you have things to add to that, and then I can do last question.

[00:24:04] Jordan: Okay, so to loop back to your conversation about futurists and moving content and stuff, I am really excited about this idea that the open web at the moment, I think, is really, really exciting. I just started mucking around with federating my content in the fediverse. Again, recently, I tried it a little while ago and really struggled, but I’ve just started again, and it’s sitting really comfortably with me, and it’s, it’s feeling like it’s a great time for posting and owning your content, and then syndicating it elsewhere. I have seen a couple of really interesting conversations about what you were saying about, like I’ve seen the conversations in the past about, you know, operating system of the web, but also some talk and ideas recently about what would it look like if we stored all of our data in a WordPress instance?

What if all of my photos aren’t on Instagram? They are on my WordPress site. What if I pull in my Fitbit or my Strava information and just store it in WordPress so that I can do with it what I want once it’s there? What if I, I don’t know, what if I pull in kind of all of my different sources of data and I, and I house them in WordPress and then I can do with them what they want, would do with them what I want.

[00:25:08] Jordan: And that is when the Data Liberation stuff becomes especially important because if it’s your everything, you want to take your everything somewhere else. But I’m really excited for kind of all of that kind of space at the moment and giving people the freedom to own that data and when they create stuff.

In actual fact, this is one of the things that you said in your talk at WordCamp Asia, which has really stuck with me was, and I can’t remember the exact phrase, but you said if you’re going to do all of this work of creating something, you may as well do it somewhere where you own it and can keep it. And that, for me, is just such a strong driver for getting people onto WordPress. Particularly from, at the moment, social media platforms. I’ve got two young daughters who are just getting to the age where they’re creating videos at home, which aren’t being published anywhere, but they’re starting to. They’ve got friends who are doing YouTube channels, and they’ve got friends on Instagram.

And I’m looking at all of that going, I get the urge to create, and I get the urge to publish, but I want them to have an alternative to do all of that so that in five years’ time, ten years time, whatever it is, when they go, wow, I did all of this stuff. I don’t want that owned by someone else. I’ve created all this, and I’m excited by the possibility of having that become a simpler, more user-friendly, accessible option to folks, where it becomes just as easy to have a WordPress site, which is your Instagram feed or a WordPress site, which is your YouTube channel or something like that, where you own it, and you just create it, and it exists. And Data Liberation means you want to take a copy of all that stuff, go for it, download an archive, you know, print out the photos, do whatever you want, but they’re yours. You have them. And so, it’s really feeling like all of that is coalescing together a little bit at the moment. I think it’s a really exciting time. 

[00:26:52] Josepha: And also, like, since we’re just meandering around in philosophical spaces, two philosophical thoughts. One, I really, really feel like it’s important and valuable for people to document their lives. I have a pretty private social media presence; mostly, if you’re following me on social media, it’s because, like, you have literally been in my living room or you’re looking for WordPress news. Like that’s it. But I am constantly am documenting my life just for myself, like the folks who are listening, which is everybody, because we don’t do video, will not know that I have back behind me a shelf that is nothing but journals from my leadership journey, like from the moment that I realized that like leadership was something that was a skill and could change people’s lives like I’ve done nothing but document like I ran into this problem. This is the research that I did to figure out what was happening and not, and just like it’s really mundane things in my work now. But the work and the process of documenting, like, what’s happening for you and with you in your life and how you’re interacting with it, like, it’s just important for your mental health and for your understanding of the passage of time.

[00:28:05] Josepha: But then also you were talking about, like, having a hundred-year archive of your thoughts and things, like, there will be a point at which digital information being ephemeral because it’s just electricity wandering around between screens, like, it’s prone to getting lost in the same way that physical things are prone to getting lost, but the loss is less acute in the moment.

And so you can accidentally lose it. And I think that that’s a real long-term not problem for society necessarily, but I think it is something from a societal standpoint where we’re gonna, at some point in the near future, realize that some of us have huge missing gaps where we, like just got rid of everything that we ever documented because we had a moment on social media or because it seemed like the only way to reclaim our content or our data or our privacy or whatever it was. And so I have a yeah. I love it. I love everything that we’re talking about, about the speculative future and WordPress. And so yes, now, well, now everybody knows all my thoughts on speculative WordPress. 

[00:29:06] Jordan: There’s an interesting philosophical conversation which we’re like coming towards of what’s the equivalent in a hundred years, in 200 years of now, of the Library of Congress for philosophical and powerful writing. There is so much great stuff that is written on the web, and it just exists there.

In a hundred years, when people are writing about the early work of an artist or a politician or, you know, a notable figure, we don’t, we’re not going to have handwritten letters. We’re not going to have correspondence. But we’ll have tweets. We could have blog posts. Like, it interests me to think, like, the stuff that we take for granted of historical creation is happening digitally now. And so, equivalently, in the future, how, how is that gonna get retained? How much amazing knowledge and thinking is gonna just, you know, have their hosting account expire and get removed? And it’s an, it’s it’s a big conversation, but it’s an interesting one.

[00:30:09] Josepha: Yeah. Oh, what a fascinating discussion we’ve had today. So, by way of wrapping up our discussion here, why don’t you give us a sense for, like, if you are a user of WordPress and you were like, this sounds really interesting, I want to learn more, where can they go? But also, if you are someone who wants to learn how to contribute to WordPress and this sounds like a good opportunity for you to get started with that. Where can people find more about this project, about how to get started, how to contribute, all that stuff? 

[00:30:38] Jordan: If you are someone who is hearing about this for the first time and coming to it pretty fresh and haven’t been working in the WordPress community much before. The best place to go will be WordPress.org/data-liberation, that will give you not only access to the tools and guides that exist but also some information on where the development and discussion is happening.

That’s the easiest pathway to find your way into those conversations as well. For folks who already have a little bit of experience and, it may be contributed code or a part of discussions already. The place to go to would be github.com/WordPress/data-liberation. That’s where there’s a lot of discussion. That’s where the existing tools and guides are being managed and worked on. So, if you really want to dive in. Please come and join us there. There are discussions to be had. There are ideas to be floated. That’s where all of the boots-on-the-ground work is going to be happening.

[00:31:25] Jordan: The other great place is within the Make WordPress Slack organization. And we have a Data Liberation channel in there. That is primarily where we have higher-level conversations, and we chat about stuff, and I’m hoping that becomes a real hub for work-adjacent discussion. So GitHub is going to be for all of this is where all the work’s happening, but the Slack channel is where people can share their thoughts on what’s possible, and big picture ideas, and that kind of stuff. So those will be the three best places. WordPress.org/data-liberation for the overview, github.com/WordPress/data-liberation for where the work’s actually happening, and WordPress Slack in the Data Liberation channel. If you want to come and chat more about the possibilities and, you know, helping get the future of the open web happening.

[00:32:17] Josepha: I mean, that is an enticing call to action. We’ll have links to all of the, all three of those in the show notes, as well as links to everything that we kind of mentioned over the course of our conversation. But Jordan, thank you so much for joining me today.

[00:32:32] Jordan: Thank you so much for having me. It’s been great.

[00:32:34] (Music interlude) 

[00:32:41] Josepha: And now it’s time for our small list of big things. I’ve got three things for you this week. 

The first thing on the list is that WordCamp US tickets are now on sale. So that event is happening from September 17th through the 20th in Portland, Oregon. There are general admission tickets and micro sponsor tickets available. And if you have seen the cost of the ticket but had not quite noted the length of the event, I just want to assure you that the cost per day is the same now as it was and has been for years. It’s still that same 25-dollar-a-day ticket that you’ve got; it’s just that it’s four days long this time. We’ll have a link to the tickets in the show notes, but then also you can always wander over to us.wordcamp.org, and it’ll take you right there. 

The second thing on our list is that WordPress 6.5 is here. It is named Regina. If you listened to our show last week, you know that it was a huge release and kind of has something for everyone. So, if you have not yet downloaded it to take a look at it, do that. If you have not updated your sites yet, run a backup because you should always do a backup and then get that on your site and start testing everything out.

And the third thing on our big list, our small list of big things, is actually that we’re looking at dropping support for PHP 7. 0 and 7. 1 in upcoming releases of WordPress this year. It should not be too disruptive a change. However, it is going to take a lot of people to test it and make sure that everything’s working as we want it to work and as we need it to work. And so while we head toward that, I want to make sure you’ve got the resources that you need to know what’s happening, where it’s happening, how it’s going to affect you. I’ll leave some resources in the show notes for that as well. 

[00:34:27] 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 liked 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:34:54] (Music outro)