EDITS.WS

Category: wptavern.com

  • Why NASA Chose WordPress for Revamping Its Flagship Website

    NASA has removed the beta label from the new nasa.gov website, which was launched on WordPress, replacing Drupal as the CMS. After a lengthy process, which required 18 months of active web development, data migration, and content building, NASA has emerged with modernized flagship and science websites, showcasing the innovation and discoveries that have defined the agency for more than 65 years.

    The multi-million dollar project began a few years ago when a combination of the IDEA Act and Drupal 7 EOL provided an opportunity for NASA to reconsider the CMS they were using for nasa.gov. Lone Rock Point, a WordPress.com VIP Gold Agency Partner, led the project, which began with a year of UX design and an evaluation of various enterprise CMS’s that would ultimately end up supporting 456 CMS users, 68,698 migrated pages, and 3,023 new landing pages. As part of the project, NASA’s website infrastructure was migrated from an Amazon Web Services environment to WordPress.com VIP.

    “In earlier discovery phases of the project, content authors were were vocal that they were interested in a CMS that allowed them to break free of templates that were perceived to be rigid,” Lone Rock Point President J.J. Toothman said. “The block based authoring approach of Gutenberg is delivering on that and user testing showed that WordPress could provide that. Now that the site is live, the different types of landing pages being created with block based approach further validates that.”

    NASA evaluated both proprietary and open source solutions, and Toothman said they took a high level look at over a hundred CMS platforms. They narrowed it down to four CMS’s – two were commercial and two were open source (WordPress and Drupal). The team completed high level prototyping and user evaluation on all four of the finalists, and used this data in the CMS selection process.

    Toothman outlined a few of the factors that set WordPress apart from the others:

    • Access to resources. Simply put, there’s a huge community around WordPress. That community is extending WordPress in innovative ways; sharing knowledge and training for WordPress; and continuously building up WordPress skills amongst the community. That makes it easier for an organization like NASA to acquire support. There’s options for that. What was found with commercial CMS solutions is that, more often than not, NASA would have to go back to the original CMS vendor to find resources. That’s limited flexibility, which is undesirable for them.
    • A plugin ecosystem that delivered real time content analysis capabilities within the WordPress admin environment in the ares of SEO and accessibility. The fact that content could be analyzed by the author before it was published was significant.
    • Ease of use of the content authoring environment

    “It’s a big win for open source,” Toothman said. “There were a number of CMS capabilities that would have been more time consuming to implement without previous work by others in the WordPress community.”

    He cited the integration that the NASA WordPress site has with NASA’s image library at images.nasa.gov as one example. Content authors in the CMS can search for images in the library and include them in their content via an augmentation that was made to the WordPress media library. Human Made did some previous work with commercial digital asset management solutions that NASA was able to leverage for the images.nasa.gov integration.

    NASA Goes All In on WordPress’ Block Editor

    The block editor’s flexibility for authoring landing pages and breaking free of a rigid templating system was one of the most important factors in NASA’s selection of WordPress as a CMS. As part of the project, Lone Rock Point created 55 custom editor blocks to help NASA website authors share discoveries and tell their stories.

    NASA’s Tabbed Content block – source: Lone Rock Point

    “There’s over 400 content authoring/editor users in NASA’s WordPress CMS,” Toothman said. “With that many users, there’s a lot of variance in pre-existing familiarity to WordPress and Gutenberg. It was challenging. The learning curve was more significant than expected and change management was a big part of this project.

    “Some took the block editor quickly, others needed more support. It wasn’t just learning the mechanics of a new CMS, but learning about the storytelling options available via the new design system and the block editor. We built a lot of custom of blocks to bring the design system to live in WordPress, while also attempting to adhere to the intention of those design system components.”

    Toothman and his team found strategic ways of helping new block editor users become familiar with the authoring tools. They created hands-on training and working sessions to build pages in real time alongside users and created an online knowledge base.

    “To encourage the user community as they learned the new CMS, we created weekly blogs and newsletters that featured screenshots of pages in progress,” Toothman said. “Seeing their peers’ work and out-of-the-box use of the custom blocks, users were inspired to try different things and ask more questions. Our content team held weekly office hours for managing editors to answer questions users may have, hold live demonstrations, and collect feedback to produce more user resources.

    “By creating an environment that invites discussion, collaboration, and creativity, the content team was able to enforce content quality control standards on a massive scale while delivering a high-quality end-user experience.”

    Toothman said he was surprised and delighted by the creative ways authors utilized certain blocks.

    “Content authors figured out ways to use some of the custom Gutenberg editor blocks as design layout options and broke free of the content intention they were originally designed for,” he said.

    NASA will be open sourcing some of its custom blocks and other pieces of the project to give back to the WordPress community as part of the roadmap. The completed project stands as a high-profile testament to the agency’s confidence in the block editor and the wider ecosystem of available tools. It also highlights WordPress as a reliable CMS with exemplary adaptability for enterprise-level projects with complex publishing requirements.

    “For years, myself and many of us in the WordPress community have been mythbusting the perception from customer stakeholders in 2 areas: (a) WordPress isn’t enterprise. It’s just a blogging platform. (B) WordPress is not a secure CMS,” Toothman said.

    “While I don’t expect NASA choosing WordPress to wipe out those pre-existing perceptions, it is further evidence to support the fact that WordPress is enterprise class, and that it can meet security benchmarks.”

  • WordPress 6.4 Font Library Feature Punted to 6.5 Release

    The WordPress 6.4 release squad has decided to punt the planned Font Library feature to 6.5 after core maintainers found major gaps in the Font APIs that cannot be resolved in time for the upcoming release.

    “I am currently reviewing the font APIs PR,” WordPress REST API co-maintainer Jonny Harris said. “I must say, I am very worried about the PR in its current state. The code simply doesn’t follow the WP core code style and doesn’t feel WordPress.” He listed a number of problems he found with the feature:

    • Limited developer API. We need functions like wp_insert_font / wp_create_font etc.
    • Lack of filter or actions
    • No way to unregister font collections
    • Capabilities. Creating new fonts should have capabilies and not simply map to edit_theme_options
    • Confusing API structure.  Collection should have embedded font objects
    • What happens to fonts when collections are unregistered?
    • If fonts are stored as post object, can I query to get all fonts from a collection?
    • Are fonts deleted when the user is deleted?
    • No way to filter where a font is stored

    “With time very limited in this release, it feels like actioning the above, feel like it is going too hard to achieve in this release,” Harris said.

    “I think this feature needs some more time to bake.”

    Harris said none of the REST API maintainers were involved in the early stages of the Font Library feature and they are currently “playing catch up.” The team was attempting to patch the existing design, but Harris said if a redesign of the API is planned, he would like to understand the requirements for the feature before drawing up a design.

    Punting a flagship feature is never an easy decision, but it’s far more preferable than shipping poorly designed API’s that don’t allow users to modify and disable the feature to fit their needs.

    “No is temporary but yes is forever,” WordPress core committer Aaron Jorbin said. “Once the code is merged into core for release, it’s something that needs to be maintained for our extenders forever. To me, the concerns I see being raised about how people will extend the feature are enough to punt the feature.”

    The Font Library feature was put forward late in the release cycle, landing in Gutenberg 16.7 last week, with very little time for testing.

    “Features have landed after beta 1 in the past,” WordPress core committer Jonathan Desrosiers said. “But my preference is to not land something with this much outstanding feedback. We’d be making last minute changes and merging for public release with very little actual testing. Sure, everyone here would test as best they can. But ‘in the wild’ WordPress testing is much different and always uncovers some strange use cases or issues that we can’t foresee.”

    Contributors briefly considered delaying the release date to allow the feature more time but the consensus was for punting to 6.5, with the decision anchored in WordPress’ philosophy of “deadlines are not arbitrary.”

    “Changing a scheduled release date to leave room for finalizing a feature—no matter its priority—should not be considered,” WordPress core committer Joe McGill said. “This would not be the first time that we really hoped to have a feature shipped in a release but delayed it to the next release. It seems to me that a lot of effort has gone into preparing this feature for release and the consensus is that folks need more time to get it into a state that is ready to ship in a major WordPress release, which I know is disappointing, but also speaks to the care and quality folks want to ensure we put into these releases. If it’s not ready, it’s not ready. Let’s delay it — meanwhile we are still getting valuable user feedback via the Gutenberg plugin, which is a good thing.”

    WordPress 6.4 release lead Josepha Haden Chomphosy made the difficult decision to punt the feature based on contributor feedback. The removal of the Font Library does not affect other key features anticipated to land in the release. Jessica Lyschik, 6.4 default theme co-lead, confirmed the Font Library isn’t a requirement for Twenty Twenty-Four. The theme will ship with preselected fonts that get loaded from the theme assets, just like previous default themes.

    WordPress 6.4 Beta 3 is scheduled for October 10, 2023. This will be the last scheduled beta before RC1.

  • #93 – Piermario Orecchioni on How and Why WordPress Gets Translated

    Transcript

    [00:00:00] Nathan Wrigley: Welcome to the Jukebox podcast from WP Tavern. My name is Nathan Wrigley.

    Jukebox is a podcast which is dedicated to all things WordPress. The people, the events, the plugins, the blocks, the themes, and in this case, how and why wordPress gets translated.

    If you’d like to subscribe to the podcast, you can do that by searching for WP Tavern in your podcast player of choice, or by going to WPTavern.com forward slash feed forward slash podcast. And you can copy that URL into most podcast players.

    If you have a topic that you’d like us to feature on the podcast, I’m keen to hear from you and hopefully get you, or your idea, featured on the show. Head to WPTavern.com forward slash contact forward slash jukebox and use the form there.

    So on the podcast today we have Piermario Orecchioni.

    Piermario a freelance web designer resides in Italy, and is deeply involved in the global WordPress community. His journey with WordPress began in early 2017, when he created his wordpress.org account. Among his many contributions Piermario has focused primarily on the Polyglots team, which, if you didn’t know, deals with translations. His dedication and involvement in this aspect of the WordPress community have been important to him, and he shares more about his experiences with the team and how they work.

    Piermario begins by questioning the moral and legal obligations of making websites available in multiple languages. Is it simply a nice thing to do, or are they legal reasons behind it? He sheds light on the importance of language localisation, especially when WordPress is used on government websites to provide user centric experiences.

    But translating websites comes with its own set of challenges, and we discuss the difficulties in translating and reviewing strings in WordPress, where slight changes can lead to a large number of strings needing translations. He emphasizes the need for maintaining consistency, and standards in translations by having a glossary in each language.

    We then talk about Piermario’s journey as a contributor to the Polyglots team. He highlights recent improvements in the translation process, thanks to the GlotPress translation platform.

    We get into how the project is always on the lookout for new contributors, and discuss how they can become editors for specific projects, if their translations meet the required quality standards.

    We delve into the intricacies of language variations and the importance of localised translations. Piermario reiterates that coding expertise is not necessary for this work. Even newcomers with a curious mind and a willingness to help can contribute meaningfully. He paints a picture of how the work of translation is both accessible and beneficial, where short portions of text can be tackled in small amounts of time.

    We end with a discussion of the ongoing projects being translated, such as Learn and Openverse, which aims to reach a larger audience and make WordPress education accessible in multiple languages.

    Piermario shares insights into the Italian WordPress community, and the process of translating plugins and themes.

    So if you’re looking to help out translating WordPress, or just interested in hearing about a way that you can contribute, this episode is for you.

    If you’re interested in finding out more, you can find all of the links in the show notes by heading to WPTavern.com forward slash podcast, where you’ll find all the other episodes as well.

    And so without further delay, I bring you Piermario Orecchioni.

    I am joined on the podcast today by Piermario Orecchioni. Hello!

    [00:04:31] Piermario Orecchioni: Hey. Hi Nathan. How are you doing?

    [00:04:33] Nathan Wrigley: Yeah really nice. Thank you for joining me on the podcast today. We’re going to stray into a subject which, I confess, as I often do on these episodes, it’s an area that I don’t really know a great deal about. So hopefully Piermario will be able to school me all about this.

    I was introduced to Piermario, I don’t know if he knows this, but it was Courtney Robertson that pointed me in your direction because she thought it would be fascinating on the WP Tavern Jukebox podcast to have an episode all about Polyglots and the Polyglot team. So that’s what we’re going to do today. That is the endeavor.

    Before we do that though, Piermario, I wonder if you wouldn’t mind just giving us two or three minutes of your time explaining, who you are, where you live, what your involvement is with WordPress. And I guess, importantly what your relationship is with Polyglots, translations, and the team that’s helping with that endeavor.

    [00:05:28] Piermario Orecchioni: Yeah. First of all, thanks again for having me, and thanks to the ever amazing Courtney for just making my name.

    In the everyday life I am a freelance web designer and besides that I’m part of the Italian and international WordPress community.

    I started contributing in, I think early 2017, was the time when I started my wordpress.org account. And I’ve been mainly contributing to the Polyglots team for reasons that we’ll cover soon.

    Over the course of the years I picked into other teams, like there’s a lot to be done in WordPress. Being not a native English speaker, so having access to bits and parts of WordPress that are not always translated. Everything must undergo some form of translation to allow people like me, and poeple that don’t speak English, to use it in a more comfortable way. So that’s what kept me going, and it’s still why I contribute to this day.

    [00:06:40] Nathan Wrigley: Oh thank you. That’s really nice. I should probably stress at the beginning that maybe there’s a line to be drawn between translating the front end of a website, and translating the backend, WordPress itself. The software that may download from .org.

    We’re probably, if you’re a WordPress user for any length of time, you’re probably aware that there’s a bunch of third party plugins which will handle the translations of say text on your homepage, or any other page or post from one language to another, and you’ve probably come across some of those. There’s a variety of them in the ecosystem.

    But this is not that. Polyglots is more about the backend. Translating WordPress. At least I think that’s the case.

    [00:07:27] Piermario Orecchioni: Well actually Polyglots, and the whole Polyglots team, is responsible, if we want to use a big word. But it actually touches all the WordPress ecosystem and touch points, because we translate WordPress Core. We translate and localise, which sometimes it’s a more appropriate term. Like the bundle teams, like every standard team that comes with a new release of WordPress. We also do that.

    We translate and contribute to plugins, like all the plugins that exist in some language and must be translated, go somehow, somewhere through a polyglots. A polyglots that localised it. Localises that plugin into their own language.

    We also translate what we call Rosetta. That’s kind of an internal lingo. But Rosetta is just like the stone. It’s basically every localised version of wordpress.org, like the Italian wordpress.org, Spanish wordpress.org. So we’re basically everywhere the WordPress ecosystem needs a translation.

    [00:08:44] Nathan Wrigley: Yeah now that you say that it makes so much sense. I for some reason hadn’t managed to parse that. But of course the wordpress.org website needs translating, and of course there needs to be attention given over to plugins and things like that. So yeah, that’s great. Thank you for clarifying that. It does seem like there’s a lot of work to be done, and we’ll touch upon that in a moment.

    Slight aside, for somebody that is an English speaker the word polyglots is quite an unusual one. I mean, I can imagine it’s broken up into two parts. Poly I guess meaning multiple, more than one. But do you have any indication of what the glots bit means? I’m guessing it’s got something to do with language, but in all my years I’ve never just heard that word in an isolated environment. I’ve never heard anybody talk about a glot.

    [00:09:31] Piermario Orecchioni: Yeah, a glot is, now I didn’t do my homework. It definitely means language but I don’t remember if it’s Latin or Greek. I would guess Latin.

    [00:09:42] Nathan Wrigley: Well that’s the meaning anyway. If we collide those two bits, multiple languages is really kind of what it means.

    Let’s talk about the actual endeavor of doing this work then. And although it seems like a fairly basic question, this question could go in multiple directions. So I’ll just ask the question, then I’ll give you some more context on that.

    Why do we need there to be translations in our website? So that’s the basic question, and then I’ll pad it out a little bit more. What I mean by that is, is it just kind of like a morally decent thing to do to have something like WordPress, which is obviously downloaded across the globe millions of times. Is it just a nice, good thing to do to make it available to as many languages as possible?

    Or perhaps there is something a bit more pressing. In other words maybe there’s legal things which come into play. I don’t know if you have any insight into either of those things, but obviously it is a nice thing to do. But I also wonder if as a piece of software which is shipping, albeit an open source piece of software, I don’t know if there’s any legal compulsion to have it translated.

    [00:10:49] Piermario Orecchioni: I don’t think there is a legal obligation or some sort of legal requirement to have WordPress translated. Obviously if you use WordPress on a government website, the plugins or components you’re using should be localised into the language users will be using because that’s just user centricity 101.

    I think that the simple reason why WordPress must, and wants to be, translated into possibly any language in the world is that we like to make this tool available to anybody, anywhere for whatever reason. The more we make WordPress available in somebody’s native language, the higher the chance that they will use it, and they could start something.

    I think it’s just one of the few left idealistic things of the web. Do things for the common good, and having WordPress in your language definitely is quite something. And I was just digging a little bit into the Polyglots pages yesterday on the WordPress site, and one of the bits I found is that, as of June 2020, roughly 55% of all WordPress websites running were not running in English.

    [00:12:17] Nathan Wrigley: That’s a big statistic, isn’t it? Yeah I did not know that number. That’s extraordinary.

    [00:12:22] Piermario Orecchioni: I might even argue it’s even higher by now because in three years we improved and we have way more translation available by now. But it’s true that English is the international language, but it’s also true that there’s a lot of people that does not English, or are not fluent enough to go into a backend of a site and deal with that, if that’s not in their language. So with the translation we remove this barrier and we make WordPress available to everybody.

    [00:12:58] Nathan Wrigley: So let’s dig into the work of the team, the Polyglots team, the people who are translating. I noticed incidentally that you use the word locale a little bit. And so I guess these terms are interchangeable, if anybody’s listening and not quite sure what that word might mean.

    So let’s start, let’s begin with the number of languages that WordPress has been translated into. Again, sorry I’m putting you on the spot. I haven’t actually primed you to know these facts, but I’m curious as to which languages seek attention, and indeed if there’s any kind of order there.

    So you mentioned English, obviously that’s a very large language. I’m guessing you could pick the names of a dozen or more other equally large languages where you know there’s millions and millions of people. But I guess as you go slowly down that order the languages have less people, and I do wonder, are there any which are just being implemented for the first time? Or ones that you tackle later? Ones that you give more importance to? So yeah, just that question to begin.

    [00:14:01] Piermario Orecchioni: I think that the importance is relative and it’s given by the amount of people that contributes to that language. And just as I was saying, in the bit I saw yesterday, this page which most likely was last updated in 2020, speaks about 172 languages.

    But, I found there’s another interesting link which is make.wordpress.org/polyglots/teams, which lists all the locale. And I’m going to get into that a little bit right after this. And that lists, as of today, 208 locale. A locale is, it’s kind of a polyglots lingo, but it’s basically, let’s say the combination of a language code, a regional code, and peculiarities that make even a variation of a language different.

    For example, even if we take English, we have American English, we have British English, we have Australian and so on. Or Spanish, there’s the Spanish spoken in Spain but then there’s the whole of South America. So even the translation of WordPress is not in one single version of Spanish, but it’s localised. So it’s made closer and we strive to make it as familiar as possible to every local speaker.

    I translate only in Italian, but all the contributors that work on every language can pick their very specific language. Because there’s obviously have like hundreds of millions of speakers. But in the locale list you’ll find languages or dialects with like one contributor. So somebody who just started translating WordPress in their own dialect or regional language. Great. It’s a lot of work, but it’s possible. So we have the tools to make that happen.

    [00:16:12] Nathan Wrigley: That’s absolutely fascinating. I run up against this, actually. Curiously, because I’m British, there’s quite a few differences in the way that the translations that I have to do, the transcriptions for this podcast. And there are some words which are spelt in American English differently. So typically, for example, they use a zed or a zee character at the end of a word, like customise might have a Z or a Z at the end. Whereas in British English we’d replace that with an S. And I’m always confused as to how I should translate things for this podcast, because I never know, should I just stick with what I would use? Or should I try to think more about broader audience?

    In the end I settled on just having it done in the way that I would spell it, because then I can spot those mistakes more or less automatically. Whereas if it’s looking for a spelling error in American English I may not be able to pick that up. But thank you for clarifying that. So we now know difference between locales, and the fact that that obviously complicates the job of translating WordPress even more.

    Who does this work? And, is there a base language which it’s built upon? So as an example, is WordPress originally created in, let’s say, American English? And then the translation team, they get their hands on it and they begin from that baseline of that language to make the translations where necessary.

    Perhaps it’s not done that way. So yeah just tell us how it’s done, what the process is and who is doing it? And I don’t mean names I mean, who are the people? Bunch of volunteers I’m guessing just like much else in WordPress.

    [00:17:49] Piermario Orecchioni: Yeah I think it all starts with the American English version. Since 2010, I did my homework here, we do have a platform which is called, we call it Translate but it’s actually based on a system called GlotPress which is developed and maintained by the WordPress community.

    Anybody can go to translate.wordpress.org and pick and choose basically. So if you go there you can start by choosing the language you want to translate, or help with. And then once you pick the language you can pick what you would like to help with. So you can suggest translations into the WordPress Core, a plugin, a theme, or really anything that’s available. For example, other projects that we translate are like Open Verse which has been growing fast over this last years.

    New, very interesting things like Learn WordPress. That’s all in the process of being translated and made available to a larger audience, because even Learn WordPress, it’s kind of new at least in the form it has now. But it could potentially open the doors of WordPress education to everybody virtually in any language, and make WordPress education available for free to anybody. So there’s a lot of work being done on that as well.

    [00:19:28] Nathan Wrigley: That’s really fascinating, because as a consumer of WordPress news, I love it when these new initiatives come along. So you know Open Verse is a perfect point, and the new revamped, revitalized efforts into Learn and all of that. I’m just looking at it and thinking oh that’s brilliant, look there’s loads of new resources.

    And of course completely forgetting the part that you’ve got to play, your team, the team has got to play in order to make that available to everybody else. So it kind of seems like this is a hamster wheel which just gets faster and faster all the time. I’m guessing there’s never less translations to be done, there’s only more translations to be done as new ideas and new initiatives and new projects come with the growth of WordPress.

    [00:20:12] Piermario Orecchioni: Yeah, yeah. There’s always new translations or even projects. The project that personally I really hold close to my heart is the Italian localisation of the Gutenberg plugin, because it’s really one of the first project where in the Italian community somebody gave me the responsibility to kind of take care of that.

    So even to this day, but for some time, I was really focused on maintaining and you know helping people come on board to help translate Gutenberg, and have it as close to a hundred percent of translated strings.

    Our unit of thinking is string. We could go into that like super quickly. But basically anything you use in WordPress that you find on translate.wordpress.org is conveniently listed as endless, or less endless, series of strings that must be translated to have a hundred percent of the English content of that specific project or plugin, or anything translated into your language.

    So even projects like Gutenberg that, yay, a hundred percent. So we have like three minutes to celebrate because Gutenberg comes out every two weeks. So every two weeks, the strings are added or different or wait, there’s parts of the full site editing experience that now are called differently. Like we’ve seen now I didn’t prepare any examples, but I mean even going to what’s current, like 6.3 has synced patterns.

    [00:22:03] Nathan Wrigley: Right. Reusable blocks became synced patterns.

    [00:22:05] Piermario Orecchioni: We’re kind of starting to, let’s translate and do our best every time we translate. But let’s also, especially when it’s something so fluid and so fast moving as the whole new block themes, full site editing effort. Let’s just make the best we can do because it might change in weeks or months, or when we find a better way to communicate that or market that.

    [00:22:36] Nathan Wrigley: That’s really interesting. So I’ve learned a couple of things. We have this expression by the way in the UK and the expression goes, it’s like painting the Forth Bridge. There’s this very long bridge in Scotland, and there is a team of people who paint it. And because of its great length it takes them you know multiple years to get from one end to the other. And you can guess what happens. As soon as they the end they just start right over again at the far end that they, you know, a couple of years ago began. And so this process of painting never ends, and thus it is with the project that you are talking about.

    But also what I learned there was that the translations are sort of grouped into blocks. And I don’t mean blocks as in a WordPress block, I mean groups of things. So Gutenberg, that is an object if you like, that needs translating. And you can achieve a hundred percent of that, albeit that’s an example which is constantly changing and probably never quite stays at a hundred percent for particularly long because it’s constantly in flux.

    So I’m guessing that there are other groups like that. And I’m wondering if some of those things receive more importance. So as an example, something like Gutenberg which has become really the bedrock of WordPress, I’m guessing that when a new version of WordPress comes out, let’s go with a new version of WordPress rather than the plugin itself for Gutenberg. When a new version of WordPress comes out, 6.3.

    Do you have to sort of drop the translations temporarily of other things, so that you can make sure that that ships perfectly? Or at least as perfectly as you can. Do you have some sort of system of saying, okay this is the important thing for this week or this month, and some of these things may have to wait? Is there an overarching authority that makes all that happen? Or is it really just left to the contributors to decide what they’re going to do and when they’re going to do it?

    [00:24:23] Piermario Orecchioni: It’s really left to the community but we set ourselves with priorities, like when a new major version of WordPress is about to be released, lets focus on that. We do not forget Gutenberg for a few weeks, but we just focus on getting all the strings for the new version translated. Usually after a few release candidates there’s like a string freeze. At that point nothing is moving. At that moment we just check what’s left to translate and what needs our attention.

    In a way the beauty of this is that the WordPress Core and Gutenberg are so tightly related that they’re constantly above I would say 90, 95%. Like we hardly drop, as I’m talking about Italian localisation, but we hardly drop below 98% of translated strings. Sometimes we have like 50 new strings, or a hundred strings that need to be translated or reviewed because something has been slightly changed or synced pattern.

    [00:25:38] Nathan Wrigley: That’s a good example at the moment, isn’t it? Because can you imagine how many times the word, in English, reusable blocks would appear on all of the .org properties? I mean I’m guessing it’s multiple thousands. The idea of going back and changing that in, not just WordPress Core but also in, like you say, the Learn materials and the documentation for WordPress. It’s a big search and replace, isn’t it?

    [00:26:02] Piermario Orecchioni: Well in a way it could be, but we do have a few tools. We have many tools but two of the tools that are really our bread and butter as Polyglots team is the, like every locale, every language has it’s own glossary which is the reference for translating WordPress into your language. Because the Polyglots team of each country is also responsible for choosing what’s the standard translation for an English term.

    In Italy we do have this tendency to gleefully adopt English terms, which is fine by me in some cases, because I speak English. But not everybody is as tech savvy or has a specific knowledge of English that allows them to make sense of any English term you want to squeeze into a plugin translation or something, so we have to set boundaries.

    For example, one we always use when we onboard new contributors to the Italian community, is that the Italian translation of a post, like blog post, it’s articolo. It’s like article. Which kind of makes sense, but at the same time we do recognise that’s kind of weird in a world where any social media bit you publish is a post. So people are now familiar with the word post. So why don’t we just use it in WordPress? Because somebody years ago decided that we go with articolo and until, perhaps there’ll be in x time, a real reason to drop that translation that we set as standard, we’ll go with that.

    But having a glossary also allows you to create much more consistent translations. So I like to say, we like to say, that polyglots, it’s really probably or maybe just because we want to float our boat. It’s probably the easiest team to get involved with if you want to help in the WordPress community, because you don’t necessarily need to know coding. You don’t necessarily need to be an expert.

    Even in WordPress you could be a regular new user. Just have curiosity and will to help, and you can start pretty much anywhere. And when somebody’s new and it’s starting, all the entries that are in the glossary are already highlighted so that we help somebody suggesting new translation to stay consistent, and use the same terms that we already used over and over in tens, hundreds, thousands of strings all around the WordPress ecosystem.

    [00:29:09] Nathan Wrigley: I guess also, unlike many of the other teams, the enterprise of the work is fairly obvious in that you know that what you’ve got to do is look at one language, translate it into the other language, as best as you can, and rinse and repeat. So the enterprise is fairly straightforward.

    And I’m also guessing that it’s fairly atomised. What I mean by that is there’s going to be portions of text which are relatively short. So it’s the kind of thing that you could dip in and out of. Whereas maybe some of the other teams, the approach would have to be much more, you know this thing is going to take hours and hours and hours. With translations, I could be wrong forgive me if I am, but it feels like if you had the inclination you could dip in for several minutes and still achieve something valuable, but it would only have consumed a few minutes of your day which most people could probably find.

    [00:30:08] Piermario Orecchioni: Absolutely. Like I always keep some projects handy instead of playing wordle for the day. I open a plugin or something I’m curious about, or I want to help make available in Italian, and just punch in a few strings. But it’s really for everybody, like this is the message. It’s really for everybody and there’s no way you can break the internet by contributing because there’s like levels of contributors in the Polyglots team.

    [00:30:41] Nathan Wrigley: I was going to ask this. I thought this was an important point.

    [00:30:44] Piermario Orecchioni: So it’s safe, and can be really, you can take it as a game. Because if you have a wordpress.org account you can go, log in on translate.wordpress.org, pick a project and start suggesting translation for any project.

    So in that case you’ll be contributing to a translation, but at that point you are not an editor for that specific project. So basically if somebody who just discovered that they can do this thing suggests a translation, an editor, and we have two main categories of levels of editors, they can review the translation and approve it. And now that bit of WordPress is yours. Like you contributed to WordPress and it’s the best feeling.

    And usually, this is just a silly thing, but when a major version is coming out if you participate in translating the new strings for the new Core version, like 6.3 just few weeks ago. If your translation is approved you also get the warm fuzzy feeling of having your name in the WordPress translation credits.

    [00:32:11] Nathan Wrigley: That’s nice. I was curious about that because obviously the capacity to go in with your wordpress.org account and then just, well for want of a better word, and I hope it doesn’t happen all that often, but just to cause mayhem. Unless there was some sort of editorial hierarchical approach, where things entered a pending queue and then somebody with presumably more backstory in the translation team. So the longer you’ve been there, the more kudos you’ve built up, if you know what I mean, presumably the more responsibility you get.

    I would imagine that that’s probably really required. You need people who are going to get a notification or something to say okay things have been amended, go back, have a look. And so they may not be involved in doing all the translations, but they’re presumably the ones that get to say actually that one looks fine, move on. That one looks fine. Hold on a minute there’s something weird there, let’s not publish that one. Something seems to be weird. Let’s just reverse it and go back to what we had previously. So there’s those processes going on.

    [00:33:13] Piermario Orecchioni: Yeah It’s actually something we’re continuously trying to improve because in a nutshell, there’s like regular contributor, like somebody that comes in and for example, right now one of the things we are working on is the Italian translation of the new Italian WordPress website. Because if you go to the Italian website today it does not look like the English version, because the theme was not made available yet. But it’s about to be available once the translation is completed.

    So when I started with other contributors to translate that weeks ago, many strings were just version numbers. Like the page where WordPress versions are listed is version numbers, dates, and jazz musicians. So you don’t need to have like a specific knowledge of either English or jazz history or anything else to know that you can help with that bit of the translation.

    So when it comes to other projects obviously there’s like hundreds, and possibly thousands, I would leave the possibly out because there’s thousands of plugins in the WordPress plugin repo. So everybody wants to be translated in other languages.

    So at the top, let’s say with many quotes, at the top of the editor’s pyramid in the Polyglots team, that’s what we call GTEs, General Translation Editors, of which I’m one for the Italian team. Basically we have the power slash responsibility to proof and edit any string on any project related to WordPress. We can approve somebody’s suggested translation. We can edit a translation if something’s wrong or improper terms have been used in some way.

    But one of the improvements we’ve been doing, thanks to the team that develops GlotPress, and the whole platform that powers the translations, is that for probably less than a year we now have like a feedback tool. When somebody suggests a translation, as an editor you now have a field where you can ask the person to make some changes. Like, can you please change this because? Like check the glossary. You know, you can give them a hint on how to improve their translation.

    As new contributors get better at translating, and we see that their contributions are of course always welcome but the quality is good. If you want and if you show that your translation meets the standard we’re aiming for, you can become an editor for a specific project, which is usually a plugin or a theme.

    So we have lots of people that are either developers that have a plugin that they want to translate into Italian. So they want to become editors for that project and that is called, that position let’s say, it’s called PTE like Project Translation Editor.

    If you are a PTE you can approve all the strings for that specific project. So we love when somebody comes in and adopts their favorite plugin or theme that is not yet translated into their own language.

    I think it’s a beautiful way of contributing. There’s several people I admire in the WordPress community. But people like Rich Tabor, Anders Noren who have been putting out for years themes for free for the community. Having those themes translated right away, or almost right away, when they’re released, I think it’s also our way of giving back, because I think it’s just a beautiful thing and it makes us community.

    [00:37:40] Nathan Wrigley: There’s a little bit of quid pro quo there, isn’t there? Which I guess you based upon the endeavors that you’ve put in in the past.

    I have a curious question in that, and again forgive me because of my English, as in British, proclivity. So I speak English, I confess in terms of any other language I have no skills whatsoever, so it may very well be that this team is kind of out of the question for me because I couldn’t manage to translate anything. But it makes me wonder, is it possible to pollinate languages outside of English into other languages?

    So let’s say, for example that the Italian translations, like you’ve just said it sounds like your auspices and the team that you are working with, that those translations in many cases are done fairly rapidly. Which means that the Italian strings and translations could be looked at fairly swiftly as complete. Now if I don’t speak English but I do speak Italian and Japanese for example, is it possible to go in that direction? There has to be no single language which you are feeding from. Can you go from one language to another without having to have, let’s say, English in the mix?

    [00:38:51] Piermario Orecchioni: Yeah I would say so. It’s something I’ve hardly done, but sometimes I have the same curiosity so I just didn’t follow what happened next after I suggested a string in like Spanish or French. Or I translated Louis Armstrong’s name into Norwegian let’s say .

    I didn’t follow up to see if that string was approved, because if for Core versions the approved strings go into a big bucket and you get like a credit in the WordPress credit page of your localised version. But if you go check any plugin and check the translation for a specific language you can see who translated that plugin.

    So somebody translated one string, somebody 200, and so on. So I think it’s quite possible that you can suggest a string in a language that is not yours, and if it’s correct that can be approved. I just didn’t follow what happened after that, but it’s possible.

    [00:39:58] Nathan Wrigley: Yeah thank you. Just before we round it out I guess would be good to talk about the team itself and how you think about that. And then maybe move on to talking about how you can become involved. So I’ve got a few questions around that.

    The first one is, are there enough people doing this work to make it so that you know you’re all just having a very nice time of it? There’s a few things to be done each day, or is it more a case, I guess you can speak to the Italian I don’t what it’s like elsewhere, but maybe as a part of the team you’ve heard discussions around this.

    Are there enough people or does the team feel undersubscribed? Are you on the lookout constantly for new people? And are there any languages that you know of in particular or locales that you know of in particular that are crying out for help?

    [00:40:44] Piermario Orecchioni: Well every language in any part of the world could use some help, definitely. We always have room for new people, and we’re very happy when folks join us so that we can do more in less time. And we’re happy when somebody joins and stays and is happy and gets rewarded by having their translations approved, and seeing that something is in your own language because you helped. That’s always great.

    Sometimes I think we tend to think about WordPress as this huge, giant project that will be there no matter what, and is translated into my language because it has to be. Like, how can it be not available in Italian or so? But then when you go and see the numbers, I think the active general translation editors for Italian are about 15 people.

    We have hundreds of contributors that range from somebody who translated two strings two years ago, to somebody that needs a plugin, like a specific plugin, localised because their business needs it. So they become editors and they contribute even just to that.

    But there’s always room for new people in, and there’s like grunt work and weekly meetings where we hold Slack meetings, as all the WordPress community does. And having more people on board means that somebody else can host a weekly meeting. Otherwise it’s like 2, 3, 4 of us that rotate and do that. And it’s a pleasure, but sometimes you have life in your way.

    We always make space for WordPress because we love the project, and it means so much to us. And to answer your question, the team itself, I think I can even speak beyond the Italian team, because like at Work Camp Europe I had the chance to meet other Polyglots from other countries, and the vibe is really good. Like it’s a non-competitive team. Anybody’s welcome, and in the Italian community we’re really kind of family. Like we have WhatsApp chats to check on each other, like we really develop friendly relationships. That’s part of what keeps us going, because you feel like part of a group that is nice to be around.

    [00:43:23] Nathan Wrigley: Yeah that’s really nice to hear. It does strike me as a very, well I mean this may sound obvious, but it’s a very communicative team, because you are basically dealing in communication. So it’s really nice to hear that.

    Just before we wrap up, you’ve said that there’s always a need for people to do this work. And you did, I think, mention it earlier but maybe it’s a good idea to mention it again. Where’s the best place to go to get involved? For somebody that’s never touched on this before, where would you direct them?

    [00:43:51] Piermario Orecchioni: The go-to place is always make.wordpress.org or wordpress.org. Somewhere in the navigation there’s either a make menu item or a get involved menu item. So just go there and pick your team. I would suggest Polyglots.

    But really, every team, there’s like photography team. It’s something that did not really exist until a few years ago, and you can contribute to WordPress moderating photography or send in your photography so that everybody could use nice, copyright free, pictures. There’s really a space for everybody to help in every way. We like to be open and welcoming in WordPress. That’s really what we love.

    [00:44:43] Nathan Wrigley: Thank you. And finally, last question. If people wanted to get in touch with you. You may have a social media platform that you prefer to use or email address or a website, whatever it may be. Where do we get in touch with you?

    [00:44:57] Piermario Orecchioni: I’m on Slack as @Piermario. So on the WordPress Slack anybody can message me on the Italian, and the international Slack just with @ my name. I would say on what’s left of Twitter, I do have a weird handle because Piermario was taken. So my Twitter handle or X handle is succoallapera, which means pear juice, because I’m an avid pear juice drinker. And I would say that’s about it.

    One day I will keep updating piermario.com, which I’m slowly rebuilding and using. Even as a kind of sandbox or block theme playground. But I have more ideas and drafts than actually published posts for now, but one day it’ll be more lively.

    [00:45:58] Nathan Wrigley: Piermario, thank you so much for chatting to us on the podcast about this really intriguing subject. I’ve learned a lot. Thank you very much for joining us.

    [00:46:06] Piermario Orecchioni: Thank you so much and thanks again for having me.

    On the podcast today we have Piermario Orecchioni.

    Piermario Orecchioni, a freelance web designer, resides in Italy and is deeply involved in the global WordPress community. His journey with WordPress began in early 2017 when he created his wordpress.org account. Among his many contributions, Piermario has focused primarily on the Polyglots team, which, if you didn’t know, deals with translations. His dedication and involvement in this aspect of the WordPress community have been important to him, and he shares more about his experiences with the team and how they work.

    Piermario begins by questioning the moral and legal obligations of making websites available in multiple languages. Is it simply a nice thing to do, or are there legal reasons behind it? He sheds light on the importance of language localisation, especially when WordPress is used on government websites, to provide user-centric experiences.

    But translating websites comes with its own set of challenges, and we discuss the difficulties in translating and reviewing strings in WordPress, where slight changes can lead to a large number of strings needing translations. He emphasises the need for maintaining consistency and standards in  translations by having a glossary in each language.

    We then talk about Piermario’s journey as a contributor to the Polyglots team. He highlights recent improvements in the translation process, thanks to the Glotpress translation platform. 

    We get into how the project is always on the lookout for new contributors, and discuss how they can become editors for specific projects if their translations meet the required quality standards.

    We delve into the intricacies of language variations and the importance of localised translations.

    Piermario reiterates that coding expertise is not necessary to this work; even newcomers with a curious mind and a willingness to help can contribute meaningfully. He paints a picture of how the work of translation is both accessible and beneficial, where short portions of text that can be tackled in small amounts of time.

    We end with a discussion on the ongoing projects being translated, such as Learn WordPress and Openverse, which aim to reach a larger audience and make WordPress education accessible in multiple languages. Piermario shares insights into the Italian WordPress community and the process of translating plugins and themes.

    So if you’re looking to help out translating WordPress, or are just interesting in hearing about a way you can contribute, this episode is for you.

    Useful links.

    Polyglots team

    Rosetta

    GlotPress

    Translating WordPress

    Openverse

    Learn WordPress

    Piermario’s website

  • Contentious Review Process Leads Ollie Theme to Remove Innovative Onboarding Features, Amid Stagnating Block Theme Adoption

    Mike McAlister, creator of the free Ollie theme, will be dropping the innovative onboarding features from the theme in favor of putting them into a separate plugin after facing pushback during the review for inclusion in WordPress.org’s Themes Directory.

    During what McAlister described as an “unnecessarily contentious” review process that turned unproductive and combative at certain points, and where he even became the target of subtweets from a dissenting reviewer, his team decided it was not the right time to move forward with getting the whole experience approved as originally planned.

    McAlister published his decision to WordPress’ Theme Review Slack channel:

    We’re going to forgo putting the onboarding feature into the Ollie theme for .org.

    While we appreciate the flexibility and open-mindedness to considering an exception for it, ultimately, it seems like it might not be the right time on the directory.

    Maybe in the future the directory has a more defined path for experiments like this, but right now it has a potential to be a burden to reviewers and other theme developers. Not to mention a very lively (and sometimes unnecessarily contentious) discussion that distracts from the excitement and positivity around block themes and Ollie. We don’t want that! That’s a lot of energy we could be using to bring something like this to core one day.

    Until then, we’re figuring out what the next steps are, but it looks like we’re going to continue with Ollie on the directory (sans onboarding) while we figure out how to deliver the onboarding experience via a plugin mechanism.

    McAlister’s decision comes as a surprise after he received the green light from WordPress project leader Matt Mullenweg, who encouraged Ollie’s approval as an experiment, and WordPress Executive Director Josepha Haden Chomphosy, who attempted to embolden McAlister towards giving the experiment a chance. He also found the support of several forward-thinking members of the Themes team and much of the wider community.

    “I would not be a good steward of our community of users if I didn’t suggest that getting the whole thing into the repo so it’s easy to find and use is the best experience for them,” Chomphosy said.

    “There’s some risk to adding it as-is to the repo. But the potential upside, I think, is pretty substantial.

    “If we’re not wanting to include it because we are worried that in the future we won’t have the skills to review more of them, then that’s not exactly the theme’s problem. That’s something where we should equip our reviewers for the future as best we can.”

    She also suggested another option where the theme moves forward without removing the onboarding while contributors work towards WordPress core creating a standard for providing better onboarding experiences.

    “We get the theme in (including the onboarding) and in parallel start a feature plugin process to move the onboarding to be Core-first,” Chomphosy said.

    “That’s bold, I realize. But also, I did tell the entire hosting community at Cloudfest that if they wanted to one thing to help WP succeed, it was ‘better onboarding’ and if they wanted to do two things, the second was ‘better time to launch.”

    Putting the onboarding solution into a plugin would reduce the long-term burden of maintenance and create a lower risk of failure from the theme, as Merlin WP themes onboarding wizard creator Rich Tabor contends, but nobody knows how long it will be before core can offer a standard solution. By then WordPress may have missed many opportunities to seamlessly onboard more block theme users.

    Chomphosy’s suggestion of going ahead with the experiment in the theme while simultaneously working on a core solution allows theme authors to use training wheels to keep the momentum of block theme adoption going until a better, more elegant solution is available in core.

    WordPress leadership’s public approval was critical in this instance after the unwelcoming experience McAlister had in trying to get his free theme approved for the directory. He cited other factors regarding negative perception that influenced his decision.

    “There is a lot of subtle and not so subtle pressure from some higher visibility folks that feel strongly that this shouldn’t be in a theme,” McAlister said. “And I don’t want those relationships to degrade as a result of how this might play out.”

    McAlister said he is still interested in bringing the onboarding experience to WordPress.org as a plugin, where it can be studied and experimented with, but isn’t sure how soon that can happen given the long delays in plugin reviews. The current queue has 1,247 plugins awaiting review, with wait time for an initial review at 103+ days.

    Evolving Theme Reviews: WordPress.org Must Stop Alienating Innovators While Block Theme Adoption Is Stagnating

    Although WordPress leadership was quick to respond in support of experimentation, recalcitrant plugin reviewers, clinging to antiquated rules written for Classic Themes, had already driven Ollie’s innovation away with their chilly, unfriendly reception.

    Mullenweg has historically communicated his support for experimenting with themes on multiple occasions, encouraging developers to do novel things with WordPress that may not fit within the guidelines. In 2015, he went so far as to say, “I am completely okay with having something in the directory that breaks every guideline, as long as it’s interesting.”

    A few months later in 2015, he recommended the review team “try to think of it as a more general opening up to interesting things that might not fit the guidelines but are novel and warrant inclusion in our directory.”

    At that time, Mullenweg encouraged the team to step back and examine the submission process and the directory in a new way that would encourage creativity among theme authors with fewer guidelines and restrictions.

    A fundamental culture change is necessary for this team and long overdue. It should be a matter of urgency at this point, given the tone of reviewers in Ollie’s trac ticket. Theme reviews should bend more towards enabling innovators instead of preserving familiar processes. The response to theme authors trying new things should be friendly and helpful, especially when those new things stand to greatly benefit users. The process should not be burdensome to creators who are trying to offer their work for free.

    “As I mentioned earlier in the thread, another important note is that our vision for the onboarding — some of the features that people loved about it — were removed during this long review process,” McAlister said. “So even if it went live today, it doesn’t quite reach its maximum potential as is. And if we started adding some of those features back, I feel we’d be mired in more back and forth.”

    This situation should be a wake up call for the review team, as WordPress’ best product creators are watching to see how this plays out when considering where to distribute their best work.

    A recent spreadsheet created by Munich-based digital agency owner Hendrik Luehrsen tracks the usage of themes with the FSE tag. It shows that WordPress block theme adoption is stagnating, if not in full decline. In September 2023, the total number of active installs for block themes declined for the first time since Luehrsen started tracking. The average installs by theme are also slowly and steadily declining. This could be related to the growth of the number of FSE themes available, as active installs would presumably be spread across more themes, but the number of FSE themes is growing at a glacial pace.

    “I would say it’s too early to assume definitive decline,” Luehrsen said. “But we’re most certainly not growing the FSE usage.”

    “Having run a number of block theme training courses, I’m not at all surprised,” Pootlepress founder Jamie Marsland said. “Until Block Themes get easier to use for beginners, my guess is the numbers won’t change significantly. The dev team should try running a training course and see for themselves.”

    Marsland recently interviewed McAlister, discussing some of the reasons for the slow uptake in block themes. Their adoption is hindered by a lack of effective marketing for their innovative features as well as the complexities involved in creating a block theme that fully supports everything a user can imagine doing with the block editor.  McAlister highlighted the necessity to create more user-friendly experiences and the importance of onboarding and better education for those using and making block themes.

    “I’m not kidding when I’m saying it’s in all our interests to start making sure this becomes better soon,” Joost de Valk said in response to the latest figures from the spreadsheet tracking FSE usage. “WP stands to lose market share if we don’t get better soon.”

    With block themes struggling to gain adoption, WordPress should be doing everything it can to enable any block theme that improves the user experience, especially in the absence of a core solution for onboarding. It’s important to remember that when major versions of WordPress are released, the only people who can take advantage of the latest and greatest editor features are those whose sites are using a block theme. After three years, WordPress.org block theme installs only account for 1.7 million sites out of an estimated 810 million.

    “As someone who has been trying to get block themes to be adopted by a wider audience from early, I feel onboarding/switching to block themes is a big hurdle for users still,” ElmaStudio co-creator Ellen Baer said in the conversation in the Theme Review Slack channel.

    “I personally would love to see a core solution, a standarized way that all block theme users can get familiar with. I feel unfortunately while building the site editor experience this point has been missing and block theme authors are seeing the user struggling to get started.

    “I feel a bit sad that a positive innovation that helps block themes and the site editor to gain more momentum (which is what we really need) is dragged into a discussion that seemed at least from the outside not to be a productive or positive one at times.”

    McAlister’s attempt to improve WordPress.org theme users’ onboarding experience was unsuccessful but he inadvertently highlighted some areas where the culture and process around theme reviews has stagnated and become counterproductive. This failure shed light on the need for a more dynamic, user-centric approach, as well as a reassessment of the current guidelines by which the team appears to be bizarrely and inextricably bound despite years of encouragement to experiment.

    “There is a deep, deep desire for evolution of the theme directory,” McAlister said. “I think we’ve always known this, but after wading through weeks of commentary, it’s clear to me that we’ve neglected it far too long. The theme pages should be at least as good as the plugin pages, the theme demos aren’t selling the value of themes, etc.

    “The hardline approach and the echos of longstanding esoteric debates need relaxing. Users largely don’t care about the theme vs plugin debate, they want to design and publish faster. That’s not to say we throw these things out, but we have to ask if they’re serving WordPress users in the ways we think they are.”

  • WordPress Global Sponsorship Program Raises Costs for 2024 to Support Expanding In-Person Events

    WordPress’ Community team has proposed a draft for the 2024 Global Community Sponsorship Program, with fees increased to cover the costs of the rapidly expanding number of in-person events.

    The program supports the volunteer-organized local events so that they can provide free or low-cost access for attendees. It helps companies streamline their sponsorship contributions across multiple events with less administrative overhead than it would be to sponsor individual WordCamps. The program does not include flagship events such as WordCamps Europe, Asia, and US.

    Fees have gone up since 2023 for all three sponsorship packages: Gold, Silver, and Bronze, which offer varying degrees of visibility at in-person WordPress events.

    Gold Silver Bronze
    2023 $130,000 $95,000 $80,000
    2024 $145,000 $115,000 $90,000

    The 2021 and 2022 programs did not include funding for WordCamps, due to the unpredictability of hosting in-person events when the pandemic made conditions unfavorable in many places across the world. At that time many WordCamp and meetup organizers opted to continue with virtual events.

    In 2023, WordPress events are ramping back up again. Automattic-sponsored community contributor Isotta Peira said the number of in-person events has increased by 60% compared to 2022, and they expect Next Gen events will keep the program growing into 2024. So far 15 pilot events have been confirmed for the new Next Gen format, with 11 of them happening in 2023.

    “As a result of the Meetup Reactivation project that started in July 2022 and ended in June 2023, 270 dormant Meetups started hosting events again,” Peira said. “Today, we have 729 WordPress Chapter Meetups in 107 countries and over 500,000 members globally. In the first 7 months of 2023, the WordPress Community has held 27 WordCamps, and another 29 are scheduled before year-end.”

    The proposal highlighted a few stats demonstrating the strong resurgence of community events:

    • 36 local WordCamps held in 2023 to date, with 25 more scheduled before year end
    • 173% increase in WordCamps since last year: 60 WordCamps anticipated to be held in 2023, compared to 22 in 2022
    • 729 meetup groups across 107 countries
    • 507,796 meetup group members, program-wide
    • 2,998 meetup events scheduled in 2023 to date, and over 340 more scheduled through the end of the year

    The uptick in events is the direct result of the Community team’s efforts in 2023 to reactivate dormant meetup groups, bring back in-person WordCamps, and evolve the WordCamp program to make room for new event types.

    Companies that are interested to support WordPress’ burgeoning events program can get on board for 2024 by emailing support@wordcamp.org before November 30, 2023.

  • Gutenberg 16.7 Introduces Font Management

    Gutenberg 16.7 was released this week, packed with several features that are headlining the upcoming WordPress 6.4 release. This will be the last plugin release that will be rolled into the next version of WordPress.

    Font management with the new font library is now available for testing in the plugin. These features standardize a way to add font collections to WordPress’ new font library, so plugin authors can register lists of fonts and users can install the ones they want. It also enables font foundries to create their own WordPress plugins to provide access to their fonts.

    The Font Library manages fonts independently of a site’s active theme, allowing users to install, remove, and activate fonts from various sources in WordPress. This works in a similar way to the Media Library.

    After updating to Gutenberg 16.7, users can navigate to Styles > Typography to manage fonts.

    From there, users can launch the Font Library, which loads in a popup screen, and browse all of the installed fonts. A Google Fonts tab allows for installing additional fonts that will be loaded locally from the user’s server. This gives site editors more freedom in selecting the typography for their websites instead of relying on a theme or plugin to provide font options.

    Gutenberg 16.7 also brings several important enhancements to patterns. Users can now import and export patterns as JSON files from the Patterns screen, making it easier to share patterns to other WordPress sites.

    The “My Patterns” category designation has also been reinstated to the post editor’s inserter, based on feedback after it had been removed.

    Inside the the inserter in the post editor, pattern filters have been relocated to a dropdown at the top of the pattern list panel, along with a sticky header to help with navigation.

    Other notable highlights of Gutenberg 16.7 include the following:

    • Group blocks can now have custom names, making it easier to know what they are in the List View
    •  New Social Link icon for the X service (formerly known as Twitter)
    • New ability to toggle ‘nofollow’ setting for inline links (rich text only)
    • Add aspect ratio to image placeholder
    • Image block: Revise lightbox UI to remove ‘behaviors’
    • Image block: UI updates for the image lightbox (redo)

    Gutenberg 16.7 includes 331 pull requests from 88 contributors. For more details on all the enhancements, bug fixes, accessibility, performance, code quality, testing, and tooling improvements, check out the full changelog in the release post.

  • Ollie Theme Faces Pushback from WordPress Theme Review Team

    Mike McAlister, creator of the free Ollie theme, has been working towards getting his theme approved for hosting on WordPress.org. Ollie went into public beta in April 2023 and gained momentum over the next few months when McAlister previewed the theme’s new onboarding wizard.

    WordPress users have been slow to adopt the block editor and block themes by extension. In 2022, only 54% of respondents to WordPress’ annual survey have used the block editor, four years after it was introduced. Block themes have trickled into the official directory, far behind the lofty goals set for their expansion. The sluggish movement towards block-based sites has led some to speculate on whether there will ever be a market for commercial block themes.

    Ollie was designed to make onboarding to a block theme easier and the Site Editor more approachable, so that users don’t have to start from a blank canvas. The theme’s demo boasts “a 40-hr head start” on setting up a new WordPress website, thanks in part to dozens of patterns for fast page building. Ollie’s built-in onboarding experience aims to drastically reduce the amount of time users spend getting started.

    After receiving significant pushback from the Theme Review team during Ollie’s three weeks in the queue, McAlister has put up a poll requesting feedback on how he should proceed.

    Although provisionally approved by veteran theme reviewer Justin Tadlock, who said the onboarding functionality should be allowed until WordPress core offers a standard solution, Ollie was met with heavy criticism from other members of the team.

    “The setup wizard is plugin territory,” UXL Themes founder and theme reviewer Andrew Starr said. “Why not make this as a plugin that would work with any block theme? A plugin could be inspiration or a nudge to improve the core experience.”

    McAlister responded to this question in the Trac ticket for the review and in posts on X. He maintains that a plugin is a “far worse experience for the end user” and for his team as the maintainers of the product. Also, since the plugin review queue has 1,249 plugins awaiting review with developers waiting an average of 98 days for an initial review, a plugin for Ollie’s onboarding experience would likely not be live until next year.

    “As a compromise and show of good faith, I’ve chopped down the onboarding wizard to a fraction of what it was,” he said. “No dice. Still, it continues to be a highly contentious issue that is causing folks to publicly question my intentions and integrity. Disheartening to say the least.”

    Automattic-sponsored contributor Justin Tadlock, who helped author the guidelines in question many years ago and who has historically been widely esteemed for his impeccable judgment in regards to the grey areas of content creation in themes and the necessity of preserving data portability, weighed in on the ticket after performing the initial review:

    As someone who co-wrote the original guideline for settings to use the customizer, I can say with 100% certainty that we never meant that to be a hard line drawn in the sand. The team reps can and have always had the capability to mark a theme as a “special case” (there’s even a tag for this in the backend, or there was when I was a rep). And there are themes where we felt like the functionality was unique enough to give it a bit of wiggle room. That was a position that we took when we wrote the “settings must be in the customizer” guideline. While I’m no longer one of the team reps, I feel like this settings page feature is unique enough to mark as a “special case.”

    With block themes, some things must be reevaluated because the customizer is not available by default and is not an expected part of the block theme experience. In fact, this guideline is very specific to classic themes. Nothing has been written yet for block themes. Whether that’s a good thing, I don’t know. This could be a good moment for experimentation.

    I disagree that the settings page should be packaged as a companion plugin. That defeats the purpose of its inclusion in the theme, and it would create an additional hurdle for the users who would benefit the most from this feature.

    Yoast-sponsored contributor Carolina Nymark contends that allowing this onboarding experience will set a precedent that erodes the standard the team is trying to uphold for the ecosystem of themes hosted on WordPress.org and gives Ollie an unfair commercial advantage:

    “That settings pages are not allowed is in many ways unrelated to the customizer. And if we really want to angle it that way, it would be way easier to re-enable the customizer link in the theme.

    It is about having a standard that is easy for all theme authors to use and easy to review.
    It is about not opening up the reviews to another situation with incredibly difficult and time consuming reviews of code that the theme developers themselves don’t understand because they copy-pasted it and managed to cause all sorts of errors and security issues.
    Where that feature “lives”, in the customizer or on another page, is not the issue.

    I would like everyone to also consider that the Site Editor is not at all far away from solving the problem with the initial template selection. It does not solve all onboarding steps, like getting to the Site Editor, but it is improving.

    Compare it with the use of TGMPA. There is a problem that needs solving and a solution has been agreed upon where the theme author and reviewers only need to adjust a few variables and text strings.

    If something similar could be reached here I would support it.

    This is not about a special case, because it is an unfair commercial advantage over other theme developers.

    Ollie is a beautifully-designed multipurpose theme of the highest caliber, the likes of which WordPress.org doesn’t see very often. If expanding block theme adoption is an important goal, these are the kinds of experiences you want people building for WordPress users. It may be time to redefine theme guidelines based on the possibilities that the block editor enables, instead of saddling block themes with antiquated constraints for the sake of maintaining a more expedient review process.

    “Just because there are problems with onboarding it doesn’t mean that a theme, any theme, is the right tool just because one can put code in it,” Nymark said. “Plugins extend features, themes display content.”

    Given the amount of pushback from the Theme Review team, McAlister is now torn about removing everything “extra” to get Ollie in the directory for better distribution, or to keep the innovations in place and forego the directory in favor of independent distribution. So far, the results of his poll are overwhelmingly in favor of McAlister distributing the theme himself.

    “I’m passionate about innovation and getting the most out of all the possibilities that modern WordPress affords us,” McAlister told the Tavern. “We were tasked to ‘Learn JavaScript Deeply’ not to remain where we’ve been for so long, but to push the boundaries and scope out the future of WordPress and what’s possible.

    “So we designed and developed Ollie’s educational dashboard and onboarding wizard to help users get over some of the hurdles they’ve been plagued with for so long when setting up a new site or switching to a new theme. We even designed it in a very core-inspired way to match the site editor to create a very cohesive experience. The feedback has been inspiring!”

    After posting about his experience with the Theme Review team, which McAlister characterized as “rocky (and downright combative),” the community following his work on Ollie over the past year has rallied around him with advice and support.

    “I am torn about this,” Joost de Valk commented on McAlister’s poll on X. “I feel WordPress needs these onboarding experiences. Very very much. Should it be in themes? Not sure. Should the theme repository block this stuff? I don’t think so… we should be open to experimenting with this a bit more.”

    McAlister said that even as the theme’s creator, he is torn about the decision as well.

    “I built this as a good faith attempt to help people onboard into block themes and hopefully even help drive adoption,” he said. “My intentions are pure and steeped in 15 years of doing it ‘the WP way.’ It’s an attempt to move the needle, worth a shot anyway.”

    “I always felt that onboarding like this should be part of Core,” Yoast-sponsored contributor Ari Stathopoulos commented. “The current experience for a newcomer to WP is not a good one. We have to start somewhere… if it’s in themes, then so be it.”

    WordPress’ Theme Review team has a critical choice here, whether to stifle innovation and throw the book at one of the most highly anticipated block themes, or identify this as a special case where the author has the users’ best interests at heart.

    Many participants in the discussion on X encouraged McAlister to distribute his work independently, citing examples of other WordPress products that have found success in doing so. This would be an unfortunate loss for WordPress.org where the project is essentially shooting itself in the foot by clinging to outmoded guidelines in order to deny high quality block themes that are innovating to create a better user experience. In pursuit of a more robust offering of block themes, the last thing WordPress needs to do is chase away its trailblazers.

    “Since this morning, there has been an overwhelming amount of feedback telling me to avoid the WordPress.org directory,” McAlister said. “I’m kind of bummed by this because I think it says something about the directory that a lot of folks think but few want to say out loud.

    “Personally, I want the directory to succeed and be an inspiring and resourceful jump-off point for new WordPress users! It’s the front page of our open source project, of our community. It should be a showcase of the finest our community has to offer. But today, I’m disheartened and not sure if it’s the place where I want to put some of my best work to date.”

  • WordPress Opens 2023 Annual Survey

    WordPress has launched its 2023 annual survey, which is open to the entire community, including users, site builders, plugin and theme authors, and contributors.

    The 2022 survey collected responses from roughly 3,400 people, including approximately 800 contributors, a decline in submissions from previous years. The 2022 survey introduced the Likert scale, a rating scale that quantitatively assesses opinions, attitudes, or behaviors. The total number of questions were reduced, with socio-economic questions mostly removed.

    WordPress is still evolving the survey format to get a better understanding of the community’s sentiments and values.

    “This year, like last year, the survey has undergone some improvements to the flow and question set,” Automattic-sponsored contributor Dan Soschin said. “A new platform is also being piloted, offering an updated interface, enhanced multi-lingual support, expanded analysis and visualization tools for the results, and more. The new platform also has built-in accessibility and privacy controls, ensuring the survey meets the diverse needs of the WordPress community.”

    The 2023 survey takes approximately 5-10 minutes to complete. It collects information on some basic demographics, various community involvements, preferred WordPress editor, how and why you are using WordPress, and more. Several questions allow the community to weigh in on the most frustrating aspects of WordPress, areas that need more attention, and whether or not the current WordPress roadmap reflects respondents’ needs and desires for the future of the project.

    In addition to English, the survey is available in nine widely-used languages, which participants can select from a drop-down menu at the top of the page. All the data collected in the survey will be anonymized and WordPress does not associate IP addresses or email addresses with the results.

  • #92 – Juliette Reinders Folmer on When Contributions Need to Be Paid

    Transcript

    Juliette Reinders Folmer

    [00:00:00] Nathan Wrigley: Welcome to the Jukebox podcast from WP Tavern. My name is Nathan Wrigley.

    Jukebox is a podcast which is dedicated to all things WordPress. The people, the events, the plugins, the blocks, the themes, and in this case when contributions to WordPress deserve payment.

    If you’d like to subscribe to the podcast, you can do that by searching for WP Tavern in your podcast player of choice. Or by going to WPTavern.com forward slash feed forward slash podcast. And you can copy that URL into most podcast players.

    If you have a topic that you’d like us to feature on the podcast, well, I’m keen to hear from you, and hopefully get you all your idea featured on the show. Head to WPTavern.com forward slash contact forward slash jukebox and use the form there.

    So on the podcast today, we have Juliette Reinders Folmer.

    Juliette is a highly experienced professional in the field of coding standards. With a deep understanding of industry best practices, she has dedicated herself for many years to ensuring code quality and consistency within WordPress.

    Juliette acknowledges that coding standards encompass more than just formatting and white space, they also play a crucial role in maintaining compatibility and preventing conflicts between plugins.

    By adhering to these standards, developers can minimize errors, and fatal issues for end users. To facilitate the implementation of coding standards, Juliette talks about the importance of automated checks and continuous integration.

    We chat about her commitment to WordPress coding standards, and how the work that she’s done in this field have made her a trusted authority. Through her contributions and guidance, she has helped countless developers enhance their code quality, ultimately improving the overall WordPress ecosystem.

    We talk about Juliette’s role as one of the maintainers of WordPress Coding Standards or WordPress CS. Discussing the importance of consistent code and the challenges of maintaining, and funding, open source projects.

    Clearly there’s great value in tools like WordPress CS. Consistency is key for developers, and using a tool like WordPress CS makes it easier for them to meet expectations and be productive. It saves time by automating manual changes, and helps prevent conflicts and potential problems with other plugins or WordPress Core. Juliette emphasizes the continuous nature of the project. Where updates to a variety of PHP projects need to be kept in sync with the WordPress side of things.

    All that said maintaining open source projects like WordPress CS comes with its challenges. Juliette tells us about the importance of financial support and adequate resources to mitigate business risk, as projects that go on maintained can create dependency issues and pose problems during corporate audits.

    She speaks openly about her decision to step away from contributing. The project is so crucial, but underfunded and Juliette thinks it’s time to draw a line in the sand. It’s time for contributions in return for payment.

    It’s not just about financial contributions though. Juliette asks us to support the WordPress Community Collective, and for us all to explore other ways to assist the project. She highlights the need for all companies benefiting from WordPress to contribute towards funding more broadly, rather than relying on one or two of the larger companies in the space.

    If you’re a contributor who was even pondered how much WordPress relies on volunteers, this podcast is for you.

    If you’re interested in finding out more, you can find all of the links in the show notes by heading to WPTavern.com forward slash podcast, where you’ll find all the other episodes as well.

    And so without further delay, I bring you Juliette Reinders Folmer.

    I am joined on the podcast today by Juliette Reinders Folmer. Hello, Juliette.

    [00:04:41] Juliette Reinders Folmer: Hi Nathan. And you got my name right.

    [00:04:43] Nathan Wrigley: I appreciate that. Thank you so much. I’ve had a little bit of a practice, let’s put it that way. I appreciate you being on the podcast today.

    This is going to be a really interesting subject. It could get a bit nerdy, but I suspect that we’ll avoid large proportion of the nerdiness. But we’re going to be talking today about something which I suspect a lot of the people who tune into this podcast regularly may not know anything about. Hopefully during the course of this podcast we’ll alert you to why you should know about it, why it’s important, what it is, what it does.

    But before we get into that, WordPressCS or WPCS, let’s ask Juliette just to introduce herself. Tell us a little bit about her background, working with WordPress, what she does and all of that. So Juliette, if that’s okay with you, over to you, little bio moment.

    [00:05:32] Juliette Reinders Folmer: Oh dear. I did not prepare for that bit. Basically I’ve been self employed for good 20 years now, and as a general rule of thumb, I do whatever I like and I hope that sometimes people actually pay me money to do it. Which is not always great from a commercial point of view but it keeps me happy.

    [00:05:51] Nathan Wrigley: Typically on this podcast we have people who are devoted to some aspect of WordPress. My understanding is that your technical expertise stretches beyond WordPress as well, PHP and various other different things. So is it true that you only operate in the WordPress space, or do you stretch a little bit further than that?

    [00:06:11] Juliette Reinders Folmer: I’m all over the place. I sometimes say for people who are really in the WordPress community, see me as the PHP community reaching out and helping.

    [00:06:20] Nathan Wrigley: Nice. So this podcast today is going to stem off a piece that I read on the WP Tavern. It was written by Sarah Gooding. If you want to find it I will link it in the show notes. But maybe for ease of use, it was published on August the 22nd 2023, and it’s called WordPress coding standards maintainer warns maintenance will be halted without funding, in quotes, this is an unsustainable situation.

    That maintainer is you, and that’s what we’re going to talk about today. We’re going to talk about that unsustainable situation. But I feel that we can’t really talk about why it’s unsustainable unless we learn a little bit about what WPCS is, what it does.

    I know that’s an enormous subject to deal with in just a few moments. But I wonder if you could paint a picture of what WCS is because I feel the listenership, there may be quite a proportion of us that don’t know.

    [00:07:17] Juliette Reinders Folmer: Absolutely. Okay so WordPress, like most projects, have coding standards. And now when I say coding standards a lot of people think, okay this is about how code should be formatted, white space, whether things should have comments and doc blocks. You know, how code should look.

    In part, yes that’s correct. We do have rules for that, because if code looks the same across your whole code base it makes it much easier to review code and only concentrate on the actual changes, instead of being distracted by all the inconsistencies in how the code is formatted. So, yes there are rules about code style, code formatting. But WordPress coding standards does much more.

    It also encompasses a number of rules around best practices, just industry best practices. Best practices for how to interact with WordPress. So as a plugin you don’t want to conflict with other plugins. So there are certain best practices you can apply, like prefixing everything you put in the global namespace.

    And if you apply those correctly the chance of your plugin conflicting with another plugin and creating a widescreen of death, fatal error, for end users is a lot smaller. And WordPressCS can help with that as well and has, on the one hand, has some rules for that. On the other hand, what you then get is WordPressCS as the package, because you have the written rule, but then you also have tooling which basically takes those written rules and codifies that into automated checks. Automated checks which can be run in continuous integration.

    So every time someone puts some code online those checks can be run to make sure that the code complies with the rules you’ve agreed upon. And WordPressCS is one of those packages. It’s a package which takes those rules, codifies them in automated checks and then can be run on your code. And it doesn’t just check it and point out errors, it can actually auto fix a lot as well.

    [00:09:29] Nathan Wrigley: So the enterprise of WPCS, and I should probably say that CS is the acronym for Code Sniffer. The enterprise is to create this suite of tests if you like, so that whilst you’re writing code, if you’re using CI, it’s constantly giving you alerts as to whether or not there’s a problem. We’ve identified that there’s a little problem here, you can take a look at it, and thereby mitigate the problems, right?

    [00:09:55] Juliette Reinders Folmer: It can even do it even more directly. If you use a modern IDE, individual development environment like a PHP Storm or VS Code, it can even give you those notifications while you’re coding. It integrates with that kind of tooling. So while you’re typing your code, it can fix things for you and it can notify you of the things it doesn’t fix.

    [00:10:19] Nathan Wrigley: So given the open source nature of WordPress, and the fact that anybody can download it and anybody can write a plugin for it, an interesting comparison would be something like the Mac App Store, or the Apple App Store where Apple, in effect, is the custodian of the code. Apple will go to great lengths to make sure that your code is compliant and it’s completely the opposite model. You put stuff into their ecosystem, they’ll do checks and make sure that it’s all compliant with oh let’s say iOS or something like that.

    [00:10:50] Juliette Reinders Folmer: In a way a similar situation is in place in the WordPress ecosystem at large, because if you want a plugin to be listed on wordpress.org it goes through a list of quality checks as well. And they have some specific checks from that team, but some of the checks they use also are based on WordPressCS or are from WordPressCS.

    [00:11:14] Nathan Wrigley: Yeah that’s a really good point. I was thinking also about the sort of third party plugin marketplace which exists in WordPress, into which anybody can drop their code. So it’s quite, you know, you can go to one of hundreds of thousands of websites and download a plugin which you can add to WordPress. And really there’s a bit of a gamble going on there. You’re hopefully able to determine that the code is good.

    But a tool like WPCS will give you some guidance. You can run it yourself. It’s not like you have to trust the repo. If you went out and got third party plugins you could run these tests yourself. And just before we started the call, you were talking about if you were, let’s say an agency, and you had a particular need and you had three or four plugins that you thought might be useful. They would, all of them satisfy the requirements that you’ve got. But you could run them through something like WPCS, and get a real useful insight into well, whether or not they meet the standards, how compliant they are and so on.

    [00:12:12] Juliette Reinders Folmer: Correct. You will get some noise messages about different white space requirements, for instance. But you will also get messages about, hang on, this is not prefixed and this could conflict. Or hang on, output is not escaped. This plugin may introduce XSS security vulnerabilities. There are actual sniffs in WordPressCS which scan your code for typical attack vectors, and whether your code is well enough defensive against those attack vectors.

    [00:12:45] Nathan Wrigley: And I’m guessing that the enterprise of keeping WPCS maintained is like a road that you never reach the end of. You are updating it but there’s always the next change out in the, I don’t know, PHP ecosystem, which means that you can’t ever say well it’s done. Because PHP 8 comes along, then PHP 8.1 and PHP 8.2 and so we go.

    So would that be fair to say? What kind of things is it sniffing for? Are we just working in the PHP space, or is it working with other things as well?

    [00:13:19] Juliette Reinders Folmer: Well PHP_CodeSniffer as the underlying tooling, at this point is capable of scanning PHP, CSS code and JavaScript code. For the most part WordPressCS just focuses on the PHP code, because by now if we look at the whole ecosystem in development, there is plenty of other tooling available for CSS and JavaScript. Which wasn’t available when PHP_CodeSniffer started, because this is an old project.

    I mean this project got started in 2005. So at that time that tooling was not available. So this was one of the only tools which could do something like this. The intention of PHP_CodeSniffer, because there’s so much other tooling available now for CSS and JavaScript, is to actually drop support for CSS and JavaScript. So with that in the back of our minds, our focus is completely on PHP.

    [00:14:11] Nathan Wrigley: And so getting back to the question about how this is a never ending road, I’m assuming there will have been no point in the past, or predictably in the future where you’ll be able to say, okay this is done, because there’s constant work that needs to be done because the technology, the PHP, is always adding lots and lots of different things from year to year.

    [00:14:34] Juliette Reinders Folmer: And it’s not just PHP. I mean if something changes in WordPress, WordPressCS needs to take that into account. For instance one of the scans is applied to plugins but also I think to WordPress Core is, are you using deprecated functions? Because those functions are deprecated for a reason. So you should use something else. There’s normally an alternative available.

    Or are you using particular PHP functions for which there is a WordPress alternative which should be used? So if WordPress introduces one of those alternatives then WordPressCS needs to be updated to add a new check. If WordPress deprecates functions, WordPressCS needs to be updated.

    On the other hand, like you already pointed out, every year there’s a new minor release of PHP, sometimes a major. But at least every year there’s a minor and those introduce new syntaxes. And in the past three, four years PHP has introduced so many new syntaxes it became really hard to keep up. All those syntaxes mean that code can be written in different ways.

    And sniffs basically look for a certain pattern of code. But if code can now be written in a different way, that new way of writing code needs to be taken into account. To prevent false positives, as in throwing an error when there shouldn’t be an error. But also prevent false negatives, for people using the new syntax and the sniff not being able to understand it and throw the error which should be thrown.

    Every single sniff basically needs to be reviewed after every PHP release, to be checked if it needs to take any of the new syntaxes into account. But before we can do that the underlying tooling needs to be updated as well, because it actually needs to recognise the new syntaxes.

    [00:16:26] Nathan Wrigley: So a constant study.

    [00:16:28] Juliette Reinders Folmer: Yeah it’s a whole domino chain of things and it’s basically a circle going round, because yes, we put dominoes in place and then we managed to get things merged in PHP_CodeSniffer. Then PHPCSUtils can update, and then we can update WordPressCS. And by that time a new PHP version has come out and we can start the whole circle again.

    [00:16:49] Nathan Wrigley: We have this expression in the UK, “it’s like painting the Forth Bridge”. The Forth Bridge is a particularly long bridge in Scotland, and you begin painting at one end and by the time a year or so later they’ve got to the other end, well, the paint on the far end has now become corroded, and they’ve got to begin again so it’s this never ending cycle.

    If you’ve heard of WPCS and have used it, I’m sure that you will recognise the utility of it. But if you haven’t, and as I said at the top of the show, I think there’s probably a lot of people listening to this who haven’t. How do we actually make use of it? How would a typical WordPress user get WPCS working, and giving them some insight into the suite of things that they’ve got in their WordPress site?

    [00:17:32] Juliette Reinders Folmer: Okay. Well for people who are not used to command line, this might be a bit scary. You need the command line. Then again I mean, as I said, it integrates with IDEs so you can run certain things in IDEs as well. But as a general rule of thumb if you want to scan for instance, say you’re evaluating those four plugins to find out which one you’re going to install, like the example you used earlier.

    The easiest way to use WordPressCS as part of your toolset when you’re evaluating, is to do so from the command line. And that means you need PHP installed. Well if you work with WordPress you generally should probably have PHP installed. You need Composer which is a package manager in the PHP world, like npm for JavaScript but then for the PHP world.

    And then you need to install WordPressCS and that’s a Composer require. And if you don’t work with code yourself I would say use a Composer global require, then you can use it anywhere on your system without it being project specific. If you do work with code, please use it on a project basis and require it for the project, because it will also make it transparent for other contributors that you expect them to comply with WordPressCS.

    So yeah, you can either install it globally or you can install it on a project base. And once you run the Composer require, it has all of that in the readme of course, so you can just copy and paste that command.

    Once you run that everything is set up, and you can just run the commands to run WordPressCS which is vendor, bin, phpcs, dash dash standard is WordPress.

    At the same time, most of the time, you will want to customise a little. For instance, I mentioned prefixing before to prevent conflicts with other plugins. If you want to check prefixes you need to tell WordPressCS which prefix to look for. If you don’t give it any prefixes, we cannot check whether things are prefixed. We need to know what to look for.

    In the WordPressCS repo, an example rule set, which has some of the common things which you should add to a custom rule set to use. There’s also, in the wiki, quite a lot of documentation about what the various options are you can toggle on and off. That way you can set up a customer rule set and get yourself running in a more detailed way.

    [00:20:08] Nathan Wrigley: I suspect that the proportion of people listening to this podcast who really never look at the code, they are, I don’t know, you maybe call them implementers or something like that, might be thinking well, why does any of this matter? What is the point? And I guess that’s something that I want to tease out.

    I want it to be clear that unless projects like WPCS occur and continue to occur, the bedrock of the software, which we’re all using for free, gratis, is not going to be something that you can trust as much, I guess.

    So I don’t know if there’s anything you want to throw into the mix there. If somebody was to come to you and say well I just use WordPress, why should I care about this? Why is this of interest to me? It’s a bit like, if I never go to a hospital, it’s not well we shouldn’t have hospitals because I’m perfectly well. Something along those lines.

    [00:21:01] Juliette Reinders Folmer: Yeah, well if your site’s never been hacked that’s the same comparison. Your site’s never been hacked. So why do we need security checks and security reviews?

    [00:21:10] Nathan Wrigley: So what would be the single, or maybe a couple of messages that you would tell people, this is why what I’m doing matters. This is why we all need to know that this project exists, and that it’s important.

    [00:21:23] Juliette Reinders Folmer: There’s different answers for different levels. So for developers it definitely makes it easier for them to be high productive. Because if code is consistent it makes it easier to work with, to know the expectations, to review code, et cetera, et cetera. So it’s a productivity tool for them, including the auto fixing.

    Some of the changes which may need to be done, if you’d need to do those manually that would take you like a week or two weeks. And if you use the auto fixer, it’s done in five minutes for you. So that is literally two weeks of work saved. That’s on the development level and the management, the IT department level.

    If you are an agency who normally doesn’t use code, it’s more about, okay if I install this plugin, will it cause problems with other plugins? Will it cause problems for WordPress Core? Because there are plugins which will gladly override a global variable from WordPress Core and then WordPress Core breaks.

    WordPressCS has checks against stuff like that. I already mentioned the conflict. If there’s two functions in two different plugins which use the same name, you have a fatal error and a white screen of death. Do you want your customer to get a white screen of death? No you don’t. So this tooling can help guard against that, can help prevent those kind of situations from happening.

    [00:22:52] Nathan Wrigley: So I’m going to go back to the piece on the WP Tavern. I’m going to read the title again because I think it’s important for the next part of our discussion. WordPress Coding Standards maintainer warns maintenance will be halted without funding, this is an unsustainable situation.

    So the person that is referenced in that article is you. You’ve obviously decided that this is an unsustainable situation. I think we’ve painted a picture as to why WPCS is an incredibly useful thing to have around. But i’m keen to know exactly how many people get their hands in the weeds with that tool? How many people do you have on your air quotes team? How many hours are contributed by those people per month, per year, whatever? Just give us an inkling as to how much goes into this important project.

    [00:23:42] Juliette Reinders Folmer: As I already mentioned, WordPressCS is not a completely standalone tool. It is built on the shoulders of giants. The underlying tool, PHP_CodeSniffer, needs to be maintained primarily before we can even do anything in WordPressCS. That tool currently has two maintainers and I’m one of them.

    There are outside contributors, and quite regularly we get an outside contributor with a pull request. But if you look at the bulk, to be honest, I don’t think I’m saying anything silly if I say that for the past few years a lot of that has come down to me. So that is the biggest giant we’re standing on.

    Then we have PHPCSUtils which is a layer on top of PHP_CodeSniffer which makes writing sniffs easier. Because writing sniffs can be pretty complex with all the syntaxes you have to take into account. Maintained by me, completely.

    Then we have PHPCSExtra, which is an external standard which WordPressCS uses quite a few sniffs from. About, I think more than 50% of the sniffs from PHPCSExtra are used in WordPressCS 3. Again, I’m the maintainer.

    Remember that I mentioned that you install everything via Composer? There’s a Composer plugin which makes sure that all those external standards get registered with PHP_CodeSniffer. I maintain that together with one other person.

    And then we have WordPressCS itself. And we have a maintainer team of three people. I’m really, really happy that there’s three of us. At the same time the majority of the actual code work comes down to me. Dennis would love to spend more time, but he hasn’t got the financial safety net to be able to do so without funding. Gary hasn’t got the time to do so anyway.

    So I’m really happy with Gary and Dennis’s support, and for all the code review they do. But if we actually look at the code changes, nearly everything comes down to me.

    [00:25:45] Nathan Wrigley: So we’re painting a picture here, and it’s a funny phrase to bring out but there’s this idea of the bus factor. And the bus factor is the idea that if, sadly, somebody was to be hit by a bus, and they were no longer able to contribute to the project. The bus factor being one is indicative that you only need to have one person removed from the project for the whole thing essentially to collapse.

    And that’s basically what we’ve got here. We’ve got a situation where you are maintaining an awful lot of what you’ve just described, and you’re doing it, well, gratis. You’re doing it largely I’m imagining, and you can correct me if I’m wrong, you’re doing this in your own time for no financial benefit.

    And I guess one of the things that’s come out of the article is that having done this for so many years, and contributed so many hours of your own time, you’ve reached the end of the road potentially about that and you feel that this situation is no longer sustainable. It’s a bit of a plea for help?

    [00:26:56] Juliette Reinders Folmer: Yes. I mean basically over the past two years this has dominated my daily life, in a way which isn’t healthy anymore. It’s not you know a nice side project anymore. No, it’s literally what I spend nearly all my time on. And I’m lucky that I have a few stable customers where I can scrounge some hours here and there to be able to actually pay for my bread at the supermarket.

    The balance is completely wrong now.. And I’m not alone. I mean this is valid for a lot of open source projects. But we’ve reached a point that the balance is so far off that this is just not sustainable anymore. I cannot afford to do this anymore. I cannot justify doing this anymore.

    [00:27:44] Nathan Wrigley: Forgive me asking this question, and I hope it doesn’t come out the way that it might, but I’m going to ask it anyway. Do you have regrets around the amount of time that you’ve contributed over the past? So you mentioned that it’s requiring lots and lots of your time, and you’re basically doing this as a, almost like a full time job really.

    Do you have any regrets getting into 2023 and that situation being the way it was? Or do you wish that you’d have managed to have this inspiration, if you like, this epiphany about enough is enough, a few years ago?

    [00:28:18] Juliette Reinders Folmer: When it’s enough I say so. It’s felt like it’s been enough for about a year, and a large part of that is the fact that, in my perception, I think there’s a disconnect between the open source user nowadays and open source maintainers.

    Open source users often don’t realise there’s no funding. They are not the product. And they come in with a sense of entitlements, and a sense of pressure which is being put on maintainers to release, and yes but you should do this. No, I shouldn’t do this. I’m doing this out of the kindness of my heart, and you should be a lot kinder to me if you want to make any suggestions for the project.

    [00:29:01] Nathan Wrigley: Can I just clarify, have you been at the receiving end then of things which you, in the way that you’ve described, you’ve had requests in well let’s not beat around the bush, less than polite, shall we put it that way?

    [00:29:13] Juliette Reinders Folmer: We actually at some point had to put, in a hurry, a code of conduct into the project. And we couldn’t wait for the WordPress project to get themselves sorted with a code of conduct, because we had an abusive user which was really going way too far.

    [00:29:28] Nathan Wrigley: Yeah I mean like you said, I think the word surrounding that is entitlement, isn’t it? Somebody who believes that it is your role. You have become the person doing this and so well it must now be what Juliette does. Juliette must fix it at the moment anything needs fixing. And of course I think you’ve reached the end of the road there, and you’ve decided that enough is enough.

    Does that mean that you are, well, let’s examine what that means. Let’s throw out a few scenarios. Does it mean that you would like more maintainers, so that you can step away from the project? Or is there a different possible outcome here where you would love to be continuing to work on this, but there needs to be some way of putting food on the table, i.e. payment in exchange for your time here? So I guess both of those options could coexist at the same time.

    [00:30:16] Juliette Reinders Folmer: Yes, and that would be the ideal situation because the thing is, it would be great if we could get more maintainers interested and more people be willing to contribute structurally to the project. Except this type of work has quite a steep learning curve. So to get to the point where you can function as a maintainer for a project like this, and actually take it seriously in the way it’s been taken seriously over the past few years, that will require quite a lot of coaching, and guess who’s doing the coaching then.

    [00:30:49] Nathan Wrigley: Yeah. So let’s ask that slightly different question. Over the past several years, have you had people go through the project? You know, that they’re interested in it, but they don’t stick around or is it literally that the door is open but nobody ever steps through it?

    [00:31:04] Juliette Reinders Folmer: There’s a number of different types of contributors. You have the drive by contributor. We will say okay, we have this sniff which we use in our own company, I’m going to throw it into PR and just drop it in the WordPressCS repo, because it could be useful for other people.

    You do an extensive review and give them feedback of you know, this needs changing that need changing. Because if you use it in your own company you can take some liberties because you know what the agreements are, what code is based on in that company. Except you can’t take those liberties with a project which has this many users as WordPressCS. So we require a higher quality. And the drive by contributor will just not respond to that review at all, and just let the PR rot and die. So that’s the one.

    Then you have, and I’ve seen two, three people over the past five years maybe in WordPressCS like that, will come in and actually understand what they’re doing and how to do a PR. But then don’t have enough time or have a family, have a job and their employer doesn’t allow them to contribute to open source regularly, et cetera. Or they get moved into a different position in their job, and then don’t have time anymore.

    Those are like the little jewels which I’d like to hold onto, and cherish and cuddle and watch to flourish in the project. Except they are rare and unfortunately we rarely manage to retain them.

    And then you have the, oh gosh how should I call it? What’s that called again? That month of code thingy, Oktoberfest. Yeah, I’m going to make a one character change in your readme. Let’s waste maintainers time, kind of PRs. Just so they can get a t shirt kind of thing.

    There’s a couple of different types of contributors. A lot of contributors, or people I talk with, will say like, oh I’d love to contribute. I’m going to write a new sniff. And I’m like okay but do you actually know what you’re doing already? No, you don’t. Okay. So now you’re going to write a new sniff, and that needs a lot of coaching to get to a point where it’s actually mergeable. Instead of helping with the grunge work which needs to be done every time, every year, at every WordPress release, every PHP release. And actually learning from the patterns you see in others existing code.

    And I know that the grunge work is boring, but it needs to be done, and we need people who will put up with the grunge work because otherwise the code base will just grow with new sniffs but nobody’s maintaining.

    [00:33:47] Nathan Wrigley: Yeah. So I guess what we’re discovering here is, A the project is important. B there’s not many people meaningfully contributing to it, apart from the ones that you mentioned including yourself. I think you mentioned two other people.

    [00:34:02] Juliette Reinders Folmer: We do get some contributions which are meaningful, absolutely. I’m not dissing that at all. But it’s the exception not the rule, in my experience. And that’s a shame. I mean I really would love to see more meaningful contributions.

    [00:34:16] Nathan Wrigley: Yeah okay. Thank you for clarifying that. That’s good. But it also sounds as if you’re not quite at the point where you want to completely distance yourself from this project and never touch it again. I think I’m right in saying that a possible desirable outcome would be that you found a way to make this work for your setup.

    And really what I’m talking about there is finance. Am I right in saying that you would continue this work if you were able to make it a job, if you like, and be paid for it?

    [00:34:49] Juliette Reinders Folmer: Absolutely. I mean I enjoy this kind of work. That’s obvious otherwise I wouldn’t have gotten involved in the whole stack, and even projects related to which I haven’t even mentioned yet. I do enjoy this kind of work, but I do not enjoy the abuse, and the abuse is something I will not put up with anymore. Only ever put up with if it’s paid, if I get paid for it.

    [00:35:11] Nathan Wrigley: So since the article was published on the Tavern, so we’re recording this just for context kind of probably about 20 plus days since that piece was published. There were a lot of comments, an unusually large amount of comments. So this topic is of great interest to people. And I wondered, given that there was great interest and a large amount of comments there, I wondered if anybody had figured out what your requirement was, and had approached you. In other words has anything changed or is it still the way it was?

    [00:35:42] Juliette Reinders Folmer: I can see some parties being interested in contributing to a solution, but I’ve not seen a solution yet. But one of the things which has changed, and which I think is an improvement, and i’m really hoping that will allow people to contribute to the funding of the project, is that the WPCC has in their open collective, has opened a project for WordPressCS and the stack around it, to raise funding for that.

    [00:36:15] Nathan Wrigley: So just for clarity, the WPCC is the WordPress Community Collective. And what you can do is you can go over there and they have a handful, at the moment, of projects which you can donate to. And it looks like you have been added to that, or at least the WPCS project has been.

    Do you have an amount, like a target that you want to get to in order for this to be possible for you? Or is it more a, well let’s just see where this goes, and bit of blue sky thinking, hopefully some people will help me out?

    [00:36:45] Juliette Reinders Folmer: I have a target in mind. I’m not comfortable calling that out on air though.

    [00:36:48] Nathan Wrigley: No that’s fine. So that’s where we’re at. As of the 5th of September 2023, we’ve got this incredibly important project which underpins the sort of security, the confidence that you can have in WordPress and the plugin ecosystem surrounding it. But we’ve got this one or two or three, but largely one person maintaining that entire project. But it looks as if, unless something radically changes in the near future, as if that whole edifice might tumble. How much more time are you going to give this before you actually finally call it a day? Maybe that’s not even in your thinking, and maybe it’s you know you’re hoping that it will change

    [00:37:29] Juliette Reinders Folmer: Well I’m definitely hoping it will change. As a rule of thumb I’m basically not touching the code anymore. Not until there is sight of a solution.

    WordPressCS is definitely not an exception. I mean I know open source projects where there’s much bigger problems with abuse than in WordPressCS. I’ve known people who’ve had death threats in their DMs, et cetera, et cetera. That open source and abuse is a whole different topic, but it’s definitely not isolated to WordPressCS. And WordPressCS need for funding is also not isolated. I mean the accessibility project also needs funding. There’s other projects in the periphery of WordPress which could do with funding.

    I think that it’s very easy for people to think, like okay but WordPress is open source and yeah there’s some big companies earning money so they should pay for everything. I do not agree. I think we should as companies which earn money from WordPress, that all those companies should get together in something like the WordPress Community Collective and fund those projects.

    It shouldn’t come down to one or two of the bigger ones. It should come down to all of us because all of us are making money off it. Well all of you, because I’m not.

    [00:38:48] Nathan Wrigley: Obviously the nuts and the bolts of that mechanism, the bits and the pieces that would need to be configured to make that work, i’ve come across that project yet. But that is a really interesting idea, isn’t it? The idea that there’d be somewhere, and the WPCC does seem the best bet we’ve got at the moment.

    It feels a little bit like five for the future or something like that. But instead of it being time, it’s, okay we’re a big company we make money off these things. We use PHP, we use the code sniffing, we do these plugins that are open source and so on. So let’s just put our flag in the sand and say we’ll donate 5% of our resources, and then that organisation, whatever it was, the WPCC or something else that’s new, could then distribute those resources and people like you could dip into that pool. That seems eminently sensible.

    [00:39:36] Juliette Reinders Folmer: I’ve written about this years ago already. It’s also about business risk. If you run a business which is built on an open source project, and you do not contribute back financially, as well as with people. You run business on quicksand. You are literally running it on quicksand. Any corporate audit type of your company will say you’ve got an unmitigated business risk.

    You have risk that those projects which you’re not contributing to, which you’re not paying for, for which don’t have a service contract, are just going to go unmaintained. And you are so dependent on these projects, you should mitigate that business risk. And one way of doing that is with funding. Another way is with resources, and preferably with both.

    And it’s not just WordPress yes, it’s all the open source projects in the stack. Go through the whole stack. You have PHP Units probably in your stack. You have Apache in your stack. You have a Chrome browser in which you test things in your stack.

    And Chrome, yes, everyone associates it with Google, but it’s built on top of Chromium which is open source. You might use Mastodon as a communication channel. Make sure you also fund your Mastodon instance. It’s the whole stack of all those open source projects which need funding. So go through your stack. Do a proper inventory and fund them. This is the only way to mitigate the business risk all of those companies are running.

    [00:41:05] Nathan Wrigley: Yeah, I think you’ve made a really compelling case for this. In that, A, we’ve painted the picture of what it is that you’re involved in, and how important it is as a real bedrock of reliance and the ability for us to be confident in WordPress. And then we’ve also painted the picture of how the underpinnings of that aren’t very stable. Because all of us, unless we’re incredibly lucky, have to put food on the table and we have to be paid for our work.

    And it does sound like the balance, certainly in your case, has gone really far in one direction, and you are the single biggest contributor to that project. And so it makes it all the more important that something like this gets funded, however that may be.

    Now if you happen to be listening to this podcast and you feel that you are able to change the direction here. Juliette, what would be the best way? It sounds like WPCC, which I’ll link to in the show notes, may be the best way at the moment. But I don’t know if you’ve got any other intuitions about how this project might be helped.

    [00:42:07] Juliette Reinders Folmer: Companies can always reach out to me, DM me, Slack, or DM the maintainers as a collective. Gary, Dennis, and me on the WordPress slack. Open Collective is definitely welcome to receive funding for us. Keep in mind, I look towards the companies. I do not look to individual developers to fund this. Because, yes, they feel it most if projects like this don’t continue. But they are the ones we should talk to management and tell management to fund it, because it shouldn’t come down to individual developers. And one time contributions are very welcome, but recurring contributions are what keeps the project alive.

    [00:42:48] Nathan Wrigley: Well let’s hope that there’s somebody listening to this for whom it has raised awareness enough. Let’s hope that we can come back in a year’s time, do another podcast episode and we’ll be talking about a different setup. Let’s hope that that’s the case.

    Juliette, I really appreciate you being on the podcast today, and telling us an awful lot about your personal circumstance and things. So I really appreciate that. Thank you so much.

    [00:43:11] Juliette Reinders Folmer: You’re very welcome. I enjoyed being here, and hopefully my bakery around the corner will enjoy it soon as well, because I can then actually start paying them.

    On the podcast today we have Juliette Reinders Folmer.

    Juliette is a highly experienced professional in the field of coding standards. With a deep understanding of industry best practices, she has dedicated herself for many years to ensuring code quality, and consistency within WordPress.

    Juliette acknowledges that coding standards encompass more than just formatting and white space, they also play a crucial role in maintaining compatibility and preventing conflicts between plugins. By adhering to these standards, developers can minimise errors and fatal issues for end users. To facilitate the implementation of coding standards, Juliette talks about the importance of automated checks and continuous integration.

    We chat about her commitment to WordPress coding standards, and how the work that she’s done in this field have made her a trusted authority. Through her contributions and guidance, she has helped countless developers enhance their code quality, ultimately improving the overall WordPress ecosystem.

    We talk about Juliette’s role as one of the maintainers of WordPress Coding Standards (WordPress CS), discussing the importance of consistent code, and the challenges of maintaining and funding open source projects.

    Clearly, there’s great value in tools like WordPress CS. Consistency is key for developers, and using a tool like WordPress CS makes it easier for them to meet expectations and be productive. It saves time by automating manual changes, and helps prevent conflicts and potential problems with other plugins or WordPress Core. Juliette emphasises the continuous nature of the project, where updates to a variety of PHP projects need to be kept in sync with the WordPress side of things.

    All that said, maintaining open source projects like WordPress CS comes with its challenges. Juliette tells us about the importance of financial support and adequate resources to mitigate business risk, as projects that go unmaintained can create dependency issues and pose problems during corporate audits. She speaks openly about her recent decision to step away from contributing. The project is so crucial, but underfunded, and Juliette thinks it’s time to draw a line in the sand. It’s time for contributions in return for payment.

    It’s not just about financial contributions though. Juliette asks us to support the WordPress Community Collective, and for us all to explore other ways to assist the project. She highlights the need for all companies benefiting from WordPress to contribute towards funding more broadly, rather than relying on one or two of the larger companies in the space.

    If you’re a contributor who has even pondered how much WordPress relies on volunteers, this podcast is for you.

    Useful links.

    WordPress Coding Standards Maintainer Warns Maintenance Will Be Halted Without Funding: “This Is an Unsustainable Situation.”

    WordPressCS

    PHP Storm

    VS Code

    PHPCSUtils

    Composer

    The WP Community Collective

  • WordPress 6.4 Beta 1 Released

    WordPress 6.4 Beta 1 was released today on schedule, led by an underrepresented gender release squad. It includes the last five releases of the Gutenberg plugin (16.2, 16.3, 16.4, 16.5, 16.6) along with the upcoming 16.7 release and 190 tickets for core.

    If you are following Gutenberg development, many of these features have already been released in the plugin. The most notable highlights of features and improvements coming in 6.4 include the following:

    • Font Management – allows users to manage a font library independent of their active theme, along with Font Face support for server-side @font-face style generation and printing
    • Block Hooks – enables developers to automatically insert blocks into content relative to another block
    • Lightbox for Images – core support for lightbox functionality for image blocks
    • Expanded Design Tools – background images for Group blocks, aspect ratios for image placeholders, alignment settings for synced patterns, and more
    • Command Palette updatesimproved design, new commands, better consistency across existing commands
    • List view enhancements – usability improvements allow for renaming Group blocks, viewing media previews for Gallery and Image blocks, and duplicating blocks with a keyboard shortcut
    • New Twenty Twenty-Four default theme – a multipurpose block theme that will ship with a collection of templates and patterns that lend themselves to a wide variety of use cases. See a demo at 2024.wordpress.net.

    WordPress 6.4 will also include many accessibility and performance improvements that will improve workflows and speed for all users of both Block and Classic Themes. A detailed testing guide is available that covers all the key features and how to test them, with video demos for each.

    Beta 2 is expected on October 3. WordPress 6.4 will be the third major release of 2023, and is scheduled for November 7.