17;m excited to commemorate the day by announcing something new!</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-from-stage-to-essay\">From Stage to Essay</h2>\n\n\n\n<p class=\"\">At the end of May, <a href=\"https://www.linkedin.com/in/nickvidal\">Nick Vidal</a> from the <a href=\"https://opensource.org/\">Open Source Initiative</a> reached out to me. To celebrate <a href=\"https://maintainermonth.github.com/\">GitHub’s Maintainer Month</a>, he had been working to compile a collection of contributor stories for a book about the maintainers behind Open Source projects. He asked me if I&#8217;d be willing to submit something.</p>\n\n\n\n<p class=\"\">I was honored! I read through the dozen or so questions he sent and wrote answers for a handful that resonated with me. The next day I flew out to <a href=\"https://jonathandesrosiers.com/2025/04/speaking-at-wordcamp-europe-2025/\">attend WordCamp Europe</a>. Between the whirlwind of travel, attending sessions, and preparing to give my talk, I completely forgot about it.</p>\n\n\n\n<p class=\"\">A few days after speaking, I received another email from Nick.</p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"\">While doing some research about you, I fell in love with your recent talk at WordCamp Europe.</p>\n</blockquote>\n\n\n\n<p class=\"\">He had <a href=\"https://jonathandesrosiers.com/2025/06/how-a-core-committer-thinks-making-decisions-for-millions/\">seen the recording of my talk</a> and asked me to incorporate the subject matter with the answers I had already sent over for the book. My speaker notes captured the core ideas, but they needed a lot of refinement and proper citations before they could stand alone as a publishable essay. I also included some thoughts from my recent post about the <a href=\"https://jonathandesrosiers.com/2025/06/the-impact-of-open-source-work/\">impact of maintaining Open Source projects</a>.</p>\n\n\n\n<p class=\"\">I&#8217;m excited to share that thanks to the many hours Nick put into the project, the <a href=\"https://maintaine.rs/\">maintaine.rs</a> website showcasing this project is live. <img alt=\"🎉\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/16.0.1/72x72/1f389.png\" style=\"height: 1em;\" /> You can read my <a href=\"https://maintaine.rs/desrosj\">essay on the website</a>, or download the full book in PDF or EPUB format.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-building-on-the-ideas-of-others\">Building On The Ideas Of Others</h2>\n\n\n\n<p class=\"\">My good friend and fellow Core Committer <a href=\"https://en.wikipedia.org/wiki/Baseball\">Felix Arntz</a> celebrated the 10 year anniversary of his first contribution to WordPress late last month. He <a href=\"https://felix-arntz.me/blog/10-lessons-from-10-years-of-contributing-to-wordpress-core/\">wrote about 10 things he’s learned in 10 years of contributing</a>.</p>\n\n\n\n<p class=\"\">As far as I know, Felix hadn’t seen my WCEU talk or heard about the Maintainers project. Despite that, we ended up exploring many of the same themes and principles.</p>\n\n\n\n<p class=\"\">While the ideas I explore in my talk and essay aren’t novel, they’re rooted in lessons I’ve learned from others and foundational Open Source concepts. A key part of participating in any Open Source community is learning from your predecessors. How should we conduct ourselves? How should we structure our communities? How should we make decisions? You can earn the respect of your peers by demonstrating that you thoughtfully consider these questions through your day to day actions.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-submit-your-own-story\">Submit Your Own Story</h2>\n\n\n\n<p class=\"\">I&#8217;m grateful to be included in the book among many other amazing maintainers, but I was also glad to find out I was not the only maintainer representing the WordPress project: <a href=\"https://maintaine.rs/karmatosed\">Tammie Lister also submitted her maintainer story</a>.</p>\n\n\n\n<p class=\"\">While it&#8217;s good to see WordPress represented in the book, the project is maintained by many people, not just two.</p>\n\n\n\n<p class=\"\">On the landing page for the project is a call out to &#8220;Share Your Story&#8221; for consideration in future editions. The <a href=\"https://heropress.com/\">HeroPress</a> site does an amazing job of surfacing the stories behind members of the WordPress community. But there’s value in sharing those stories with the broader Open Source community too. If you help maintain WordPress in some way, I hope you’ll consider sharing your story for a future edition of the book, they all deserve to be heard.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-closing-thoughts\">Closing Thoughts</h2>\n\n\n\n<p class=\"\">Over the past 12 years, I’ve done my best to contribute in ways that don’t just solve problems, but make the project more approachable, more sustainable, and more human.</p>\n\n\n\n<p class=\"\">I recently received this DM from someone.</p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"\">“Watched your talk on my way home. You did a fantastic job explaining core and the committer role. Reminded me why I’m still around and invigorated to do more. Thanks!”</p>\n</blockquote>\n\n\n\n<p class=\"\">It came from someone I deeply respect, someone I’ve learned a great deal from over the years.</p>\n\n\n\n<p class=\"\">It’s easy to underestimate the <a href=\"https://jonathandesrosiers.com/2025/06/the-impact-of-open-source-work/\">impact even our most routine contributions can have on others</a>, especially in Open Source, where so much of the work happens asynchronously and behind a screen.</p>\n\n\n\n<p class=\"\">Messages like this remind me why I do this work. I hope others have found value or inspiration in what I’ve shared. And if my story, my talk, or my essay helps even a few people feel more connected or inspired to stay involved, then it’s all been worth it.</p>\n\n\n\n<p class=\"\">Here&#8217;s to year 13 and beyond. <img alt=\"❤\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/16.0.1/72x72/2764.png\" style=\"height: 1em;\" /></p>\n\n\n\n<hr class=\"wp-block-separator alignwide has-alpha-channel-opacity\" />\n\n\n\n<p class=\"\">&#8220;Props&#8221; Anniversaries: <a href=\"https://jonathandesrosiers.com/2023/07/10-years-of-contributing-to-wordpress/\">Ten</a>, <a href=\"https://jonathandesrosiers.com/2024/07/11-years-contributing-to-wordpress/\">Eleven</a>.</p>\n\n\n\n<p class=\"\">Commit-iversaries: <a href=\"https://jonathandesrosiers.com/2020/11/two-years-my-wordpress-commit-iversary/\">Two</a>, <a href=\"https://jonathandesrosiers.com/2023/11/five-years-my-wordpress-commit-iversary/\">Five</a>, <a href=\"https://jonathandesrosiers.com/2024/11/six-years-a-committer-my-wordpress-commit-iversary/\">Six</a>.</p>\n\n\n\n<p class=\"has-text-align-right\"><em>Featured image credit: &#8220;<a href=\"https://wordpress.org/photos/photo/56633defe8/\" rel=\"noreferrer noopener\" target=\"_blank\">A couple of bookshelves with colorful books on a stone wall</a>&#8221; by <a href=\"https://mburnette.com\" rel=\"noreferrer noopener\" target=\"_blank\">mdburnette</a>/ <a href=\"https://creativecommons.org/publicdomain/zero/1.0/?ref=openverse\" rel=\"noreferrer noopener\" target=\"_blank\">CC0 1.0</a></em></p>\n<p>The post <a href=\"https://jonathandesrosiers.com/2025/07/12-years-contributing-to-wordpress/\">12 Years Contributing to WordPress</a> appeared first on <a href=\"https://jonathandesrosiers.com\">Jonathan Desrosiers</a>.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 08 Jul 2025 11:52:32 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:19:\"Jonathan Desrosiers\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:9;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:77:\"Open Channels FM: How to Pitch Stories That Matter in the WordPress Community\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:33:\"https://openchannels.fm/?p=100715\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:84:\"https://openchannels.fm/how-to-pitch-stories-that-matter-in-the-wordpress-community/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:208:\"In this Media Playbook episode, Rae Morey and Adam Weeks discuss effective pitching for WordPress stories, covering what makes a story newsworthy, and providing practical advice for successful media outreach.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 08 Jul 2025 08:27:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:10;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:83:\"Open Channels FM: With Your New Site, Start With Content, Even if the Plan is Messy\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:33:\"https://openchannels.fm/?p=100410\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:88:\"https://openchannels.fm/with-your-new-site-start-with-content-even-if-the-plan-is-messy/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:333:\"When a business first starts creating content, it often looks chaotic. There’s not always a strategy. You try a few blog posts, maybe some tutorials or listicles, toss in a few keywords you think matter, and hope something sticks. And that’s okay. In fact, that messy start is what helps shape your future strategy. The [&#8230;]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 08 Jul 2025 07:17:58 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:11;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:48:\"Tammie Lister: What if we paused default themes?\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:34:\"https://binatethoughts.com/?p=2346\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:60:\"https://binatethoughts.com/what-if-we-paused-default-themes/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:5710:\"<p>Before I begin this post, I am writing it not expecting change, but rather sharing my opinion. It is the opinion of someone who has themes both default and working with them from agencies to exploration, threaded through their life. I say this with a passion for what themes were, are, and I see evolving into. I am also focusing on a pause, not a stop or hard point. This is a suggestion, a thought I am working through myself.</p>\n\n\n\n<h2 class=\"wp-block-heading\">The past</h2>\n\n\n\n<p>The default themes worked for us as a project in WordPress. They were both a call to unify in work, and also allowed us something to focus on testing the features of the year. They were also a way to close out the year; historically, many switched to them to showcase.</p>\n\n\n\n<p>Another thing the default themes have done well is showcase different aspects of WordPress. One could argue that having a theme focus is key for everyone. Similarly, many writers use it as a basis for their content, drawing on it as fuel. It was an end to the year for many, although I would self-reflect, as the years have gone by, this has waned. Again, this is a personal reflection.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Today</h2>\n\n\n\n<p>For a long time, whether we like to admit it or not, the default theme process has been more complex and disjointed. It hasn&#8217;t been as much about testing features as many weren&#8217;t theme visible. </p>\n\n\n\n<p>Each default theme currently incurs a high maintenance cost. This goes over the code in support. I am reluctant to recommend anything in core that adds to the bundled theme debt at this time, considering there is still a backlog. To be clear, I want to see significant product benefits before recommending it as a course of action.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Themes have changed</h2>\n\n\n\n<p>Themes are a sliding scale of complexity, ranging from the quick brew weekend, a few hours of JSON for a personal site, to the large-scale enterprise theme founded on a complex design system, an extensive pattern library, and variations. Themes today are different, and anyone who is creating them knows this. Anyone not creating them also knows this, which is where the next bit comes in.</p>\n\n\n\n<h2 class=\"wp-block-heading\">The education piece</h2>\n\n\n\n<p>One of the loudest comments in favour of having a default theme is that it brings education. Whilst this is true, education once a year isn&#8217;t useful. We need to consider the themes that are relevant today, and to do that, we need to examine all the pieces and their respective use cases. How are different people making themes? How are individuals experimenting? How are agencies scaling? How are people using themes today, and where are they stuck?</p>\n\n\n\n<h2 class=\"wp-block-heading\">What a theme is needs to be reconsidered</h2>\n\n\n\n<p>The strongest point for pausing this year is to take a moment as a project and consider what a theme is today. What design tools are missing that we need first? What pieces do we have, and how do they go together? Where do they not go together and need to? Fix those flows first, then build amazing &#8216;themes&#8217; or whatever we settle on.</p>\n\n\n\n<p>The future of a theme might be a &#8216;kit&#8217; where you have a style you share. It might be something else. We haven&#8217;t paused long enough to think about it, and it&#8217;s not the same format we keep reworking in default themes.</p>\n\n\n\n<h2 class=\"wp-block-heading\">What else could we do instead?</h2>\n\n\n\n<p>Here are a few things that could be done with all the people and effort a theme release typically takes. It&#8217;s worth noting that they require a lot, which is why these are in much greater demand at this time.</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Education: </strong>Many people still don&#8217;t understand or haven&#8217;t fully explored the potential of block themes. Taking time for this collectively could be a powerful experience. It also helps the ecosystem, agencies and products.</li>\n\n\n\n<li><strong>Improve the design tools for themes:</strong> By adding features such as adaptive controls and other missing pieces, redirecting the effort that would have gone into the default theme into the core editor itself. This benefits everyone and all themes.</li>\n\n\n\n<li><strong>Rejuvenate the community theme project:</strong> This moves it beyond being a one-time event and could include various types of experiments. Allow exploration of what a theme is.</li>\n\n\n\n<li><strong>Identify the areas where the themes are not working out:</strong> Improve this with tools and also within the core itself. This goes beyond the design tools and into the system of themes themselves.</li>\n</ul>\n\n\n\n<h2 class=\"wp-block-heading\">A pause is not a stop</h2>\n\n\n\n<p>I chose this title because I am suggesting a pause, although I struggle to see &#8216;when&#8217; we would need them, but of course, things change. As a project, WordPress should also release more experiments on what a theme should be today. That&#8217;s been the issue, and as a result, the default theme has become such a hot topic for people. </p>\n\n\n\n<p>This is just my thought, though. If a default theme were to happen, it would be amazing and welcome. I also know it will be done incredibly well. I often reflect on the logistics and the limited resources required for incredible contributions. I always want to put them in the space where they will be most effective and move the project forward. I also think that, as a product, it makes sense to have focus, and I can&#8217;t see a default theme that fits right now. I&#8217;m open to evidence, as always, to counter that. For that, it&#8217;s up to the project to decide, not me.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sun, 06 Jul 2025 16:57:52 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:18:\"binatethoughts.com\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:12;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:32:\"Tammie Lister: June in WordPress\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:34:\"https://binatethoughts.com/?p=2340\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:45:\"https://binatethoughts.com/june-in-wordpress/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4972:\"<p>Another month has passed and what a month this was, it started with WordCamp Europe and ended with a new sponsor.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Areas of contribution</h2>\n\n\n\n<p>My focus continued in the areas it had before, but I also began trying to work more product work into this. I also attended the contribution day at WordCamp Europe, as well as the event itself. I had many great conversations that fueled me throughout the month.</p>\n\n\n\n<p>Some stats this month (it&#8217;s worth noting I also did a lot of commenting, feedback and other activities outside of ticket numbers but they are good to refer to):</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Commits: </strong>4</li>\n\n\n\n<li><strong>Closed tickets:</strong> 44</li>\n\n\n\n<li><strong>Gave indepth feedback:</strong> 32 (this is worth calling out as often requires time around product and design).</li>\n</ul>\n\n\n\n<p>I have also been exploring how to optimise flows, such as rapid note-taking, and speed up more triage processes.</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Backlog</strong>: My focus was on closing tickets and also on the ancient list which is to clear down.\n<ul class=\"wp-block-list\">\n<li>Another focus on the Gutenberg repo and clearing up the &#8216;needs design&#8217; to be a true reflection of that state.</li>\n</ul>\n</li>\n\n\n\n<li><strong>Extensibility</strong>: Reviewing and verifying if issues are still valid, while also engaging in conversations about next steps.</li>\n\n\n\n<li><strong>Bundled themes</strong>: Cleared out things for potentially including in next release.</li>\n</ul>\n\n\n\n<p>I also explored limits with dataViews and other areas of the editor, and as a result, encountered issues. This is always beneficial to do, as I learn each time where the boundary problems lie.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Sharing the journey</h2>\n\n\n\n<p>This month saw the opportunity to share my journey in contribution in a conversation with <a href=\"https://www.linkedin.com/posts/marcelbootsman_wordpress-wordcampeurope-wceu-activity-7343241379021570048-u6pT?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAAABgcPcBKRyyxU2pJqS1IueElA37k3FWJGw\">Marcel Bootsman at WCEU for Kinsta</a>. I also got to be on the <a href=\"https://openchannels.fm/the-evolving-landscape-of-core-contribution-and-company-sponsorship/\">OpenChannels.fm</a> talking about the evolving landscape of core contribution and company sponsorship, with Tim and Zach from BigScoots with the amazing Adam Weeks joining us.</p>\n\n\n\n<p>I continued to reflect on the learnings from the work I am doing. I wrote about &#8216;<a href=\"https://binatethoughts.com/?p=1858\">Defining Roadmaps in the Open</a>&#8216; and &#8216;<a href=\"https://binatethoughts.com/?p=1826\">Optimising Triage and Review Processes in WordPress using AI</a>&#8216;.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Upcoming plans for contribution</h2>\n\n\n\n<p>I am allowing July to take shape as it unfolds, but to start with, this work will form the foundation. I also want to explore how I can incorporate some of my outside product management experience a bit more.</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Backlog</strong>:\n<ul class=\"wp-block-list\">\n<li>Focus on <a href=\"https://core.trac.wordpress.org/tickets/ancient\">ancient and inactive</a> trac log.</li>\n</ul>\n</li>\n\n\n\n<li><strong>Core editor:</strong>\n<ul class=\"wp-block-list\">\n<li>Continue on making sure &#8216;needs design&#8217; label is a true indicator.</li>\n\n\n\n<li>Move on to the triage of the components label.</li>\n\n\n\n<li>Components: see where can help with documentation &#8211; for example how can things be surfaced on make easier.</li>\n</ul>\n</li>\n</ul>\n\n\n\n<h2 class=\"wp-block-heading\">Sponsors this month</h2>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<p>I now have these sponsors: <a href=\"https://www.bigscoots.com\">BigScoots</a>, <a href=\"https://greyd.io\">Greyd</a>, <a href=\"https://kinsta.com\">Kinsta</a>, <a href=\"https://servmask.com\">ServMask</a>, <a href=\"https://github.com/aaronjorbin\">Aaron Jorbin</a>, <a href=\"https://github.com/timnashcouk\">Tim Nash</a>, <a href=\"https://github.com/jeffpaul\">Jeffrey Paul</a>, <a href=\"https://github.com/foosantos\">Felipe Santos</a> and <a href=\"https://github.com/scotrumery\">Scot Rumery</a>. To everyone who sponsored me and helped me secure sponsorship, thank you.</p>\n\n\n\n<h3 class=\"wp-block-heading\">New sponsor ServMask</h3>\n\n\n\n<p>Those of you who are keen-eyed will notice that a new sponsor has been added to that list. I want to thank ServMask for their sponsorship. It makes a difference to the work I can do to have companies and individuals support me.</p>\n\n\n\n<p>Want to sponsor me? You can through <a href=\"https://github.com/sponsors/karmatosed\">GitHub</a>.</p>\n\n\n\n<p>There is always sponsorship, of course, that is volunteered, and I&#8217;ll do as much as possible whilst still keeping things flowing – let&#8217;s get contributing!</p>\n</div>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sun, 06 Jul 2025 15:37:28 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:18:\"binatethoughts.com\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:13;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:71:\"Gravatar: User Profile Page Examples to Inspire Your Website’s Design\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:32:\"http://blog.gravatar.com/?p=1496\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:64:\"https://blog.gravatar.com/2025/07/04/user-profile-page-examples/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:32841:\"<p>A winning profile page requires two things working in harmony: </p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>First, a compelling design that showcases user identity. </li>\n\n\n\n<li>Second, frictionless onboarding that gets users to actually complete their profiles.</li>\n</ol>\n\n\n\n<p>Most teams nail the design but fumble on the experience. Users abandon beautifully crafted pages because they&#8217;re tired of uploading the same photo and entering the same bio for the hundredth time. Your conversion rate flatlines while you wonder why your pixel-perfect interface isn&#8217;t working.</p>\n\n\n\n<p>We analyzed 15 top-performing profile designs. The winners combine great design with smart data integration. Here’s a snapshot:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https://github.com/\">GitHub&#8217;s</a> contribution graphs turns coding into a game, while using <a href=\"https://gravatar.com/\">Gravatar&#8217;s</a> data to instantly populate developer avatars.</li>\n\n\n\n<li><a href=\"http://wordpress.com\">WordPress.com</a> creates consistent profiles across millions of sites by tapping into existing user data.</li>\n\n\n\n<li><a href=\"https://app.slack.com/\">Slack</a> eliminates redundant profile setup by recognizing users&#8217; existing information.</li>\n</ul>\n\n\n\n<p><strong>The pattern: </strong>These platforms skip building avatar systems from scratch. They focus on features that actually differentiate them, like GitHub&#8217;s contribution graphs or WordPress.com&#8217;s activity streams.</p>\n\n\n\n<p><strong>What you&#8217;ll discover:</strong></p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The components of winning profile pages.</li>\n\n\n\n<li>15 profile examples that actually convert.</li>\n\n\n\n<li>Why top platforms use existing infrastructure instead of reinventing the wheel.</li>\n</ul>\n\n\n\n<p>Ready to fix your profile problem? Let&#8217;s dive in.</p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>What Actually Makes Profile Pages Convert</strong></h2>\n\n\n\n<p><strong>What Actually Makes Profile Pages Convert</strong></p>\n\n\n\n<p>A converting profile page transforms visitors into engaged users through strategic design decisions.</p>\n\n\n\n<p>Four core elements separate winning profiles from the rest:</p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Visual Hierarchy That Works</strong></h3>\n\n\n\n<p>Profile photos positioned prominently drive immediate recognition.<a href=\"https://www.linkedin.com/business/talent/blog/product-tips/tips-for-taking-professional-linkedin-profile-pictures\"> Research shows profiles with photos receive 14x more views</a> and make users 36x more likely to receive messages.</p>\n\n\n\n<p>Smart platforms leverage this psychology. Photos anchor the layout. Essential information clusters nearby. Secondary details push down or hide behind tabs. The result? Users find what they need instantly.</p>\n\n\n\n<p><strong>Example:</strong> <a href=\"https://github.com/\">GitHub</a> positions avatars in the left column where Western readers naturally start scanning. LinkedIn&#8217;s mobile app leads with the profile photo, capitalizing on the fact that<a href=\"https://www.broadbandsearch.net/blog/mobile-desktop-internet-usage-statistics\"> 63% of web traffic comes from mobile devices</a>.</p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Purpose-Driven Design</strong></h3>\n\n\n\n<p>Single-purpose profiles outperform feature-bloated alternatives. Pick one primary goal. Execute flawlessly. Everything else becomes secondary or disappears.</p>\n\n\n\n<p>Portfolio showcase? Show the work. Professional networking? Highlight credentials. Community building? Surface engagement metrics.</p>\n\n\n\n<p><strong>Example:</strong> <a href=\"https://stackoverflow.com/\">Stack Overflow</a> focuses solely on technical reputation &#8211; no social features, no messaging, just pure expertise visualization. This laser focus helped them become the de facto Q&amp;A platform for developers.</p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>User Control = User Retention</strong></h3>\n\n\n\n<p>Customizable profiles keep users engaged. When people shape their digital presence, they invest emotionally. That investment translates to return visits.</p>\n\n\n\n<p><a href=\"https://analyzify.com/statsup/linkedin#stat-linkedin-profiles-that-are-fully-completed-receive-30-more-views-on-a-weekly-basis\">Complete LinkedIn profiles receive 30% more profile views</a> than incomplete ones. The best implementations balance flexibility with constraints – too many options overwhelm, too few feel restrictive.</p>\n\n\n\n<p><strong>Example:</strong> <a href=\"https://discord.com/\">Discord</a> allows custom status messages and per-server avatars, letting users express different facets of their personality across communities.</p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Three-Click Rule</strong></h3>\n\n\n\n<p>Every profile action needs to be accessible within three clicks. Each additional click loses users.<a href=\"https://baymard.com/blog/ecommerce-checkout-usability-report-and-benchmark\"> </a></p>\n\n\n\n<p>Successful platforms use either tabbed interfaces or single-scroll designs. Both help users to quickly find the information they need. The choice depends on your content density and mobile constraints, not designer preference.</p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Essential Profile Components (Ranked by Impact)</strong></h2>\n\n\n\n<p>Profile components are user interface elements that directly impact engagement metrics and conversion rates.</p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1. Profile photo</strong></h3>\n\n\n\n<figure class=\"wp-block-image size-large\"><img alt=\"Upload a profile picture\" class=\"wp-image-1499\" height=\"427\" src=\"https://blog.gravatar.com/wp-content/uploads/2024/06/image.jpeg?w=660\" width=\"660\" /></figure>\n\n\n\n<p>The trust anchor of any profile. No photo means no trust. Poor quality photos perform almost as badly.</p>\n\n\n\n<p><strong>Technical requirements that matter:</strong></p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Optimal size:<a href=\"https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/personalizing-your-profile\"> 500&#215;500 pixels recommended, 400&#215;400 minimum</a>.</li>\n\n\n\n<li>Format: WebP with JPEG fallback.</li>\n\n\n\n<li>Implementation: Lazy loading for performance.</li>\n</ul>\n\n\n\n<p><strong>The shortcut major platforms use: </strong><a href=\"https://gravatar.com/\">Gravatar</a> handles all of this automatically. Users upload once, and their photo appears everywhere. No image processing pipeline to build. No storage costs. No optimization headaches. Just add their email hash and move on to features that actually differentiate your platform.</p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2. Bio section</strong></h3>\n\n\n\n<figure class=\"wp-block-image size-large\"><img alt=\"Bio section \" class=\"wp-image-1501\" height=\"426\" src=\"https://blog.gravatar.com/wp-content/uploads/2024/06/image-2.jpeg?w=660\" width=\"660\" /></figure>\n\n\n\n<p>The narrative that connects. Optimal length varies by platform, but the principle remains: force clarity through constraints.</p>\n\n\n\n<p><a href=\"https://blog.replug.io/instagram-character-limits/\">Instagram&#8217;s 150-character limit</a> drives concise, impactful bios. LinkedIn allows 2,000 characters, but best practices suggest <a href=\"https://www.linkedin.com/advice/1/what-ideal-length-personal-bio-skills-personal-branding\">keeping profile summaries to 300 words</a> or less for maximum engagement.</p>\n\n\n\n<p><strong>Winning bios include:</strong></p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Clear value proposition (first 50 characters).</li>\n\n\n\n<li>Credibility markers.</li>\n\n\n\n<li>Personality touches.</li>\n\n\n\n<li>Call-to-action.</li>\n</ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3. Connection Mechanisms</strong></h3>\n\n\n\n<figure class=\"wp-block-image size-large\"><img alt=\"Contact information button\" class=\"wp-image-1502\" height=\"459\" src=\"https://blog.gravatar.com/wp-content/uploads/2024/06/image-3.jpeg?w=660\" width=\"660\" /></figure>\n\n\n\n<p>Where engagement becomes action. Make it obvious how to connect. Make it easy to execute.</p>\n\n\n\n<p><strong>Core features:</strong></p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Follow/connect buttons above the fold.</li>\n\n\n\n<li>Clear messaging options.</li>\n\n\n\n<li>Permission controls.</li>\n\n\n\n<li>Export capabilities.</li>\n</ul>\n\n\n\n<p><a href=\"https://blog.photofeeler.com/perfect-photo/\">Professional headshots increase perceived competence by +0.94 points</a> and influence by +1.29 points. Yet most platforms still make users jump through hoops to connect.</p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>The Infrastructure Reality</strong></h2>\n\n\n\n<p>Building these from scratch takes weeks. Database schemas, image optimization, and privacy compliance – each component requires specialized expertise.</p>\n\n\n\n<p><a href=\"https://blog.gravatar.com/2024/06/03/profiles-as-a-service/\">Gravatar already serves billions of avatars</a> for WordPress.com, Slack, GitHub, and OpenAI. Their evolution brings a complete profile solution: one integration, full identity system. While competitors build profile systems, smart platforms leverage existing infrastructure and focus on unique value.</p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>15 Profile Examples that Actually deliver</strong></h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Developer Platforms</strong></h3>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>1. GitHub &#8211; The Contribution Graph Pioneer</strong></h4>\n\n\n\n<p><img height=\"380\" src=\"https://lh7-rt.googleusercontent.com/docsz/AD_4nXdTW9hUkNj9OAzWfe-RbA2F4GE8JR0pvu5Rfr2JTWcWXMGZK7Xz2qsdDOe9p6F-AZpwoai53du6y6Tj1gVcKLmc3qcPToaafsdJD7Klop8rVrvobjSYZE5wIiMWNNDDu4x7orwtow?key=g3Vs1-oIvhXl3o64xetJ4g\" width=\"624\" />GitHub&#8217;s green contribution squares changed developer behavior. The visual representation of daily commits gamifies consistency without explicit rewards.</p>\n\n\n\n<figure class=\"wp-block-image\"><img alt=\"github contirbutiom graph \" src=\"https://lh7-rt.googleusercontent.com/docsz/AD_4nXecRnGaKYp-S3vS82NVJTjXuWa019s2f4KI0aprqFajf5Ld9YWvZ-8XS_15iDyCy1E6EcFcV646abg60MDQtD2Q_njBp-up0KKaW3dcSbYpZ1Vx9RafgYqTeto-gF9-DqrZD5y11g?key=g3Vs1-oIvhXl3o64xetJ4g\" /></figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Hero element:</strong> 365-day activity visualization.</li>\n\n\n\n<li><strong>Conversion driver:</strong> Pinned repositories (6 maximum).</li>\n\n\n\n<li><strong>Mobile optimization:</strong> Collapsible sections preserve space.</li>\n\n\n\n<li><strong>Technical note:</strong><a href=\"https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/personalizing-your-profile\"> Uses Gravatar for avatar fallback</a>.</li>\n\n\n\n<li><strong>Steal this:</strong> Visual activity drives engagement.</li>\n</ul>\n\n\n\n<p>The Profile README feature lets developers create dynamic showcases with real-time stats and custom content. Markdown + APIs = living portfolios. This single feature spawned an entire ecosystem of profile enhancement tools.</p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>2. Stack Overflow &#8211; Gamification Done Right</strong></h4>\n\n\n\n<p>Stack Overflow proves single-metric focus works. Everything revolves around reputation points.</p>\n\n\n\n<figure class=\"wp-block-image\"><img alt=\"Stack overflow gamification features\" src=\"https://lh7-rt.googleusercontent.com/docsz/AD_4nXcTiGphKSmTkENm5WlroDFuVkB3RjdoqF_V-98miMcpNREL-mnNPsqIzF-EVP1qsuhCnYUeU_1OzLtfR2zivma6Yleign_Wy29CqjJMfp2W1s5vyzCfN7HZz7wb_OS07spj4EOR?key=g3Vs1-oIvhXl3o64xetJ4g\" /></figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Scoring system:</strong> Clear value exchange (answers = points).</li>\n\n\n\n<li><strong>Badge collection:</strong> 95 distinct achievements.</li>\n\n\n\n<li><strong>Information hierarchy:</strong> Reputation dominates visually.</li>\n\n\n\n<li><strong>Steal this:</strong> One clear success metric.</li>\n</ul>\n\n\n\n<p>Their discontinued &#8220;Developer Story&#8221; feature proved that even successful platforms overcomplicate. Returning to reputation-first design re-engaged their core audience. Sometimes less truly is more.</p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>3. GitLab &#8211; The Everything Dashboard</strong></h4>\n\n\n\n<p>GitLab emphasizes team collaboration over individual achievement. Every contribution is visible, and every interaction is tracked.</p>\n\n\n\n<figure class=\"wp-block-image\"><img alt=\"gitlab dashboard\" src=\"https://lh7-rt.googleusercontent.com/docsz/AD_4nXf5bUQ7NJb5dnmPT-BfACUWE03O9pp9fbuBgirTeLbSC-jn3mPqzJIQ6__gESULIn9eduQ1npCVmblzAELlFgvJeDLaivt_zAdA4uDpznFplL4XiXXMZ7_7xAtwASBC5yo7bN5dgw?key=g3Vs1-oIvhXl3o64xetJ4g\" /></figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Activity feeds:</strong> Complete transparency.</li>\n\n\n\n<li><strong>Project integration:</strong> Seamless repository connection.</li>\n\n\n\n<li><strong>Team visibility:</strong> Organizational context is clear.</li>\n\n\n\n<li><strong>Steal this:</strong> Transparency builds trust.</li>\n</ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Creative Showcases</strong></h3>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>4. Dribbble – Visual-First Excellence</strong></h4>\n\n\n\n<p>Dribbble&#8217;s 400×300px shot grid maximizes visual impact. Their 2023 redesign philosophy was: &#8220;less noise, less clutter – more beautiful pixels.&#8221;</p>\n\n\n\n<figure class=\"wp-block-image\"><img alt=\"Alt: dribbble john oliver profile photo resizing\" src=\"https://lh7-rt.googleusercontent.com/docsz/AD_4nXepn8KFR3eNHG2KXr1KCWIdaX8eMXQwNloxBgpoXOfUv-WrFbrUhryI924_H-D2IUJHoBUt2utO7U_vkOWank-eb2nuHsy90Cw7aasBUH7AuHP-xOhdlUDUp9_MIk9kHKhHUX7VEw?key=g3Vs1-oIvhXl3o64xetJ4g\" /></figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Grid optimization:</strong> Rapid visual scanning. </li>\n\n\n\n<li><strong>Hover interactions:</strong> Preview without commitment.</li>\n\n\n\n<li><strong>Social proof:</strong> View and like counts are visible.</li>\n\n\n\n<li><strong>Steal this:</strong> Minimize UI, maximize content.</li>\n</ul>\n\n\n\n<p>Pro accounts unlock customization &#8211; header images, welcome messages, and shot reorganization. Monetization through enhancement, not restriction.</p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>5. Behance – The Case Study Master</strong></h4>\n\n\n\n<p>Behance champions comprehensive project stories over individual images. Adobe integration made it the default for Creative Cloud users.</p>\n\n\n\n<figure class=\"wp-block-image\"><img alt=\"example behance profile\" src=\"https://lh7-rt.googleusercontent.com/docsz/AD_4nXdp8C9lQS5v3wfL1uCq2Ljol8NKrSwyUDvRI7WB3iV5gLnW0zFvVapzFp32VMEiGGAfLIMtYLtpCneV5_Lvv8xC1-4y4TrjtUPgfOVn61jbc3v5FJW14fCWlsnNeea7nzeMO3KSFg?key=g3Vs1-oIvhXl3o64xetJ4g\" /></figure>\n\n\n\n<p><strong>Project depth:</strong> Multiple images per entry.<br /><strong>Rich media:</strong> Video, 3D, animation support.<br /><strong>Context provision:</strong> Process documentation encouraged.<br /><strong>Steal this:</strong> Show the journey, not just the destination.</p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>6. ArtStation &#8211; Industry-Specific Focus</strong></h4>\n\n\n\n<p>ArtStation owns game and film portfolios through specialized features. Generic platforms can&#8217;t compete with niche expertise.</p>\n\n\n\n<figure class=\"wp-block-image\"><img alt=\" artstation game portfolio\" src=\"https://lh7-rt.googleusercontent.com/docsz/AD_4nXeCPW5f41p13fN2nHSCdkZURiOkgV0qgA2PCoMGpCQYFFAfTr9x4EWD6o_BW7qOgr63gA9LmpFVObJEq8HYMQM4CucIqls_JNwfxVnPXyKSGdbjxlDgWLreMPJlhUdWD4IhGmXw0w?key=g3Vs1-oIvhXl3o64xetJ4g\" /></figure>\n\n\n\n<p><strong>4K image support:</strong> Industry-standard quality.<br /><strong>Software tags:</strong> Tools and workflows are visible.<br /><strong>Marketplace integration:</strong> Direct monetization.<br /><strong>Steal this:</strong> Deep specialization wins.</p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Content Platforms</strong></h3>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>7. Medium &#8211; Minimalism That Converts</strong></h4>\n\n\n\n<p><a href=\"https://medium.com/\">Medium</a> profiles strip away everything except what matters: your words and your audience.</p>\n\n\n\n<figure class=\"wp-block-image\"><img alt=\"Alt: substack member article\" src=\"https://lh7-rt.googleusercontent.com/docsz/AD_4nXd5RpD7PfN7PlIsge5iKId1Ld50LydRhNJOKaLoFzfkhI43T2enn0rcqdA4kcA6lOSy0GiUsnyQzuSwlot-FLwODLOoAUxSM4J8bAasKYhrJ44Ta7ZRdx2t7dw7EFQMrTE7HV0LFA?key=g3Vs1-oIvhXl3o64xetJ4g\" /></figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Typography focus:</strong> Clean reading experience prioritizes content. </li>\n\n\n\n<li><strong>Clap engagement:</strong> A Simple appreciation system that actually works.</li>\n\n\n\n<li><strong>Clean metrics:</strong> Followers, following, nothing else cluttering the view. </li>\n\n\n\n<li><strong>Steal this:</strong> Radical simplicity drives engagement.</li>\n</ul>\n\n\n\n<p><a href=\"https://medium.com/write-a-catalyst/highlights-of-what-happened-on-medium-in-2024-what-to-note-2900f2a01426\">Medium achieved profitability in 2024</a> by doubling down on human storytelling. Their profile pages offer header customization and infinite scroll, but the real lesson? Sometimes less truly is more. No vanity metrics. No feature bloat. Just writers and readers connecting through stories.</p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>8. WordPress.com – The Network Effect</strong></h4>\n\n\n\n<p><a href=\"http://wordpress.com\">WordPress.com</a> leverages<a href=\"https://blog.gravatar.com/2024/12/10/how-to-use-gravatar-in-wordpress/\"> Gravatar for network-wide consistency</a>. One avatar, thousands of sites.</p>\n\n\n\n<figure class=\"wp-block-image\"><img alt=\"\" src=\"https://lh7-rt.googleusercontent.com/docsz/AD_4nXdzacXkdKWlQ3ed6Oy2qrkLxOPMtVEC9cWg0jhO_X8ii4yuE6pIMuVphw7tmgO54wOXc0Zn7dp1LE8JNPjFcjQorr99BpURTMl7NALL6raolXCt0F_qWa72HxHzuw37o4g2uaqfpA?key=g3Vs1-oIvhXl3o64xetJ4g\" /></figure>\n\n\n\n<p><strong>Multi-site integration:</strong> Activity aggregation<br /><strong>Universal identity:</strong> Single sign-on benefits<br /><strong>Cross-platform recognition:</strong> Comments tracked globally<br /><strong>Steal this:</strong> Reduce friction everywhere</p>\n\n\n\n<p>The <a href=\"https://blog.gravatar.com/2024/09/11/gravatar-enhanced/\">Gravatar Enhanced plugin</a> adds privacy features including no referrer information by default and an opt-in proxy service. It includes a Gravatar Profile Block for displaying user information dynamically. Hovercards are enabled by default to increase engagement. </p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>9. Dev.to – Community-Centric Profiles</strong></h4>\n\n\n\n<p>Dev.to prioritize collective learning over individual achievement. Participation matters more than perfection.</p>\n\n\n\n<figure class=\"wp-block-image\"><img alt=\"dev.to learning\" src=\"https://lh7-rt.googleusercontent.com/docsz/AD_4nXeMH27CmH6oOHWyL4EXeolayThYKeMvFEaCFl-GMXsjRYsk7lRNl4YtahwssrG3us2DuEwNiO_EE82lE4CCli56bUocUbtC6ziGnKDpXcKVUQzBTn1rE4unavsWhRgQz6qcrZr8QQ?key=g3Vs1-oIvhXl3o64xetJ4g\" /></figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Discussion highlights:</strong> Best contributions featured.</li>\n\n\n\n<li><strong>Learning transparency:</strong> Reading lists are public.</li>\n\n\n\n<li><strong>Reaction diversity:</strong> Beyond simple likes.</li>\n\n\n\n<li><strong>Steal this:</strong> Community value over vanity metrics.</li>\n</ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Social Platforms</strong></h3>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>10. Discord &#8211; Personality-Driven Design</strong></h4>\n\n\n\n<p>Discord&#8217;s per-server profiles let users wear different hats in different communities. One account, multiple personalities.</p>\n\n\n\n<figure class=\"wp-block-image\"><img alt=\"discord per server profile options\" src=\"https://lh7-rt.googleusercontent.com/docsz/AD_4nXefkU1ewEdWCU8naVMF54K6rdNA8f4WSYjo3qg-_fVJeJeuqURpMz59sZlbF5ZzUVDVhyitDR-0QfJSs9i9rx4TZyZL91wqvPNoDORIbqwiAZt8ssrMljdBFmGqe3WkdRT4QoJq?key=g3Vs1-oIvhXl3o64xetJ4g\" /></figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Custom statuses:</strong> 128-character expression.</li>\n\n\n\n<li><strong>Server showcase:</strong> Community membership visible.</li>\n\n\n\n<li><strong>Nitro features:</strong> Premium customization options.</li>\n\n\n\n<li><strong>Steal this:</strong> Context-aware identity.</li>\n</ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>11. Spotify &#8211; Data as Identity</strong></h4>\n\n\n\n<p><a href=\"https://support.spotify.com/uk/article/spotify-wrapped/\">Spotify Wrapped</a> proves people love sharing their data through their user profiles when presented beautifully. Listening history becomes a form of social currency.</p>\n\n\n\n<p><img alt=\"spotify wrapped\n\" src=\"https://lh7-rt.googleusercontent.com/docsz/AD_4nXeUGsPbW-77ZCx5McjFoS1FmWUrNO0P-rCE7Vn7D06R3gWqai2VFw6sqLlt-diA8cxht6s9oDG2aezU04vgUveg5jsZ5ptnhbGD-QxiFGrZDb4-e860TDa2sEKECKDAFe6TUYeNYQ?key=g3Vs1-oIvhXl3o64xetJ4g\" style=\"width: 625px;\" /></p>\n\n\n\n<p></p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Data visualization:</strong> Musical taste graphs.</li>\n\n\n\n<li><strong>Playlist curation:</strong> User as tastemaker.</li>\n\n\n\n<li><strong>Sharing optimization:</strong> One-click social posts.</li>\n\n\n\n<li><strong>Steal this:</strong> Make data shareable.</li>\n</ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>12. Twitch &#8211; Revenue-Focused Profiles</strong></h4>\n\n\n\n<p>Twitch optimizes for creator monetization without apology. Money matters, design supports it.<img alt=\"twitch\" src=\"https://lh7-rt.googleusercontent.com/docsz/AD_4nXfMcyPLD3k3CVkwxJVJ8EMcBAf4Zezs5DPLrcx5DYOFx06hUfiKAC9J3uR2k9e3cu1LHp4QNoA0CBRH_aYUtYtLAW3GXM23hhQLkWlh-qrgZWpaumntWxaV-VzqRbMBK-8rtvXzvg?key=g3Vs1-oIvhXl3o64xetJ4g\" style=\"width: 600px;\" /></p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Subscribe prominence:</strong> Can&#8217;t miss the CTA.</li>\n\n\n\n<li><strong>Schedule display:</strong> Reliability builds an audience. </li>\n\n\n\n<li><strong>Clip showcase:</strong> Best moments surface automatically.</li>\n\n\n\n<li><strong>Steal this:</strong> Business goals drive design.</li>\n</ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Business Tools</strong></h3>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>13. LinkedIn &#8211; The Professional Standard</strong></h4>\n\n\n\n<p>LinkedIn profiles work because they&#8217;re discoverable within the platform. Every field functions as a searchable element for recruiters and connections.</p>\n\n\n\n<figure class=\"wp-block-image\"><img alt=\"linkedin profile\" src=\"https://lh7-rt.googleusercontent.com/docsz/AD_4nXcj9Cz7-4Em_4a4rdTtwrBbFfOJmJJCW3HVb26RgTnRcMP6A846_BpFStL7Jj2wD-ElJk1u5W2ojYOa4EWU03Z0LpDLIJSz2th15s4nBBj_hiSsXR2S0e9uL3ZYe3N0gYuTlR8W8w?key=g3Vs1-oIvhXl3o64xetJ4g\" /></figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Keyword integration:</strong> Natural optimization.</li>\n\n\n\n<li><strong>Skill validation:</strong> Peer endorsements.</li>\n\n\n\n<li><strong>Content platform:</strong> Native publishing power.</li>\n\n\n\n<li><strong>Steal this:</strong> Make profiles search-friendly.</li>\n</ul>\n\n\n\n<p><a href=\"https://www.jobscan.co/linkedin-optimization\">LinkedIn optimization tools show an average 132% increase in profile views</a>. Strategic profile optimization drives real opportunities – <a href=\"https://www.cognism.com/blog/linkedin-statistics\">candidates with comprehensive profiles have a 71% higher chance of job interviews</a>.</p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>14. ProductHunt – Maker Credibility</strong></h4>\n\n\n\n<p>ProductHunt profiles display your complete launch history with upvote counts, creating a track record that builds credibility for future product launches.</p>\n\n\n\n<p>.<img height=\"337\" src=\"https://lh7-rt.googleusercontent.com/docsz/AD_4nXdgAUs8SSJwa8xMckKU1Ino6SEn4f0WfqCeYIczlQz131dmUPEHg6o3sVKG19A8NJtI13yABpnkOKuGQ7MCU3zhWuksBZzDy6hJrnn5UYFHHP9qUpaNA4HHnij7vXN6W_HpsKmELg?key=g3Vs1-oIvhXl3o64xetJ4g\" width=\"430\" /></p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Launch timeline:</strong> Track record visible.</li>\n\n\n\n<li><strong>Upvote accumulation:</strong> Social proof currency.</li>\n\n\n\n<li><strong>Collection curation:</strong> Tastemaker status.</li>\n\n\n\n<li><strong>Steal this:</strong> History builds credibility.</li>\n</ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>15. Figma – Collaboration Visualization</strong></h4>\n\n\n\n<p>Figma profiles showcase collaborative work by default – files display team ownership, not just individual creators. This reflects how modern design actually happens.</p>\n\n\n\n<figure class=\"wp-block-image\"><img alt=\"Figma collaboration\" src=\"https://lh7-rt.googleusercontent.com/docsz/AD_4nXeP7ABU8f5lPpJlwsixf36K3n0FKOgfYb1coYw-DQCNlifcSzhK0WdNLisYpJoJHwOUeELoS_5ryvXUpY50nCEpGNZn8dLkCodXs5KQ4V10tdTIJWA1KyBLt9RgiS_KPwOKNSIA?key=g3Vs1-oIvhXl3o64xetJ4g\" /></figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>File previews:</strong> Automatic portfolio generation.</li>\n\n\n\n<li><strong>Team context:</strong> Collaborative credentials.</li>\n\n\n\n<li><strong>Plugin development:</strong> Technical skills showcase.</li>\n</ul>\n\n\n\n<p><strong>Steal this:</strong> Modern work is teamwork.</p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Why Mobile Profile Optimization is a Must</strong></h2>\n\n\n\n<p>Here&#8217;s the reality check: Your beautifully designed desktop profile? <em>Most</em> users will never see it.</p>\n\n\n\n<p>It differs between segments like age group and industry, but <a href=\"https://research.com/software/guides/mobile-vs-desktop-usage\">96.3% of internet users access via mobile phones</a>. Yet most profile pages still treat mobile as an afterthought &#8211; cramming desktop designs into smaller screens and wondering why engagement tanks.</p>\n\n\n\n<p><strong>The paradox:</strong> Desktop users spend <a href=\"https://www.semrush.com/blog/mobile-vs-desktop-usage/\">~77.8% longer per visit</a>, while mobile users generate 81% higher visit volume. This isn&#8217;t about choosing sides. It&#8217;s about understanding each platform&#8217;s strengths and designing accordingly.</p>\n\n\n\n<p>Mobile profile optimization prioritizes thumb-zone interaction and vertical information architecture. Get this wrong, and you lose the majority of your audience before they even engage.</p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Mobile Constraints That Matter</strong></h3>\n\n\n\n<p><strong>Touch Targets</strong></p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https://developer.apple.com/design/human-interface-guidelines/designing-for-ios/\">44x44px minimum (Apple HIG)</a>.</li>\n\n\n\n<li><a href=\"https://m3.material.io/\">48x48dp minimum (Material Design)</a>.</li>\n\n\n\n<li><a href=\"https://www.w3.org/WAI/WCAG21/Understanding/target-size.html\">20% spacing prevents mis-taps</a>.</li>\n</ul>\n\n\n\n<p><strong>Information Architecture</strong></p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Progressive disclosure by default.</li>\n\n\n\n<li>Expand on explicit intent only.</li>\n\n\n\n<li><a href=\"https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/\">Vertical rhythm consistency using 8px grid system</a>.</li>\n</ul>\n\n\n\n<p><strong>Performance Requirements</strong></p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>3-second maximum load time.</li>\n\n\n\n<li>Lazy loading below the fold.</li>\n\n\n\n<li>Image optimization is critical.</li>\n</ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Platform Solutions Worth Stealing</strong></h3>\n\n\n\n<p><strong>LinkedIn:</strong> Card-based sections create digestible chunks. Each card is self-contained, swipeable, and complete.</p>\n\n\n\n<p><strong>GitHub:</strong> Collapsible sections preserve desktop density. Critical info visible, details on demand.</p>\n\n\n\n<p><strong>Discord:</strong> Native gestures for navigation. Swipe between servers feels natural, reduces cognitive load.</p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Implementation Without the Headache</strong></h2>\n\n\n\n<p>Efficient profile implementation leverages existing infrastructure to reduce development time and maintenance burden.</p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Build vs. Buy Reality Check</strong></h3>\n\n\n\n<p><strong>DIY Timeline:</strong></p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Week 1-2: Database schema and API.</li>\n\n\n\n<li>Week 3: Frontend components.</li>\n\n\n\n<li>Week 4: Image handling and optimization.</li>\n\n\n\n<li>Ongoing: Security updates and maintenance.</li>\n</ul>\n\n\n\n<p><strong>The Gravatar Approach:</strong></p>\n\n\n\n<p><a href=\"https://blog.gravatar.com/2024/06/03/profiles-as-a-service/\">Gravatar already powers avatars across WordPress.com, Slack, GitHub, and OpenAI</a>. Their evolution brings a complete profile solution:</p>\n\n\n\n<p><strong>Current Gravatar Reality:</strong></p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Billions of avatars are served monthly.</li>\n\n\n\n<li>Email-based identity system.</li>\n\n\n\n<li>Zero license keys required.</li>\n\n\n\n<li><a href=\"https://blog.gravatar.com/2024/10/30/introducing-native-integrations-for-gravatar-mobile-sdk/\">Native mobile SDKs released in October 2024</a>.</li>\n</ul>\n\n\n\n<p><strong>The Gravatar Approach:</strong></p>\n\n\n\n<p>Gravatar&#8217;s <a href=\"https://docs.gravatar.com/\">Profile-as-a-Service API</a> provides: </p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Full profile data access (avatars, bios, interests, verified accounts) </li>\n\n\n\n<li>Open API with no licensing requirements </li>\n\n\n\n<li>80+ million existing profiles </li>\n\n\n\n<li>Automatic profile syncing across platforms </li>\n\n\n\n<li>Native mobile SDKs for iOS and Android </li>\n</ul>\n\n\n\n<p>Learn more: <a href=\"https://docs.gravatar.com/\">https://docs.gravatar.com/</a> </p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Critical Technical Decisions</strong></h3>\n\n\n\n<p><strong>Image Handling</strong></p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A CDN is required for global performance.</li>\n\n\n\n<li>Multiple size variants are needed.</li>\n\n\n\n<li>Format detection and serving.</li>\n\n\n\n<li><a href=\"https://www.w3.org/WAI/WCAG21/Understanding/target-size.html\">WCAG 2.2 compliance for accessibility</a>.</li>\n</ul>\n\n\n\n<p><strong>Privacy Compliance</strong></p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>GDPR consent mechanisms.</li>\n\n\n\n<li>Data portability options.</li>\n\n\n\n<li>User-controlled sharing (Gravatar&#8217;s approach).</li>\n</ul>\n\n\n\n<p><strong>Performance Optimization</strong></p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Edge caching strategies.</li>\n\n\n\n<li>Progressive enhancement.</li>\n\n\n\n<li>Core Web Vitals compliance.</li>\n</ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>What&#8217;s Next for Profile Design</strong></h2>\n\n\n\n<p>Three trends reshape profile architecture:</p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Unified Identity Systems</strong></h3>\n\n\n\n<p><strong>Gravatar&#8217;s vision: </strong>One profile, updated everywhere. Email becomes the universal identity anchor.</p>\n\n\n\n<p>Users demand control. They own the data, and platforms display it. The winning platforms embrace this shift.<a href=\"https://blog.gravatar.com/2024/06/03/profiles-as-a-service/\"> 85% of adults worldwide want additional steps to protect online privacy</a> – unified systems deliver both convenience and control.</p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Privacy-First Architecture</strong></h3>\n\n\n\n<p>Granular sharing controls become a competitive advantage. Users specify what shares are where. Trust drives retention.</p>\n\n\n\n<p>Gravatar&#8217;s model: Users decide what&#8217;s shared, and platforms respect those decisions. This approach aligns with evolving regulations while building user confidence.</p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Stop Building. Start Converting.</strong></h2>\n\n\n\n<p>Profile pages fail when built in isolation. Each platform reinvents the wheel, users suffer through repetitive onboarding, and developers waste weeks on solved problems.</p>\n\n\n\n<p>The solution is clear: Study these 15 examples. Steal what works. Then decide – build from scratch or leverage existing infrastructure?</p>\n\n\n\n<p><strong>Your Next Move:</strong></p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Audit your current profile system against these examples</li>\n\n\n\n<li>List the gaps costing you conversions</li>\n\n\n\n<li>Calculate the real cost of DIY development</li>\n\n\n\n<li>Consider unified identity solutions like Gravatar</li>\n</ol>\n\n\n\n<p>Using the <a href=\"https://blog.gravatar.com/2024/08/26/gravatar-api-tutorial-for-app-developers/\">Gravatar API</a> for importing profile data helps establish attractive and consistent profile designs. This improves the overall look of your application and guarantees the accuracy of profile information. </p>\n\n\n\n<p>Gravatar&#8217;s profile integration is already revolutionizing user profile design for leading websites such as <a href=\"https://pocketcasts.com/\">Pocket Casts</a> and WordPress.com. These platforms use Gravatar&#8217;s features to enhance user engagement and provide a more dynamic profile experience to users worldwide.</p>\n\n\n\n<p>Stop building profile systems. Start building profile experiences that convert Join the thousands of people customizing their unique profiles today with <a href=\"https://docs.gravatar.com/\">Gravatar</a>!  .</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 04 Jul 2025 15:38:51 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:11:\"Ronnie Burt\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:14;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:73:\"Open Channels FM: Emojis, Exclamation Marks, and Reading the Room in Text\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:33:\"https://openchannels.fm/?p=100417\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:78:\"https://openchannels.fm/emojis-exclamation-marks-and-reading-the-room-in-text/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:173:\"Tone in writing significantly influences communication, especially in async messages, where emojis, punctuation, and warmth affect how messages are received and interpreted.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 04 Jul 2025 07:28:24 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:15;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:42:\"Aaron Jorbin: My May And June in WordPress\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"https://aaron.jorb.in/?p=208437\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:51:\"https://aaron.jorb.in/my-may-and-june-in-wordpress/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:5288:\"<p>My May and June in WordPress focused on helping get 6.8.2 set up for success and gardening old trac tickets. </p>\n\n\n\n<p>This was my first time putting together the squad for a minor release that I wasn&#8217;t going to be a member of. I coordinated with a few active committers, team reps, and the 6.8.0 release coordinators to review the folks who volunteered to help lead a maintenance release. The first step was identifying from the volunteers one person who could be the primary lead. This involved reaffirming that people could still make the commitment. Once the first person was identified, we looked for folks to compliment them and I confirmed their availability. After that, I announced it and the 6.8.2 team got off to a quick start getting ready for the next release of WordPress.</p>\n\n\n\n<p>I&#8217;ve also been spending some time looking at some long neglected tickets.  In order to not feel stuck, I&#8217;ve moved between a few reports on trac. The <a href=\"https://core.trac.wordpress.org/tickets/close\">close report</a> (which is now under 200), one looking at <a href=\"https://core.trac.wordpress.org/query?status=accepted&amp;status=assigned&amp;status=new&amp;status=reopened&amp;status=reviewing&amp;keywords=~has-patch&amp;col=id&amp;col=summary&amp;col=status&amp;col=owner&amp;col=type&amp;col=priority&amp;col=milestone&amp;col=changetime&amp;order=changetime\">tickets with a patch that haven&#8217;t received</a> attention in a long time and <a href=\"https://core.trac.wordpress.org/tickets/ancient\">the ancient report</a>. Over half the tickets I touched during this span of time are now closed.</p>\n\n\n\n<p>Another task I did was once again participate in the <a href=\"https://lgbtqpress.com/2025/05/share-your-pride-photo-drive-is-back-for-2025/\">Share Your Pride photo drive</a>. I added a total of <a href=\"https://wordpress.org/photos/author/jorbin/\">32 photos</a> though not all are in the photo drive. One of my favorites is used as the featured image on this post <img alt=\"☺\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/16.0.1/72x72/263a.png\" style=\"height: 1em;\" /></p>\n\n\n\n<h2 class=\"wp-block-heading\">By the numbers</h2>\n\n\n\n<p>During these two months, I contributed to 131 tickets on trac, made 4 commits to core, received 10 props, put together the squad for a minor release, wrote 1 make/core post, added 32 photos to the photo directory, and led one bug scrub.</p>\n\n\n\n<p>I had 20 sponsors these months: <a href=\"https://github.com/jeffpaul\" rel=\"noreferrer noopener\" target=\"_blank\">Jeffrey Paul</a>, <a href=\"https://github.com/philipjohn\" rel=\"noreferrer noopener\" target=\"_blank\">philipjohn</a>, <a href=\"https://github.com/zstepek\" rel=\"noreferrer noopener\" target=\"_blank\">Zach Stepek</a>, <a href=\"https://github.com/kkoppenhaver\" rel=\"noreferrer noopener\" target=\"_blank\">Keanan Koppenhaver</a>, <a href=\"https://github.com/Mamaduka\" rel=\"noreferrer noopener\" target=\"_blank\">George Mamadashvili</a>, <a href=\"https://github.com/kingkool68\">Russell Heimlich </a>, <a href=\"https://github.com/austinginder\">Austin Ginder</a>, <a href=\"https://github.com/adamsilverstein\">Adam Silverstein</a>, <a href=\"https://github.com/felixarntz\">Felix Arntz</a>, <a href=\"https://github.com/desrosj\">Jonathan Desrosiers</a>, <a href=\"https://github.com/bacoords\">Brian Coords</a>, <a href=\"https://github.com/mklute101\">mklute101</a>, <a href=\"https://github.com/timnashcouk\">Tim Nash</a>, <a href=\"https://github.com/jayhoppie\">Jay Hoppie</a>,<a href=\"https://github.com/dknauss\"> Dan Knauss</a>, <a href=\"https://github.com/kcristiano\">Kevin Cristiano</a>, <a href=\"https://kinsta.com/\">Kinsta</a>, <a href=\"https://github.com/whyisjake\">Jake Spurlock</a>, <a href=\"https://github.com/afragen\">Andy Fragen</a> and one who wishes to remain anonymous. Thank you for believing in and supporting my contributions to Open Source.</p>\n\n\n\n<p></p>\n\n\n\n<p>Previous: <a href=\"https://aaron.jorb.in/my-march-and-april-in-wordpress/\">March/April 2025</a>, <a href=\"https://aaron.jorb.in/my-february-in-wordpress-2/\">February 2025</a>, <a href=\"https://aaron.jorb.in/my-january-in-wordpress-2/\">January 2025</a>, <a href=\"https://aaron.jorb.in/my-2024-in-wordpress/\">2024 as a whole</a>, <a href=\"https://aaron.jorb.in/my-october-in-wordpress/\">October 2024</a>, <a href=\"https://aaron.jorb.in/my-september-in-wordpress/\">September 2024</a>, <a href=\"https://aaron.jorb.in/my-august-in-wordpress/\">August 2024</a>, <a href=\"https://aaron.jorb.in/my-july-in-wordpress/\">July 2024</a>, <a href=\"https://aaron.jorb.in/my-june-in-wordpress/\">June 2024</a>, <a href=\"https://aaron.jorb.in/my-may-in-wordpress/\">May 2024</a>, <a href=\"https://aaron.jorb.in/my-april-in-wordpress/\">April 2024</a>, <a href=\"https://aaron.jorb.in/my-march-in-wordpress/\">March 2024</a>, <a href=\"https://aaron.jorb.in/my-february-in-wordpress/\">February 2024</a>, <a href=\"https://aaron.jorb.in/my-january-in-wordpress/\">January 2024</a>, <a href=\"https://aaron.jorb.in/my-december-in-wordpress/\">December 2023</a>, <a href=\"https://aaron.jorb.in/my-november-in-wordpress/\">November 2023</a></p>\n<p>The post <a href=\"https://aaron.jorb.in/my-may-and-june-in-wordpress/\">My May And June in WordPress</a> appeared first on <a href=\"https://aaron.jorb.in\">Aaron Jorbin</a>.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 03 Jul 2025 19:02:58 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:6:\"jorbin\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:16;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:53:\"Open Channels FM: Clarity Beats Brevity in Async Work\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:33:\"https://openchannels.fm/?p=100390\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:60:\"https://openchannels.fm/clarity-beats-brevity-in-async-work/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:195:\"In async work, short messages often lead to confusion. Being clear and detailed helps everyone understand without endless back-and-forth. Good communication is about being useful, not just quick.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 03 Jul 2025 11:38:47 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:17;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:51:\"Peter Wilson: Unit testing WordPress plugin headers\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://peterwilson.cc/?p=6615\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:61:\"https://peterwilson.cc/unit-testing-wordpress-plugin-headers/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:656:\"<p>WordPress plugins require a number of headers to be included in the plugin file for them to render correctly in the dashboard. If releasing a plugin on WordPress.org then a number of additional headers are required in the readme file.</p>\n\n\n\n<p>The problem I have is that I can never remember which header goes where. Each time I write a plugin, I have to spend time reading the docs and making sure everything is in the correct location.</p>\n\n\n\n<p>Continue reading <a href=\"https://peterwilson.cc/unit-testing-wordpress-plugin-headers/\">Unit testing WordPress plugin headers</a> on <a href=\"https://peterwilson.cc\" rel=\"nofollow\">peterwilson.cc</a></p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 02 Jul 2025 21:43:10 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:12:\"Peter Wilson\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:18;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"bbPress: bbPress 2.6.14 is out!\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:29:\"https://bbpress.org/?p=245323\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:55:\"https://bbpress.org/blog/2025/07/bbpress-2-6-14-is-out/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:726:\"<p>bbPress 2.6.14 is a <strong>minor</strong> release that fixes <a href=\"https://bbpress.trac.wordpress.org/milestone/2.6.14\">20 issues</a>. For everyone running bbPress 2.6, feel free to update at your earliest convenience. <img alt=\"🍯\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/16.0.1/72x72/1f36f.png\" style=\"height: 1em;\" /></p>\n\n\n\n<p>This release improves Akismet, BuddyPress, and PHP 8.2 support, moderation terms, search, and more!</p>\n\n\n\n<p>(All of these fixes have already been merged into trunk/2.7.)</p>\n\n\n\n<p>Thank you to everyone who contributed to this bbPress release! <img alt=\"🙏\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/16.0.1/72x72/1f64f.png\" style=\"height: 1em;\" /></p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 02 Jul 2025 18:15:15 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:17:\"John James Jacoby\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:19;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:71:\"WPTavern: #175 – Jennifer Schumacher on Learning From Agency Mistakes\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:48:\"https://wptavern.com/?post_type=podcast&p=197160\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:85:\"https://wptavern.com/podcast/175-jennifer-schumacher-on-learning-from-agency-mistakes\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:48363:\"<details>Transcript<div>\n<p>[00:00:19] <strong>Nathan Wrigley:</strong> Welcome to the Jukebox Podcast from WP Tavern. My name is Nathan Wrigley.</p>\n\n\n\n<p>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, learning from mistakes in website development agencies.</p>\n\n\n\n<p>If you&#8217;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/feed/podcast, and you can copy that URL into most podcast players.</p>\n\n\n\n<p>If you have a topic that you&#8217;d like us to feature on the podcast, I&#8217;m keen to hear from you and hopefully get you, or your idea, featured on the show. Head to wptavern.com/contact/jukebox, and use the form there.</p>\n\n\n\n<p>So on the podcast today, we have Jennifer Schumacher.</p>\n\n\n\n<p>Jennifer has been working with WordPress and web development for over 15 years. Her journey began with a spark of curiosity in university, building her first WordPress website after a YouTube crash course. Then evolving into freelance gigs, team collaborations, and eventually running a white label agency working alongside other agencies around the world.</p>\n\n\n\n<p>Jennifer&#8217;s experiences have exposed her to the highs and lows of agency life. Projects that run smoothly, but also cultures that can become toxic, people burning out, and the all too familiar frustration of unbillable hours, and broken processes.</p>\n\n\n\n<p>This inspired Jennifer&#8217;s lightning talk at WordCamp Europe 2025, where she shared some of the most common, and painful, mistakes she&#8217;s seen agencies make, and what can be learned from them.</p>\n\n\n\n<p>Jennifer walks us through her path in the WordPress world, and we discuss three real world mistakes agencies make. Web support that drains your soul, the design handoff from hell, and work more, bill less, and smile anyway.</p>\n\n\n\n<p>We talk through support, bottlenecks, frustrating design to development handoffs, and the dilemma of over servicing clients without fair compensation.</p>\n\n\n\n<p>Jennifer shares her candid perspective on why processes and honest communication matter, not just for the bottom line, but for the mental health and building sustainable teams. She also discusses how transparency, learning from failure, and continually improving processes can improve agency life.</p>\n\n\n\n<p>Jennifer&#8217;s approach is refreshingly open about both the mistakes and the solutions, aiming to help others avoid repeating them.</p>\n\n\n\n<p>If you found yourself frustrated with agency workflows, or are hoping to build a healthier business in the WordPress ecosystem, this episode is for you.</p>\n\n\n\n<p>If you&#8217;re interested in finding out more, you can find all of the links in the show notes by heading to wptavern.com/podcast, where you&#8217;ll find all the other episodes as well.</p>\n\n\n\n<p>And so without further delay, I bring you, Jennifer Schumacher.</p>\n\n\n\n<p>I am joined on the podcast today by Jennifer Schumacher. Hello, Jennifer.</p>\n\n\n\n<p>[00:03:26] <strong>Jennifer Schumacher:</strong> Hello. Nice to be here.</p>\n\n\n\n<p>[00:03:28] <strong>Nathan Wrigley:</strong> We&#8217;re here on Contrib Day. It&#8217;s WordCamp Europe 2025. Now, because it&#8217;s Contrib Day, that means you haven&#8217;t yet done what it is that you are going to do at WordCamp Europe. But you&#8217;ve got a presentation, like a lightning talk. So you&#8217;ve got 10 minutes to stand on the stage.</p>\n\n\n\n<p>The idea is that you are going to be talking about agency, WordPress agencies, how they mess up, I&#8217;m going to use that word, and how they can learn from their mistakes.</p>\n\n\n\n<p>So before we get into that, just tell us a little bit about you.</p>\n\n\n\n<p>[00:03:56] <strong>Jennifer Schumacher:</strong> I started web development about 15 years ago, maybe a even more even. I was at university, no money, on a freelance platform, and somebody asked me if I could build a website. I checked on YouTube, okay WordPress. I said yes, and then I sold a website. No idea how to do it, honestly. But then YouTube helped me figure things out, and that&#8217;s how I started and fell in love with it. No way to turn back.</p>\n\n\n\n<p>Went for it, did a couple of freelance gigs and then, you know, joining other team members, joining other people in the freelance world, building like groups, working on stuff together, working on projects. And then it grew, got bigger. We got bigger projects. We built a white label team working for the agencies, collaborating with other agencies. And that&#8217;s what I have done over the past years. So that&#8217;s a bit of my background.</p>\n\n\n\n<p>[00:04:47] <strong>Nathan Wrigley:</strong> Yeah, that&#8217;s perfect. Yeah, that&#8217;s great. I think your story sounds like a lot of people&#8217;s stories in that they, if you began 15 years ago, the web was still very much discovering what it was going to be. And you drop in and learn as you went along. I think maybe now that&#8217;s a little bit more difficult. I think if you drop in these days, it&#8217;s maybe more challenging. There&#8217;s so much more competition out there and things like that. yeah, your story kind of mimics mine except that you grew an agency and I didn&#8217;t, I just stuck as a one person, and that kind of worked out for me.</p>\n\n\n\n<p>[00:05:15] <strong>Jennifer Schumacher:</strong> Yeah, it&#8217;s like the people network, right? You meet different people and then you get to know each other, and then you start learning, and then you think about the opportunities. And then either you say, okay, this is a path that I want to take, or you don&#8217;t, right?</p>\n\n\n\n<p>[00:05:27] <strong>Nathan Wrigley:</strong> And have you ever worked for other people in website building? Have you worked for other agencies, or been an employee? Or has it always been you and the agencies that you have run?</p>\n\n\n\n<p>[00:05:36] <strong>Jennifer Schumacher:</strong> I never have been like an employee per se, so it was more like a contractor, but either freelance or for the agency that we built. But the nice thing, and why I really loved this was it was in different roles, right? Sometimes I was the designer in the beginning, or I was the developer. Later on I did develop myself, but that was in the WP Bakery days. So I don&#8217;t do that anymore to be honest.</p>\n\n\n\n<p>Yeah, so it was design then more development. And then later on I moved more into project management. And then in the most recent years, there&#8217;s so many things that I, after all those years, you know, it&#8217;s nice, I love WordPress, but certain things make me sick. I was like, God, no, I don&#8217;t want this anymore.</p>\n\n\n\n<p>Certain stress levels that I&#8217;ve reached where I said, no, I don&#8217;t want to do it the same old way as usual. This is something that my talk will be about, to be honest.</p>\n\n\n\n<p>And the last couple of years have been more about process improvement. Doing things faster, less stress, and then also all these unbillable hours that many people just hide below the table. So this has been my focus for the last couple of years.</p>\n\n\n\n<p>[00:06:41] <strong>Nathan Wrigley:</strong> Okay. Well, I&#8217;ve got to say it&#8217;s very, very nice to meet somebody who&#8217;s really open and honest about their successes, but also things that they consider they could do better. Let&#8217;s use the word failures. I think most people kind of hide that stuff, but it&#8217;s really interesting that you are doing a presentation where you are raising that as, okay, I messed this up, I messed this up, I messed this up, and here&#8217;s how I took it as a, you say learning opportunity, which I suppose is the best way to parse any of those kind of things.</p>\n\n\n\n<p>Why are you doing a talk though at WordCamp? So this is kind of a more of a community question. It&#8217;s not really about the presentation itself. I&#8217;m just curious as to why, what is it that you get out of it? Do you just enjoy sort of hanging out at these events or, why have you decided to do it?</p>\n\n\n\n<p>[00:07:20] <strong>Jennifer Schumacher:</strong> How can I explain that in the best possible way? I&#8217;ve met many great people over the years, but I&#8217;ve seen many of them who got frustrated about certain things in part of the culture at the agency they worked at. I&#8217;ve seen toxic cultures as well. I&#8217;ve seen many projects that started off very nice and then it became frustrating over the time. And then towards the end, people were not getting paid according to what they actually delivered.</p>\n\n\n\n<p>I&#8217;ve seen people that later on actually quit and they said again, I don&#8217;t want to do it anymore. That they were so frustrated, especially in project management, I&#8217;ve seen a couple of them just drop out. It&#8217;s like, you know what? Not doing it anymore. And I don&#8217;t think that that&#8217;s worth it.</p>\n\n\n\n<p>If we don&#8217;t talk about what goes wrong, if we don&#8217;t acknowledge about stuff, these things that could be better, and then say, hey, you know what, let&#8217;s figure out a better path and resolve this kind of stress because we deserve a better team that&#8217;s in sync, then what are we doing? If we just continue and say, well, that&#8217;s agency life, you know? That&#8217;s how it is in agencies. No, it&#8217;s not supposed to be that way.</p>\n\n\n\n<p>If you just accept it and just go with it, then it&#8217;s going to be that way. I think it&#8217;s worth sharing that, because if you don&#8217;t ask the question, how can it be better? You&#8217;re not making anything better to be honest.</p>\n\n\n\n<p>[00:08:38] <strong>Nathan Wrigley:</strong> Okay. Thank you. So let&#8217;s hope that the wisdom that you impart will land with the people. But you&#8217;ve got this idea of three real world agency mistakes. That&#8217;s what you&#8217;re going to focus on in your 10 minutes.</p>\n\n\n\n<p>I have a question around that. So obviously you&#8217;re going to highlight the things that went wrong, explain how you tackled it. Do you ever get the sense though that there&#8217;s ever, and I&#8217;m doing air quotes, a perfect system? Have you ever landed on something where you think, okay, that&#8217;s it, I do not need to improve that thing anymore? Or is there always room for improvement?</p>\n\n\n\n<p>[00:09:09] <strong>Jennifer Schumacher:</strong> Well, that&#8217;s a good question to be honest. I&#8217;m German. Many Germans try to be perfect to be honest. But I don&#8217;t think perfect exists, and isn&#8217;t imperfect perfect. Because the thing is like, learning is a journey, so if we set up a system and then we figure out, okay, let&#8217;s try that way, and then we work with it and then see, what can we tweak, what can we improve? And isn&#8217;t that what makes it perfect, right? Because we keep improving things.</p>\n\n\n\n<p>There are new things coming out now, you know, AI is everywhere. So, are there certain things that we can use that help our system? We just keep tweaking it. So, no, perfect system. Do I want one? No. Is it fun to keep tweaking things? Yes. So I think you&#8217;re just trying to get started, build a certain setup and try to improve it over time.</p>\n\n\n\n<p>[00:09:58] <strong>Nathan Wrigley:</strong> Yeah. So that would&#8217;ve been the way I would&#8217;ve paraphrased it as well. You kind of get something which feels like it&#8217;s good for now and then the technology changes, WordPress adapts and you have to figure it out a new. Okay, that&#8217;s great.</p>\n\n\n\n<p>So there are three things that you&#8217;re going to tackle. Maybe you could&#8217;ve done 5, 10, but the time was probably the limitation. What are the three things that you are going to mention? What are the three things which agencies make as mistakes that you have encountered?</p>\n\n\n\n<p>[00:10:21] <strong>Jennifer Schumacher:</strong> First of all, I had to think a lot about, okay, which kind of situations do I want to include, right? Because over the years, you know, you collect a lot of stories, and I think the most impactful is a story. You want to talk about a specific situation where you were in. And so I was thinking about, what should I cover?</p>\n\n\n\n<p>For each story I made a nice headline. I can just quickly share those headlines, and then you think about what you think that that means.</p>\n\n\n\n<p>[00:10:46] <strong>Nathan Wrigley:</strong> Perfect.</p>\n\n\n\n<p>[00:10:47] <strong>Jennifer Schumacher:</strong> So the first one is, support that drains your soul. The second one is, the design handoff from hell. The third one is, work more, build less and smile anyway.</p>\n\n\n\n<p>[00:10:59] <strong>Nathan Wrigley:</strong> Let&#8217;s go back to the first one then. You&#8217;re going to have to say the exact wording, because I&#8217;ll probably get it wrong. What was number one again?</p>\n\n\n\n<p>[00:11:04] <strong>Jennifer Schumacher:</strong> It&#8217;s web support that drains your soul.</p>\n\n\n\n<p>[00:11:07] <strong>Nathan Wrigley:</strong> Okay, tell us, what went on here? What calamity befell you and your agency that led to that portion?</p>\n\n\n\n<p>[00:11:13] <strong>Jennifer Schumacher:</strong> I&#8217;ve seen it in many, many agencies and if, for example, once I had a agency in Switzerland and they said, we manage one point of contact for our clients. So this was mainly the project manager, right? So whenever the client wanted something, they contacted this person.</p>\n\n\n\n<p>Why was that not a good idea? Because pretty often the people that I met were just simply overworked, especially when it came to support staff. Because the client got in touch with them, they got in touch with the designer. The designer got in touch with them. They got back to the client and they were just in the middle on every little item.</p>\n\n\n\n<p>And the more you have of this kind of support work, the stressier it gets. And this is something where I&#8217;ve seen a lot of things go wrong and where I&#8217;ve seen a lot of frustration just for being the person in the middle.</p>\n\n\n\n<p>[00:11:58] <strong>Nathan Wrigley:</strong> That was something which was commonly, I want to use the word taught. People often told me it would be better to always deal with this one person, because that one person at least is this single point of contact. You can build up a relationship with them. Just prize that open a little bit. Has that led to problems, and what were those kind of problems? Was it that that person, I don&#8217;t know, maybe they are not a good communicator or something like that?</p>\n\n\n\n<p>[00:12:21] <strong>Jennifer Schumacher:</strong> Well, the thing is, that person doesn&#8217;t, it&#8217;s just a person most of the time that communicates. This person&#8217;s never resolving the issue. So for example, the client has something super simple, I want to change the position of that button. So the client asks their single point of contact. The single point of contact, they go to the developer, hey, they want to change that button. But then the developer goes back, but yeah, but this position we cannot do, it&#8217;s not recommended.</p>\n\n\n\n<p>It&#8217;s like ping pong. And let&#8217;s say changing that button takes like maybe just 30 minutes, but the entire communication about where the button should go and why not there, why it would be more recommendable to go into that spot exactly, or which size or animation they want. These kind of details take maybe two and a half hours. But now the client doesn&#8217;t really want to pay for the communication about it.</p>\n\n\n\n<p>And then in the end, I&#8217;ve seen many, many agencies, they just put this under the table, under the rug, or they say it and then just don&#8217;t admit it. And if you have a lot of these support items, you have a lot of unbillable hours. And is that sustainable? No. Is that frustrating? Yes. Especially if you&#8217;re a small team and you need to bill for the time. If you&#8217;re not able to bill for it, then what are we doing here?</p>\n\n\n\n<p>[00:13:31] <strong>Nathan Wrigley:</strong> So this is the idea then that in a company, let&#8217;s say that you as a freelancer are working with a company, I don&#8217;t know, maybe they&#8217;ve got a hundred employees or something like that. You&#8217;ve set it up so that you only speak with this one person in their company. But those other 99 people are funneling all of their bits and pieces through that one person.</p>\n\n\n\n<p>You just get this backwards and forwards. That one person becomes a bottleneck because they&#8217;ve got to communicate with the 99 people. Any change has to go through them.</p>\n\n\n\n<p>Okay, what was the second one? I&#8217;ve forgotten, I&#8217;m sorry.</p>\n\n\n\n<p>[00:13:57] <strong>Jennifer Schumacher:</strong> The design handoff from hell.</p>\n\n\n\n<p>[00:13:59] <strong>Nathan Wrigley:</strong> Okay, what&#8217;s that?</p>\n\n\n\n<p>[00:14:00] <strong>Jennifer Schumacher:</strong> Have you ever worked, like you&#8217;re a developer and then you are working on a project where they say, okay, the design will be done by a design agency or by some other designer. And then you get the design, you&#8217;re like, well, that doesn&#8217;t fit anymore what I thought I would spend on time in the beginning. And then I get a file, it was not even clear like this page, what should be the H1?</p>\n\n\n\n<p>And then inconsistent styles. And then suddenly on the mobile view, if the designer also did a mobile view, the designs do not match at all. Like, on this screen they use this size, on this screen, this size. Super inconsistent. And this is so frustrating. Because as a developer, in theory, then suddenly you have so many hours.</p>\n\n\n\n<p>Then, again, you have to decide, do I log them? Do I tell them that this is not anymore a fit? And if I am not anymore making it a fit, do I look bad? And again, unbillable hours. And then either you bill them or you&#8217;re like hiding them. I don&#8217;t like that.</p>\n\n\n\n<p>[00:14:57] <strong>Nathan Wrigley:</strong> This is the idea of if you are, I guess if you&#8217;re in a big agency where you&#8217;ve got a design team, and the design team is literally in the, you know, the cubicle next to you. That&#8217;s a fairly easy point to solve because you just stand up and have a chat about it. But if you&#8217;re a freelancer, or you&#8217;re dealing with a third party design agency or something like that, it&#8217;s a real bottleneck, isn&#8217;t it?</p>\n\n\n\n<p>Because you get a design, it looks great, but suddenly you realise, well, yeah, it looks great, it would make a great magazine piece. Transferring that over to the web with H1s and paragraphs, and it&#8217;s got to be accessible and color contrast has got to be good and all of this kind of stuff, that suddenly becomes problematic.</p>\n\n\n\n<p>And usually the client doesn&#8217;t have that same level of expertise. So you know, they might catch sight of that design and think, perfect, do that. Do exactly what we see and then you have to have this whole tennis again of explaining, well, actually we can&#8217;t do it quite like that. So, okay, that&#8217;s the second one.</p>\n\n\n\n<p>[00:15:50] <strong>Jennifer Schumacher:</strong> What I can tell you is that I&#8217;ve seen this happen nonetheless in big agencies too. I have worked also with agencies with more than 150 employees. And it always depends a lot on their internal processes and how they approve and the system, right?</p>\n\n\n\n<p>Nonetheless, I&#8217;ve seen also like big design agencies, and it looked all fancy, but then it did not match up. Maybe you&#8217;re very good at selling, but if you internally do not have certain systems in place, this stuff can still happen.</p>\n\n\n\n<p>[00:16:21] <strong>Nathan Wrigley:</strong> Yeah. And I also feel that when I was doing this kind of work, when I was a freelancer, I had to be all the things. I had to be literally everybody. I had to be the designer, I had to be the developer, I had to be the communicator, I had to be the marketer, I had to be the SEO. I had to be all of these things. And with the best will in the world, I&#8217;m not the best at all of those things. Probably one or two things I&#8217;m pretty good at, but the rest of them fairly lousy.</p>\n\n\n\n<p>And so that kind of fits in as well. And again, the process, getting a process exactly right. You are all about sort of saving money by having a process, saving time and money by having a process, yeah.</p>\n\n\n\n<p>[00:16:54] <strong>Jennifer Schumacher:</strong> To be honest, in my opinion, it&#8217;s mental health. Because if it goes on for too long that you&#8217;re charging less than what you are actually bringing to the table, that&#8217;s frustration. You bring that frustration to your home, that&#8217;s when you get stressed out. You share with your family what happened. You are like unloading the stress. You are not that much capable of being a good listener if you&#8217;re stressed. And you want to be a good listener with the people that you love. So, what are we doing here? You know?</p>\n\n\n\n<p>[00:17:23] <strong>Nathan Wrigley:</strong> You also become like a double fronted marketplace a little bit. Because you&#8217;ve got the designer over here who&#8217;s giving you designs and you are sat in the middle. And then you&#8217;ve got the client over here and you are sat in the middle. And you become this person that has to communicate the ideas in both directions.</p>\n\n\n\n<p>And when they say, we want this, you have to communicate that back to the designer. Do you have like a trusted designer or a design, like a network or a team or something like that, that you just more or less rely on that because you&#8217;ve figured out they know what I am typically going to want?</p>\n\n\n\n<p>[00:17:52] <strong>Jennifer Schumacher:</strong> I give them guidance how I want it. Some have, you know, worked with me before, here and there, and then they already know. But I tell them exactly how we need things, and then I point things out, okay, hey, like a checklist. Okay, we need to check this, this, this, this, this. And this sometimes could take a lot of time too, depending on the people that, you know, I work with.</p>\n\n\n\n<p>But it&#8217;s not that I have like a hundred percent go-to person per se. No. Maybe I can share that same thing. I did design many years ago, then development. And sometimes I need to also, you know, pause and say like, Jenny, no, don&#8217;t jump in and just do it yourself. You know, I could, but I just should not. So I just try to, let&#8217;s say, express how I need things to be done before going into development. If that&#8217;s not done, we&#8217;re not going into development.</p>\n\n\n\n<p>[00:18:41] <strong>Nathan Wrigley:</strong> I think designing for the web is really difficult because it is a real skill in and of itself. You know, if you&#8217;re designing for a magazine layout, I mean, obviously there&#8217;s a high level of skill required to do that in an effective way. But then being able to actually understand the semantics of that design, and how it might look, and especially now where we&#8217;re going into a web which is not three view ports. It&#8217;s not just mobile, it&#8217;s not just tablet, and it&#8217;s not just desktop.</p>\n\n\n\n<p>It&#8217;s this much more kind of, we have no idea what you&#8217;re going to be viewing it on. We don&#8217;t know the width. I think this sort of Intrinsic Design, which people keep talking about, that makes the job even more difficult, okay. So there&#8217;s number two.</p>\n\n\n\n<p>Number three, what was that one?</p>\n\n\n\n<p>[00:19:23] <strong>Jennifer Schumacher:</strong> Number three was, work more, bill less and smile anyway.</p>\n\n\n\n<p>[00:19:27] <strong>Nathan Wrigley:</strong> Okay, go on. Did you say work more, bill less?</p>\n\n\n\n<p>[00:19:30] <strong>Jennifer Schumacher:</strong> Yeah. Work more, bill less.</p>\n\n\n\n<p>[00:19:32] <strong>Nathan Wrigley:</strong> That seems counterintuitive.</p>\n\n\n\n<p>[00:19:33] <strong>Jennifer Schumacher:</strong> Yeah.</p>\n\n\n\n<p>[00:19:33] <strong>Nathan Wrigley:</strong> Most people would say work less, bill more.</p>\n\n\n\n<p>[00:19:36] <strong>Jennifer Schumacher:</strong> Well, everybody likes to say that, which is unfortunately, the truth is not always how it works, right? So, how about this? Have you ever been on a project where time goes by in the beginning, everybody&#8217;s excited? All fits, looks good. We&#8217;re progressing and then the client comes back with feedback and then there&#8217;s a change. Maybe it&#8217;s a change request, you know, okay, we add some extra hours.</p>\n\n\n\n<p>But then there&#8217;s something that either we did not notice, for example, oh, this doesn&#8217;t work in the Safari. And suddenly we need to work a bit more to make it a fix. But the budget is really tight. Anyway, we need to fix this. Or the client wants something, oh, but this should also animate. You animated this, but also this needs to be animated.</p>\n\n\n\n<p>Details. Detail here, a detail there. And then suddenly you notice like, well, the budget we had is not anymore available, but the client is still asking for things, and even saying stuff like, that should be included. How could you charge that extra? Or it was not communicated early enough like, hey, you know what, client, our budget is getting tight. If you are requesting more things, we will need to invoice you extra down the road.</p>\n\n\n\n<p>Of course you want to say, okay, if there&#8217;s something wrong with our work, we will cover this internally. You don&#8217;t want to be somebody who says, okay, I did a mistake, but I&#8217;m not correcting it, haha. But if the client is requesting more stuff, you need to let them know in advance. Because if you let them know later, they also go like, huh? Where does that come from? Why didn&#8217;t you tell me that this has got more expensive?</p>\n\n\n\n<p>And then suddenly you cannot charge them for that. And now you worked more, but you are effectively billing less if you take your effective hourly rate, what you actually delivered and work.</p>\n\n\n\n<p>I&#8217;ve met agencies, freelancers, when they would really calculate their effective hourly rate, they would be crying, sitting in the corner of the room and crying. This is frustrating, right? And nobody likes that. But anyway, they expect you to sit there smiling and just pretend like everything was good.</p>\n\n\n\n<p>[00:21:33] <strong>Nathan Wrigley:</strong> Do you always do that with your clients though? Do you have that approach of, we must smile through this, even though things are not necessarily working out? Because that was one of the things that you wrote in your description. Let me just find it. You wrote, it&#8217;s about laughing, learning, and maybe even recognising a situation you&#8217;ve been in yourself.</p>\n\n\n\n<p>So do you try to have that sort of humorous approach when things are not working out? Can you always laugh? Because sometimes these things can be so profoundly, well, annoying, let&#8217;s go with that. It&#8217;s difficult to laugh, I think.</p>\n\n\n\n<p>[00:22:01] <strong>Jennifer Schumacher:</strong> I think it depends a lot on your personality. I can tell you something. So I live in Spain and in Mexico. I&#8217;m German, but I don&#8217;t live anymore in Germany. But I think when you meet different cultures and see how they react, how they treat certain situations, that made me open up my eyes and see like, okay, you know, you always have the choice. How do you react to this? This is your choice.</p>\n\n\n\n<p>And if you get frustrated and you dwell into the pain and just continue again and again, and in the same cycle, then that&#8217;s your choice. What&#8217;s the other end, right? You can just say, hey, you know what? It was a mistake or this happened. I&#8217;m not happy about it, but the only thing I can do is appreciate that it happened because it gave me the opportunity now to learn from it. And that&#8217;s the super different perspective.</p>\n\n\n\n<p>Some people are not capable of thinking like that, but I prefer to think like that, because it makes me feel better and it makes me look at possible solutions and focus on that. Instead of me looking at the situation, focusing on the issue and the problems.</p>\n\n\n\n<p>[00:23:07] <strong>Nathan Wrigley:</strong> I think it&#8217;s very difficult in the moment sometimes to be so, I&#8217;m going to use the word sanguine. Just to be so measured about it because you know, something doesn&#8217;t work out. Maybe the first reaction is a buildup of anger or something like that. But to have that, to be able to in your head, parse that and say, you know what? The anger probably won&#8217;t get me anywhere, but viewing that as a learning opportunity.</p>\n\n\n\n<p>Because you go into pains, that&#8217;s what you say over and over again. Treat it as a learning opportunity. It&#8217;s almost like Zen Buddhism, or something like that, you know, it&#8217;s kind of trying to turn a bad situation into a good situation.</p>\n\n\n\n<p>But you are also at pains to say, well, it feels like you&#8217;re at pains to say, just don&#8217;t keep repeating it though. You know, if something bad happened, learn from it, but then adapt the process. Make the process different so that it doesn&#8217;t happen a second or a third time because, well, that&#8217;s crazy making.</p>\n\n\n\n<p>[00:23:57] <strong>Jennifer Schumacher:</strong> Yeah. But that&#8217;s, again, the reason why I think I really love the opportunity to be here and to be having that speech at WordCamp. Because, I get frustrated just thinking about it, I&#8217;ve seen so many great people just do the same thing over and over again, because they think that&#8217;s it and that&#8217;s how it is in agencies. It doesn&#8217;t matter if they work at this agency or that agency.</p>\n\n\n\n<p>Maybe some do it a bit different here or there, but the same problems come up and they do not really think about, how can I resolve this? New project. Like, new projects will fix it, or let&#8217;s sell more. Let&#8217;s fix it in the next project. Let&#8217;s fix it in the next project.</p>\n\n\n\n<p>But then they don&#8217;t think about a fix. And I have a couple of people who I really think like, God, you&#8217;re so good at what you do, but why do you do this to yourself? Why don&#8217;t you think about how to get out of this mess? And I think that&#8217;s what I want to do, what I want to share because you have to focus on how to solve this. Otherwise, if you don&#8217;t make it a priority, you&#8217;re stuck where you are.</p>\n\n\n\n<p>[00:24:50] <strong>Nathan Wrigley:</strong> I guess also, each one of us really genuinely does have, so I&#8217;m focusing on a freelancer at the minute, you know, so you&#8217;re not in an agency, it&#8217;s just you. We all really genuinely do have a unique set of attributes which make us the way we are. And it may be that you just have to lean into those. You&#8217;re good at this thing, you&#8217;re not so good at that thing, so maybe that gets outsourced, or maybe you just have to approach it in a different way. But it&#8217;s very, very hard.</p>\n\n\n\n<p>I also think that over the last 10 years, we&#8217;ve lived through a cycle of YouTube videos where people are trying to pitch us the perfect solution. In 10 minutes I&#8217;ll teach you how to revolutionise your agency. Some of that works, I&#8217;m sure, but there seems to be quite a bit of snake oil there as well.</p>\n\n\n\n<p>And what i&#8217;m trying to say is, just because it&#8217;s in a YouTube video or somebody is shouting from the rooftops that they&#8217;ve got the answer, it may be that that answer actually won&#8217;t work for you because that&#8217;s not who you are.</p>\n\n\n\n<p>[00:25:43] <strong>Jennifer Schumacher:</strong> Yeah. Well, that can be too. The thing is like, if you see those fancy videos on YouTube with these nice titles, they put them because that gives them a better click rate because people are more like, okay, well, I want to see if I just say like I have something that&#8217;s way high work. If you think that that&#8217;s a good idea or not, that&#8217;s up to you. It&#8217;s not a big selling point, right?</p>\n\n\n\n<p>So they write it that way just because of the enticing title makes you click. So that&#8217;s also, you know, it&#8217;s your human brain that follows this kind of direction. Yeah, so I think a big part, just as you mentioned, resources, YouTube. For me, the biggest part has been asking. And that&#8217;s why I loved, we started white labeling, working with other agencies, I learned so much from them. So much.</p>\n\n\n\n<p>And just sharing, I have one CEO that I once asked, he had built an agency with over two hundred employees, and they started out as four many years ago. I asked him for lunch. I asked, I would love to know how you did it. What was your motivator? How did you decide who to hire? How did you find the right people? What were the big decisions or risks that you took.</p>\n\n\n\n<p>And I think that is so important. Why not? What do we have to lose? I think, why not open up conversations and just ask, how are you approaching this? And I think this kind of stuff gets lost a lot. It&#8217;s not just only just sitting there and looking at YouTube videos. Who else could I ask? How do you deal with this?</p>\n\n\n\n<p>[00:27:12] <strong>Nathan Wrigley:</strong> I have a question, which is maybe one that you don&#8217;t want to answer because it&#8217;s quite vulnerable. But what is your biggest mistake? What&#8217;s the thing that if you look back over your career you think, oh boy, that was a calamity?</p>\n\n\n\n<p>[00:27:23] <strong>Jennifer Schumacher:</strong> I have one and I think I&#8217;m not, well, it is embarrassing. Yes, it is. But why not? It&#8217;s like a learning opportunity, right?</p>\n\n\n\n<p>So when I was younger, oh God, I don&#8217;t know how many years ago, it was like 10 years maybe. So I thought, okay, I want to build a team, I want to do this. Let&#8217;s make it at an agency. We have clients, we have projects, okay, cool.</p>\n\n\n\n<p>So I searched for people. I got an office and we were all there. And I thought, okay, I also want to be great with our culture because I think, you know, the team is what matters because only if the team is happy, we can make great work. I wasn&#8217;t going to be the one that&#8217;s sitting there with a whip, you know, like, do this, do this, do this. That was not how I envisioned myself.</p>\n\n\n\n<p>But I focused so much on this team that I did not notice that I did not yet learn enough how to be a good salesman. Few months later, I ran out of money.</p>\n\n\n\n<p>And because I was not yet intelligent enough about putting up boundaries that certain clients were like, oh, what? That should be included. Why was that not covered? And we just went in and covered it and not communicate, okay, that we stopped covering certain things for free. We did not yet know how to charge certain things on time.</p>\n\n\n\n<p>So we were still like, or I was still, did not resolve it. I did not think about, how do I need to do it so I don&#8217;t get myself in the situation that I would have a hard time getting out of, especially financially? And then I had to say, okay, that&#8217;s it. Pack my bags. I then started a job in sales. And then I had to learn, damn, how do I sell? How do I communicate? And that I did for a year and a half. And when, again, made more money outside of the job, I did quit.</p>\n\n\n\n<p>[00:29:06] <strong>Nathan Wrigley:</strong> Okay, so that was a real learning opportunity, wasn&#8217;t it? You went, the whole thing collapsed but the key bit that was missing was sales. You pick yourself up, got a sales job, learnt the sales portion, and then kind of began again. I guess it worked out the next time.</p>\n\n\n\n<p>[00:29:18] <strong>Jennifer Schumacher:</strong> Yeah. This time, we&#8217;re still here.</p>\n\n\n\n<p>[00:29:20] <strong>Nathan Wrigley:</strong> That was the low point. That was the thing which you did worst. Maybe you&#8217;ll be good at answering this question. Some people are a bit shy when you ask a question like this. What&#8217;s the thing that you think you&#8217;ve done best?</p>\n\n\n\n<p>[00:29:29] <strong>Jennifer Schumacher:</strong> Oh. What? The best.</p>\n\n\n\n<p>[00:29:30] <strong>Nathan Wrigley:</strong> Yeah. What&#8217;s the bit that if you look back over your 15 years, I mean, it may not be exactly one thing, but can you summon up something which you think, actually, do you know what? I&#8217;m really proud of me for that.</p>\n\n\n\n<p>[00:29:41] <strong>Jennifer Schumacher:</strong> I&#8217;m really proud of me for opening up and saying like, you know what, that&#8217;s not how it has to be. I don&#8217;t want this anymore. I want to see how I can improve this. I must say that my husband has been a bit of an inspiration here too. He&#8217;s the kind of person that&#8217;s like, ah, I want to work less. Like, I don&#8217;t want to work that much. And he finds a way to do it. He always does. He always finds his way around. It&#8217;s like, how come that he figures that out and I don&#8217;t? And I&#8217;m like, sitting here stressed.</p>\n\n\n\n<p>And there was also this thought like, do I like this stress? Do you know these people who are addicted to this kind of stress? And they just think they need it. It&#8217;s like, do you really think you need it? Do you really think that that&#8217;s what you want? Yeah, this is what made me think. And I&#8217;m happy that decision, saying like, you know, no. I don&#8217;t want that anymore.</p>\n\n\n\n<p>And i&#8217;m still having things to learn. You know, there&#8217;s still things that I&#8217;m working on. Totally. I think having that in your, like a little angel, I don&#8217;t know, or figure in the back of your head saying like, you shouldn&#8217;t do that. Can this be better? Think about it. That&#8217;s what I&#8217;m proud of.</p>\n\n\n\n<p>[00:30:47] <strong>Nathan Wrigley:</strong> Being honest with yourself, even if that means some uncomfortable realisations.</p>\n\n\n\n<p>[00:30:51] <strong>Jennifer Schumacher:</strong> Oh God, yeah. Tell me. Admitting to yourself like, damn.</p>\n\n\n\n<p>[00:30:56] <strong>Nathan Wrigley:</strong> Yeah. Yeah. I know what you mean. We often have a culture of, okay, just work harder. Just keep going. Just keep doing the same thing because I&#8217;m pretty sure the process over there is bulletproof. Just keep going, and maybe being a bit more open with yourself and trying to learn from the mistakes.</p>\n\n\n\n<p>[00:31:12] <strong>Jennifer Schumacher:</strong> And I think when you see somebody, it&#8217;s not cheating the system, but it&#8217;s kind of like doing it faster and being more relaxed and even having time to do some extra stuff, and you&#8217;re like, I want that. Why am I not striving for that? Why the hell I&#8217;m just focusing on being more busy? I think you start doubting things.</p>\n\n\n\n<p>[00:31:31] <strong>Nathan Wrigley:</strong> Yeah, that&#8217;s interesting. There&#8217;s always somebody in my life who seems to have way more free time than I do. There has to be a reason for that. And probably that they&#8217;ve just figured it out and allowed themselves the time off.</p>\n\n\n\n<p>And I always found that curious. I would find myself sitting at the desk doing the busy work, just because it felt like I needed to be shackled to the desk because that was where work took place. But really, I probably would&#8217;ve been way more productive if I&#8217;d gone for a walk for half an hour or just did something a little bit more for me, and then come back, regroup, start again. I never did learn that.</p>\n\n\n\n<p>[00:32:05] <strong>Jennifer Schumacher:</strong> Isn&#8217;t that, like it sounds so weird, but isn&#8217;t that kind of the expectation of society that you should be sitting there on that desk. How come you&#8217;re just going for a walk? How come you&#8217;re just saying, you know what, I&#8217;ll just get my hair done. Let&#8217;s just relax a bit and then I get back with a clear mind to that issue. Why not? But no, society expects you to be available, to be at the desk. That&#8217;s how you look good.</p>\n\n\n\n<p>[00:32:29] <strong>Nathan Wrigley:</strong> And it&#8217;s curious, we&#8217;re in such a fortunate position. I mean, obviously if you work in an agency and they provide you with a desk and you have to be there from nine to five, you&#8217;ve got that. But there&#8217;s a lot of people in our industry who don&#8217;t. You know, they&#8217;re working out of a spare room in the house. Maybe they&#8217;re doing it out the kitchen or what have you. And you can, you genuinely can, take time off and do other things and work a little bit later because you gave up some time during the day. You can be flexible. I think that&#8217;s one of the most remarkable things about the industry that we&#8217;re in. It&#8217;s utterly brilliant.</p>\n\n\n\n<p>[00:32:57] <strong>Jennifer Schumacher:</strong> I read the other day on my phone an article, it was about a bank where they were saying like the four day work week. And they were saying like, now that AI is around the corner, it&#8217;s a no brainer. That&#8217;s going to happen. Because we will be able to get more efficient with how we do things. And I think, isn&#8217;t that beautiful to more focus on outcomes instead of like the nine to five.</p>\n\n\n\n<p>Well, depends also how you manage the agency and everything. And I&#8217;ve seen many, they said they want to call their employees back. For example, in Mexico, like I live partially there. Many, many people got called back. But others in Germany I&#8217;ve seen, they still keep a hybrid model. Some days they just say, okay, we do a day here, a day there. But many developers said like, nope, staying at home.</p>\n\n\n\n<p>[00:33:42] <strong>Nathan Wrigley:</strong> So people listening to this podcast, hopefully some of them will think, do you know what? It&#8217;d be really interesting to chat this through with Jennifer. You know, she seems like she&#8217;s got some interesting ideas around that. Do you have a little community of people that you vent your anger, vent your frustration with? Do you have a little clique of people where you share the ideas that you&#8217;ve been discussing today?</p>\n\n\n\n<p>[00:34:01] <strong>Jennifer Schumacher:</strong> Besides my husband.</p>\n\n\n\n<p>[00:34:02] <strong>Nathan Wrigley:</strong> Yeah, how do you keep yourself sane? Yeah.</p>\n\n\n\n<p>[00:34:04] <strong>Jennifer Schumacher:</strong> I do not yet have a big community, but I am working on this. Because I think it&#8217;s great just to share. I was in this mess, in this chaos until I realised, like I had this awakening moment for more like 10 years. So 10 years, I kind of would, was like lying to myself, I feel.</p>\n\n\n\n<p>So I would love to share more. I want to do a LinkedIn live show. So I&#8217;m preparing that kind of stuff just to share, like we do, like a bit of talking. How did you do that? And just this story. I have a great network of people that I&#8217;ve met over the years with great stories.</p>\n\n\n\n<p>And this is something that I want to share. I also wrote a book for freelancers, where I just share the exact same thing because damn, I wish I would&#8217;ve noticed certain things earlier, to be honest. Because 10 years is quite a lot, you know? And especially when you start out and you&#8217;re freelancing, oh God, I just charge way less. I just shouldn&#8217;t think about it.</p>\n\n\n\n<p>But you know, I didn&#8217;t even know how much I was worth. I didn&#8217;t even know how to protect myself so that certain situations I could say ahead of time, you know what? That&#8217;s it. This entire project management mindset, or building the system, it didn&#8217;t occur to me for so long. I just thought, no, let me put this in a book and then, why not?</p>\n\n\n\n<p>[00:35:21] <strong>Nathan Wrigley:</strong> So, where do we find the book? Or where&#8217;s the best place to find you, which then might link to the book?</p>\n\n\n\n<p>[00:35:26] <strong>Jennifer Schumacher:</strong> On LinkedIn. And just, first of all, my network, I just want to get some feedback and then improve it. And then let&#8217;s see what else I can put in it. I also can share you something, maybe that&#8217;s something you found interesting. There&#8217;s this writer, Ryan Holiday. He has a great, great book that&#8217;s just called Growth Hacker Marketing. Read it. I love it. And I love the way how he writes this book because it&#8217;s so honest. It&#8217;s so transparent.</p>\n\n\n\n<p>And I wrote it the same way he did. I took my entire inspiration, how I wrote it, based on his book. And I also have a couple of stories that I share at the end of the book from other people out of my network. How they did resolve, for example, the cash flow issue, right? How they approached the entire setup. Where how they even were able to sell their agency. You know, like build it and sell it.</p>\n\n\n\n<p>That&#8217;s what I mean, ask others. Ask others how they did it. And then not getting stuck on these fancy YouTube videos for people that say they have the solution. But I think it&#8217;s so much worth it just to have conversations and learn and listen.</p>\n\n\n\n<p>Maybe you do not have to take everything that people say, but maybe just can take a bit here or there and then build your own. That&#8217;s what I like.</p>\n\n\n\n<p>[00:36:34] <strong>Nathan Wrigley:</strong> Perfect. Jennifer Schumacher, thank you so much for chatting to me today.</p>\n\n\n\n<p>[00:36:38] <strong>Jennifer Schumacher:</strong> It was a pleasure to be here, to be honest. Thank you.</p>\n</div></details>\n\n\n\n<p>On the podcast today we have <a href=\"https://profiles.wordpress.org/schumjenny/\">Jennifer Schumacher</a>.</p>\n\n\n\n<p>Jennifer has been working with WordPress and web development for over 15 years. Her journey began with a spark of curiosity in university, building her first WordPress website after a YouTube crash-course, then evolving into freelance gigs, team collaborations, and eventually running a white label agency working alongside other agencies around the world. </p>\n\n\n\n<p>Jennifer’s experiences have exposed her to the highs and lows of agency life, projects that run smoothly, but also cultures that can become toxic, people burning out, and the all-too-familiar frustration of unbillable hours and broken processes. This inspired Jennifer’s lightning talk at WordCamp Europe 2025, where she shared some of the most common (and painful) mistakes she’s seen agencies make, and what can be learned from them.</p>\n\n\n\n<p>Jennifer walks us through her path in the WordPress world, and we discuss three real-world mistakes agencies make: “web support that drains your soul,” “the design handoff from hell,” and “work more, bill less and smile anyway.”</p>\n\n\n\n<p>We talk through support bottlenecks, frustrating design-to-development handoffs, and the dilemma of over-servicing clients without fair compensation. Jennifer shares her candid perspective on why processes and honest communication matter, not just for the bottom line, but for mental health and building sustainable teams.</p>\n\n\n\n<p>She also discusses how transparency, learning from failure, and continually improving processes can improve agency life. Jennifer’s approach is refreshingly open about both the mistakes and the solutions, aiming to help others avoid repeating them.</p>\n\n\n\n<p>If you’ve found yourself frustrated with agency workflows, or are hoping to build a healthier business in the WordPress ecosystem, this episode is for you.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Useful links</h2>\n\n\n\n<p> Jennifer&#8217;s presentation at WordCamp Europe 2025: <a href=\"https://europe.wordcamp.org/2025/session/3-wordpress-agency-fckups-and-what-i-learned-from-them/\">3 WordPress Agency F*ckups and What I Learned from Them</a></p>\n\n\n\n<p><a href=\"https://wordpress.tv/2025/06/07/3-wordpress-agency-fcku\">The presentation on WordPress.tv</a></p>\n\n\n\n<p><a href=\"https://www.penguinrandomhouse.com/books/315135/growth-hacker-marketing-by-ryan-holiday/\">Growth Hacker Marketing book by Ryan Holiday</a></p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 02 Jul 2025 14:00:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Nathan Wrigley\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:20;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:101:\"HeroPress: From Gaza to WCEU 2025 Basel – My Journey as a WordPress Developer from War to Community\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:56:\"https://heropress.com/?post_type=heropress-essays&p=7997\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:130:\"https://heropress.com/essays/from-gaza-to-wceu-2025-basel/#utm_source=rss&utm_medium=rss&utm_campaign=from-gaza-to-wceu-2025-basel\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:13402:\"<img alt=\"Pull Quote: I’ve seen what war can destroy. Now I want to see what code and community can build.\" class=\"attachment-large size-large wp-post-image\" height=\"512\" src=\"https://heropress.com/wp-content/uploads/2026/07/070125-min.jpg\" width=\"1024\" /><h2 class=\"wp-block-heading\" id=\"h-from-a-refugee-camp-to-a-worldwide-community\"><strong><img alt=\"🇵🇸\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/15.1.0/72x72/1f1f5-1f1f8.png\" style=\"height: 1em;\" /> From a Refugee Camp to a Worldwide Community</strong></h2>\n\n\n\n<p>I was born and raised in <strong>Al-Shati refugee camp</strong> in Gaza — one of the most crowded places on earth. A place where electricity cuts were normal, water came in buckets, and even simple internet access was a daily battle. But it&#8217;s also the place where I became a WordPress and WooCommerce developer. I didn&#8217;t go to fancy schools or work in glass buildings — I learned by doing, failing, repeating, and staying curious.</p>\n\n\n\n<p><strong>Gaza wasn&#8217;t easy. But it gave me focus, grit, and a reason to push forward.</strong></p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-living-through-war\"><strong><img alt=\"💣\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/15.1.0/72x72/1f4a3.png\" style=\"height: 1em;\" /> Living Through War</strong></h2>\n\n\n\n<p>When the war started in 2023, the scale wasn&#8217;t the same as the previous wars imposed on a besieged population of Gaza. It turned into a brutal genocide, targeting civilians, homes, and entire neighborhoods. For six months, I was trapped inside Gaza. Every day, I woke up not knowing if I or my loved ones would survive the next airstrike.</p>\n\n\n\n<p>Getting food became a full-time job. I stood in line for hours to buy just a bag of flour. Sometimes there was no bread. Drinking water was scarce and often unsafe. Showering became a luxury, sometimes I could only use one small bottle of water to clean myself.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-forced-to-flee-under-the-gun\"><strong><img alt=\"🏃\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/15.1.0/72x72/1f3c3.png\" style=\"height: 1em;\" /> Forced to Flee — Under the Gun</strong></h2>\n\n\n\n<p>I got married just one month before the war started. My wife and I were full of hope, planning a simple future together in Gaza, despite all the challenges.</p>\n\n\n\n<p><strong>But soon after, everything collapsed.</strong></p>\n\n\n\n<p>We were forced to evacuate from northern Gaza to the south, walking through a military checkpoint, surrounded by tanks and armed soldiers. We stood in line, a long, slow-moving line of displaced families, with our hands raised in the air, step by step, under the eyes of a tank.</p>\n\n\n\n<p>My wife was shaking. I held her hand, trying to stay calm for both of us. But deep inside, I was just as afraid.</p>\n\n\n\n<p>We weren&#8217;t carrying weapons. We weren&#8217;t fighters. We were just a young married couple trying to survive.<br />All I had with me was my laptop and some food packed in a <strong>WordPress tote bag I&#8217;d gotten from WCEU 2023</strong>, everything that mattered to me at that moment.</p>\n\n\n\n<p>Not long after we reached the south, my wife&#8217;s father was killed in an airstrike. We didn&#8217;t even get to say goodbye or grieve due to the continuous bombardment.</p>\n\n\n\n<p>And yet, despite all of this — despite everything — we&#8217;re still trying to build a better life. Because that&#8217;s the only thing we can do. Keep going. Keep trying. Keep hoping.</p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-leaving-gaza-with-just-my-laptop-and-a-wordpress-tote-bag\"><strong><img alt=\"🎒\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/15.1.0/72x72/1f392.png\" style=\"height: 1em;\" />Leaving Gaza &#8211; With Just My Laptop and a WordPress Tote Bag</strong></h3>\n\n\n\n<p>After weeks of surviving in unbearable conditions, I had to make one of the most difficult decisions of my life: to leave Gaza on my own. I was only able to leave because of the support from the company I work with, they stepped in and helped cover the huge fees the Egyptian authorities charged to cross the border during the war. It was the hardest decision I&#8217;ve ever made, leaving behind my entire family: my wife, my parents, my brother, my sisters, and their families, all of them still trapped in a war zone.<br /><br />A month later, by some miracle, my wife, one of my sisters, and my brother managed to escape. This was only possible because of a GoFundMe campaign where many people from the Automattic and Codeable community generously contributed to help get them out. We reunited in Egypt, and for a short while, we felt like a family again — displaced, but together.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-wordcamp-europe-journey\"><strong><img alt=\"🌍\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/15.1.0/72x72/1f30d.png\" style=\"height: 1em;\" /> WordCamp Europe Journey</strong></h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-a-failed-first-attempt\"><strong><img alt=\"❌\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/15.1.0/72x72/274c.png\" style=\"height: 1em;\" /> A Failed First Attempt</strong></h3>\n\n\n\n<p>In 2024, I tried to attend WordCamp Europe in Turin, Italy. I had the passion, the knowledge, the motivation, but not the legal papers. As a Palestinian stuck in Egypt after fleeing Gaza, I had no residency, no ID, and no right to even apply for a visa.</p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-a-new-chapter-in-oman\"><strong><img alt=\"🇴🇲\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/15.1.0/72x72/1f1f4-1f1f2.png\" style=\"height: 1em;\" /> A New Chapter in Oman</strong></h3>\n\n\n\n<p>That&#8217;s when I made a hard decision. I left Egypt and moved to Oman, hoping for more stability and legal residency. It wasn&#8217;t easy to start from scratch, but I kept working, building WooCommerce plugins, contributing to projects, and slowly getting back on my feet. Oman gave me room to breathe, time to plan, and most importantly, a legal status.</p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-the-second-try-and-this-time-it-worked\"><strong><img alt=\"✈\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/15.1.0/72x72/2708.png\" style=\"height: 1em;\" /> The Second Try &#8211; and This Time, It Worked</strong></h4>\n\n\n\n<p>Months later, I tried again. This time, I applied for a Schengen visa from Oman. I was nervous. I&#8217;d already been rejected by borders and systems that didn&#8217;t care about where I came from or what I could do. But luck, and persistence, were on my side. I got approved.</p>\n\n\n\n<p>Holding that visa in my hand felt unreal. It wasn&#8217;t just permission to travel — it was a small victory against everything that tried to stop me.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-wceu-2025-more-than-just-a-tech-event\"><strong><img alt=\"🇨🇭\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/15.1.0/72x72/1f1e8-1f1ed.png\" style=\"height: 1em;\" /> WCEU 2025 — More Than Just a Tech Event</strong></h2>\n\n\n\n<p>I attended WordCamp Europe 2025 in Basel, Switzerland.</p>\n\n\n\n<p>I wasn&#8217;t just there to listen to talks or meet plugin authors. I was there because I believe stories like mine matter. I come from a place that&#8217;s usually erased from conversations. But I&#8217;m also part of this global community — a developer who pushed through war, exile, and paperwork, and still showed up.</p>\n\n\n\n<p>Being there was not just for me. It was for every Palestinian developer still stuck behind walls. It was for every freelance coder who has talent but no passport. It was for those who build in silence, under fire, and without recognition.</p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https://heropress.com/wp-content/uploads/2026/07/WCEU-WALL.png\"><img alt=\"\" class=\"wp-image-8012\" height=\"729\" src=\"https://heropress.com/wp-content/uploads/2026/07/WCEU-WALL-1024x729.png\" width=\"1024\" /></a><figcaption class=\"wp-element-caption\">A small note on the WCEU wall, carrying a long journey behind it — from Gaza to Basel.</figcaption></figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-still-separated-in-every-way\"><strong><img alt=\"💔\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/15.1.0/72x72/1f494.png\" style=\"height: 1em;\" /> Still Separated — In Every Way</strong></h2>\n\n\n\n<p>Just before WCEU, I had to leave my wife and baby son in Egypt. I traveled to Europe to attend the event and explore a new future for my family. My wife and one-year-old son stayed behind in Egypt, waiting in limbo. This time, we don&#8217;t know when we&#8217;ll be reunited.</p>\n\n\n\n<p>I looked at my baby&#8217;s photos almost every minute during the event — trying to hold on to every small detail while we&#8217;re apart. Being away from him and my wife has been incredibly painful. And at the same time, I&#8217;m also far from my mother, father, brothers, and sisters — all still in Gaza, living through unimaginable hardship.</p>\n\n\n\n<p>That pain never fades, a constant shadow following me even as I kept going for all of them. While I walked freely through Switzerland, my parents, sisters, and closest friends remained trapped in Gaza&#8217;s nightmare, existing without homes, surviving on animal feed disguised as bread, drinking contaminated water that makes them sick, living without electricity, schools, or hospitals. They endure each day without the most basic human right: safety. The genocide continues relentlessly, now over a year and a half of systematic destruction. Every morning, with trembling hands, I check my phone not for work messages but for the simplest, most desperate confirmation—that my family is still breathing, still alive. So as I sat listening to talks about WordPress performance and block themes, my heart remained split in two, my body in Basel, but my soul still in Gaza, aching with every breath for those I left behind</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-wordpress-gave-me-more-than-a-job\"><strong><img alt=\"💻\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/15.1.0/72x72/1f4bb.png\" style=\"height: 1em;\" /> WordPress Gave Me More Than a Job!</strong></h2>\n\n\n\n<p>Being a WordPress developer gave me hope when I needed it most. The ability to work from anywhere meant I could survive and rebuild no matter where I ended up. WordPress wasn&#8217;t just a technology for me, it became my connection to a world of possibilities. The WordPress community helped me in ways I never expected. People reached out with support, advice, and genuine friendship. When everything felt uncertain, knowing I had skills that traveled with me and a community that welcomed me made all the difference. <strong>WordPress didn&#8217;t just give me work; it gave me a future I could believe in.</strong></p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-grateful-for-real-support\"><strong><img alt=\"🙏\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/15.1.0/72x72/1f64f.png\" style=\"height: 1em;\" /> Grateful for Real Support</strong></h2>\n\n\n\n<p>None of this would&#8217;ve been possible without the support of the company I work with — <strong>Progressus.io</strong>. During the most difficult moments — from trying to leave Gaza, to applying for visas, to finally making it to Basel for WCEU 2025 — they stood by me. Not just as an employer, but as humans who understood the weight of what I was going through. Their support wasn&#8217;t just professional — it was personal. And I&#8217;ll always be grateful for that<strong>.</strong></p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-my-message-to-the-wordpress-community\"><strong><img alt=\"💬\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/15.1.0/72x72/1f4ac.png\" style=\"height: 1em;\" /> My Message to the WordPress Community</strong></h2>\n\n\n\n<p>To everyone at WCEU and in the broader WordPress ecosystem:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Don&#8217;t take your freedom for granted.</strong></li>\n\n\n\n<li><strong>Remember that talent exists everywhere — but opportunity does not.</strong></li>\n\n\n\n<li><strong>Keep building open tools. You never know who&#8217;s learning from them in the shadows.</strong></li>\n</ul>\n\n\n\n<p>And to every developer in <span class=\"ngl-tag\">Gaza</span> , or in any part of the world facing war, exile, or isolation:</p>\n\n\n\n<p><strong>Keep going. Keep coding. You&#8217;re not invisible.</strong></p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-what-s-next\"><strong><img alt=\"🔜\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/15.1.0/72x72/1f51c.png\" style=\"height: 1em;\" /> What&#8217;s Next?</strong></h2>\n\n\n\n<p>After everything, I’ve now moved to Spain, starting yet another chapter, far from where I began. It’s not easy building a new life from scratch again, but it’s a step toward stability, safety, and possibility.</p>\n\n\n\n<p>I don’t know exactly where this path will lead. But I do know what I’ll keep doing: working on what I love, WordPress, WooCommerce, and helping small ideas grow into real businesses.</p>\n\n\n\n<p>I&#8217;ve seen what war can destroy. Now I want to see what code and community can build.</p>\n<p>The post <a href=\"https://heropress.com/essays/from-gaza-to-wceu-2025-basel/\">From Gaza to WCEU 2025 Basel &#8211; My Journey as a WordPress Developer from War to Community</a> appeared first on <a href=\"https://heropress.com\">HeroPress</a>.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 02 Jul 2025 05:00:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:18:\"Abdalsalaam Halawa\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:21;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:48:\"Open Channels FM: What Counts as WordPress News?\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:32:\"https://openchannels.fm/?p=99063\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:54:\"https://openchannels.fm/what-counts-as-wordpress-news/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:354:\"In the world of WordPress, it’s tempting to think that every company update deserves media attention. You’ve landed a new client, launched a product update, or celebrated an anniversary. Shouldn’t everyone care? Turns out, not always. On a recent episode of the series Media Playbook, Rae Morey and Adam Weeks dug into the nitty-gritty of [&#8230;]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 01 Jul 2025 13:01:38 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:22;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:97:\"Open Channels FM: WordPress Community Growth Through Alternative Gatherings and New Event Formats\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:32:\"https://openchannels.fm/?p=99281\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:104:\"https://openchannels.fm/wordpress-community-growth-through-alternative-gatherings-and-new-event-formats/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:215:\"This episode of Open Event Talk discusses the significance of non-official WordPress events, emphasizing grassroots initiatives like Alt Ctrl Org that foster inclusive conversations and broaden community engagement.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 01 Jul 2025 11:21:43 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:23;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"Matt: Back on The Verge\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=144271\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://ma.tt/2025/06/on-the-verge/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:2120:\"<p>In honor of Automattic&#8217;s 20th anniversary, and also since it&#8217;s <a href=\"https://ma.tt/2022/03/decoder-interview/\">been a few years</a>, <a href=\"https://www.theverge.com/decoder-podcast-with-nilay-patel/693052/automattic-ceo-matt-mullenweg-wordpress-drama-wp-engine-open-source\">I joined Nilay Patel the editor-in-chief of The Verge on their Decoder Podcast</a>. We talked about Tumblr and the Fediverse, how <a href=\"https://automattic.com\">Automattic</a> thinks about Ecosystem and Cosmos sides of the business, Automattic&#8217;s re-organization into cross-business functional teams and leadership, the vision of <a href=\"https://clay.earth\">Clay as a personal CRM</a> and <a href=\"https://www.beeper.com\">Beeper as the super-human messaging app that puts control in the hands of users</a>, <a href=\"https://newspack.com\">Newspack</a>, the future of websites, the obligatory coverage of <a href=\"https://ma.tt/2024/09/wordpress-engine/\">the alleged WP Engine trademark violations</a> and their subsequent preemptive suit, and much more. <a href=\"https://www.theverge.com/decoder-podcast-with-nilay-patel/693052/automattic-ceo-matt-mullenweg-wordpress-drama-wp-engine-open-source\">Please give it a listen! They chose the title “Why Automattic CEO Matt Mullenweg went to war over WordPress.”</a></p>\n\n\n\n<figure class=\"wp-block-embed is-type-rich is-provider-pocket-casts wp-block-embed-pocket-casts\"><div class=\"wp-block-embed__wrapper\">\n\n</div></figure>\n\n\n\n<p>Speaking of Beeper, we’re going to do a fun event for the next-gen version that’s launching on July 16 in New York City in NoHo. I’ll be there along with Beeper CEO <a href=\"https://kishan.org\">Kishan Bagaria</a> and some of the best and brightest in New York’s tech and creative class. If you’re a Beeper early adopter (or would like to be) and want to attend, leave a comment! We’ve held back some invites for cool folks like readers of ma.tt. <img alt=\"🙂\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/16.0.1/72x72/1f642.png\" style=\"height: 1em;\" /> It&#8217;s like getting on board with WordPress in 2004.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 30 Jun 2025 20:34:50 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"Matt\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:24;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:125:\"Open Channels FM: OpenChannels.fm is Proud to Be a Media Partner of The State of the Future AI-Powered Cloud Philippines 2025\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:32:\"https://openchannels.fm/?p=99261\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:132:\"https://openchannels.fm/openchannels-fm-is-proud-to-be-a-media-partner-of-the-state-of-the-future-ai-powered-cloud-philippines-2025/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:318:\"When we were first invited to be a media partner for this event, we were still known as Do the Woo. A lot has changed since then, including our name But what hasn’t changed is our excitement to support conversations that drive real impact in the open tech ecosystem. The Future Is Now—And the Philippines [&#8230;]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 30 Jun 2025 08:40:43 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:25;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:71:\"Felix Arntz: 10 Lessons from 10 Years of Contributing to WordPress Core\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://felix-arntz.me/?p=2156\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:87:\"https://felix-arntz.me/blog/10-lessons-from-10-years-of-contributing-to-wordpress-core/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:20174:\"<p>Today marks a special anniversary for me: It has been exactly 10 years since I received my first props for a contribution to WordPress Core. And it was just a day before that I actually <em>worked</em> on that first contribution.</p>\n\n\n\n<p>You may know that I am a long-term WordPress Core contributor, having contributed ever since. To celebrate this 10-year milestone, I wanted to reflect on this journey and share the 10 most valuable lessons I learned along the way. But first, let me provide a bit of background about just how I started.</p>\n\n\n\n<span id=\"more-2156\"></span>\n\n\n\n<h2 class=\"wp-block-heading\">How I Started Contributing to WordPress Core</h2>\n\n\n\n<p>It all started at the <a href=\"https://europe.wordcamp.org/2015/\">WordCamp Europe 2015 Contributor Day</a>, an event I still remember fondly as my favorite Contributor Day experience. The atmosphere was incredibly welcoming and productive, largely thanks to the fantastic guidance of <a href=\"https://konstantin.obenland.it/\">Konstantin Obenland</a>, who was the Release Lead for the upcoming WordPress 4.3 release.</p>\n\n\n\n<p>While leading the Core table, he encouraged us to test the new Site Icon feature, which was nearly ready to be committed. I dove in with a few other contributors and started testing various scenarios. I managed to uncover a minor bug that only appeared when JavaScript was disabled in the browser. I worked on a patch to fix it, and a few days later, on June 29, 2015, the feature was <a href=\"https://core.trac.wordpress.org/changeset/32994\">committed to Core with my first props included</a>.</p>\n\n\n\n<p>That first small contribution was the starting point of my long and rewarding journey. After a few more months of occasional contributions, I began contributing heavily in early 2016, focusing on the Multisite component. Over time, my responsibilities increased, eventually running team meetings and becoming a component maintainer. In November 2016, just 17 months after I had started, I was honored to be named a WordPress Core committer. And little did I know, this would be just the first chapter of my ongoing journey as a WordPress Core contributor.</p>\n\n\n\n<p>Becoming a long-term WordPress Core contributor is not an easy task. But in some ways, it’s not as hard as it seems. You may think you need to be an incredible coder, and you may feel imposter syndrome. But that’s just a small part. The most important skills are interpersonal skills such as communication, flexibility, perseverance. To celebrate 10 years of contributing, I’m going to share with you 10 things that helped me in my journey the most.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"communicate-well\">1. Communicate, and Communicate Well</h2>\n\n\n\n<p>As a good engineer, it is equally important to <strong>discuss and reason about code</strong> as it is to actually write the code. Proactively documenting what you’re doing goes a long way. Some examples:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>If you raise an issue, provide details and include context, including why you think it is a valid issue.</li>\n\n\n\n<li>If you open a pull request, use its description to explain at a high level the relevant technical choices you made in the code you wrote – unless it’s a typo fix of course.</li>\n\n\n\n<li>Unless the code is trivial or you <em>really</em> want to write it just to test whether it works, discuss what you’re proposing first, e.g. in a ticket. Spending hours on writing code that may not get merged can be frustrating. Gathering feedback on your idea from other contributors first will go a long way in avoiding that experience.</li>\n</ul>\n\n\n\n<p>Other than being able to discuss code, it’s equally important to <strong>ask questions</strong>. If you don’t understand the rationale behind a decision, kindly follow up on it. If you’re attending a Slack chat where someone shares something you are missing context on, inquire about it. Every question you ask and every answer you get will grow your understanding of the WordPress project – whether its overarching philosophies, strategic decisions, or deeply technical decisions.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"assume-good-intent\">2. Assume Good Intent</h2>\n\n\n\n<p>Another important aspect of communication that is worth highlighting separately is to <strong>be respectful</strong>. Be respectful of your fellow contributors, even if you feel they weren’t. If someone disagrees with you or even if a ticket you proposed is closed without an explanation (which should not happen, but it can), don’t get angry. Don’t get defensive. Don’t get arrogant. Remain kind, and follow up. The other person probably didn’t mean any harm.</p>\n\n\n\n<p>Assuming good intent means to keep calm even when your initial reaction tells you not to. Sometimes, a reply that comes across as harsh may be the result of the other contributor lacking the time to reply, which is not necessarily an excuse. Other times, it may be the result of the other contributor being from another culture where communication norms are different to yours. In either scenario, the reply that came across as harsh most likely wasn’t meant to be harsh. If you feel yourself getting defensive or angry, maybe step away and come back later.</p>\n\n\n\n<p>Another way to say this is <strong>don’t take things personally</strong>. Your proposals and code may be rejected, sometimes wrongfully. Either way, this is entirely specific to the problem that you’re trying to solve. It has nothing to do with you as a person or your quality as a developer.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"be-persistent-as-appropriate\">3. Be Persistent, As Long As Appropriate</h2>\n\n\n\n<p>As I previously mentioned, sometimes another contributor may have feedback or propose something you disagree with. And sometimes, even though that’s not ideal, they don’t provide adequate context – we all make mistakes. If you have taken the time to introspect and ensure your disagreement is valid, <strong>make sure to follow up</strong>. Ask the other contributor to share more context, or lay out clearly why you disagree.</p>\n\n\n\n<p>For example, it’s okay to reopen a ticket that you created when it’s closed but not resolved. Just keep in mind the previous points on communication and self-awareness.</p>\n\n\n\n<p>Sometimes you may be overruled, or a discussion continues back and forth a few too many times with seemingly no noticeable progress. Sometimes us humans, we simply disagree, and that’s okay. Take a moment to think how strongly you think your point is correct. Sometimes, it’s right to keep pushing. Other times, it’s right to give in. <strong>Don’t keep pushing excessively</strong>. It’s important to know when to accept another person’s decision and move on, even when you disagree. Especially in situations where several other Core contributors disagree with your point, think twice. There may be something they understand that you don’t, or you may be proposing something that is not aligned with the <a href=\"https://wordpress.org/about/philosophy/\">WordPress philosophy</a>. Simply remember, you can ask.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"pay-attention-to-detail\">4. Pay Attention to Detail</h2>\n\n\n\n<p>The previous points primarily focused on communication and introspection. But now let’s talk a bit about code. I’m not going to talk about algorithms or code patterns though. Something that you can try to do, regardless of how experienced you are as a developer, is to pay attention to detail and go the extra mile. Your mindset should be to <strong>get it done </strong><strong><em>right</em></strong><strong>, not quickly</strong>.</p>\n\n\n\n<p>Sloppy code doesn’t get committed to WordPress Core. Some of the important things to look out for is code style, comprehensive inline code documentation and doc blocks, as well as test coverage. Proactively making sure your code is safe, documented, and tested shows that you care and is a great signal of a promising new contributor.</p>\n\n\n\n<p>Similar care is equally important when reviewing other people’s code. Point out when any of the above are lacking or inadequate. Think about edge cases the code may not be catering for yet. Ask questions if you’re unsure. Take the time to <strong>be a thorough reviewer</strong>.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"think-at-scale\">5. Think at Scale</h2>\n\n\n\n<p>WordPress is not just used by millions of websites, it’s used by over a third of the web. I’m sure you already know that, but it’s crucial to remember that anytime you are thinking about technical solutions. Whenever you want to make a change in WordPress, <strong>consider the entire spectrum of WordPress sites</strong>. I already mentioned to think about edge cases, but here are some more examples for what to keep in mind:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>WordPress can run anywhere – $1000 premium hosting or a Raspberry Pi. Be especially mindful of the lower end here.</li>\n\n\n\n<li>WordPress can be used at any scale – a small business portfolio site with five pages, or a membership site with millions of user-generated posts from thousands of users. Be especially mindful of the higher end here.</li>\n\n\n\n<li>Many WordPress sites do not use an object cache, many are on older technologies, such as outdated versions of PHP or MySQL.</li>\n</ul>\n\n\n\n<p>Another important aspect of thinking at scale is the impact that WordPress has on the rest of the web. WordPress can influence the web to change. A new feature or API in WordPress could lead to other platforms or even browsers considering it. <strong>Use WordPress’s scale responsibly</strong> – it can be a lever for the web as a whole, but make sure you’re only proposing a new feature to be merged into WordPress Core once it is ready for its scale.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"increase-scope-gradually\">6. Increase Scope Gradually</h2>\n\n\n\n<p>When you first start contributing to WordPress Core, it&#8217;s natural to have big ideas and see opportunities for major improvements, even complete rewrites of certain APIs. However, if you&#8217;re new to the project, <strong>pushing for a massive change or a brand-new feature right away is often going to result in resistance and likely won&#8217;t succeed</strong>. Believe me, I&#8217;ve been there. This can feel frustrating, but it&#8217;s a natural part of how open-source communities function.</p>\n\n\n\n<p>Established contributors need to &#8220;get to know you&#8221; first. They need to assess your expertise, your motivations, your communication style, and your willingness and availability to see complex ideas through to completion. This is simply a human element of collaboration. Your idea might be entirely valid, and you might be the perfect person to execute it. But others won&#8217;t know that until they&#8217;ve had the chance to work with you and observe your contributions over time.</p>\n\n\n\n<p>This doesn&#8217;t mean your valuable ideas will be rejected outright, but you might encounter hesitation or caution. A better approach is to increase your scope gradually. <strong>Start with smaller, more contained contributions: Fix bugs, improve documentation, or address minor enhancements.</strong> This helps you build trust and credibility within the community. Furthermore, by contributing to less complex endeavors first, you&#8217;ll gain additional expertise and a deeper understanding of the intricacies of WordPress Core development. This experience will likely enable you to approach those more complex ideas later with even greater insight and a stronger ability to execute them successfully than you would have had when you were completely new.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"find-your-niche\">7. Find Your Niche</h2>\n\n\n\n<p>While it&#8217;s a great starting point to contribute to any random issues you find or care about in the beginning, it&#8217;s incredibly valuable to eventually find your niche within WordPress Core. After some initial contributions, ideally you&#8217;ll discover an area that genuinely interests you and where you feel you can make a sustained impact. To give some personal context, for me that initial niche was Multisite, as mentioned earlier. I focused on it largely because I was working with a client with a large Multisite installation at the time and wanted to improve some quirks I was encountering in the foundation. For you, it might be any of the other dozens of WordPress Core components.</p>\n\n\n\n<p>Perhaps it&#8217;s a component you frequently interact with in your own WordPress development work or hobby projects where you&#8217;ve identified opportunities for improvement. <strong>The more practical experience you have with a specific part of WordPress, the more likely you are to contribute valuable enhancements and fixes to it.</strong></p>\n\n\n\n<p>Finding your niche is also important because you simply cannot be an expert in everything. WordPress Core is vast, but there are many specialized areas where dedicated experts are needed, especially where original maintainers have moved on or reduced their contributions. However, at the end of the day, don&#8217;t solely define your niche based on perceived project needs. <strong>Define your niche based on what </strong><strong><em>you</em></strong><strong> truly care about and are passionate about.</strong> This will make your contributions more enjoyable and sustainable in the long run.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"be-helpful\">8. Be Helpful</h2>\n\n\n\n<p>Contributing to WordPress Core isn&#8217;t just about pushing your own agenda or implementing the features you want to see. A crucial part of being a valuable contributor is actively being helpful to others. <strong>Being proactive and offering assistance demonstrates that you are a team player and a great collaborator</strong>, deeply invested in the project&#8217;s success. It also shows that you&#8217;re willing to take on work that might not be the most exciting for you personally, but is essential for the community as a whole.</p>\n\n\n\n<p>Here are some examples of such activities:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Make an effort to review other contributors’ tickets, discussing ideas and technical approaches beyond your own.</li>\n\n\n\n<li>Provide constructive feedback on pull requests, even if they&#8217;re not in your immediate area of expertise.</li>\n\n\n\n<li>Offer to run a bug scrub for a specific component, helping to triage and categorize issues.</li>\n\n\n\n<li>Volunteer to write summary posts for recurring team meetings, keeping everyone informed.</li>\n</ul>\n\n\n\n<p>These are just some ideas that will signal to other contributors that you are passionate, eager to work collaboratively, and not just in it for whatever <em>you</em> want to see added to WordPress Core. <strong>Being a helpful and supportive member of the community fosters a positive environment for everyone.</strong></p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"adapt-well\">9. Adapt Well</h2>\n\n\n\n<p>A common descriptor for the ideal mindset of a WordPress Core contributor is <strong>&#8220;Strong opinions, loosely held.&#8221;</strong> This highlights the importance of having conviction in your ideas while remaining open to changing them based on new information or different perspectives. Especially when you&#8217;re a new contributor, it&#8217;s easy to fall into the trap of thinking, &#8220;This is so straightforward, why wasn&#8217;t it added to Core years ago?&#8221; Usually, if it hasn&#8217;t been, it&#8217;s simply not as straightforward as it appears. This often relates back to the earlier points about understanding the WordPress philosophy, paying attention to detail, and thinking at scale.</p>\n\n\n\n<p>But even as you become a more established contributor, it will always remain crucial to adapt well. <strong>Approach different opinions with curiosity rather than adversity.</strong> Sometimes, additional learnings on your own end may genuinely change how you think about a technical approach. There will be times when you disagree with a decision that a majority of other contributors support. In these situations, it&#8217;s crucial to find the right balance: know when to keep pushing back if you genuinely believe in your stance, and when to acknowledge that this is not <em>your</em> decision alone, but a collective one that you should accept and move forward with for the good of the project. This goes back to the earlier point about being persistent as long as it’s appropriate. The flexibility and willingness to adapt are hallmarks of an effective and respected Core contributor.</p>\n\n\n\n<p>A great post that goes into more depth on this point, even though being old, is <a href=\"https://nacin.com/2014/02/07/how-wordpress-chooses-committers/\">Andrew Nacin’s “The qualities of a great WordPress contributor”</a>.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"build-personal-relationships\">10. Build Personal Relationships</h2>\n\n\n\n<p>While online collaboration is the backbone of WordPress Core development, building personal relationships with other contributors is incredibly valuable. This isn&#8217;t just for your personal growth as a contributor; it also significantly enhances the enjoyment and effectiveness of your contributions. The connections you make can enrich your journey in unexpected ways, and you may make new real-life friends.</p>\n\n\n\n<p>Meeting other contributors at a WordCamp or similar event is an incredible experience. Go for a run together, have a beer, do a hacking session together – whatever is fun for your group. Whether it&#8217;s finally connecting in person with someone you&#8217;ve collaborated with online for months, or meeting a mentor you&#8217;ve looked up to since you started contributing, <strong>these face-to-face interactions foster a deeper sense of community</strong>. Hanging out, sharing meals, and catching up in person inevitably changes how people see you. Having met someone in person simply tends to change the dynamic, even in subsequent online interactions.</p>\n\n\n\n<p>It may not always be feasible for every contributor to attend a WordCamp or other event to meet fellow contributors in person, and that is certainly unfortunate. However, <strong>the unique understanding forged through in-person interactions is something a purely online community simply cannot fully replicate</strong>. If you have the opportunity to participate in such an event, I strongly encourage you to take it. The bonds you form will make your contribution journey even more rewarding.</p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" />\n\n\n\n<h2 class=\"wp-block-heading\">Looking Back and Moving Forward</h2>\n\n\n\n<p>This decade of contributing to WordPress has been a remarkable journey of both personal and professional growth. I can say with certainty that I am where I am today, in so many ways, thanks to contributing to WordPress Core. The lessons I&#8217;ve shared here are reflections of countless hours spent collaborating with other community contributors, solving complex problems, building powerful features, and helping to build the open web. Contributing to WordPress Core has taught me more than I could have ever imagined when I first uploaded that small patch back in 2015.</p>\n\n\n\n<p>I hope that these reflections are helpful, whether you are a seasoned committer or someone who is just considering making their first contribution. A large open-source project, especially at the scale of WordPress, is an excellent way to work on something bigger than (very likely) anything one of us could come up with by ourselves. I remain as excited and motivated as ever to continue playing my part in its future.</p>\n\n\n\n<p>What about you? If you’re a contributor, what are the biggest lessons you have learned on your journey? I’d love to read about your experiences in the comments below.</p>\n<p>The post <a href=\"https://felix-arntz.me/blog/10-lessons-from-10-years-of-contributing-to-wordpress-core/\">10 Lessons from 10 Years of Contributing to WordPress Core</a> appeared first on <a href=\"https://felix-arntz.me\">felix-arntz.me</a>.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sun, 29 Jun 2025 14:21:03 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"Felix\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:26;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:66:\"WordPress.org blog: WordCamp US 2025: See You in Portland, Oregon!\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=18884\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:79:\"https://wordpress.org/news/2025/06/wordcamp-us-2025-see-you-in-portland-oregon/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:6934:\"<figure class=\"wp-block-image size-large\"><img alt=\"\" class=\"wp-image-18885\" height=\"576\" src=\"https://i0.wp.com/wordpress.org/news/files/2025/06/wordcamp-us-2025-portland.png?resize=1024%2C576&#038;ssl=1\" width=\"1024\" /></figure>\n\n\n\n<p>WordCamp US 2025 is heading to vibrant Portland, Oregon, from August 26–29, 2025! Join fellow open source enthusiasts, developers, designers, and WordPress professionals from across the United States and around the world for four days of learning, networking, and collaboration at the Oregon Convention Center.</p>\n\n\n\n<p>Nestled in the Pacific Northwest, Portland is famous for its creative spirit, lush green spaces, and riverside trails, making it an inspiring backdrop for this year’s WordCamp. Whether building your first site or leading a digital agency, WordCamp US offers something for everyone, all set against the city’s stunning natural scenery.</p>\n\n\n\n<div class=\"wp-block-group has-off-white-background-color has-background is-layout-constrained wp-container-core-group-is-layout-8503c47b wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-spacer\" style=\"height: 50px;\"></div>\n\n\n\n<p class=\"has-text-align-center has-large-font-size\"><img alt=\"🎟\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/16.0.1/72x72/1f39f.png\" style=\"height: 1em;\" /> <strong>Tickets are limited—secure yours today!</strong></p>\n\n\n\n<div class=\"wp-block-spacer\" style=\"height: 25px;\"></div>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-a89b3969 wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link has-text-align-center wp-element-button\" href=\"https://us.wordcamp.org/2025/tickets/\">Get your ticket now</a></div>\n</div>\n\n\n\n<div class=\"wp-block-spacer\" style=\"height: 50px;\"></div>\n</div>\n\n\n\n<h2 class=\"wp-block-heading\">What to Expect</h2>\n\n\n\n<h3 class=\"wp-block-heading\">Contributor Day: August 26</h3>\n\n\n\n<p>Kick off your WordCamp US experience by giving back. Contributor Day welcomes all skill levels to collaborate on teams that help make WordPress better, from code to community to documentation. You can make a difference to the project, and build new friendships or rekindle old ones, perhaps even while enjoying views of Portland’s skyline and tree-lined streets.</p>\n\n\n\n<h3 class=\"wp-block-heading\">Main Conference: August 27–29</h3>\n\n\n\n<h4 class=\"wp-block-heading\">Showcase Day &#8211; August 27</h4>\n\n\n\n<p>As part of the main conference, day one will give us a look at project showcases, discover innovative uses of WordPress, see how people push the platform’s boundaries, and get inspired to try something new.</p>\n\n\n\n<h4 class=\"wp-block-heading\">Session Days + Expo Hall &#8211; August 28-29</h4>\n\n\n\n<p>Experience another two days filled with inspiring keynotes, practical sessions, and deep dives into the latest trends in web development, design, content, accessibility, and more. Hear from some of the brightest minds in the WordPress ecosystem and explore topics that get to the heart of what makes WordPress unique. Also, take some time to explore the main floors of WCUS, like the Sponsors Hall.</p>\n\n\n\n<h3 class=\"wp-block-heading\">Networking and Community</h3>\n\n\n\n<p>Meet WordPress friends new and old, exchange ideas with community leaders, and collaborate with people who share your passion for open source. Enjoy daily lunches and a memorable social event, all included with your ticket. Stroll along the Willamette River or explore nearby parks in between sessions.</p>\n\n\n\n<h3 class=\"wp-block-heading\">Venue &amp; Accommodations</h3>\n\n\n\n<p>This year, we’re gathering at the Oregon Convention Center in the heart of Portland—a city known for its vibrant neighborhoods and abundant green spaces. We’ve secured a special hotel block right across the street at the Hyatt Regency Portland for convenient, comfortable lodging during your stay.</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><img alt=\"🏢\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/16.0.1/72x72/1f3e2.png\" style=\"height: 1em;\" /></strong> <strong>Oregon Convention Center<br /></strong>777 NE Martin Luther King Jr Blvd<br />Portland, OR 97232<br /></li>\n\n\n\n<li><img alt=\"🛏\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/16.0.1/72x72/1f6cf.png\" style=\"height: 1em;\" /> <strong>Hyatt Regency Portland</strong><br />375 NE Holladay Street<br />Portland, OR 97232<br /><a href=\"https://www.hyatt.com/en-US/group-booking/PDXRP/G-CAMP\">Book your room!</a></li>\n</ul>\n\n\n\n<h2 class=\"wp-block-heading\">Registration and Tickets</h2>\n\n\n\n<p>Registration officially kicked off last month. Secure your spot early; tickets are selling quickly.</p>\n\n\n\n<div class=\"wp-block-group has-off-white-background-color has-background is-layout-constrained wp-container-core-group-is-layout-8503c47b wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-spacer\" style=\"height: 50px;\"></div>\n\n\n\n<p class=\"has-text-align-center has-large-font-size\"><img alt=\"🎟\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/16.0.1/72x72/1f39f.png\" style=\"height: 1em;\" /> <strong>Tickets are limited—secure yours today!</strong></p>\n\n\n\n<div class=\"wp-block-spacer\" style=\"height: 25px;\"></div>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-a89b3969 wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link has-text-align-center wp-element-button\" href=\"https://us.wordcamp.org/2025/tickets/\">Get your ticket now</a></div>\n</div>\n\n\n\n<div class=\"wp-block-spacer\" style=\"height: 50px;\"></div>\n</div>\n\n\n\n<h2 class=\"wp-block-heading\">Ready to Plan Your WordCamp US Experience?</h2>\n\n\n\n<p>Keep checking the <a href=\"https://us.wordcamp.org/2025/\">WordCamp US site</a> for travel tips, to book accommodations, and to watch for the whole event schedule—coming soon! While here, why not plan to take in some of Portland’s scenic hiking trails, bike-friendly streets, or local food scene?</p>\n\n\n\n<p>Stay tuned for updates and announcements on <a href=\"https://make.wordpress.org/marketing/handbook/social-media/\">WordPress social media channels</a>, and join the conversation.</p>\n\n\n\n<h3 class=\"wp-block-heading\">Help Us Spread the Word!</h3>\n\n\n\n<p>Whether attending in person or following along online, share your experience and help welcome others to the WordPress community. Use the #WCUS and #WordPress hashtags and tell your story on social!</p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img alt=\"\" class=\"wp-image-18898\" height=\"683\" src=\"https://i0.wp.com/wordpress.org/news/files/2025/06/wordcamp-us.jpg?resize=1024%2C683&#038;ssl=1\" width=\"1024\" /></figure>\n\n\n\n<p>Portland is calling—see you at WordCamp US 2025! <img alt=\"🌲\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/16.0.1/72x72/1f332.png\" style=\"height: 1em;\" /></p>\n\n\n\n<p></p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 27 Jun 2025 18:14:33 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Brett McSherry\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:27;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:26:\"Matt: Alpha School Insider\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=143721\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://ma.tt/2025/06/alpha-school/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4233:\"<p>Scott Alexander, of Slate Star Codex / Astral Codex Ten fame, ran <a href=\"https://www.astralcodexten.com/p/everything-except-book-review-contest\">an Everything-Except-Book Review Contest 2025 in February</a>. The prompt: &#8220;Submit an ACX-length post reviewing something, anything, <em>except</em> a book.&#8221; The submissions were collected anonymously in a giant 450-page Google Doc. I don&#8217;t think the winners have been chosen yet, but there is one essay that has been making the rounds and getting shared more, and that&#8217;s <a href=\"https://docs.google.com/document/d/1d0vRSj1E93joWWvbUen2XGuDjN_mM94ybMIAADzM2fo/edit?tab=t.0#heading=h.1n2243y7h4yv\">Alpha School and &#8220;2-hour Learning&#8221; powered by AI,</a> a parent&#8217;s perspective on <a href=\"https://alpha.school/\">Alpha School</a>, a set of &#8220;AI-powered&#8221; schools in Texas and Florida.</p>\n\n\n\n<p>It&#8217;s worth reading the entire essay, but I wanted to excerpt a few points I found interesting:</p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>After twelve months I’m persuaded that Alpha is doing something remarkable—but that almost everyone, including Alpha’s own copywriting team, is describing it wrong:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>It isn’t</strong> <strong>genuine two‑hour learning</strong>: most kids start school at 8:30am, start working on the “two-hour platform” sometime between 9am-930am and are occupied with academics until noon-1230pm. They also blend in “surges” from time to time to squeeze in more hours on the platform.<br /></li>\n\n\n\n<li><strong>It isn’t</strong> <strong>AI</strong> in the way we have been thinking about it since the “<a href=\"https://arxiv.org/abs/1706.03762\">Attention is all you need</a>” paper. There is no “generative AI” powered by OpenAI, Gemini or Claude in the platform the kids use – it is closer to “turbocharged spreadsheet checklist with a spaced‑repetition algorithm”<br /></li>\n\n\n\n<li><strong>It definitely isn’t</strong> <strong>teacher‑free</strong>: Teachers have been rebranded “guides”, and while their workload is different than a traditional school, they are very important – and both the quantity and quality are much higher than traditional schools.<br /></li>\n\n\n\n<li><strong>The bundle matters</strong>: it’s not just the learning platform on its own. A big part of the product’s success is how the school has set up student incentives and the culture they have built to make everything work together</li>\n</ul>\n\n\n\n<p>…Yet the core claim survives: Since they started in October my children have been marching through and mastering material roughly <em>three times</em> faster than their age‑matched peers (and their own speed prior to the program).</p>\n</blockquote>\n\n\n\n<p>One of the surprises doesn&#8217;t come until Part 4 of the essay:</p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>Incentives</strong></p>\n\n\n\n<p>People REALLY don’t like the idea of incentivizing kids to learn.</p>\n\n\n\n<p>Roland Fryer, who has done extensive work on what works in incentivizing students, <a href=\"https://scholar.harvard.edu/files/fryer/files/092011_incentives_fryer_allen_paper2.pdf\">quotes a 2010 Gallup poll</a> that found that only 23% of American parents support the “idea of school districts paying small amount of money to students to, for example, read books, attend school or to get good grades” (76% opposed the idea with only 1% undecided).<br /><br />There are not many things that 76% of Americans agree on. Only <a href=\"https://www.cbsnews.com/pictures/surprising-things-americans-actually-agree-on/18/\">69% of Americans believe another Civil War</a> would be a bad thing. Only <a href=\"https://docs.cdn.yougov.com/crjq3mojm5/toplines_Views%20on%20Britain%20and%20the%20Monarchy.pdf\">78% agree that American independence from Britain</a> was the right choice. People REALLY don’t like paying kids to read books.</p>\n</blockquote>\n\n\n\n<p>I hope that gives you enough of a hook to read the entire essay, it was quite good and provocative to many assumptions I&#8217;ve had about education.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 26 Jun 2025 15:01:50 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"Matt\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:28;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:85:\"Open Channels FM: The Evolving Landscape of Core Contribution and Company Sponsorship\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:32:\"https://openchannels.fm/?p=99183\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:92:\"https://openchannels.fm/the-evolving-landscape-of-core-contribution-and-company-sponsorship/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:211:\"In Open Talk on Open Source, Adam Weeks, Tammy Lister, Zach Stepek, and Tim Monner discuss the importance of contributing to WordPress, exploring various forms of contributions and the idea of sponsored support.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 26 Jun 2025 09:00:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:29;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:117:\"WPTavern: #174 – Joe Dolson and Jonathan Desrosiers on WordPress Accessibility: Core Commitment or Canonical Plugin\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:48:\"https://wptavern.com/?post_type=podcast&p=196977\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:130:\"https://wptavern.com/podcast/174-joe-dolson-and-jonathan-desrosiers-on-wordpress-accessibility-core-commitment-or-canonical-plugin\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:54978:\"<details>Transcript<div>\n<p>[00:00:19] <strong>Nathan Wrigley:</strong> Welcome to the Jukebox podcast from WP Tavern. My name is Nathan Wrigley.</p>\n\n\n\n<p>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 a debate about whether or not there&#8217;s a place for accessibility in a canonical plugin.</p>\n\n\n\n<p>If you&#8217;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/feed/podcast, and you can copy that URL into most podcast players.</p>\n\n\n\n<p>If you have a topic that you&#8217;d like us to feature on the podcast, I&#8217;m keen to hear from you and hopefully get you, or your idea, featured on the show. Head to wptavern.com/contact/jukebox, and use the form there.</p>\n\n\n\n<p>So on the podcast today, we have Joe Dolson and Jonathan Desrosiers. As you&#8217;ll hear in their podcast introductions, both Joe and Jonathan are veterans of WordPress, committing to Core in different ways. They&#8217;re deeply committed towards making the platform more useful for all users.</p>\n\n\n\n<p>This episode is all about exploration rather than answers. Joe and Jonathan discuss the world of canonical plugins, a special category of plugins maintained by the Core team. They&#8217;re designed to be as reliable and secure as features found in WordPress Core itself.</p>\n\n\n\n<p>The discussion unpacks exactly what defines a canonical plugin, how these plugins have evolved out of the traditional feature plugin model, and what it means for users and contributors alike.</p>\n\n\n\n<p>At the center of this episode is accessibility, should accessibility enhancements remain a primary concern within WordPress Core, or is it time to start developing them as canonical plugins? Joe and Jonathan discussed the pros and the cons of both options, referencing technical challenges, project philosophies, and the ever-changing legislative environment, especially with tough new regulations in Europe.</p>\n\n\n\n<p>They consider the discoverability of canonical plugins for non-technical users, potential overlaps and division of labour between plugins and Core, and the moral imperative of making websites accessible to all.</p>\n\n\n\n<p>We also touch upon practical examples, from the WordPress video block to the Performance Lab plugin, and weigh up how cadence, stability, and focus can differ outside the Core.</p>\n\n\n\n<p>The conversation also goes beyond theory, delving into the real life impact accessible technology has, from legal requirements, to personal stories and the broader mission of democratizing publishing.</p>\n\n\n\n<p>Whether you&#8217;re a developer, a site owner, or someone interested in the ethical questions at the heart of open source software, this episode is for you.</p>\n\n\n\n<p>If you&#8217;re interested in finding out more, you can find all of the links in the show notes by heading to wptavern.com/podcast, where you&#8217;ll find all the other episodes as well.</p>\n\n\n\n<p>And so without further delay, I bring you Joe Dolson and Jonathan Desrosiers.</p>\n\n\n\n<p>I am joined on the podcast by Joe Dolson and Jonathan Desrosiers. Hello both.</p>\n\n\n\n<p>[00:03:35] <strong>Joe Dolson:</strong> Hello. I&#8217;m so glad to be here again.</p>\n\n\n\n<p>[00:03:37] <strong>Jonathan Desrosiers:</strong> Likewise.</p>\n\n\n\n<p>[00:03:38] <strong>Nathan Wrigley:</strong> We&#8217;ve had quite a preamble chat prior to recording this. This is going to be an exploration podcast. I don&#8217;t think we&#8217;re going to arrive at the destination. This is, I think about the journey.</p>\n\n\n\n<p>But it&#8217;s going to be a conversation about something called canonical plugins. Dear listener, if you don&#8217;t know what that means, hold on. But also about accessibility. Prior to that, probably a good idea to get both of your biographies so that we know a little bit about you, and your credentials in the areas under discussion. So should we start with you, Jonathan, just a little bio. Tell us who you are.</p>\n\n\n\n<p>[00:04:08] <strong>Jonathan Desrosiers:</strong> My name is Jonathan Desrosiers. I am a full-time sponsored Core contributor to the WordPress project from Bluehost. And I spend a lot of my time on the day to day, the work that keeps the project moving. That may be lesser seen, like our processes, our testing frameworks, helping the release squad with the resources, make sure they have the resources they need to do their jobs well, and ultimately produce good releases of WordPress every time.</p>\n\n\n\n<p>[00:04:35] <strong>Nathan Wrigley:</strong> Nice. Thank you so much. And Joe.</p>\n\n\n\n<p>[00:04:37] <strong>Joe Dolson:</strong> So I&#8217;m a part-time Core contributor to WordPress. I&#8217;m also a Core committer and I&#8217;m sponsored by GoDaddy and Kinsta. I mostly work on accessibility, so I help make all aspects of the project more accessible, including Core, Gutenberg, wordpress.org itself and all of those related bits and pieces.</p>\n\n\n\n<p>[00:04:56] <strong>Nathan Wrigley:</strong> Okay, so we&#8217;ve established your credentials. The topic under discussion, I&#8217;m going to try and find the post in the Slack channel, which kind of promoted this whole thing, but it goes back a few months now. And the topic under discussion today is about whether or not it would be a good idea, I&#8217;m going to say, let&#8217;s go with that, an interesting idea, a good experiment, who knows, to put accessibility work into a plugin of a special type called a canonical plugin. So we&#8217;re used to hearing about plugins, perhaps not so much canonical plugins. So let&#8217;s make that the first port of call. What is a canonical plugin?</p>\n\n\n\n<p>[00:05:34] <strong>Joe Dolson:</strong> I mean, I think we can kick this off with the idea that we don&#8217;t really know. But there is a long history in the project of essentially Core sponsored plugin projects that are used for specific features or provide various functionality. And then sometimes they get merged into Core and sometimes they don&#8217;t. It&#8217;s highly variable.</p>\n\n\n\n<p>So there is a deep reality that this particular proposal, we don&#8217;t have any clear idea of what it&#8217;s actually proposing. But I think it&#8217;s good to talk about some of the historical canonical plugins that have already been used.</p>\n\n\n\n<p>One great example I think is the WordPress Importer. It&#8217;s a plugin. It&#8217;s installed on demand into your dashboard when you decide to go to import something. And it&#8217;s an extremely standard tool. And it&#8217;s kind of the classic idea of something that isn&#8217;t needed in Core permanently, but is heavily used and really needs to be something that is maintained by the project.</p>\n\n\n\n<p>[00:06:29] <strong>Jonathan Desrosiers:</strong> Yeah, I think it goes back, like Joe said, pretty far in that in the past we&#8217;ve had this concept called feature plugins. And so the initial idea behind those was to begin work on a feature that would span many releases and to get it into a refined state where it was ready for primetime to be included, you know, and shipped to the world.</p>\n\n\n\n<p>So some good examples of this are the MP6 plugin which, re-skinned the dashboard in the modern way that we know today.</p>\n\n\n\n<p>The REST API started as a feature plugin project. There&#8217;s many more to that effect. Simple XML Sitemaps, I believe started as a plugin as well.</p>\n\n\n\n<p>I think of this in the way that canonical plugins are always feature plugins, but feature plugins are not always canonical. And so what I mean by that is a feature plugin can always become a canonical, but that may not be the case. It may end up in Core and we don&#8217;t need it long term. Or we could decide that it&#8217;s just not a good fit and it could become a canonical, and we maintain it long term as that add-on type plugin that you would use, that&#8217;s officially supported and maintained.</p>\n\n\n\n<p>And so even before the suggestion to put accessibility into a canonical plugin, there were a few posts from Matt that suggested that we revisit this concept of feature plugin. And I think it&#8217;s just, canonical is just in some ways a new name for it in the sense that, you know, an SEO, canonical is you put the canonical tag and it points to the one true page on the internet that represents that content, right?</p>\n\n\n\n<p>And so it&#8217;s similar to that, in that we want to have these canonical plugins that are the one true place you should be able to rely on for functionality that adheres to the project philosophies in the same way as if it were in Core itself.</p>\n\n\n\n<p>[00:08:07] <strong>Nathan Wrigley:</strong> I suppose my supposition about canonical plugins are that they encapsulate important things that could be in Core. You know, if the universe was slightly different, they could easily be rolled into Core. But also importantly, they receive security updates and the same kind of inspection that Core might have. So it&#8217;s not like they&#8217;re just sort of left to fester.</p>\n\n\n\n<p>On a regular basis, they would be inspected, updated in much the same way that Core would be. So it&#8217;s almost like Core, but kind of install it yourself. But the importance being that you can utterly rely on it, if you install it to be dependable, to be updated, to be secure. Have I misremembered, that or is that a part of the definition of a canonical plugin?</p>\n\n\n\n<p>[00:08:53] <strong>Jonathan Desrosiers:</strong> No, that&#8217;s accurate. We give you that same commitment to backwards compatibility. The project philosophies, as I mentioned, the plugins that are maintained that are released as community plugins are covered by the Bounty Program and our Hacker One program as well. So there&#8217;s incentive for people to find security vulnerabilities and responsibly report them and work with the security team to fix these for the community.</p>\n\n\n\n<p>That&#8217;s right in that you are getting kind of like that badge of honor, like we promise, guarantee type thing, that we&#8217;re going to do our best to give you the best plugin for this particular feature.</p>\n\n\n\n<p>And the importer I think is a great example of that, right? They&#8217;re not all great, in good shape, and part of that is because some of them are importing from software that&#8217;s also, that&#8217;s really old and outdated, right? And the concepts that they have and the data structures.</p>\n\n\n\n<p>But we have almost a dozen importer plugins that are, in a sense, canonical, and they are the go-to plugins to import your content into WordPress. I&#8217;m hopeful the Data Liberation Project will help make those more refined and make them easier to use and less prone to issues, yeah. But, yes, in theory we do give you that guarantee and that backing.</p>\n\n\n\n<p>[00:09:58] <strong>Joe Dolson:</strong> I mean, one of the reasons I did bring up the importers is because I think they&#8217;re actually a really good example of something that isn&#8217;t getting the care that it really needs. I mean, they&#8217;re stable and they&#8217;re functional, but there are certain things that they really don&#8217;t do very well.</p>\n\n\n\n<p>And one of them is, like if you&#8217;ve got a site with say, 10,000 users, you just can&#8217;t use the importer plugin. Because it generates these select dropdowns to assign your posts to a particular user, and the performance on those is ludicrous when you&#8217;ve got a page that has 100 dropdowns with 10,000 items in them.</p>\n\n\n\n<p>This is the sort of thing that I think everybody would like to see worked on more in the world of canonical plugins. And that&#8217;s, I think one of the fears that maybe some people have about moving more stuff into canonical plugins, is this idea that they might not get the care that we theoretically promise.</p>\n\n\n\n<p>Because I do think, the idea of canonical plugins, we absolutely do promise those security updates and making sure all of these things are solid, but I&#8217;m not sure we&#8217;ve always carried out on that as well as we could.</p>\n\n\n\n<p>[00:11:03] <strong>Jonathan Desrosiers:</strong> You said something that resonated too in that. So one of the Core philosophies is the 80 20 rule. And so we want to make sure that the things we merge into Core work for the majority of our users that use our software. And so the same kind of holds true for canonical plugins in some ways. Not that we want to plug in that 80% of people will use, because then it would belong in Core, but 80% of the people that want that feature, the plugin should be relevant to them, right?</p>\n\n\n\n<p>And so in the sense of imports being too large, the canonical plugin is a great tool and it&#8217;s the defacto recommended way, but it&#8217;s may not be the right tool for your instance. And so in that instance of a large import, WPCLI is probably more something that you would want to use in that case, because it&#8217;s not subject to timeouts and there&#8217;s just different technical boundaries that it works within.</p>\n\n\n\n<p>So we want these canonical plugins to be the defacto, but they&#8217;re not the end all be all, and they don&#8217;t cover every situation. But we want to cover the majority of situations for as many WordPress users as we can.</p>\n\n\n\n<p>[00:12:00] <strong>Nathan Wrigley:</strong> Okay. So I think we&#8217;ve established what a canonical plugin is, and I&#8217;m going to summarise it as follows, basically something that you can depend upon. I would summarise it just that.</p>\n\n\n\n<p>[00:12:08] <strong>Jonathan Desrosiers:</strong> Something that tackles a specific, or group of features.</p>\n\n\n\n<p>[00:12:10] <strong>Nathan Wrigley:</strong> Right. It&#8217;s got a specific feature. It could have gone into Core, but it was decided not to go into Core, but you can hopefully rely on it. Although, Joe made a very good point that, you know, reliance is an objective thing.</p>\n\n\n\n<p>However, what we&#8217;re talking about today is accessibility. We&#8217;re in the year 2025. It&#8217;s June, 2025. We&#8217;re at WordCamp Europe. And it feels like the train over the last few years has really pushed accessibility to the front. I think any web designer, developer, in the year 2025 who doesn&#8217;t have accessibility right at the front of their mind is kind of missing the point.</p>\n\n\n\n<p>The legislation in Europe is coming thick and fast, I imagine in other jurisdictions and other parts of the world, the same will be true. So I guess the question, and I&#8217;m going to ask this to Joe first, given his background of committing to Core in the accessibility arena. What do you make of this? The idea of pushing something to this canonical plugin that previously was the domain of Core.</p>\n\n\n\n<p>Does it feel a bit like it&#8217;s, I don&#8217;t know, that the importance of it is being relegated in some way? Do you feel it&#8217;s like undermining? Because we should all have an accessible approach to WordPress development, website development, but in this way, well, it&#8217;s not important enough, if you like, to be in Core?</p>\n\n\n\n<p>[00:13:30] <strong>Joe Dolson:</strong> So I think there&#8217;s a lot to unpack here. One of the first things I need to say is, first I&#8217;m going to, I have just a very slight quibble with your definition of a canonical plugin because there are kind of two different paths. There is the whole canonical plugin, which is intended to always stay outside of Core, but there&#8217;s also the canonical plugin, which is used for experimental progress.</p>\n\n\n\n<p>And that&#8217;s something like the Performance Lab plugin, where it&#8217;s a whole bunch of different pieces, and they&#8217;re targeted for probably being merged into Core, and this is an experiment ground where we can figure out, is this really working? Is this the best way to do it? Is this suitable for Core? Maybe it should be different in the plugin than it is in Core. Like, for example, what was it that was just shipped? Speculative loading.</p>\n\n\n\n<p>They used different rules in the plugin than they ultimately added to Core. It was just a less aggressive version of speculative loading. And I think that can be a very reasonable thing. And that can apply to accessibility too, as accessibility is a spectrum. We&#8217;re not talking necessarily about all accessibility is just, this is accessibility, it&#8217;s all required. Accessibility covers a gamut from, this is absolutely mandatory, basic level stuff, to this is pie in the sky. To even, basically there are some accessibility features that are literally contradictory to each other. In order to make something optimal for this population, you have to implement something that is actually not what this other population needs.</p>\n\n\n\n<p>So there&#8217;s a lot of complexity there. The idea of putting accessibility into a plugin can lead to some very negative consequences. It is not necessarily inevitable. So there&#8217;s a lot of difficulty in just determining what is an accessibility plugin? What is it supposed to do? Is this something that&#8217;s supposed to change the front end? Is it supposed to change the back end? Is it implementing editor tools? Is it implementing new features? Is it fixing things that already exist? And I think all of those are complicated unanswered questions.</p>\n\n\n\n<p>So kind of figuring out that path and, what is actually intended in this idea of an accessibility plugin? What are the problems it&#8217;s trying to solve? Is the first question mark. And we don&#8217;t really have that. That hasn&#8217;t been worked out in any way.</p>\n\n\n\n<p>[00:15:44] <strong>Nathan Wrigley:</strong> So the complexity, and thank you for the clarification, the complexity there, the devil is in the detail. I guess Core in a sense is, if it&#8217;s going to ship in Core, it&#8217;s there. There&#8217;s a menu for this and a toggle for that, and a switch for this, and what have you. What you are saying is the landscape of accessibility is much more complicated than that. And so maybe, in a way, if it was pushed over to a canonical plugin, you could have a more a la carte approach to it. I don&#8217;t know if that&#8217;s where you were going.</p>\n\n\n\n<p>[00:16:14] <strong>Joe Dolson:</strong> That&#8217;s conceivable. So, many years ago, Matt proposed the idea of an accessibility, it wasn&#8217;t a plugin at the time, but it was the concept of an alternate admin that would be a simplified admin. And, you know, I pushed back on that, and I still would if it was being marketed as an accessibility feature. There is a value to a simplified admin. It&#8217;s just that it can&#8217;t be considered accessibility focused unless it actually does achieve all goals. But simplification is in itself a goal. Making something easier to use, and having an option where somebody can do something in a simplified way, is extremely valuable.</p>\n\n\n\n<p>[00:16:52] <strong>Jonathan Desrosiers:</strong> Yeah, just some thoughts to that. So I&#8217;m a Core committer and I make changes to the software that everybody uses and needs to be compliant, right? I&#8217;m not an accessibility expert by any means, but I&#8217;m versed in the concepts.</p>\n\n\n\n<p>So one of the differences that could be in a canonical plugin for accessibility, Core, our coding standards for accessibility, we adhere to the web content accessibility guidelines, version 2.2 at Level AA, right?</p>\n\n\n\n<p>But there&#8217;s different levels, there&#8217;s different versions of that. And so with different levels come different requirements, and different strictness to how you approach different interfaces. And so maybe a canonical plugin could allow you to adhere to different levels that perhaps your organisation needs to adhere to, that the 80% of users don&#8217;t necessarily need to.</p>\n\n\n\n<p>Another thing that, I wanted to mention this because I always think of this. We, by default, think of accessibility as someone in a wheelchair or someone that&#8217;s blind, but you could break your hand, you could fall down the stairs, you could get eye surgery and have to wear a patch for a month. And so it&#8217;s not just permanent, it&#8217;s temporary disability as well. And I like to try to remind myself of that because you don&#8217;t need accessibility until you do, and then you&#8217;re glad it&#8217;s there when it&#8217;s there, right?</p>\n\n\n\n<p>My grandfather was legally blind and he was a veteran. So he went to school and he learned how to use a computer. And he had a computer with like JAWS on it, and it would read it to him, and we&#8217;d send each other emails and stuff. I always like to think of him too, because if you know someone in your life that has accessibility needs, it also raises that importance to you as well. So, if I don&#8217;t do this in the right way, my grandfather won&#8217;t be able to use this website, or communicate with the world in the same way that I can.</p>\n\n\n\n<p>And so finding those, I think that when you talk about accessibility, and this isn&#8217;t directly related to what you said, Joe, but I wanted to mention it. But if you can humanise it in some ways, in a way that&#8217;s in your life that you can relate to, it helps you find the reasoning in why it&#8217;s important, why these discussions are important, right? That we approach these problems in the right way, and that we meet the acceptable standard.</p>\n\n\n\n<p>[00:18:57] <strong>Nathan Wrigley:</strong> In the end, this will be a binary decision. It either will be a canonical thing at some point in the future or it won&#8217;t, I guess maybe.</p>\n\n\n\n<p>[00:19:05] <strong>Jonathan Desrosiers:</strong> Will it? I mean, we might merge some of it into Core or we might choose, it doesn&#8217;t fit in a plugin, right? And that&#8217;s kind of where that gray area is. And in some ways, canonical plugins take up a little more time because we are having these discussions. Like, we feel strongly this should go in, someone else may not. We have to work to get a consensus, and once we reach that consensus, we have to, I talk about this in my talk about how we make decisions, but we disagree and commit. And so you can state your disagreement, but then it&#8217;s important that we move forward together. Building that consensus and deciding on the right path, even if you disagree.</p>\n\n\n\n<p>[00:19:39] <strong>Nathan Wrigley:</strong> Does the canonical option then, does that allow for more flexibility? So as an example, you could release, I don&#8217;t know, every two weeks, or every month or something like that. Whereas at the moment, we&#8217;re recording it in June, we don&#8217;t need to get into it, but we&#8217;ve got a different, a very different cadence for how often Core is being updated. Maybe that will change in the future, maybe not.</p>\n\n\n\n<p>But with a canonical option, it would be possible to do any cadence you liked. And also, I suppose you could be a little bit more a la carte because you could have a variety of canonical plugins wrapped around the theme of accessibility. So, yeah, I guess what I&#8217;m asking there is really, does the cadence of a canonical plugin allow more flexibility?</p>\n\n\n\n<p>[00:20:21] <strong>Jonathan Desrosiers:</strong> Absolutely. Whether we&#8217;re releasing once a month, or we&#8217;re releasing once a year, you can release a canonical plugin as often as you want, whereas Core has a much more predictable, well, not that the canonical plugin releases won&#8217;t be predictable, but it has a much more standardised schedule, I guess.</p>\n\n\n\n<p>And so you could release once a week for your canonical plugin, and then if we have a Core release every three months, that&#8217;s 12 weeks, you have 12 releases of that canonical plugin that you could potentially refine issues. Whereas if you released it in the one Core release, you&#8217;d get all that feedback at once instead of dividing it up and making adjustments and going from there.</p>\n\n\n\n<p>[00:21:00] <strong>Joe Dolson:</strong> So just to pose an example of something that I think actually is extremely suitable for an accessible plugin, and this is because, you know, I actually have written this. So let&#8217;s take for an example, the WordPress video block. It is extremely basic. It produces a video element and it gives you options to upload various tracks that are used in that video element. It is just the raw HTML 5. That&#8217;s what WordPress produces in the block editor.</p>\n\n\n\n<p>Now, is it appropriate for WordPress Core to make a decision about how that video block is actually going to be rendered as it is with this raw HTML 5 element? It&#8217;s rendered differently by every browser. They have their own rules, their own way of doing it. That&#8217;s what it&#8217;s going to do. You can make it much more accessible, because there are a lot of things that those native blocks don&#8217;t support, the native video element doesn&#8217;t support.</p>\n\n\n\n<p>In the past, WordPress did use MediaElement.js to render videos. And I actually think getting rid of that, and just using the raw video element was a good thing. But it&#8217;s not the most accessible way of viewing video. So is it something that we should do in Core? Should we dictate a player interface, or should we leave that raw in Core? Core just produces a video element, and then a plugin can enhance that to make it more accessible.</p>\n\n\n\n<p>I&#8217;m also the lead developer for an accessible media player called Able Player. That&#8217;s a completely separate JavaScript project that has nothing to do with WordPress, but I have got a WordPress plugin for it, which basically just says, hey, here&#8217;s a video block, I&#8217;m going to re-render it using Able Player.</p>\n\n\n\n<p>[00:22:37] <strong>Jonathan Desrosiers:</strong> I think if you want another good example of what a canonical plugin can be in the framework it can operate within, look at the Performance Lab plugin. The Performance Team has this plugin, and initially it had all these different features in it, and then we were trying to merge in support for the WebP image format in Core, and we realised it needed a little bit more time. And Matt suggested that we break them out into more finite plugins.</p>\n\n\n\n<p>So the Performance Lab feature plugin has, or canonical plugin, has a framework and then there are sub plugins that you can install for modern image formats. Pre-loading the images, there&#8217;s an accessibility feature where it shows you the color, the dominant color of the image, and it&#8217;s there until the image loads. And so that way it&#8217;s visually represented. And so that&#8217;s another good example of that.</p>\n\n\n\n<p>And one example that I&#8217;m wondering may be a good use of canonical plugins is the new AI Team. And so we&#8217;re at a point where we need to do some research and figure out what, in the context of WordPress, is needed for AI to flourish, and WordPress to be AI friendly. And I think that in some way, that will end up being a base foundation, some classes and some ways to interact with your content and your site, that can communicate with different models.</p>\n\n\n\n<p>So perhaps some canonical plugins could be one for each of the popular models. And so you have this data transport layer that passes your site&#8217;s information to these plugins, and then it connects with ChatGPT, or whichever your preferred model is. And so within that you could have settings. The reason why I brought up the Performance Plugin is there&#8217;s settings within it. So for the modern image format, you could say, I only want WebP, or I only want JPEG XL or AVIF. You can decide which ones you want. But if that were to get into Core, that&#8217;s not the right thing to say like, I do or I don&#8217;t want this.</p>\n\n\n\n<p>Another philosophy is decisions not options. We don&#8217;t want to overwhelm users with this. And a good example of this is, should this site be indexed by search engines? And if you disable that, it also disables your sitemap. And so making those intuitive decisions on behalf of the user and what they&#8217;ve done, the actions they&#8217;ve taken, we don&#8217;t want to overload them with options.</p>\n\n\n\n<p>And so in canonical plugins, you can be more, you don&#8217;t have to follow that as strictly, because the point is that it&#8217;s a plugin that&#8217;s configurable, that we&#8217;re testing different things in different ways, and finding out what works for which groups of people, and in what ways, and gathering feedback around that.</p>\n\n\n\n<p>Back to the point about, one other thing I wanted to mention too, is that one complaint I&#8217;ve always had with canonical plugins is that it&#8217;s very difficult to know about the experiences of the people using them. So for example, we had a plugin for a while that they want to, thankfully they want to rekindle it, is the Design Experiments plugin.</p>\n\n\n\n<p>And you would install that, and there were, you know, at any given time, a couple of 2, 3, 4 different design experiments in the plugin. But we never knew who had which experiments active, which ones they disabled. Did they have bad experiences? And that&#8217;s why they turned it off. Did they like it? Did they prefer it?</p>\n\n\n\n<p>We almost need to have some type of either AB testing within the plugins themselves, or a way to gather that feedback from the people that are using these canonical plugins. This is especially true when it&#8217;s a feature plugin that we may want to emerge into Core.</p>\n\n\n\n<p>And so I did bring up to Matt in one of our recent meetings with the Core committers, and he was open to exploring the idea of better ways in canonical plugins to gather that feedback, because they&#8217;re now of a renewed importance in our community and how we foresee maintaining things.</p>\n\n\n\n<p>We&#8217;re quite large, and we need to start saying no to more things in some ways. And so this is a great way to push it to a canonical plugin. Like, we don&#8217;t think that&#8217;s a right fit in Core, it&#8217;s too much, we can&#8217;t handle it. But create a community maintain plugin and we&#8217;re happy to stand behind it with you.</p>\n\n\n\n<p>[00:26:32] <strong>Nathan Wrigley:</strong> I&#8217;m going to try and get this out. I&#8217;m not sure I&#8217;m going to encapsulate it right. I&#8217;m going to offer this one to Joe first. And that is the legislation in the landscape of 2025. And we know that in Europe in particular, a lot of this stuff is mandated. Obviously there&#8217;s degrees to that, but there&#8217;s a lot of mandatory stuff coming down very, very soon.</p>\n\n\n\n<p>Given that, putting things into a canonical plugin where you can pick and choose, I have not installed that, I have installed that, what are your feelings about that? Is there some, I&#8217;m going to use the word core, set of features around accessibility that really where we&#8217;re at now, there&#8217;s just no choice, it just has to be in Core?</p>\n\n\n\n<p>Because the concern that I have perhaps is, how will you discover this canonical plugin? How will it surface itself? The three of us will find it, because this is what we do. But the regular user who&#8217;s just got a brick and mortar store, they want to put a WooCommerce site out there, just something quick and easy, where are they going to even find out about these canonical plugins?</p>\n\n\n\n<p>[00:27:32] <strong>Joe Dolson:</strong> And I do think this is a big part of what comes down to that question of, what does the accessibility plugin, what does it do? Because that is where things can really go kind of horribly wrong.</p>\n\n\n\n<p>When we&#8217;re talking about the accessibility of existing WordPress interfaces, how you actually interact with the admin, I don&#8217;t think there&#8217;s anything there that should ever be in a plugin because the Core code has to be accessible.</p>\n\n\n\n<p>You know, Jonathan mentioned that we&#8217;ve got this commitment to WCAG 2.2 at Level AA. I would say that we haven&#8217;t quite achieved that. It&#8217;s a goal, but I mean, the reality is there&#8217;s still a lot of legacy interfaces that our, I find new things every day. It&#8217;s just the reality. But those need to be fixed in Core. They should not be part of a plugin.</p>\n\n\n\n<p>So, a plugin should be something that enhances something in a meaningful way that perhaps doesn&#8217;t apply to all situations. That&#8217;s one of the reasons I brought up the video element, because one of the interesting exceptions in WCAG is that you are not responsible for the accessibility of browser defaults. The browser is responsible for that.</p>\n\n\n\n<p>And so if you are using a video block, and it&#8217;s just the video element, that is actually something that should pass. It&#8217;s not necessarily accessible, that&#8217;s up to the browser, but it&#8217;s not the responsibility of your site. And that&#8217;s a really fuzzy area from the law because, yes, you should still fix it.</p>\n\n\n\n<p>[00:29:00] <strong>Nathan Wrigley:</strong> Imagine a scenario where we have a canonical plugin for accessibility. So we have WordPress Core, and then a canonical plugin for accessibility. WordPress Core is evolving all the time. No doubt missteps will be made. People like you, Joe, will be going in and saying, okay, this needs to be adapted, this needs to be amended.</p>\n\n\n\n<p>And then on top of that, we&#8217;ve also got this complete other path of developing the canonical plugin side of things. There&#8217;s two strains of work happening now. So that&#8217;s just interesting. I don&#8217;t know whether that&#8217;s good or bad.</p>\n\n\n\n<p>[00:29:30] <strong>Joe Dolson:</strong> So one thing I will say is, you know, the bulk of the new development in WordPress is in Gutenberg. There&#8217;s no need for a canonical plugin to handle accessibility things in Gutenberg because honestly, that should just go into the plugin Gutenberg. If there&#8217;s something in Core that needs to be fixed, you should be able to install Gutenberg and be able to move forward. I think that would be reasonable. I don&#8217;t think that&#8217;s a practical path to have a separate accessibility canonical plugin that fixes issues in Gutenberg problems for Core. I mean, I can&#8217;t see that as making any sense.</p>\n\n\n\n<p>[00:30:04] <strong>Jonathan Desrosiers:</strong> In some ways we have to just weigh the benefits with the effectiveness and the time and the resources available. Some other ways that you can find canonical plugins, when you click add plugin on your site, there&#8217;s different tabs at the top, like featured, popular. One of them is featured, and so that is one that when we have canonical plugins, we want people to adopt or use, we add plugins to that tab.</p>\n\n\n\n<p>So the performance plugin is there, Gutenberg is there because we want people to be testing those up and coming changes. To the point of the, we&#8217;re not being fully compliant with that standard, it&#8217;s, we have to remember that this constant churn going on with a code, right? There&#8217;s new code coming in, there&#8217;s old code being removed. And so in a way the goal line is still the same, but we&#8217;re getting peaks and valleys that we have to, they suddenly appear and we have to tackle them as we go.</p>\n\n\n\n<p>I think for discoverability, it depends on the ecosystem in some ways. For example, as an American, you know, I&#8217;m not always, sometimes I hear of new legislations from EU and I say, oh, what are they up to now, right? It&#8217;s more things I have to do to follow the rules. But I think about maybe an American business owner, or American site owner, and sometimes it&#8217;s not clear. What happens if I&#8217;m in Europe and then I visit my site when I&#8217;m traveling, right? Does that open me up for legal action. If someone happens, if I make a very specific or rare type of trinket, and people in the EU find it, does that open me up to legal problems?</p>\n\n\n\n<p>And so these are things that the normal site owner, I just want a website, I just write on it, right? They don&#8217;t think about this stuff. And so, in addition to being compliant with these guidelines that we strive to achieve, we need to think about those decisions, not options type things.</p>\n\n\n\n<p>Another philosophy is to be simple, strive for simplicity. Most people don&#8217;t know what an XML sitemap specification is, or how to implement it, or what should go in it. And so we just make the decision to handle that stuff on their behalf. And if they need to, they can install a plugin to customise it, right?</p>\n\n\n\n<p>So the same is kind of true in this sense. And if the world is susceptible to, or responsible for adhering to certain things, and we can reasonably help them without them having to find certain things to install or configure, then maybe it&#8217;s the right thing to put that thing into Core, right?</p>\n\n\n\n<p>Perhaps it falls on the shoulders of hosts, where if the customer has an EU address, they install the accessibility canonical plugin, depending on what&#8217;s in it and what&#8217;s not. It&#8217;s likely not. We should be deliberate about what goes in Core and what goes into the accessibility plugin and for what reasons. But we also should be conscious that, as a community, we have to also help these non-technical users by making decisions for them when we know that it&#8217;s a problem.</p>\n\n\n\n<p>Like, our legal team says, yep, any site that potentially gets EU traffic, they have to have this, or they have to block EU or whatever it is. We can outline these situations and make the best decisions for our customers and our users, given those criteria that we are aware of.</p>\n\n\n\n<p>[00:33:07] <strong>Joe Dolson:</strong> It&#8217;s interesting you say that because one of the things you particularly dove into there is the idea of an accessibility plugin being something for the front end. And that is something that is actually fundamentally challenging. Because when it comes right down to it, we don&#8217;t know what&#8217;s on the front end. And accessibility is an incredibly difficult problem to solve when you&#8217;re kind of just trying to do automation on something that you don&#8217;t know.</p>\n\n\n\n<p>You know, there&#8217;s a lot of accessibility plugins out there that are already doing that sort of thing. Overlay plugins. They are famously iffy, because they really don&#8217;t solve most of the problems. And some of them actually introduce more. And that is the thing that I most want to avoid, is that we create our canonical plugin and it&#8217;s just screwing up people&#8217;s websites.</p>\n\n\n\n<p>[00:33:59] <strong>Jonathan Desrosiers:</strong> We&#8217;ve all installed a plugin that has way too many options, way too many features, and it doesn&#8217;t do any of them well, right? That&#8217;s not what a canonical plugin should be. In instances where there are many features, like the Performance Lab, there&#8217;s a framework perhaps, and then there&#8217;s sub plugins that do it, right? We don&#8217;t have an importer plugin that has every importer in the same plugin. They&#8217;re in specific plugins so that it can be more targeted, more focused on that specific outlined goal or focus area.</p>\n\n\n\n<p>And so that, yeah, that speaks to me, because we definitely don&#8217;t want to mimic some of the plugins that are out there where they try to adhere to cookie laws, and then they also try to adhere to popups and, you know, Consent API and all that type of stuff. And so we want to make sure that we&#8217;re dividing those problems up into meaningful chunks, but chunks that we can manage reasonably and not be a runaway train in some ways.</p>\n\n\n\n<p>[00:34:47] <strong>Nathan Wrigley:</strong> I was thinking about this last night and I was thinking, why does this conversation matter to me so much? And it came down to the fact that if we were having this conversation about a canonical plugin for, let&#8217;s say, performance or SEO, it would be intriguing, but there&#8217;s no moral component to it. You&#8217;re just serving a bunch of people who would like a more performant website. Well, that&#8217;s great. That will increase your SEO. No doubt, more traffic will come to your website.</p>\n\n\n\n<p>But there is a moral component here, and there are people whose lives will be immeasurably better if WordPress is, and I&#8217;m doing air quotes, accessible. And so that just makes this whole thing so much more important and impactful. So there&#8217;s no question there, it&#8217;s just an observation.</p>\n\n\n\n<p>There&#8217;s a different wrinkle here. There&#8217;s just some other thing. You know, you can imagine the panoply of different people trying to use websites. The frustration, the endless frustration that&#8217;s being caused by things because they&#8217;re not configured in a way that they can use them. And it would be a shame to miss this opportunity. And I don&#8217;t know what the right answer is here. I just know that there&#8217;s this moral component that makes this much more of a hot button topic than anything else. So that&#8217;s my piece, but if you want to respond to that.</p>\n\n\n\n<p>[00:36:03] <strong>Jonathan Desrosiers:</strong> I just left the keynote this morning by Noel Tock, and he spoke a lot about the impact. I try to illustrate this often, and he did a much better job than I&#8217;ve done before. He&#8217;s involved with a lot of organisations in the war affected Ukraine. And so he covered a half dozen organisations that are saving lives, rescuing animals, providing humanitarian relief, and they run on WordPress. And so accessibility lends to that in some ways, because you don&#8217;t know where a group is that has a need, and the free software could help them with that need, and in what ways and what impact that could have on them.</p>\n\n\n\n<p>Sometimes I think about how certain things overlap. And so I picture two circles, one for accessibility, and if you were to make a diagram of how it overlaps with democratising publishing. In many ways, it almost completely overlaps that circle. There&#8217;s something democratising with being accessible. I mean, it&#8217;s in the name, it&#8217;s accessible to as many people as possible. And so I think that, whether you know it or not, that probably in some ways is eliciting that feeling, right, of we all believe in this project where we all want to do good in the world. We want our software, and our community, to have an impact. And in many ways, accessibility leads to that mission that we all have.</p>\n\n\n\n<p>[00:37:26] <strong>Joe Dolson:</strong> And I do want to say that, as it stands right now, when we&#8217;re talking about the admin of WordPress, it&#8217;s already one of the most accessible content management systems out there. We have done very good work there.</p>\n\n\n\n<p>The front end is kind of a completely different story, and that ultimately is the fact that Core doesn&#8217;t control very much of front end, which is both one of the incredible powers of WordPress. It&#8217;s got this amazing degree of flexibility, and you can do almost anything with it. And it&#8217;s also one of the curses, because if we want to globally make the front end of everybody&#8217;s website better, there is very little we can do.</p>\n\n\n\n<p>That&#8217;s where I kind of feel like our accessibility efforts most are needed right now is just kind of getting plugin developers, getting theme developers, to be better. Make better choices and provide better options in their tools.</p>\n\n\n\n<p>[00:38:18] <strong>Jonathan Desrosiers:</strong> It is true that we don&#8217;t control the front end, but one of the features I love in Gutenberg is when you&#8217;re selecting the text colour and the background colour of a block. If you select light blue and dark blue, it says, hey, this is not accessible, it doesn&#8217;t meet the guidelines. People are going to have a hard time reading this.</p>\n\n\n\n<p>I often think about ways that maybe, one I had suggested before which hasn&#8217;t been implemented yet, some issues take many years to flesh out and be adopted, if at all. But one of them is perhaps we do another notice like that when someone is entering an alternate text for their image. You know, maybe they just put jpeg 123, right? That&#8217;s not what alt text is meant for. It&#8217;s meant to describe what&#8217;s in the picture in case someone can&#8217;t see it, or it&#8217;s not visible.</p>\n\n\n\n<p>And so it should be, Nathan Wrigley holding his microphone, sitting at a table, talking to Jonathan and Joe, who also have a microphone. Stuff like that. He&#8217;s got a red shirt. Things that illustrate what&#8217;s in the image. And so what are opportunities that we can take to guide our users to produce better content on the front ends?</p>\n\n\n\n<p>And I think there&#8217;s a particularly large opportunity for that in block themes, because the nature of block themes is very structured. It starts with a theme.json file, and it&#8217;s gobbledegook for a lot of people. They don&#8217;t understand what the JSON is, how to read it. But it&#8217;s structured data that&#8217;s extrapolated into the editor to apply the default margin for your blocks. To apply the default labels, the colours, all those different things that are configurable in a block theme.</p>\n\n\n\n<p>And so like, what&#8217;s missing from that that we can add that will lend to better visual representations of your content? There&#8217;s the HTML API behind the scenes that manipulates HTML strings in the context of WordPress. So how can we make sure that we&#8217;re generating accessible markup, those building blocks?</p>\n\n\n\n<p>A lot of times we run into issues where there&#8217;s no good solution for a specific accessibility problem because the foundational elements, were not taking that into consideration when it was built. And so oftentimes it&#8217;s hard to get backing for those changes, because it&#8217;s such a big undertaking because it wasn&#8217;t a part of the the initial discussion and consideration.</p>\n\n\n\n<p>And so how can we replace these over time, but also as we build new things, take those things into consideration so that the things that get expanded into the user experience and exposed in the site editor, result in better front end experiences for everyone, that are more accessible?</p>\n\n\n\n<p>[00:40:50] <strong>Joe Dolson:</strong> Yeah, I think that&#8217;s a really great thing to call out is those places in the authoring process where we provide accessibility feedback. There&#8217;s a whole set of guidelines that are specific to that. That&#8217;s the Authoring Tool Accessibility Guidelines. And I love everything we do to try and implement those.</p>\n\n\n\n<p>I will say that the colour contrast one, it was implemented very, very early on. There are a number of things that are in Core now that it actually just isn&#8217;t able to handle. Some layering things that it&#8217;s just like, oh, I don&#8217;t know what&#8217;s going on here. So that needs work. But that&#8217;s just kind of the constant process. At least it does exist and it can cover a lot of the most common use cases.</p>\n\n\n\n<p>But, yeah, that alt text one, that&#8217;s also a really valuable thing to be able to have some checks on. It&#8217;s a hard thing, and I think one precursor change we actually need to be able to make that possible is we need to make some revisions to how alt text is stored in the database.</p>\n\n\n\n<p>Because the reality is, right now WordPress stores alt text as a meta field that&#8217;s tied to the attachment, tied to the image. But alt text actually is context sensitive. And so really there shouldn&#8217;t be one canonical alt text for an image. There could be a canonical description of that image, but the alt text itself should always be context sensitive.</p>\n\n\n\n<p>On the other hand, if we just removed that field and didn&#8217;t save it, which is something that the block editor has kind of taken that path, when you change it in the block editor, it does not save to the media library, that&#8217;s also flawed, because sometimes you do actually want to use that, or at least want to use it as the basis for the next version of that alt text you write. So what I&#8217;d like to see is that we could actually save multiple alt text fields and have that managed.</p>\n\n\n\n<p>[00:42:33] <strong>Jonathan Desrosiers:</strong> There&#8217;s all these great ideas, and great things, but we also need to strive for simplicity. We don&#8217;t want them overwhelmed with a hundred different accessibility notices of how they could improve to the point where they say, I&#8217;m going to somewhere else, this website&#8217;s too confusing.</p>\n\n\n\n<p>This is potentially also another opportunity for AI. Perhaps AI could be used to suggest what accessible alt text should be in the context of the article you&#8217;re writing, or the page you&#8217;re authoring. You know, maybe AI can be trained in a way to audit your page for accessibility and make suggestions.</p>\n\n\n\n<p>AI is really exciting. I often sit back and watch and just observe because there&#8217;s so many models and you never know which ones to use. And unless you&#8217;re really deeply involved, it&#8217;s hard to know the best model for certain tasks.</p>\n\n\n\n<p>But I definitely like to think about, it&#8217;s helped me be more organised for sure. I have a hard time sometimes when I am creating a talk, getting my thoughts into an organised deck. And so by putting all my thoughts into AI, I&#8217;m able to better organise it and then I can drop my notes and my thoughts in the structured outline that it kind of organises for me, right?</p>\n\n\n\n<p>But, in what ways can that be applied in the editing process within WordPress under the lens of accessibility? And we could have SEO, we could have, Yoast has a lot of SEO tools that makes SEO recommendations. And we could have our canonical plugin perhaps has an AI interface and we go from there.</p>\n\n\n\n<p>So, yeah, there&#8217;s many different ways we can tackle these accessibility issues. It&#8217;s exciting to have these types of discussions and consider what could be.</p>\n\n\n\n<p>[00:44:05] <strong>Nathan Wrigley:</strong> Sadly, I think time is going to get the better of us. But I would like to say thank you, both of you, for your intelligent commentary on this. I don&#8217;t know which way it&#8217;ll go.</p>\n\n\n\n<p>[00:44:15] <strong>Jonathan Desrosiers:</strong> And there&#8217;s no right way necessarily.</p>\n\n\n\n<p>[00:44:16] <strong>Nathan Wrigley:</strong> That&#8217;s right. And it seems like there&#8217;s benefits in both possibilities. I&#8217;m not going to put you on the spot and ask you which your preferred one is. I have suspicions. Let&#8217;s keep this debate going I suppose. Let&#8217;s see which way it falls out. And, yeah, Joe and Jonathan, thank you so much for chatting to me today.</p>\n\n\n\n<p>[00:44:33] <strong>Jonathan Desrosiers:</strong> Of course. Perhaps we could do like a six month check-in on the state of canonical plugins.</p>\n\n\n\n<p>[00:44:38] <strong>Joe Dolson:</strong> Yeah, it&#8217;ll be interesting to see what happens next. Thanks so much.</p>\n\n\n\n<p>[00:44:40] <strong>Nathan Wrigley:</strong> I honestly think that we could have gone in a hundred different directions here. I think there&#8217;s bits of this podcast, which we could have opened up and probably spoken for many, many more hours. But, yeah, thank you both.</p>\n</div></details>\n\n\n\n<p>On the podcast today we have <a href=\"https://www.joedolson.com/\">Joe Dolson</a> and <a href=\"https://jonathandesrosiers.com/\">Jonathan Desrosiers</a>.</p>\n\n\n\n<p>As you’ll hear in their podcast introductions, both Joe and Jonathan are veterans of WordPress, committing to Core in different ways. They’re deeply committed towards making the platform more useful for all users.</p>\n\n\n\n<p>This episode is all about exploration rather than answers. Joe and Jonathan discuss the world of canonical plugins, a special category of plugins maintained by the Core team. They are designed to be as reliable and secure as features found in WordPress Core itself. The discussion unpacks what exactly defines a canonical plugin, how these plugins have evolved out of the traditional feature plugin model, and what it means for users and contributors alike.</p>\n\n\n\n<p>At the center of this episode is accessibility: should accessibility enhancements remain a primary concern within WordPress Core, or is it time to start developing them as canonical plugins? Joe and Jonathan discuss the pros and cons of both options, referencing technical challenges, project philosophies, and the ever-changing legislative environment, especially with tough new regulations in Europe.</p>\n\n\n\n<p>They consider the discoverability of canonical plugins for non-technical users, potential overlaps and division of labour between plugins and Core, and the moral imperative of making websites  accessible to all.</p>\n\n\n\n<p>We also touch upon practical examples, from the WordPress video block, to the Performance Lab plugin, and weigh up how cadence, stability, and focus can differ outside the Core. The conversation also goes beyond theory, delving into the real-life impact accessible technology has, from legal requirements to personal stories and the broader mission of democratising publishing.</p>\n\n\n\n<p>Whether you&#8217;re a developer, a site owner, or someone interested in the ethical questions at the heart of open-source software, this episode is for you.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Useful links</h2>\n\n\n\n<p><a href=\"https://wordpress.org/news/2009/12/canonical-plugins/\">Canonical Plugins (Say What?)</a></p>\n\n\n\n<p><a href=\"https://wordpress.org/plugins/wordpress-importer/\">WordPress Importer</a> plugin</p>\n\n\n\n<p><a href=\"https://wordpress.org/plugins/mp6/\">mp6</a> plugin</p>\n\n\n\n<p><a href=\"https://hackerone.com/wordpress?type=team\">WordPress HackerOne program</a></p>\n\n\n\n<p><a href=\"https://wordpress.org/data-liberation/\">Data Liberation Project</a></p>\n\n\n\n<p><a href=\"https://jonathandesrosiers.com/2018/10/accessibility-a-developers-pledge/\">Accessibility: A Developer’s Pledge</a></p>\n\n\n\n<p><a href=\"https://www.freedomscientific.com/products/software/jaws/\">JAWS</a></p>\n\n\n\n<p><a href=\"https://www.mediaelementjs.com/\"> MediaElement.js</a></p>\n\n\n\n<p><a href=\"https://ableplayer.github.io/ableplayer/\"> Able Player</a></p>\n\n\n\n<p><a href=\"https://github.com/WordPress/design-experiments\"> Design Experiments plugin</a></p>\n\n\n\n<p><a href=\"https://europe.wordcamp.org/2025/speaker/noel-tock/\">WordCamp Europe 2025  keynote with Noel Tock</a></p>\n\n\n\n<p><a href=\"https://www.w3.org/WAI/standards-guidelines/atag/\">Authoring Tool Accessibility Guidelines</a></p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 25 Jun 2025 14:00:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Nathan Wrigley\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:30;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:85:\"Open Channels FM: Measuring Success in Video Marketing: Why Views Aren’t Everything\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:47:\"https://openchannels.fm/?post_type=blog&p=97509\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:88:\"https://openchannels.fm/measuring-success-in-video-marketing-why-views-arent-everything/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:192:\"View counts aren\'t definitive for video marketing success. Focus on quality viewers, conversion-oriented content, and long-term impact instead of just numbers for achieving meaningful results.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 25 Jun 2025 11:47:18 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:31;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:62:\"Gravatar: Mobile SDKs Now Edit Full Profiles, Not Just Avatars\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:32:\"http://blog.gravatar.com/?p=3338\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:89:\"https://blog.gravatar.com/2025/06/24/mobile-sdks-now-edit-full-profiles-not-just-avatars/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:3665:\"<p>Got users stuck with outdated Gravatars or profile info in your mobile app? Your Gravatar integration just became a lot more powerful.</p>\n\n\n\n<p>Tens of thousands of apps and sites pull in Gravatars for a better user experience. But when someone wants to update their avatar or profile details, they&#8217;re usually stuck hunting for settings — or worse, they can&#8217;t update them at all.</p>\n\n\n\n<p>With our Quick Editor and Mobile SDKs, problem solved!</p>\n\n\n\n<h2 class=\"wp-block-heading\">One Tap to Update Everything</h2>\n\n\n\n<p>Our Mobile SDKs have always made avatar updates simple. Users tap their avatar, make changes, and boom – it&#8217;s updated everywhere. But avatars are just part of your digital identity.</p>\n\n\n\n<p>The latest SDK releases bring full profile editing to your mobile app. Now users can update their entire Gravatar – display name, about info, location, pronouns, and more – right from within your app.</p>\n\n\n\n<h2 class=\"wp-block-heading\">What&#8217;s New</h2>\n\n\n\n<h3 class=\"wp-block-heading\">Profile Editing Beyond Avatars</h3>\n\n\n\n<p>Users can now edit their complete Gravatar profile without leaving your app. </p>\n\n\n\n<p>This includes:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Display name</li>\n\n\n\n<li>About/bio information</li>\n\n\n\n<li>Location</li>\n\n\n\n<li>Job title</li>\n\n\n\n<li>And more</li>\n</ul>\n\n\n\n<h3 class=\"wp-block-heading\">iOS 3.4.0 Improvements</h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Smoother animations on the SwiftUI sheet</li>\n\n\n\n<li>Better VoiceOver support for accessibility</li>\n\n\n\n<li>Performance optimizations throughout</li>\n</ul>\n\n\n\n<h3 class=\"wp-block-heading\">Android 2.5.0 Updates</h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Removed Retrofit dependency from core module (cleaner, lighter integration)</li>\n\n\n\n<li>New API endpoints for expanded functionality</li>\n\n\n\n<li>Bug fixes for improved stability</li>\n</ul>\n\n\n\n<h2 class=\"wp-block-heading\">See It in Action</h2>\n\n\n\n<p>The editing flow feels native to each platform. On iOS, it&#8217;s a sleek SwiftUI sheet. On Android, it follows Material Design patterns. Your users get a familiar experience while managing their universal web identity.</p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img alt=\"\" class=\"wp-image-3343\" height=\"1260\" src=\"https://blog.gravatar.com/wp-content/uploads/2025/06/cleanshot-2025-06-24-at-16.21.33.gif\" style=\"width: 300px;\" width=\"580\" /></figure>\n\n\n\n<h2 class=\"wp-block-heading\">Why This Matters</h2>\n\n\n\n<p>Think about it: someone downloads your app, signs up, and their Gravatar automatically fills in their avatar and profile details. Later, when they get a new headshot or job title, they can update it right there in your app.</p>\n\n\n\n<p>No hunting through settings. No switching between apps. One tap, and they&#8217;re current everywhere.</p>\n\n\n\n<p>You get happier users with fresh, accurate profiles. They get a seamless experience that just works.</p>\n\n\n\n<p>We know it works because we dogfood our SDKs in our sister apps <a href=\"https://jetpack.com/mobile/\">Jetpack</a> and <a href=\"https://pocketcasts.com\">Pocket Casts</a>, powering avatars and profile details millions of users monthly.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Developers: Ready to Upgrade?</h2>\n\n\n\n<p>The updated SDKs are available now for both iOS and Android. Adding profile editing to your existing Gravatar integration takes just a few lines of code.</p>\n\n\n\n<p>Check out our <a href=\"https://docs.gravatar.com/mobile-sdk/\">developer documentation</a> for platform-specific guides, code examples, and migration instructions.</p>\n\n\n\n<p>Your users deserve to control their digital identity. Now you can help them do it.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 24 Jun 2025 16:07:19 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:11:\"Ronnie Burt\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:32;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:110:\"Open Channels FM: New, Open Channels Dispatch: Rebranding, Site Updates, and What’s Next for OpenChannels FM\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:32:\"https://openchannels.fm/?p=99138\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:110:\"https://openchannels.fm/new-open-channels-dispatch-rebranding-site-updates-and-whats-next-for-openchannels-fm/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:108:\"BobWP kicks off Open Channels Dispatch to share quick updates and news about the rebranded Open Channels FM.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 24 Jun 2025 11:41:30 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:33;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:106:\"Open Channels FM: How Non-Developers Can Start Contributing to WordPress Translations (And Why It Matters)\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:47:\"https://openchannels.fm/?post_type=blog&p=97421\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:111:\"https://openchannels.fm/how-non-developers-can-start-contributing-to-wordpress-translations-and-why-it-matters/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:354:\"One of the most inspiring aspects of the WordPress ecosystem is its commitment to making the web accessible in every language. In a recent episode from the series The WordPress Way,” hosts Abha Thakor, Pascal Birchler, and Robert Windisch dove deep into the world of translations and multilingual WordPress and revealed just how much everyday [&#8230;]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 23 Jun 2025 09:23:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:34;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"Matt: Automattic Twenty\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=143509\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:40:\"https://ma.tt/2025/06/automattic-twenty/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4771:\"<p><a href=\"https://automattic.com/2025/06/20/automattic-20-years/\">We&#8217;re celebrating a fun anniversary at Automattic today, our 20th, with a fun look-back</a>. Gosh, it&#8217;s been quite a journey, and it still feels like we&#8217;re just getting started in so many areas.</p>\n\n\n\n<p>In 2005, being a remote-first company was anathema to investors and business leaders* at the time; it was a scarlet letter that combined with our embrace of Open Source and the relative inexperience got us some funny looks and a lot of skepticism. I will be forever grateful to the true contrarians who bet on Automattic in our earliest days. </p>\n\n\n\n<p>Even when it was clearly working the first few years, there was always the dismissal of &#8220;that won&#8217;t scale&#8221; that loomed like a remote startup <a href=\"https://en.wikipedia.org/wiki/Great_Filter\">Great Filter</a>. These days I hear from friends who run incubators or do seed investing that almost every company they look at taps into remote talent.</p>\n\n\n\n<p>It makes me think about what uncommon things Automattic does today that will be standard in the coming decades. We do our best to balance idealism with pragmatism, because even if you are on the right side of history, being too early can be as bad as being wrong.</p>\n\n\n\n<p>I can&#8217;t predict everything that will change over the coming decades, especially with AI making the next few years particularly hard to predict. Still, I do know a few things that <em>won&#8217;t</em> change: everything flows from our people, open source is still the most powerful idea of our generation, growth is the best feedback loop, and no matter how far away the goal is, the only way to get there is by putting one foot in front of another every day. People will always want fast, bug-free software; instant, omniscient customer service when they need it; and experiences so intuitive that they usually don&#8217;t. And once they&#8217;ve had a taste of freedom, it&#8217;s hard to return to their previous state. (For more, <a href=\"https://automattic.com/creed/\">see our creed</a>.)</p>\n\n\n\n<p>Our industry is highly cyclical, and I feel fortunate to have gained the perspective of a few bubbles and crashes, along with all the emotions that go with them. It&#8217;s undeniable we&#8217;re in the very early days — the command-line times — of an AI era, and though it will probably have its own bubble and crash cycles, it feels as significant to me as anything since we started. It&#8217;s more important than ever that we fight for open source and the freedom-enhancing side of technology. I&#8217;m committed to doing whatever I can to democratize publishing, commerce, and messaging, but there are many other areas of the human experience to cover&#8230; pick one to work on! It&#8217;s hard and rewarding work. </p>\n\n\n\n<p>When I was working on an early version of one of our internal stats systems, it was really important to me that it showed rolling windows of the last 24 hours (daily), 168 hours, 4 weeks, and of course yearly. The rolling was important so you could see the impact of your changes as soon as possible. Then I felt called to add another: decade.</p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img alt=\"\" class=\"wp-image-143529\" height=\"113\" src=\"https://i0.wp.com/ma.tt/files/2025/06/mc-rolling-stats-1024x191.png?resize=604%2C113&#038;quality=80&#038;ssl=1\" width=\"604\" /></figure></div>\n\n\n<p>Some thought it was silly at the time, and it&#8217;s true that it initially served mainly as a way to display the cumulative number. But I wanted every time someone looked at one of these stats pages that they were reminded that <strong>we&#8217;re building for the long term</strong>. Our users and customers deserve nothing less. And now we have some statistics with 20 years of history, it has some useful comparisons as well! </p>\n\n\n\n<p>In <a href=\"https://ma.tt/2015/06/ten-years-of-automattic/\">Ten Years of Automattic, I wrote</a>:</p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>There’s a lot more to do, and I can’t wait to see what a “20 Years of Automattic” post says. I’m a lucky guy.</p>\n</blockquote>\n\n\n\n<p>Now we know! I&#8217;m still a very lucky guy, and can&#8217;t wait to build, learn, and share alongside a talented crew of like-minded hackers, dreamers, and doers.</p>\n\n\n\n<p><em>* I&#8217;ll note that pioneers like Bob Young (Red Hat), Stephen Wolfram (Wolfram Research), Jason Fried (37Signals), and Mårten Mickos (MySQL) were big inspirations. Also, the entire Open Source community and most projects operated at least partially this way, which is why it seemed so natural to us as a second-generation Open Source company.</em></p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sat, 21 Jun 2025 02:59:54 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"Matt\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:35;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:115:\"Gutenberg Times: Interactivity API, WordPress 6.8.2, Transitions API and Pride Photo Drive — Weekend Edition #333\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://gutenbergtimes.com/?p=40735\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:119:\"https://gutenbergtimes.com/interactivity-api-wordpress-6-8-2-transitions-api-and-pride-photo-drive-weekend-edition-333/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:20878:\"<p>Hi there, </p>\n\n\n\n<p>Are you ready for a summer break of the Gutenberg Times? I am definitely ready for a vacation. It&#8217;s been a fabulous first half of the year with plenty of new experiences, and reconnecting with friends in the WordPress community. There is soo much inspiring creativity in the community around block editor, Playground and AI. I am curious what the second half of year will bring.</p>\n\n\n\n<p>As for WordCamps, I am considering going to WordCamps, <a href=\"https://gdynia.wordcamp.org/2025/\">Gyndia</a>, <a href=\"https://verona.wordcamp.org/2025/\">Verona</a>,  and <a href=\"https://pisa.wordcamp.org/2025/\">Pisa</a>. Once the decisions are made, I, of course, will let you know. Do you have any WordCamp plans?</p>\n\n\n\n<p>Enjoy the summer and I&#8217;ll be back. </p>\n\n\n\n<p>Yours, <img alt=\"💕\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/15.1.0/72x72/1f495.png\" style=\"height: 1em;\" /><br /><em>Birgit</em></p>\n\n\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\n\n\n<section class=\"wp-block-newsletterglue-group\" style=\"padding-top: 10px; padding-bottom: 10px; padding-left: 20px; padding-right: 20px; margin-top: 0px; margin-bottom: 0px;\">\n<div class=\"wp-block-group has-light-background-background-color has-background\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<p><strong>Table of Contents</strong></p>\n\n\n\n<nav class=\"wp-block-table-of-contents\"><ol><li><a class=\"wp-block-table-of-contents__entry\" href=\"https://gutenbergtimes.com/interactivity-api-wordpress-6-8-2-transitions-api-and-pride-photo-drive-weekend-edition-333/#0-word-press-release-information\">Developing Gutenberg and WordPress</a></li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https://gutenbergtimes.com/interactivity-api-wordpress-6-8-2-transitions-api-and-pride-photo-drive-weekend-edition-333/#0-p\">Plugins, Themes, and Tools for #nocode site builders and owners</a></li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https://gutenbergtimes.com/interactivity-api-wordpress-6-8-2-transitions-api-and-pride-photo-drive-weekend-edition-333/#2-word-press-6-0-1-and-6-1-scheduled\">Theme Development for Full Site Editing and Blocks</a></li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https://gutenbergtimes.com/interactivity-api-wordpress-6-8-2-transitions-api-and-pride-photo-drive-weekend-edition-333/#3-building-themes-for-fse-and-word-press\">Building Blocks and Tools for the Block editor</a></li></ol></nav>\n</div></div>\n</section>\n\n<div class=\"wp-block-newsletterglue-showhide ng-block\" width=\"100%\"></div>\n\n\n<p>In their post, <a href=\"https://lgbtqpress.com/2025/05/share-your-pride-photo-drive-is-back-for-2025/\"><strong>Share your Pride Photo Drive is back for 2025</strong></a>,  <strong>Anne McCarthy</strong> invites you to  an open photo submission event to boost LGBTQ+ representation in the WordPress Photo Directory. The initiative encourages everyone (not just the LGBTQ+ community) to contribute, with fun incentives and cash prizes, emphasizing the importance of diverse, high-quality imagery for web creators. <strong>The deadline is July 1st 2025. </strong></p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"0-word-press-release-information\">Developing Gutenberg and WordPress</h2>\n\n\n\n<p><strong>Jean-Baptiste Audras</strong> just dropped the schedule for <a href=\"https://make.wordpress.org/core/2025/06/17/wordpress-6-8-2-release-schedule/\"><strong>WordPress 6.8.2 Release Schedule</strong></a>. There are a few bug scrub sessions coming up, with the first release candidate (RC1) out on July 8, 2025, and the final version landing a week later on July 15. He also shared some handy links to the list of fixes they’re hoping to squeeze into this update.</p>\n\n\n\n<div class=\"wp-block-group has-light-background-background-color has-background\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<p><img alt=\"🎙\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/15.1.0/72x72/1f399.png\" style=\"height: 1em;\" /> The latest episode <a href=\"https://gutenbergtimes.com/podcast/gutenberg-changelog-118-wordpress-new-ai-team-the-pride-photo-drive/\">Gutenberg Changelog 118 – WordCamp Europe, WordPress New AI Team, the Pride Photo Drive, Gutenberg 20.9 and 21.0 </a> <strong>Anne McCarthy</strong> is back from sabbatical and we talked about WordCamp Europe, the new WordPress AI team, the Pride Photo Drive, and Gutenberg 20.9 and 21.0 . </p>\n\n\n\n<p><em>If you are listing via Spotify, please leave a comment. If you listen via other podcast apps, please leave a review. It&#8217;ll help with the distribution.</em></p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img alt=\"\" class=\"wp-image-40687\" height=\"185\" src=\"https://i0.wp.com/gutenbergtimes.com/wp-content/uploads/2025/06/Screenshot-2025-06-14-at-08.28.08.png?resize=652%2C185&#038;ssl=1\" width=\"652\" /></figure>\n</div></div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"0-p\">Plugins, Themes, and Tools for #nocode site builders and owners</h2>\n\n\n\n<p>In his post <a href=\"https://felix-arntz.me/blog/introducing-view-transitions-wordpress-plugin/\"><strong>Introducing the View Transitions Plugin for WordPress</strong></a>, <strong>Felix Arntz <br /></strong>announced a new plugin that brings smooth, animated transitions between pages to WordPress sites. He explains that <a href=\"https://wordpress.org/plugins/view-transitions/\">the plugin</a> uses the <a href=\"https://developer.mozilla.org/en-US/docs/Web/API/View_Transition_API\">View Transitions API</a> to create seamless visual effects, making navigation feel more modern and app-like without the complexity of single-page applications. Arntz described how the plugin works out of the box, offers customization through both the WordPress admin and theme code, and supports various animation styles. The goal is to improve user experience and perceived performance with minimal setup.<strong> </strong></p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\n\n\n\n<p>In his latest video, <a href=\"https://www.youtube.com/watch?v=s9vt5skaTfw\"><strong>The Secret to Client-Proof WordPress Sites</strong></a>, <strong>Wes Theron</strong> shows how to let clients safely update content while keeping a consistent design. He demonstrates using synced patterns with editable overrides. Global design changes to a pattern update all instances on the site. He explains how clients can modify specific elements without disrupting the layout. This method simplifies site management and maintains design integrity, making WordPress sites easier to manage and grow.</p>\n\n\n<div class=\"wp-block-newsletterglue-showhide ng-block\" width=\"100%\">\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n\n</div></figure>\n</div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\n\n\n\n<p><br /><strong>Claire Brotherton</strong> reviewed the Twenty Twenty-Five WordPress theme, highlighting its flexibility and modern design.  Brotherton details its customizable templates, diverse style variations, and extensive block patterns, making it easy to create unique layouts. She notes the theme’s accessibility features, international typography options, and compatibility with the latest WordPress tools. The guide also covers practical tips for editing menus, headers, and footers, and encourages users to experiment with the theme’s many design possibilities. The post <a href=\"https://www.abrightclearweb.com/twenty-twenty-five-theme-the-ultimate-guide/\"><strong>Twenty Twenty-Five Theme: the Ultimate Guide</strong></a> definitely lives up to its promise. </p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\n\n\n\n<p><strong>Johanne Courtright</strong> <a href=\"https://groundworx.dev/blog/introducing-groundworx-navigation/\"><strong>introduced the Groundworx Navigation plugin</strong></a>, a flexible, block-based navigation tool for WordPress. After years of building custom menus, she created this plugin to streamline features like accordions, slide-ins, sticky headers, and responsive toggles. Designed for Full Site Editing, it fits modern WordPress workflows and eliminates the need to rebuild navigation logic for each project, making advanced menu patterns easier for both developers and site owners. <a href=\"https://github.com/groundworx-dev/groundworx-navigation\">Check it out from GitHub</a>. Once it goes through the approval process, it will also be available for download from the WordPress repository.</p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\n\n\n\n<p>In his post <a href=\"https://publishpress.com/blog/publishpress-blocks/find-all-gutenberg-blocks/\"><strong>What&#8217;s the plan for PublishPress Blocks</strong></a>? <strong>Steve Burge</strong> mentions the new Block Usage Screen. It shows you any usage of blocks on your site or search for blocks. For example, it will show how many paragraph blocks you used throughout all blog posts. He also shows the new menu from within the plugin and lists six more features: control on who can use each block, additional blocks like accordion, galleries, tabs etc. I am excited about the feature to create my own Block Styles right from the interface without code. In the video on YouTube, Burge shows off how to  <a href=\"https://www.youtube.com/watch?v=ZMgZ3JiNl1Y&amp;t=16s\">find your WordPress Blocks with the PublishPress Blocks Plugin</a>. </p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"2-word-press-6-0-1-and-6-1-scheduled\">Theme Development for Full Site Editing and Blocks</h2>\n\n\n\n<p>A common solution to make a sticky header is to wrap the template part in a group block and set the Position to &#8220;sticky&#8221;. <strong>Mike McAlister</strong> has more elegant solutions to  <a href=\"https://olliewp.com/fixing-the-sticky-header-bug-in-the-wordpress-site-editor/\"><strong>Fixing the sticky header bug in the WordPress site editor</strong></a>. </p>\n\n\n\n<p><strong>Hans-Gerd Gerhards</strong> has also tackled this problem with his plugin <strong><a href=\"https://wordpress.org/plugins/shrinking-logo-sticky-header/\">Dynamic Header &amp; Navigation for Block Themes</a></strong>, that also, among a few other things, it gives you settings to shrink the header on scroll, so it doesn&#8217;t take up too much real-estate. </p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\n\n\n\n<p><br />In her post, <strong><a href=\"https://www.askdesign.biz/blog/2025/06/layout-and-design-with-the-grid-block/\">Layout and Design with the Grid Block</a>,</strong> <strong>Anne Katzeff</strong> explains how the grid block can help make web pages look cleaner and more organized. She gives simple advice for setting up columns, spacing, and alignment, and encourages people to play around with different layouts to find what looks and works best. It might just be the manual you have been looking for. </p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\n\n\n<section class=\"wp-block-newsletterglue-callout undefined not-color-set\" style=\"border-color: #f9f9e5; border-radius: 22px; border-style: solid; border-width: 0; padding-top: 20px; padding-bottom: 20px; padding-left: 20px; padding-right: 20px; text-align: left; margin-left: 0; margin-right: 0; margin-top: 0px; margin-bottom: 0px; background-color: #f9f9e5;\">\n<p><strong> <a href=\"https://make.wordpress.org/core/handbook/references/keeping-up-with-gutenberg-index/\" rel=\"noreferrer noopener\" target=\"_blank\">&#8220;Keeping up with Gutenberg &#8211; Index 2025&#8221;</a> </strong><br />A chronological list of the WordPress Make Blog posts from various teams involved in Gutenberg development: Design, Theme Review Team, Core Editor, Core JS, Core CSS, Test, and Meta team from Jan. 2024 on. Updated by yours truly. The previous years are also available: <strong><strong><a href=\"https://make.wordpress.org/core/handbook/references/keeping-up-with-gutenberg-index/keeping-up-with-gutenberg-index-2020/\">2020</a> | <a href=\"https://make.wordpress.org/core/handbook/references/keeping-up-with-gutenberg-index/keeping-up-with-gutenberg-index-2021/\">2021</a></strong> | <strong><a href=\"https://make.wordpress.org/core/handbook/references/keeping-up-with-gutenberg-index/keeping-up-with-gutenberg-index-2022/\">2022</a></strong></strong> | <strong><a href=\"https://make.wordpress.org/core/handbook/references/keeping-up-with-gutenberg-index/gutenberg-index-2023\">2023</a></strong> | <a href=\"https://make.wordpress.org/core/handbook/references/keeping-up-with-gutenberg-index/gutenberg-index-2024/\"><strong>2024</strong></a></p>\n</section>\n\n\n<h2 class=\"wp-block-heading\" id=\"3-building-themes-for-fse-and-word-press\">Building Blocks and Tools for the Block editor</h2>\n\n\n\n<p>In this high-level post, <a href=\"https://wp.gallery/themes/wordpress-block-theme/\" rel=\"noreferrer noopener\" target=\"_blank\"></a><a href=\"https://wp.gallery/wordpress-interactivity-api/\" rel=\"noreferrer noopener\" target=\"_blank\"><strong>15 WordPress Interactivity API examples &#8211; WP Gallery</strong></a><br />Diane Collet, co-founder of Twentig and WP Gallery, explains how the new WordPress Interactivity API empowers developers to create dynamic, interactive front-end experiences without relying on heavy JavaScript frameworks. She highlights how the API enables seamless, reactive user interfaces directly within WordPress blocks, making it easier to build features like live search, filters, and instant feedback. Collet emphasizes the API’s simplicity, performance benefits, and its alignment with WordPress’s vision for a more interactive and modern web, encouraging developers to explore its capabilities for enhancing user engagement. </p>\n\n\n\n<p>To get started with the Interactivity API, you can work through this list of resources:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https://wordpress.tv/2025/06/07/wordpress-gems-for-devs-interactivity-api-2/\">WordPress Gems around the Interactivity API</a> (Workshop recording) </li>\n\n\n\n<li><a href=\"https://developer.wordpress.org/news/2024/04/a-first-look-at-the-interactivity-api/\">A first look at the Interactivity API</a> </li>\n\n\n\n<li><a href=\"https://developer.wordpress.org/news/2024/02/an-introduction-to-block-based-mega-menus/\">An introduction to block-based mega menus</a></li>\n\n\n\n<li><a href=\"https://developer.wordpress.org/block-editor/reference-guides/packages/packages-interactivity/packages-interactivity-api-reference/#list-of-directives\" rel=\"noreferrer noopener\" target=\"_blank\">Interactivity API Reference</a> </li>\n\n\n\n<li><a href=\"https://github.com/WordPress/gutenberg/discussions/55642\">Interactivity API showcase</a></li>\n\n\n\n<li><a href=\"https://www.youtube.com/watch?v=ndW-Kz0iDdY&amp;list=PL1pJFUVKQ7ETApyQQlt3pLNjPx2HrQwl5&amp;index=18\">Developer Hours: Building custom blocks in WordPress with the Interactivity API</a></li>\n\n\n\n<li><a href=\"https://www.youtube.com/watch?v=Sl6nqGN8YVQ&amp;list=PL1pJFUVKQ7ETApyQQlt3pLNjPx2HrQwl5&amp;index=19\">Developer Hours: Exploring the Interactivity API in WordPress 6.5</a></li>\n</ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\n\n\n\n<p><strong>JuanMa Garrido </strong>was inspired by Igor Benić&#8217;s <a href=\"https://wpchallenges.beehiiv.com/.\">list of <strong>WordPress challenges</strong></a>. In his live stream he ventured to solve some of them. <a href=\"https://www.youtube.com/watch?v=DgB5M5ameUs\">The recording is on YouTube</a>. The first challenge was: <em>Create a block that fetches and displays posts from a specific category dynamically (using ServerSideRender component).</em></p>\n\n\n<div class=\"wp-block-newsletterglue-showhide ng-block\" width=\"100%\">\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n\n</div></figure>\n</div>\n\n\n<p><strong>In his live stream<a href=\"https://www.youtube.com/watch?v=ABfMFB5s_TA\">, WCEU workshop code along</a></strong>, <strong>Ryan Welcher</strong> followed Bero&#8217;s WCEU workshop on setting up automatic testing with Playwright and Playground. </p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\n\n\n<div class=\"wp-block-newsletterglue-showhide ng-block\" width=\"100%\">\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n\n</div></figure>\n</div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\n\n\n\n<p>This week, <strong>Jonathan Bossenger</strong> updates us about <strong><a href=\"https://www.youtube.com/watch?v=_q-1aGvHfqo\">WordPress MCP &amp; Feature API</a> </strong>on his live stream. </p>\n\n\n<div class=\"wp-block-newsletterglue-showhide ng-block\" width=\"100%\">\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n\n</div></figure>\n</div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\n\n\n<section class=\"wp-block-newsletterglue-callout undefined not-color-set\" style=\"border-color: #eeeeee; border-radius: 26px; border-style: solid; border-width: 0; padding-top: 20px; padding-bottom: 20px; padding-left: 20px; padding-right: 20px; text-align: left; margin-left: 0; margin-right: 0; margin-top: 0px; margin-bottom: 0px; background-color: #f3efe9;\">\n<p><strong><a href=\"https://gutenbergtimes.com/need-a-zip-from-master/\">Need a plugin .zip from Gutenberg&#8217;s master branch?</a></strong><br />Gutenberg Times provides daily build for testing and review. </p>\n\n\n\n<p>Now also available via <a href=\"https://playground.wordpress.net/?blueprint-url=https://gutenbergtimes.com/wp-content/uploads/2020/11/playnightly.json\">WordPress Playground</a>. There is no need for a test site locally or on a server. Have you been using it? <a href=\"mailto:pauli@gutenbergtimes.com\">Email me </a>with your experience</p>\n\n\n\n<p><img alt=\"GitHub all releases\" src=\"https://img.shields.io/github/downloads/bph/gutenberg/total?style=for-the-badge\" /></p>\n</section>\n\n\n<p class=\"has-text-align-center has-small-font-size\"><em>Questions? Suggestions? Ideas? </em><br /><em>Don&#8217;t hesitate to send <a href=\"mailto:pauli@gutenbergtimes.com\">them via email</a> or</em><br /><em> send me a message on WordPress Slack or Twitter @bph</em>.</p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" />\n\n\n\n<p class=\"has-text-align-center has-small-font-size\">For questions to be answered on the <a href=\"http://gutenbergtimes.com/podcast\">Gutenberg Changelog</a>, <br />send them to <a href=\"mailto:changelog@gutenbergtimes.com\">changelog@gutenbergtimes.com</a></p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\n\n\n<section class=\"wp-block-newsletterglue-group\" style=\"padding-top: 10px; padding-bottom: 10px; padding-left: 20px; padding-right: 20px; margin-top: 0px; margin-bottom: 0px;\">\n<p>Featured Image: Photo by Polesie Toys on Pexel</p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity is-style-wide\" />\n\n\n\n<p class=\"has-text-align-left\"><strong>Don&#8217;t want to miss the next Weekend Edition? </strong></p>\n\n\n<form action=\"https://gutenbergtimes.com/feed/\" autocomplete=\"on\" class=\"wp-block-newsletterglue-form ngl-form ngl-portrait\" method=\"post\"><div class=\"ngl-form-container\"><div class=\"ngl-form-field\" style=\"margin-bottom: 25px;\"><label class=\"ngl-form-label\" for=\"ngl_email\"><br />Type in your Email address to subscribe.</label><div class=\"ngl-form-input\"><input autocomplete=\"email\" class=\"ngl-form-input-text\" id=\"ngl_email\" name=\"ngl_email\" required=\"required\" style=\"border-radius: 21px;\" type=\"email\" /></div></div><button class=\"ngl-form-button\" style=\"background-color: #005075; border-color: #005075; border-width: 1px; border-style: solid; color: #ffffff; border-radius: 21px;\" type=\"submit\">Subscribe</button><p class=\"ngl-form-text\">We hate spam, too, and won&#8217;t give your email address to anyone <br />except Mailchimp to send out our Weekend Edition</p></div><div class=\"ngl-message-overlay\"><div class=\"ngl-message-svg-wrap\"><svg fill=\"none\" height=\"24\" stroke=\"#fff\" stroke-width=\"2\" viewBox=\"0 0 24 24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\"><polyline points=\"20 6 9 17 4 12\"></polyline></svg></div><div class=\"ngl-message-overlay-text\">Thanks for subscribing.</div></div><input id=\"ngl_list_id\" name=\"ngl_list_id\" type=\"hidden\" value=\"26f81bd8ae\" /><input id=\"ngl_double_optin\" name=\"ngl_double_optin\" type=\"hidden\" value=\"yes\" /></form>\n\n\n<hr class=\"wp-block-separator has-css-opacity is-style-wide\" />\n</section>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sat, 21 Jun 2025 00:40:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:18:\"Birgit Pauli-Haack\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:36;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:65:\"Gravatar: How to Build Trust Online With Professional Credibility\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:32:\"http://blog.gravatar.com/?p=3280\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:59:\"https://blog.gravatar.com/2025/06/20/building-trust-online/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:17008:\"<p>Here’s the deal: Every time you pop up online with a different headshot, a tweaked job title, or a bio that sounds like it was written by three different people on three different days, you’re not just being quirky. You’re quietly <em>chipping away</em> at your credibility.</p>\n\n\n\n<p>Those little inconsistencies create one big problem: Cognitive friction. And cognitive friction = second-guessing. Not ideal when you’re trying to win hearts, minds, or contracts.</p>\n\n\n\n<p>Unlike the good old days of handshakes and conference rooms, building trust online isn’t natural or automatic. It’s something you have to <em>design</em> carefully, deliberately, across every touchpoint where your name shows up.</p>\n\n\n\n<p>And if you’re new to the game without a reputation to fall back on? The stakes are even higher. </p>\n\n\n\n<p>But here’s the good news: Trust is buildable – and way more under your control than you think.</p>\n\n\n\n<p>In this guide, you’ll learn how to: </p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>centralize your online identity so you look polished and cohesive everywhere.</li>\n\n\n\n<li>use social proof like a pro to boost instant credibility.</li>\n\n\n\n<li>communicate authentically without feeling like you’re &#8220;branding&#8221; yourself to death.</li>\n</ul>\n\n\n\n<p>By the time we&#8217;re done, you&#8217;ll know exactly how to build a digital presence that feels genuine, trustworthy, and ready to convert curious visitors into loyal fans, wherever they find you.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Why professional credibility isn’t just “nice to have” anymore</h2>\n\n\n\n<p>Thinking professional credibility online is just about having a typo-free website and a decent logo is like saying a handshake is only about touching another person’s hand. Important, yes – but nowhere near the full story.</p>\n\n\n\n<p>Today, trust online demands way more than surface polish. It’s about creating a <em>coherent, recognizable presence</em> that follows you everywhere your audience might stumble across you.</p>\n\n\n\n<p>A <a href=\"https://eujournal.org/index.php/esj/article/view/17729\">January 2024 study</a> from the Digital Identity Institute nailed it down to four essentials:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Your <strong>identifiers</strong> (name, handle, URL).</li>\n\n\n\n<li>Your <strong>content</strong> (what you post and share).</li>\n\n\n\n<li>Your <strong>profile photos</strong> (how you visually show up).</li>\n\n\n\n<li>Your <strong>personal images</strong> (those behind-the-scenes moments that humanize you).</li>\n</ul>\n\n\n\n<p>Get these aligned? You’re golden. Mix them up? You undermine the very trust and credibility you’re aiming for.</p>\n\n\n\n<p>Every time someone jumps from your Twitter to your LinkedIn to your personal blog and spots a disconnect, a little voice whispers: <em>&#8220;Wait, is this even the same person?&#8221;</em></p>\n\n\n\n<p>Cue doubt. Cue hesitation. Cue lost opportunity.</p>\n\n\n\n<p>And just a heads-up: Your digital reputation isn’t <em>just</em> about what you put out there. It’s also:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>What people say about you on review sites.</li>\n\n\n\n<li>How (and whether) you respond to comments.</li>\n\n\n\n<li>Where your name pops up in industry chatter.</li>\n\n\n\n<li>Those forgotten forum posts from 2018 (yes, even the cringey ones).</li>\n</ul>\n\n\n\n<p>For newcomers, this can feel wildly overwhelming. But don’t panic – there’s a system for building trust that works whether you’re a total newbie or a seasoned pro.</p>\n\n\n\n<p>And it all starts with something deceptively simple: Making it <em>crystal clear</em> that it’s actually <em>you</em>, wherever you show up.</p>\n\n\n\n<p>Let’s dig into how to make that happen.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Establishing your verified identity online</h2>\n\n\n\n<p>Let’s talk about the sneaky tax no one warns you about: <strong>Digital fragmentation</strong>. </p>\n\n\n\n<p>Every time you spin up a new <a href=\"https://github.com/\">GitHub</a> profile, tweak your <a href=\"https://wordpress.com/\">WordPress.com</a> bio, or casually update your <a href=\"https://slack.com/\">Slack</a> status, you’re basically creating another branch of your professional identity.</p>\n\n\n\n<p>Each one demands attention; otherwise, it leaves behind tiny cracks in your credibility that clients will notice (even if they don’t realize it).</p>\n\n\n\n<p>Trust is built silently through strategic verification signals. Things like:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Verified email domains:</strong> Yourname@yourcompany.com trumps hotmaillegend1995@gmail.com (every time).</li>\n\n\n\n<li><strong>Consistent usernames:</strong> When &#8220;jane-smith-designer&#8221; shows up everywhere, recognition is effortless.</li>\n\n\n\n<li><strong>Linked professional accounts:</strong> Connecting your LinkedIn, Twitter, and portfolio into a neat trust web.</li>\n\n\n\n<li><strong>Visual continuity:</strong> That profile photo is important, it’s a visual anchor that screams &#8220;yep, this is me&#8221;.</li>\n</ul>\n\n\n\n<p>But the brutal truth is that keeping it all polished and synced can feel like a part-time job. And the longer you’re online, the more ancient breadcrumbs (and outdated bios) you scatter across the internet like digital confetti.</p>\n\n\n\n<p><strong>Enter Gravatar.</strong></p>\n\n\n\n<p>Instead of <em>another</em> profile to manage, <a href=\"https://gravatar.com/\">Gravatar is the solution</a> <em>to</em> profile management by connecting your professional identity to something you already use everywhere: Your email address.</p>\n\n\n\n<p>Gravatar becomes your single source of truth, rippling updated credibility across the web with zero extra work.</p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>How Gravatar keeps your digital identity (and sanity) intact</strong></h3>\n\n\n\n<p>Gravatar’s magic trick is simple but game-changing: <strong>Update once. Sync everywhere</strong></p>\n\n\n\n<p>Here’s how it works:</p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img alt=\"Gravatar profile example\" class=\"wp-image-3282\" height=\"774\" src=\"https://blog.gravatar.com/wp-content/uploads/2025/05/gravatar-profile.png?w=660\" width=\"660\" /></figure>\n</div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<ol class=\"wp-block-list\">\n<li>You sign up once using your email address.</li>\n\n\n\n<li>Gravatar then pushes your profile info – your headshot, your bio, your portfolio links – across any platform that has Gravatar integrated.</li>\n\n\n\n<li>Instantly recognizable. No manual updates. No weird gaps.</li>\n</ol>\n</div>\n</div>\n\n\n\n<div class=\"wp-block-spacer\" style=\"height: 20px;\"></div>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https://gravatar.com/connect/?gravatar_from=blog\"><img alt=\"\" class=\"wp-image-2616\" height=\"729\" src=\"https://blog.gravatar.com/wp-content/uploads/2024/12/free_profile_cta.png\" width=\"3243\" /></a></figure>\n\n\n\n<p>Gravatar plugs into heavy-hitters like:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https://wordpress.org/\"><strong>WordPress</strong></a> (hello, <a href=\"https://en-gb.wordpress.org/about/features/\">43% of the internet</a>)</li>\n\n\n\n<li><a href=\"https://github.com/\"><strong>GitHub</strong></a> (where devs prove their chops)</li>\n\n\n\n<li><a href=\"https://slack.com/\"><strong>Slack</strong></a> (where teams live)</li>\n\n\n\n<li><a href=\"https://openai.com/\"><strong>OpenAI</strong></a> (yep, even the AI world knows your face)</li>\n\n\n\n<li><a href=\"https://www.atlassian.com/\"><strong>Atlassian</strong></a><strong>, </strong><a href=\"https://www.figma.com/\"><strong>Figma</strong></a><strong>, </strong><a href=\"https://mailchimp.com/\"><strong>Mailchimp</strong></a><strong>, </strong><a href=\"https://stackoverflow.com/\"><strong>Stack Overflow</strong></a><strong>, </strong><a href=\"https://www.coinbase.com/\"><strong>Coinbase</strong></a> – and the list keeps growing</li>\n</ul>\n\n\n\n<p>It’s like a <a href=\"https://blog.gravatar.com/2024/11/08/creating-a-digital-business-card/\">digital business card</a>, but one that updates itself, multiplies itself, and hands itself out for you.</p>\n\n\n\n<p>When you update your Gravatar, you’re refreshing your professional image across a whole ecosystem without lifting another finger.</p>\n\n\n\n<p>And even on platforms that don’t plug directly into Gravatar (looking at you, X and Instagram), your Gravatar profile still works as a rock-solid <a href=\"https://blog.gravatar.com/2024/04/12/maximize-your-instagram-bio-the-top-tools-to-consider/\">bio link</a> destination. A central hub that confirms, &#8220;Yes, I’m legit.&#8221;</p>\n\n\n\n<p>Let’s get into how to set it up.</p>\n\n\n\n<h2 class=\"wp-block-heading\">How to showcase expertise that actually converts (not just impresses)</h2>\n\n\n\n<p>Having a verified, consistent digital identity is a great first step. But if you want to turn casual visitors into paying clients, you need more than legitimacy. You need to <em>flex</em> your expertise in ways that actually move people to act.</p>\n\n\n\n<p>Here’s the difference between professionals who quietly exist online and those who consistently <a href=\"https://www.business.com/articles/9-steps-to-lead-conversion-success/\">rack up conversions</a>: They don’t just <em>say</em> they’re good. They <em>prove</em> it – strategically.</p>\n\n\n\n<p>Here’s how to build serious trust <em>and</em> trigger buying decisions at the same time:</p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Content that builds (and measures) trust</strong></h3>\n\n\n\n<p>Not all content earns trust equally. Here are the formats that drive the biggest trust-to-conversion ROI:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Case studies with real results:</strong> Proving you&#8217;ve solved <em>this exact problem</em> before removes the risk for new clients.</li>\n\n\n\n<li><strong>Original research with downloadable assets:</strong> Publishing fresh findings no one else has? Authority unlocked (not to mention backlinks).</li>\n\n\n\n<li><strong>Video demonstrations:</strong> Watching you in action builds confidence <em>fast</em>.</li>\n\n\n\n<li><strong>Step-by-step tutorials:</strong> Breaking down complex processes shows mastery <em>and</em> your ability to guide others.</li>\n</ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Credentials that appear </strong><strong><em>exactly</em></strong><strong> where they matter</strong></h3>\n\n\n\n<p><em>Having</em> credentials is great, but <em>placing</em> them where they crush doubt is the difference.</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Certification logos</strong> near pricing tables instantly calm “Is this worth it?” nerves.</li>\n\n\n\n<li><strong>Industry awards</strong> on service pages make your premium offer feel like a no-brainer.</li>\n\n\n\n<li><strong>Testimonials</strong> right beside CTA buttons? Ideal for that final, reassuring nudge.</li>\n</ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Thought leadership that stands out (not blends in)</strong></h3>\n\n\n\n<p>Vanilla expertise doesn’t convert. You need a clear, memorable POV that plants your flag.</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Challenge industry norms</strong> (backed by real evidence, not just hot takes).</li>\n\n\n\n<li><strong>Create your own frameworks</strong> that only <em>you</em> offer.</li>\n\n\n\n<li><strong>Take thoughtful stands</strong> on key industry debates (without turning your audience into enemies).</li>\n</ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Trusted platforms that amplify your expertise</strong></h3>\n\n\n\n<p>Sometimes it’s not just what you say – it’s <em>where</em> you say it. That’s why Gravatar’s integrations create trust-by-proxy opportunities you can’t buy:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>WordPress comments:</strong> Your verified Gravatar shows up and instantly builds recognition.</li>\n\n\n\n<li><strong>GitHub contributions:</strong> Your Gravatar profile signals serious technical chops.</li>\n\n\n\n<li><strong>Slack communities:</strong> Your Gravatar credentials put you right inside trusted expert circles.</li>\n</ul>\n\n\n\n<p>Stack these strategies, and not only are you building a reputation, you’re removing every obstacle between curiosity and conversion. When prospects can instantly answer both <em>&#8220;Can they help me?&#8221;</em> and <em>&#8220;Can I trust them?&#8221;</em>, signing on becomes the obvious next step.</p>\n\n\n\n<p>Let’s move on to putting all of this into action.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Building trust through authentic communication</h2>\n\n\n\n<p>A fascinating <a href=\"https://pmc.ncbi.nlm.nih.gov/articles/PMC6961857/\">2020 University of Missouri study</a> found that <em>sharing the story behind why you do what you do</em> skyrockets your perceived authenticity.</p>\n\n\n\n<p>Turns out, people don’t just trust the expert with the most credentials. They trust the expert who lets them in on <em>why it matters</em> to them <em>personally</em>.</p>\n\n\n\n<p>In other words, explaining why you <em>care</em> can be just as powerful as proving you’re <em>qualified</em>.</p>\n\n\n\n<p>This research shatters the old-school myth that professional communication should stay cold, detached, and full of corporate buzzwords. Storytelling – real, personal, first-person storytelling – builds deeper trust than any third-person “Our team is passionate about solutions” fluff ever could.</p>\n\n\n\n<p>Here’s what that looks like in action:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>&#8220;I built this workflow after nearly burning out during my first agency job.&#8221; is more effective than &#8220;Our optimized workflow increases efficiency by 27%.”<br /></li>\n\n\n\n<li>&#8220;The software crashed on me three times before I figured out this workaround.&#8221; will win people over above &#8220;Our team has extensive troubleshooting experience.&#8221;</li>\n</ul>\n\n\n\n<p>See the difference? One makes you nod and feel something. The other makes you… skim.</p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>How Gravatar supercharges your authenticity</strong></h3>\n\n\n\n<p><a href=\"https://gravatar.com/\">Gravatar</a> is your secret weapon for broadcasting authenticity everywhere you show up. </p>\n\n\n\n<p>Inside your Gravatar profile, you’ve got space to tell the story:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The hurdles you’ve faced.</li>\n\n\n\n<li>The experiences that shaped your expertise.</li>\n\n\n\n<li>The <em>real reasons</em> behind what you do.</li>\n</ul>\n\n\n\n<p>And the beauty of this is you only have to do it once. Gravatar pushes that authentic narrative across every platform where your profile appears – so you’re building trust <em>automatically</em> without tailoring a new story for every single site.</p>\n\n\n\n<p>When you combine that authenticity signal with your hard-earned credentials, you create a full, irresistible trust picture: Qualified. Relatable. Human.</p>\n\n\n\n<p>Exactly what today’s clients are looking for. </p>\n\n\n\n<h2 class=\"wp-block-heading\">Create your Gravatar profile today and start boosting your professional credibility</h2>\n\n\n\n<p>If there’s one thing this guide has made crystal clear, it’s that <strong>consistency = credibility</strong>.</p>\n\n\n\n<p>When potential clients see the <em>same</em> professional presence across every platform, their trust barriers don’t just lower; they practically melt away.</p>\n\n\n\n<p>And that trust is what turns casual browsers into paying customers.</p>\n\n\n\n<p><a href=\"https://gravatar.com/\">Gravatar</a> solves the messy fragmentation that trips up even the savviest digital pros. Instead of chasing down a dozen outdated bios and rogue headshots, Gravatar syncs your professional image, links, and story across <em>hundreds </em>of platforms automatically.</p>\n\n\n\n<p>One update. Endless consistency. Zero stress.</p>\n\n\n\n<p>And it’s not just a time-saver. It’s a <em>trust amplifier </em>that strengthens everything you’ve worked to build. As we’ve seen, Gravatar:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Anchors</strong> your visual identity wherever you show up</li>\n\n\n\n<li><strong>Connects</strong> people directly to your best case studies, thought leadership, and portfolio</li>\n\n\n\n<li><strong>Tells</strong> your authentic professional story, not just your title</li>\n\n\n\n<li><strong>Reinforces</strong> every layer of social proof you’ve earned</li>\n</ul>\n\n\n\n<p>And the best part? Setting up your Gravatar profile takes <em>five minutes, </em>so <a href=\"https://gravatar.com/\">create your free Gravatar profile today</a> and start turning trust into conversions.</p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https://gravatar.com/connect/?gravatar_from=blog\"><img alt=\"\" class=\"wp-image-2616\" height=\"729\" src=\"https://blog.gravatar.com/wp-content/uploads/2024/12/free_profile_cta.png\" width=\"3243\" /></a></figure>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 20 Jun 2025 17:38:25 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:11:\"Ronnie Burt\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:37;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:84:\"Open Channels FM: Transparency, Community, and the Human Touch When Selling Products\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:32:\"https://openchannels.fm/?p=99083\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:86:\"https://openchannels.fm/transparency-community-and-the-human-touch-with-miriam-schwab/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:222:\"In this episode of \"Woo Product Chat,\" co-hosts James and Katie chat with Miriam Schwab from Elementor about transparency in software, community engagement, and the balance of openness while navigating business strategies.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 20 Jun 2025 09:56:48 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:38;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:65:\"Open Channels FM: The Value of Starting Over in the Tech Industry\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:47:\"https://openchannels.fm/?post_type=blog&p=97478\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:72:\"https://openchannels.fm/the-value-of-starting-over-in-the-tech-industry/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:151:\"A journey shows that success isn\'t a straight path. Embrace resilience, self-reflection, and the courage to reinvent yourself in a changing tech world.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 20 Jun 2025 08:28:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:39;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:84:\"WordPress.org blog: Dropping security updates for WordPress versions 4.1 through 4.6\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=18872\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:100:\"https://wordpress.org/news/2025/06/dropping-security-updates-for-wordpress-versions-4-1-through-4-6/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:1781:\"<p>As of July 2025, the WordPress Security Team will no longer provide security updates for WordPress versions 4.1 through 4.6.</p>\n\n\n\n<p>These versions were first released nine or more years ago and over 99% of WordPress installations run a more recent version. The chances this will affect your site, or sites, is very small.</p>\n\n\n\n<p>If you are unsure if you are running an up-to-date version of WordPress, please log in to your site’s dashboard. Out of date versions will display a notice that looks like this:</p>\n\n\n\n<figure class=\"wp-block-image size-full has-custom-border\"><img alt=\"Dashboard notice: &quot;WordPress 6.8.1 is available! Please update now.&quot;\" class=\"has-border-color has-luminous-vivid-amber-border-color wp-image-18873\" height=\"122\" src=\"https://i0.wp.com/wordpress.org/news/files/2022/09/WordPress-681-update-notice.png?resize=1048%2C122&#038;ssl=1\" width=\"1048\" /></figure>\n\n\n\n<p>The version you are running is displayed in the bottom of the “At a Glance” section of the dashboard.</p>\n\n\n\n<figure class=\"wp-block-image size-large has-custom-border\"><img alt=\"At a glance widget showing a site running WordPress 4.1.41\" class=\"has-border-color has-cyan-bluish-gray-border-color wp-image-18875\" height=\"281\" src=\"https://i0.wp.com/wordpress.org/news/files/2022/09/at-a-glance-wp-4141.png?resize=1024%2C281&#038;ssl=1\" width=\"1024\" /></figure>\n\n\n\n<p>As a reminder, the only <em>actively</em> supported version of WordPress is the most recent one. Security updates are only backported to older branches as a courtesy.</p>\n\n\n\n<p>The Make WordPress Security blog has further details about <a href=\"https://make.wordpress.org/security/2025/06/18/security-updates-will-cease-for-wordpress-versions-4-1-through-4-6/\">the process to end support</a>.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 19 Jun 2025 15:26:06 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:15:\"John Blackbourn\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:40;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:89:\"Felix Arntz: Migrating Your JavaScript Codebase to TypeScript with Cline &amp;amp; Gemini\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://felix-arntz.me/?p=2141\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:85:\"https://felix-arntz.me/blog/migrating-javascript-codebase-to-typescript-cline-gemini/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:16985:\"<p>I recently undertook a significant project: migrating the entire JavaScript codebase of my<a href=\"https://wordpress.org/plugins/ai-services/\"> AI Services plugin for WordPress</a> (<a href=\"https://github.com/felixarntz/ai-services\">GitHub repository</a>) to TypeScript.</p>\n\n\n\n<p>Why is that significant?</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>We&#8217;re talking about over 80 JavaScript files, so it’s by no means a small project. Not gigantic like e.g. Gutenberg, but certainly a substantial amount of code.</li>\n\n\n\n<li>Additionally, that JavaScript code is powering a plugin with a fairly unique feature set. This uniqueness often makes it harder for Large Language Models (LLMs) to assist, as there&#8217;s likely less similar code in their training data.</li>\n</ul>\n\n\n\n<p>The process taught me a lot about the synergy between a well-structured codebase and LLMs. It also strengthened my belief that, while an LLM isn&#8217;t magically going to solve complex development tasks for you, it can be a massive productivity booster when you prepare your project and guide it effectively.</p>\n\n\n\n<p>This post will walk you through how I used Cline in VS Code together with Google&#8217;s Gemini models to get it done efficiently and why I think this migration was worthwhile.</p>\n\n\n\n<span id=\"more-2141\"></span>\n\n\n\n<h2 class=\"wp-block-heading\">Why Bother with TypeScript? (Hint: LLMs Love Structure)</h2>\n\n\n\n<p>If you&#8217;re a developer who hasn&#8217;t yet embraced TypeScript, I get the hesitation. You might be annoyed by the seemingly verbose syntax, or perhaps you&#8217;ve heard that it slows down development. Let&#8217;s address those points.</p>\n\n\n\n<p>The idea that TypeScript slows you down couldn&#8217;t be further from the truth in the long run. Using TypeScript allows you to ship safer code by preventing many potential bugs during development that plain JavaScript would miss. This makes complex projects easier to understand and ultimately faster to iterate on. The only scenario where TypeScript might genuinely get in the way is with quick prototypes, especially when dealing with dependencies that aren&#8217;t typed. I&#8217;d argue this is the only case where sticking with plain JavaScript is more reasonable today.</p>\n\n\n\n<p>And if you&#8217;re turned away by the syntax? Don&#8217;t worry, I definitely was in the same boat myself. But after writing about five TypeScript files, I found it started to feel very natural.</p>\n\n\n\n<p>Beyond the general benefits, there&#8217;s a modern, compelling reason to adopt it: <strong>TypeScript provides structure, and LLMs thrive on structure.</strong> By providing the clear, explicit types of TypeScript, you give the LLM a much more detailed and unambiguous map of your codebase. This helps it understand context and your intent, leading to far more accurate and helpful suggestions.</p>\n\n\n\n<p>A few weeks ago, I posted on social media: “Learn TypeScript deeply.” And I truly think you should.</p>\n\n\n\n<div class=\"linkedin-embed\"></div>\n\n\n\n<h2 class=\"wp-block-heading\">My Migration Strategy: A Human-in-the-Loop Approach</h2>\n\n\n\n<p>My goal wasn&#8217;t to have an LLM do all the work, but to have it act as a super-powered assistant. I used<a href=\"https://cline.bot/\"> Cline</a> in VS Code, primarily with the Gemini 2.5 Pro model via the <a href=\"https://ai.google.dev/api\">Gemini API</a>. I&#8217;m a fan of Cline because of its customizability and its &#8220;Plan&#8221; vs. &#8220;Act&#8221; modes, through which you can force the model to collaborate with you on defining the approach before writing any code.</p>\n\n\n\n<p>Here&#8217;s the step-by-step process I followed.</p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1: Laying the Groundwork</h3>\n\n\n\n<p>Before letting the LLM loose, some manual preparation is essential.</p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Start with the Most Foundational Package:</strong> My plugin consists of several JavaScript packages. I began with the package that had no dependencies on the others. It’s crucial to migrate packages in order of their dependency graph.</li>\n\n\n\n<li><strong>Define Core Types Manually:</strong> This is the most critical manual step. I went through the foundational package and defined the core TypeScript types myself, e.g., in a types.ts file at the root of the package. While an LLM can sometimes help, doing this manually ensures accuracy and aligns the data structures perfectly with my intent.</li>\n\n\n\n<li><strong>Migrate a Few Files Yourself:</strong> I manually migrated 3-5 files to TypeScript. This served two purposes. First, it created &#8220;perfect&#8221; examples of my desired coding patterns—including code style, JSDoc comments, and variable naming. Second, it helped me get reacquainted with TypeScript within the specific context of this project.</li>\n</ol>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2: Defining the Workflow (and Relevant Rules)</h3>\n\n\n\n<p>To ensure consistency, I leveraged two key features: custom rules and reusable workflows.</p>\n\n\n\n<p>First, I established <strong>custom rules</strong> that define the TypeScript coding standards for the project. This helps the LLM generate code that is consistent with my best practices. This concept is supported by many AI code assistants, including Cline. As an example, you can see the<a href=\"https://github.com/felixarntz/ai-services/blob/main/.clinerules/coding-standards.md\"> coding standards I defined for the AI Services plugin here</a>.</p>\n\n\n\n<p>Next, I created a reusable prompt, which Cline calls a &#8220;workflow.&#8221; This saves me from re-typing a complex prompt for every single file. Here is the workflow I created, saved as <code><a href=\"https://github.com/felixarntz/ai-services/blob/main/.clinerules/workflows/migrate-typescript.md\">migrate-typescript.md</a></code>:</p>\n\n\n<pre class=\"wp-block-code alignwide\"><span><code class=\"hljs language-markdown shcb-wrap-lines\">You need to migrate specific JavaScript files to be valid TypeScript.\n\nConcretely, you need to migrate the JavaScript code in <span class=\"xml\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">file</span>&gt;</span></span> to TypeScript. There are three possible scenarios:\n<span class=\"hljs-bullet\">\n- </span>If the file is already using the extension <span class=\"hljs-code\">`.ts`</span> or <span class=\"hljs-code\">`.tsx`</span>, it may have already been renamed from <span class=\"hljs-code\">`.js`</span>. You MUST make the changes to migrate the code to TypeScript directly within the file.\n<span class=\"hljs-bullet\">- </span>Otherwise, if the file is using the extension <span class=\"hljs-code\">`.js`</span> and it contains React components (JSX), you must create a new file of the same name but with the <span class=\"hljs-code\">`.tsx`</span> extension and write the code migrated to TypeScript in there.\n<span class=\"hljs-bullet\">- </span>Otherwise, if the file is using the extension <span class=\"hljs-code\">`.js`</span> and it does not contain any JSX, you must create a new file of the same name but with the <span class=\"hljs-code\">`.ts`</span> extension and write the code migrated to TypeScript in there.\n\nFirst, use the <span class=\"hljs-code\">`read_file`</span> tool to collect sufficient relevant context. Some of the files the user may have already provided to you. In that case, DO NOT READ THEM AGAIN.\n<span class=\"hljs-bullet\">\n- </span>Search for <span class=\"hljs-code\">`tsconfig.json`</span>, <span class=\"hljs-code\">`.eslintrc.json`</span>, and <span class=\"hljs-code\">`.eslintrc.js`</span> files in the project root directory. Read all of them that you find, to know which TypeScript and TSDoc configuration requirements the migrated TypeScript code must follow.\n<span class=\"hljs-bullet\">- </span>Search the current directory and any parent directories <span class=\"hljs-emphasis\">_within_</span> the project for <span class=\"hljs-code\">`types.ts`</span> files. You MUST read all of these files to understand the project-specific types.\n<span class=\"hljs-bullet\">- </span>Look for other TypeScript files in the same directory or a sibling directory. Read 1-3 files to learn about the project-specific TypeScript conventions and best practices, e.g. regarding specific type imports, code style, documentation, or file structure.\n<span class=\"hljs-bullet\">    - </span>If you are writing a <span class=\"hljs-code\">`.ts`</span> file, you must ONLY consider existing <span class=\"hljs-code\">`.ts`</span> files for this contextual research.\n<span class=\"hljs-bullet\">    - </span>If you are writing a <span class=\"hljs-code\">`.tsx`</span> file, you must ONLY consider existing <span class=\"hljs-code\">`.tsx`</span> files for this contextual research.\n\nWith that context in mind, you MUST follow the following steps in order to migrate the <span class=\"xml\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">file</span>&gt;</span></span> to TypeScript:\n<span class=\"hljs-bullet\">\n1. </span>Migrate the JavaScript code from <span class=\"xml\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">file</span>&gt;</span></span> to TypeScript, following the patterns learned from ALL previous context.\n<span class=\"hljs-bullet\">    - </span>NEVER change any names, e.g. of variables or functions.\n<span class=\"hljs-bullet\">    - </span>NEVER change any logic.\n<span class=\"hljs-bullet\">    - </span>In addition to the TypeScript code itself, you MUST also ensure to update any JavaScript doc blocks to follow TSDoc syntax, according to project configuration.\n<span class=\"hljs-bullet\">    - </span>If any usage of the obsolete <span class=\"hljs-code\">`PropTypes`</span> (<span class=\"hljs-code\">`prop-types`</span>) is present, you MUST remove it. Using TypeScript itself is a sufficient replacement.\n<span class=\"hljs-bullet\">2. </span>Read the <span class=\"hljs-code\">`package.json`</span> file in the root directory to check which <span class=\"hljs-code\">`\"scripts\"`</span> are available. Identify any relevant lint, build, and format scripts, which you can use to verify whether the TypeScript code you wrote is accurate.\n<span class=\"hljs-bullet\">    - </span>To find the relevant lint script, look for names like \"lint-js\", \"lint-ts\", or \"lint\" for example.\n<span class=\"hljs-bullet\">    - </span>To find the relevant build script, look for names like \"build:dev\", or \"build\" for example.\n<span class=\"hljs-bullet\">    - </span>To find the relevant format script, look for names like \"format-js\", \"format-ts\", or \"format\" for example.\n<span class=\"hljs-bullet\">    - </span>Remember the exact names of these scripts that you found.\n<span class=\"hljs-bullet\">3. </span>If you found a relevant build script, RUN IT in the command line via NPM and check the output. Here is an example how to run it:\n<span class=\"hljs-bullet\">    - </span>If the script name is \"build\", execute <span class=\"hljs-code\">`npm run build`</span> in the command line.\n<span class=\"hljs-bullet\">4. </span>If the build script you ran reported TypeScript errors, inspect them carefully. Then review the TypeScript you wrote to see how you can fix the errors. Update the previously generated TypeScript code to fix the reported errors.\n<span class=\"hljs-bullet\">5. </span>If you found a relevant lint script, RUN IT in the command line via NPM and check the output. Here is an example how to run it:\n<span class=\"hljs-bullet\">    - </span>If the script name is \"lint-js\", execute <span class=\"hljs-code\">`npm run lint-js`</span> in the command line.\n<span class=\"hljs-bullet\">6. </span>If the lint script you ran reported errors, inspect them carefully.\n<span class=\"hljs-bullet\">    - </span>For any Prettier errors, DO NOT try to fix them manually. Instead, run the format script you previously found if one exists.\n<span class=\"hljs-bullet\">    - </span>For any errors other than Prettier, review the TypeScript you wrote to see how you can fix the errors. Update the previously generated TypeScript code to fix the reported errors.\n<span class=\"hljs-bullet\">7. </span>If you found a relevant build script before, RUN IT again and check the output. Afterwards, YOU MUST STOP.\n<span class=\"hljs-bullet\">    - </span>If the scripts no longer report TypeScript errors, all is well.\n<span class=\"hljs-bullet\">    - </span>If the scripts still report TypeScript errors, please share the feedback with the user, to let them decide on the next steps.</code></span></pre>\n\n\n<p>Note: You may wonder about common prompting best practices like “You are a senior web engineer” etc. being missing from this workflow. This is because Cline already has its own built-in system instruction, so adding something like that here would likely be unnecessary or even confusing. Keep in mind that this workflow runs in combination with any built-in system instructions from your tooling as well as any custom rules you defined.</p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 3: Executing the Migration, File by File</h3>\n\n\n\n<p>With the groundwork laid, I began the migration. I preferred to first manually rename a file from <code>.js</code> to <code>.ts</code> or <code>.tsx</code>. Then, I&#8217;d invoke my workflow in Cline like this:</p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">/migrate-typescript.md @src/ai/classes/browser-generative-ai-model.ts</code></span></pre>\n\n\n<p>By renaming the file first, Cline provides a convenient diff view against the original JavaScript code, making it much easier to spot changes. If I let the workflow create the new file, it would be treated as a brand-new file with no history to compare against.</p>\n\n\n\n<p>I started with the most capable model, <strong>Gemini 2.5 Pro</strong>. After confirming its quality, I experimented with the faster and cheaper <strong>Gemini 2.5 Flash</strong>. However, the results were notably worse, so I switched back to Pro. This highlights a key lesson: always start with the most powerful model available, and only downgrade if you can confirm it meets your quality bar for the specific task.</p>\n\n\n\n<p>While I&#8217;m using Cline, this approach should be adaptable to other tools like Cursor with only minor adjustments. As long as you can define custom rules and use reusable prompts (even if it&#8217;s just by copy-pasting), you can achieve similar results.</p>\n\n\n\n<h2 class=\"wp-block-heading\">The Results: Time, Cost, and Effort</h2>\n\n\n\n<p>So, was it worth it? Absolutely.</p>\n\n\n\n<p>My experience was that for some simpler files, Gemini got the migration 100% correct on the first try. For more complex files, I typically needed to spend 5-10 minutes on review and corrections. However, migrating those same files manually would have likely taken around 25-30 minutes each.</p>\n\n\n\n<p>Let&#8217;s talk numbers:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Total Cost:</strong> The entire migration of over 80 files cost me about $20 in Gemini API credits.</li>\n\n\n\n<li><strong>Time Spent:</strong> I spent approximately 3 hours on the migration, including setup, execution, and review.</li>\n\n\n\n<li><strong>Estimated Time Saved:</strong> I estimate that doing this manually would have taken at least 8 hours.</li>\n</ul>\n\n\n\n<p><strong>Spending $20 to save 5 hours of focused development work is a trade I will happily make any day.</strong> And beyond that, now I have a reusable workflow that I can use to do the same for my other existing projects in the future.</p>\n\n\n\n<p>Last but not least, LLMs will only get better with time. If you notice that the results you get for your use-case are rather poor even though you’ve set up the project and prompts in an ideal way, don’t give up for good. It can certainly be frustrating, but there’s a good chance that in a few months, or even a few weeks, the latest LLM will do better. And always keep in mind that the LLM is there to help you, not to replace you.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Questions &amp; Feedback</h2>\n\n\n\n<p>This project was a powerful demonstration of how to partner with an LLM effectively. It underscores that the role of the developer is shifting—we are not just writers of code, but also architects of systems and directors of our LLM assistants.</p>\n\n\n\n<p>That said, I&#8217;m always learning.</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>I am by no means a TypeScript expert. If you are, you may find code patterns in the AI Services codebase that you consider suboptimal. Please<a href=\"https://github.com/felixarntz/ai-services\"> let me know in the repository</a>!</li>\n\n\n\n<li>Obviously, when it comes to using LLMs for code assistance, the field is changing daily. If you&#8217;ve found success with other approaches or if your efforts have mostly led to disappointment, I&#8217;d love to hear from you and learn from your experiences in the comments below.</li>\n</ul>\n<p>The post <a href=\"https://felix-arntz.me/blog/migrating-javascript-codebase-to-typescript-cline-gemini/\">Migrating Your JavaScript Codebase to TypeScript with Cline &amp; Gemini</a> appeared first on <a href=\"https://felix-arntz.me\">felix-arntz.me</a>.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 19 Jun 2025 13:48:55 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"Felix\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:41;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:40:\"Matt: Alfred-like Shortcuts in Spotlight\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=143388\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:41:\"https://ma.tt/2025/06/macos-26-spotlight/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4211:\"<p>I&#8217;ve been testing the developer previews of all the new Apple 26 operating systems, which I don&#8217;t recommend this early in the cycle, but I like to live dangerously. I&#8217;ve quickly become accustomed to Liquid Glass. The iPad windowing enhancements do make it feel more like a real computer, but I usually run things in full-screen mode. My favorite thing to play with so far has been the new Spotlight (what pops up when you press Command + Space) and related shortcuts.</p>\n\n\n\n<p>I loved <a href=\"https://www.alfredapp.com/\">Alfred</a>, I tried <a href=\"https://www.raycast.com/\">Raycast</a>, but a general life goal this year is to simplify wherever I can, so I&#8217;ve been exploring the enhancements in the new Spotlight.</p>\n\n\n\n<p>What I&#8217;ve found the most useful in the past is <a href=\"https://www.alfredapp.com/help/workflows/actions/open-url/\">Alfred&#8217;s Open URL Action</a>, which basically lets you type something like &#8220;gm united reservation&#8221; and it translates that into opening a Gmail search in your browser, with &#8220;united reservation&#8221; put in the URL in the right place to run a search.</p>\n\n\n\n<p>The Shortcuts app in MacOS and iOS is amazing, which I&#8217;ve always known, but I haven&#8217;t played with it much. This was my chance! After a bit of tinkering, I got it to pop up an input form and then run the search. <a href=\"https://www.google.com/search?q=macos+26+shortcuts+%22receive+input+from+search%22\">I Googled a lot to see if it could take input</a> from the Spotlight search bar and every place said no, I&#8217;m not sure if this is new in MacOS 26 or not but I found the button that makes it work. It&#8217;s not as smooth as Alfred, but it&#8217;s pretty decent. I&#8217;m going to share a screenshot that shows my Gmail search shortcut that takes input from Spotlight — the key breakthrough was clicking the (i) menu on the right and finding the checkbox for &#8220;Receive Input from Search.&#8221;</p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img alt=\"\" class=\"wp-image-143391\" height=\"309\" src=\"https://i0.wp.com/ma.tt/files/2025/06/gmail-shortcut-1024x524.jpeg?resize=604%2C309&#038;quality=89&#038;ssl=1\" width=\"604\" /></figure>\n\n\n\n<p>I gave it a &#8220;gm&#8221; hotkey, pressed enter, and you get this in Spotlight.</p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img alt=\"\" class=\"wp-image-143395\" height=\"122\" src=\"https://i0.wp.com/ma.tt/files/2025/06/spotlight-with-shortcut-1024x207.png?resize=604%2C122&#038;quality=80&#038;ssl=1\" width=\"604\" /></figure>\n\n\n\n<p class=\"is-style-default\">Tada! Not as nice as Alfred but it gets the job done. My other shortcuts that people might find useful are LI for LinkedIn search, PY is Perplexity, YT for searching the history of YouTube videos I&#8217;ve watched, and AM for searching my Amazon order history. (Because I&#8217;m usually trying to find a link for something I&#8217;m recommending, or re-order an item.) Here are the search URLs for everything I&#8217;ve mentioned:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https://mail.google.com/mail/u/3/#search/\">https://mail.google.com/mail/u/0/#search/</a> (If you have multiple Google accounts, change the number in the URL to go to the one you want, and then login in that same order every time.)</li>\n\n\n\n<li><a href=\"https://www.linkedin.com/search/results/index/?keywords=\">https://www.linkedin.com/search/results/index/?keywords=</a></li>\n\n\n\n<li><a href=\"https://www.perplexity.ai/search/\">https://www.perplexity.ai/search/</a></li>\n\n\n\n<li><a href=\"https://www.youtube.com/feed/history?query=\">https://www.youtube.com/feed/history?query=</a></li>\n\n\n\n<li><a href=\"https://www.amazon.com/your-orders/search/?search=\">https://www.amazon.com/your-orders/search/?search=</a></li>\n</ul>\n\n\n\n<p>If you dug this, did you know WordPress also has a cool popup shortcut feature?<a href=\"https://wordpress.org/documentation/article/site-editor-command-palette/\"> In 2023, we introduced the Command Palette in the Gutenberg block editor and site editor</a>. To access it on Mac, you press Command + k. I&#8217;d like to bring it to every admin page so it can function more like Spotlight or Raycast for WordPress.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 18 Jun 2025 16:55:25 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"Matt\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:42;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:76:\"WPTavern: #173 – Tom Willmot and Jon Ang on Building a Global Bank Website\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:48:\"https://wptavern.com/?post_type=podcast&p=196672\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:89:\"https://wptavern.com/podcast/173-tom-wilmot-and-jon-ang-on-building-a-global-bank-website\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:57580:\"<details>Transcript<div>\n<p>[00:00:19] <strong>Nathan Wrigley:</strong> Welcome to the Jukebox Podcast from WP Tavern. My name is Nathan Wrigley.</p>\n\n\n\n<p>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 Human Made have built WordPress at the scale of a global bank.</p>\n\n\n\n<p>If you&#8217;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/feed/podcast, and you can copy that URL into most podcast players.</p>\n\n\n\n<p>If you have a topic that you&#8217;d like us to feature on the podcast, I&#8217;m keen to hear from you and hopefully get you, or your idea, featured on the show. Head to wptavern.com/contact/jukebox, and use the form there.</p>\n\n\n\n<p>So on the podcast today, we have Tom Willmot and Jon Ang.</p>\n\n\n\n<p>Tom is the co-founder of Human Made, an enterprise WordPress agency that&#8217;s been pushing the boundaries of what WordPress can do since its inception. Jon is also with Human Made, and together they bring a huge amount of experience working with major clients on large scale projects.</p>\n\n\n\n<p>At this year&#8217;s WordCamp Europe in Basel, they presented a case study, their long-term, continually evolving work, with the global banking giant Standard Chartered. Most listeners might not be working at the scale of 85,000 employees, 70 countries, and hundreds of millions of page views a month, but Tom and Jon are here to share insights from the top end of WordPress implementation.</p>\n\n\n\n<p>They explain how Human Made helped Standard Chartered shift from a proprietary CMS lock-in, to a flexible, open source Gutenberg powered WordPress solution that serves as the main web platform for the bank across all its markets.</p>\n\n\n\n<p>We talk about the unique compliance and security challenges of working in the banking sector. What it takes to persuade giant enterprises that WordPress is not a toy, and how to support hundreds of CMS users with custom workflows and integrations.</p>\n\n\n\n<p>Tom and Jon discussed the specifics of scaling WordPress for the enterprise, from accessibility and multilingual setups, to custom block development, and real time collaborative editing. We also hear how Human Made works with clients to contribute innovations and security improvements back to the WordPress community, ensuring that lessons learned at the enterprise level benefit everyone.</p>\n\n\n\n<p>If you&#8217;re curious about how WordPress powers mission critical web infrastructure for some of the world&#8217;s biggest organizations, or how you might pitch WordPress for enterprise use, this episode is for you.</p>\n\n\n\n<p>If you&#8217;re interested in finding out more, you can find all of the links in the show notes by heading to wptavern.com/podcast, where you&#8217;ll find all the other episodes as well.</p>\n\n\n\n<p>And so without further delay, I bring you Tom Willmot and Jon Ang.</p>\n\n\n\n<p>I am joined on the podcast today by two fabulous guests. I have Tom Willmot and Jon Ang. Hello both.</p>\n\n\n\n<p>[00:03:32] <strong>Tom Willmot:</strong> It&#8217;s great to be here.</p>\n\n\n\n<p>[00:03:33] <strong>Jon Ang:</strong> Hello.</p>\n\n\n\n<p>[00:03:34] <strong>Nathan Wrigley:</strong> This is my first interview at WordCamp Europe in, I want to say Basel, but I still don&#8217;t know how to pronounce it. Let&#8217;s go with that.</p>\n\n\n\n<p>[00:03:41] <strong>Tom Willmot:</strong> I mean, I think it&#8217;s Basel.</p>\n\n\n\n<p>[00:03:42] <strong>Nathan Wrigley:</strong> Yeah, okay, we&#8217;ll go with that. And we&#8217;re here today talking to Tom and Jon all about an interesting project, which I want to say they&#8217;ve just completed, but I&#8217;m not sure that&#8217;s the right word.</p>\n\n\n\n<p>They&#8217;re doing a presentation at WordCamp Europe and it&#8217;s all about a project for a bank, and a very large bank I might add. Standard Chartered, you may have heard of it, you may not. But that&#8217;s the presentation. I&#8217;m guessing you haven&#8217;t done it because we&#8217;re still in Contrib day, but are you all prepared and ready?</p>\n\n\n\n<p>[00:04:06] <strong>Tom Willmot:</strong> I think we&#8217;re pretty prepared. When did you submit the slides, Jon?</p>\n\n\n\n<p>[00:04:09] <strong>Jon Ang:</strong> Just submitted it 10 minutes ago, so I think we&#8217;re good. But it&#8217;s been revised multiple times, yeah. I&#8217;m fairly certain that it&#8217;s going to be quite interesting.</p>\n\n\n\n<p>[00:04:16] <strong>Tom Willmot:</strong> I mean, one of the challenges actually of doing a presentation about a bank is you have to double check that you&#8217;re allowed to say everything that we&#8217;re going to say.</p>\n\n\n\n<p>[00:04:23] <strong>Nathan Wrigley:</strong> So we&#8217;re going to be editing this heavily.</p>\n\n\n\n<p>[00:04:25] <strong>Tom Willmot:</strong> Yeah, potentially.</p>\n\n\n\n<p>[00:04:26] <strong>Nathan Wrigley:</strong> So Standard Chartered is a very large bank. WordPress is obviously a CMS, which allows us to create websites for these banks. But let&#8217;s talk about the whole story. These are not new clients of yours, or they are new clients of yours. How long have you been working with them?</p>\n\n\n\n<p>[00:04:39] <strong>Tom Willmot:</strong> No, I mean, this has been a relationship that we&#8217;ve had since 2016. So, yeah, this is a long term client. These projects are not really like the project starts and the project finishes. We got involved working with them, yeah, back then there was an early prototype that turns into more stuff, that turns into more stuff. And we&#8217;ve been building and iterating and evolving the platform for nearly 10 years.</p>\n\n\n\n<p>[00:04:59] <strong>Nathan Wrigley:</strong> Prior to us hitting record, I will have recorded a preamble saying who both of you are. But just in case you&#8217;ve dipped into the podcast right now, you&#8217;re both with Human Made. My understanding, Tom, is that this was something that you are the founder of.</p>\n\n\n\n<p>[00:05:12] <strong>Tom Willmot:</strong> Yeah, I&#8217;m the co-founder. Me and my, actually my brother Joe, which a lot of people don&#8217;t know, co-founded the company together, and then Noel joined a year, in so that we are the three founders.</p>\n\n\n\n<p>[00:05:21] <strong>Nathan Wrigley:</strong> And I guess it&#8217;s fair to categorise you as, maybe this is something that you don&#8217;t like the sound of, I don&#8217;t know, an enterprise WordPress agency.</p>\n\n\n\n<p>[00:05:27] <strong>Tom Willmot:</strong> Yeah, for sure. We&#8217;ve been focused on like WordPress at the high end, since the beginning. We were always interested in like, what&#8217;s the biggest stuff that WordPress is possibly being used for and how can we get involved in that?</p>\n\n\n\n<p>[00:05:38] <strong>Nathan Wrigley:</strong> And I guess you must have some kudos, credentials, now which enable you to open doors like the Standard Chartered door, in a way that nathanwrigley.com, that&#8217;s probably not going to happen.</p>\n\n\n\n<p>[00:05:48] <strong>Tom Willmot:</strong> I mean, we&#8217;ve got a history now of doing that kind of work and so that helps.</p>\n\n\n\n<p>[00:05:52] <strong>Nathan Wrigley:</strong> So tell us about this client then. Just paint the backstory. Who are they? What do they do? I guess what we&#8217;re trying to do is build a picture of just how massive a project this is. Because working for a bank, I imagine there&#8217;s lots of t&#8217;s to cross and i&#8217;s to dot.</p>\n\n\n\n<p>[00:06:06] <strong>Jon Ang:</strong> Yeah, they&#8217;re a global bank inside about 70 countries, hovering around to 150 markets. I think about 85,000 employees worldwide. So out of those, there&#8217;s maybe, and it&#8217;s a bit of a intro into what we see in our slides, but 500 employees that&#8217;s using the backend on a day-to-day to publish.</p>\n\n\n\n<p>So think of them working with the monetary authorities of each country that is governing how a website should function for a bank that has all of this running with the staff, figuring that out, and us providing the platform for them to stay compliant, and continue to be a agile in a way of what they&#8217;re publishing every day.</p>\n\n\n\n<p>I think that&#8217;s a bit of what Standard Chartered is like. They are, I think, a bank that started in 1800&#8217;s, and has a pretty massive presence in Asia Pacific, particularly I think Singapore and Hong Kong. Started from the UK a long time ago.</p>\n\n\n\n<p>[00:06:59] <strong>Nathan Wrigley:</strong> Yeah, it&#8217;s got a lot of heritage, hasn&#8217;t it? There are banks which are popping up all over the place at the moment, but there are still a few holding on that have been there for literally centuries. And this is a name which is very familiar to me. And whenever I&#8217;ve traveled throughout the world, there&#8217;s always some presence there. They&#8217;re big, essentially. This is not a child&#8217;s play website. You can&#8217;t throw this together in a matter of weeks. This is a big deal.</p>\n\n\n\n<p>[00:07:19] <strong>Tom Willmot:</strong> And I mean, you know, they&#8217;re a big company and it&#8217;s a big name, there&#8217;s a lot of employees. I think also what&#8217;s interesting is that their use of WordPress is also big. So they&#8217;re not just using WordPress for a campaign mini site or their corporate comms department. This is like the primary web platform for Standard Chartered across all those countries, including sc.com, Wealth Banking. I think something like 95 plus percent of all web traffic goes through WordPress.</p>\n\n\n\n<p>[00:07:44] <strong>Nathan Wrigley:</strong> Just to paint a picture of that, so it&#8217;s a website though, we&#8217;re not dealing with the sort of transaction data. You know, if you&#8217;re a customer of Standard Chartered, WordPress is not handling the money going from one account to another. This is the sort of front end, public facing website, I&#8217;m guessing.</p>\n\n\n\n<p>[00:07:57] <strong>Tom Willmot:</strong> Yeah, we&#8217;ve not got like a dollars custom post type.</p>\n\n\n\n<p>[00:08:00] <strong>Nathan Wrigley:</strong> So paint a picture of just how big they are. So they&#8217;ve been going for a couple of centuries. You mentioned that, I think 2015, you built this relationship. You&#8217;ve been working with them in an agile way since then.</p>\n\n\n\n<p>Do you have any metrics in terms of, I don&#8217;t know, the amount of traffic that the website is currently having? The number of locales? I think you touched on that a little while ago. Number of users? And then I&#8217;ve got this fourth one that I&#8217;ll come to in a minute. So let&#8217;s hit traffic first. Do you have any idea of the amount of petabytes or terabytes of data that are flying around just for this website?</p>\n\n\n\n<p>[00:08:28] <strong>Jon Ang:</strong> I don&#8217;t have the petabytes, we&#8217;re talking about like hundreds of millions of page views per month. Like, that&#8217;s the kind of traffic that they&#8217;re getting. Your previous question around, so like it&#8217;s not quite hitting the dollars amounts, like, how much do I have in my savings account? But there is a lot of work passing, let&#8217;s say account signup information from the front end to the back end stuff that we do on that front as well. So it does work on some fairly critical pieces too on the banking website, it&#8217;s not just the marketing setup.</p>\n\n\n\n<p>[00:08:56] <strong>Tom Willmot:</strong> Yeah, like for example, when you use the internet banking mobile apps, all of the customer messaging there comes from the WordPress CMS.</p>\n\n\n\n<p>[00:09:04] <strong>Nathan Wrigley:</strong> Wow, okay. So lots and lots of data flying around. Some fairly critical components where you have to be absolutely a hundred percent sure that you&#8217;ve got the bulletproof security. In terms of the number of users, what was that? Did you say 500?</p>\n\n\n\n<p>[00:09:17] <strong>Tom Willmot:</strong> Around 500 in the CMS, at any one time. I mean, that&#8217;s kind of interesting. There&#8217;s like a central global team that manage like brand governance and all of that. And then each country has their own country level marketing team across like 150 markets or something.</p>\n\n\n\n<p>[00:09:32] <strong>Nathan Wrigley:</strong> And when you say the 150 markets, does that translate into 150 different languages as well? I&#8217;m guessing languages, there&#8217;s a fairly large component there.</p>\n\n\n\n<p>[00:09:40] <strong>Jon Ang:</strong> I think there&#8217;s about 30 separate languages in there. So around that, 150 markets is split into what we call retail banking and non retail. So retail banking are regular things that you and I would do. We go into the bank, we get a credit card set up, we withdraw cash. And then non retail will be like investors, people who are interested in big money. So those are the like individual markets they work in. And across that, 150 markets, 70 countries, 500 plus users, doing this on a day-to-day basis.</p>\n\n\n\n<p>[00:10:09] <strong>Nathan Wrigley:</strong> These are all genuinely eye watering numbers actually. They just come out of your mouth like they&#8217;re nothing. But if you actually pause for a moment and consider it, they&#8217;re breathtaking. You really are pushing what is possible.</p>\n\n\n\n<p>I mean, I&#8217;m sure there&#8217;s websites out there which exceed that, but getting onto compliance, which is going to be my next question. There can&#8217;t be an industry where compliance is more important than banking, I mean, maybe there is, but it feels like banking and compliance. And you&#8217;ve got how many countries? 70 odd countries, each of those with a different set of criteria for compliance. Just open that box a little bit. I mean, that must have been fun.</p>\n\n\n\n<p>[00:10:46] <strong>Jon Ang:</strong> So think of it as every country has some sort of monetary authority that governs the banks. So you&#8217;ve got that monetary authority that sets this bunch of rules that you&#8217;ve got to follow. Then they&#8217;ve got pretty much an association of banks in a specific country that listens to that. And below that you&#8217;ve got the banks that have to obey all these rules. And then we have to talk to all three organisations in every single country that&#8217;s out there that wants to use our CMS. So that&#8217;s basically it.</p>\n\n\n\n<p>And obviously this did not start in 2016, or at once. But across time, all of these individual countries that need to use the CMS has gone through the process, and talked to us, and we&#8217;ve gone through making it work for them. And pretty much every single country has their own set of rules. But the idea of good compliance, good governance, good security, is rooted in good practices. So it&#8217;s not that we&#8217;re trying these things every single time fresh, you know?</p>\n\n\n\n<p>[00:11:43] <strong>Nathan Wrigley:</strong> Given that you are working with one company, so Standard Chartered is obviously spread out amongst all these different countries, does that make that piece a little bit easier? So Standard Chartered to take care of the compliance. Do they give you the documentation, you sign it off? Because if you were to work with 70 different companies in 70 different countries, that&#8217;s your entire project grinding to a halt, I imagine.</p>\n\n\n\n<p>So do they come to you with their lawyers and say, if you can satisfy this stack of requirements, we are good to go?</p>\n\n\n\n<p>[00:12:08] <strong>Jon Ang:</strong> It&#8217;s a bit of that but it&#8217;s also, it&#8217;s 85,000 employees. And these regulations, they change on a regular basis. And it&#8217;s not like, you pass it on day one, you&#8217;re going to pass it on day a hundred again. They might come back and say, oh, there&#8217;s something new that we have to talk to you about. And they might not know actually how to pass this, because it&#8217;s their first time dealing with this as well.</p>\n\n\n\n<p>So there&#8217;s a lot of discussions and collaboration, I guess, between Human Made and Standard Chartered. There is a central team that we work with, but they are fairly open on figuring this out with us. We work together to get through these regulations.</p>\n\n\n\n<p>[00:12:40] <strong>Tom Willmot:</strong> Something else I think that&#8217;s worth mentioning is there&#8217;s also industry compliance regulation. And so I think we&#8217;re probably the only WordPress agency with the OSPAR compliance, which is the kind of banking industry, digital compliance process which took I think maybe a year for us to go through that process. We were audited by Deloitte, and then they sign you off. And so that helps a lot because it&#8217;s like, once you&#8217;ve got that sign off, then the bank can kind of trust that most of what you&#8217;re doing meets their compliance.</p>\n\n\n\n<p>[00:13:04] <strong>Nathan Wrigley:</strong> So did you do that in order to prize the door open to the financial sector, or did you do that so that Standard Chartered could come on?</p>\n\n\n\n<p>[00:13:12] <strong>Tom Willmot:</strong> Yeah, actually did that fairly late into working with Standard Chartered. They were able to, it goes back to there&#8217;s like 85,000 employees, there&#8217;s a lot of internal politics and stuff too, as one can imagine. And so we were able to avoid needing to meet that highest level of compliance for the first few years.</p>\n\n\n\n<p>[00:13:29] <strong>Nathan Wrigley:</strong> And I&#8217;m guessing that was not a toy. I imagine that that was a fairly serious piece of paperwork.</p>\n\n\n\n<p>[00:13:34] <strong>Tom Willmot:</strong> For sure. I think it cost us like a hundred grand.</p>\n\n\n\n<p>[00:13:36] <strong>Nathan Wrigley:</strong> We&#8217;re at WordCamp EU, and if we were to walk out those doors, we&#8217;re surrounded by all manner of different people using WordPress. Some of them may be freelancers, they&#8217;ve got a couple of websites. And then at the other end of the spectrum, there&#8217;s you guys. How easy is it to convince a company like Standard Chartered that WordPress is not a toy?</p>\n\n\n\n<p>[00:13:54] <strong>Tom Willmot:</strong> I mean, it&#8217;s an interesting question because obviously we started talking to Standard Chartered in 2016, so that&#8217;s a long time ago. In the context of this question, back then the concerns were much more around scalability and security and performance. Actually, that one of the big hurdles that we faced to begin with is there really just weren&#8217;t examples of companies of that size using WordPress as their primary CMS in the way that Standard Chartered wanted to use it.</p>\n\n\n\n<p>And so when they would come to the ecosystem and say, show us the biggest people using WordPress, and we would say, oh, PlayStation use it for their blog, or Skype use it for their blog. And so they had some big names, but they used it for small stuff. And so that was kind of a problem because Standard Chartered were like, well, we don&#8217;t want to move our blog to it. We are talking about making it the primary CMS of the bank that we&#8217;re going to mandate every employee use for the next 10 years. How can we trust that WordPress is up to the task?</p>\n\n\n\n<p>[00:14:42] <strong>Nathan Wrigley:</strong> So did you have to saddle that burden as a company then? So it wasn&#8217;t leaning into, okay, that agency over there built that thing and we can sort of say, okay, that&#8217;s WordPress, and there&#8217;s another agency over there that built that. So did you have to do the job of convincing?</p>\n\n\n\n<p>[00:14:56] <strong>Tom Willmot:</strong> Yeah, yeah, we just went for it. We were just like, of course WordPress can do this. I mean, the big thing that helped was that they had an internal senior stakeholder that really wanted WordPress. And so that meant we could work with him to figure out, you know, how do we satisfy the concerns of the bank? How do we sell this in the way it needs to be sold in? That was really much more common, especially back then. WordPress wasn&#8217;t in the conversations unless somebody internally wanted it, and then they would do the work.</p>\n\n\n\n<p>[00:15:22] <strong>Nathan Wrigley:</strong> That&#8217;s an interesting bit of serendipity. There&#8217;s this one character in the company who potentially was the route in.</p>\n\n\n\n<p>[00:15:29] <strong>Tom Willmot:</strong> Yeah, and that&#8217;s, almost every big project we did back then, there was some internal champion that had fought the fight to get it taken seriously. And then we could come with the data and the expertise to back up what they were saying.</p>\n\n\n\n<p>These days, that&#8217;s definitely changed. Now WordPress just is in the conversation. Which CMS should we move to? WordPress is going to be the one that&#8217;s considered. And so that&#8217;s much easier.</p>\n\n\n\n<p>[00:15:48] <strong>Nathan Wrigley:</strong> Is it? Do you not have to do any persuasion anymore?</p>\n\n\n\n<p>[00:15:50] <strong>Tom Willmot:</strong> Not as much. I mean, you&#8217;d be surprised. These days WordPress is seen as more secure in the enterprise level. Like, open source generally is seen as more secure than proprietary often. And so that can actually be an advantage.</p>\n\n\n\n<p>[00:16:00] <strong>Nathan Wrigley:</strong> That&#8217;s fascinating because my next question was exactly that. How do these big companies view an open source platform? Because it&#8217;s not like, I use the analogy sometimes, it&#8217;s not like they have the bat phone. There&#8217;s no person that they can immediately contact and say, we have something that&#8217;s broken, we need Core to be fixed. There is no bat phone.</p>\n\n\n\n<p>And I would&#8217;ve thought, do you remember when, I think it was Log4j or something, there was this thing, maybe it was in 2019 or something like that, and there were all these pictures of this edifice held up by one Lego brick and that person, do you remember?</p>\n\n\n\n<p>And that was all about the bat phone. We have nobody to contact to get this done. And I would&#8217;ve thought that would still be an obstacle and a difficult conversation to have. But maybe it&#8217;s just the rock solid nature of Core that kind of allows you to sidestep that.</p>\n\n\n\n<p>[00:16:44] <strong>Tom Willmot:</strong> I mean there are just so many big examples now of WordPress being used that it&#8217;s, people will still have some of these concerns. Maybe they still have an idea that WordPress is not used for serious stuff. But then you just show them the huge list of like NASA, the White House, Standard Chartered, the New York Times. You just show them all of these brands, that helps.</p>\n\n\n\n<p>[00:17:00] <strong>Jon Ang:</strong> I think there&#8217;s also a bit of that where, we mentioned that Standard Chartered had a senior stakeholder that really wanted WordPress because he&#8217;s used it, he likes it. The difference it makes against proprietary, very large CMSs. I think even right now you continue to have these people become senior stakeholders, to become CTOs of major companies. They&#8217;ve used WordPress maybe in their personal life as well, and they&#8217;re thinking, why wouldn&#8217;t I make this easier for the rest of my team? Why wouldn&#8217;t I make this easier for the rest of the world, and use something that&#8217;s good?</p>\n\n\n\n<p>So there&#8217;s a lot of people coming to these spaces, into these roles that could say, yeah, let&#8217;s look at WordPress and figure it out. And just going back into what you were asking around, who did they co-op? I think this is one part, like, so we mentioned we&#8217;ve got this OSPAR compliance. We&#8217;ve probably gotten our SOC2 compliance as well. And we&#8217;re probably the only agency in the world, well, only WordPress agency in the world that has SOC2 as part of our setup.</p>\n\n\n\n<p>They look at these things and did something that someone like Human Made is able to support them. You know, even if we are not WordPress support. We are their platform support. And WordPress is part of it. WordPress is what we do. But they call Human Made, I guess, to help them fix things, yeah.</p>\n\n\n\n<p>[00:18:07] <strong>Nathan Wrigley:</strong> When you are, and I know this hasn&#8217;t been a pitching process as such, because you&#8217;ve been working with them for a decade or more, but do you ever lean into the whole, no vendor lock-in thing? Is that something that you big up or something that you sort of push to one side? Because obviously you would like to have them as a client forever more, but equally suggesting that, look, if some time down the road, you know, it&#8217;s not working out between us, that&#8217;s a really credible selling point of the CMS. But equally it might not be something that you wish to mention.</p>\n\n\n\n<p>[00:18:37] <strong>Jon Ang:</strong> That is actually something we mention in almost every single one of our sales stacks, that we are not there to lock you in. By using WordPress, by working with Human Made, we make everything possible for you to move away if you ever wanted to in the future. And it might be that you still stay with WordPress, but maybe Human Made is not the company you want to work with in the future, that&#8217;s fine.</p>\n\n\n\n<p>But your entire platform remains open source. It remains portable, remains yours. And that&#8217;s something we&#8217;re very serious about, to the point that like we have worked with large Fortune 500s to open source what we&#8217;ve built for them, so that it could be maintained beyond Human Made, so that their team could continue to work on it, to extend that into their own product.</p>\n\n\n\n<p>And that&#8217;s something that I think is built into our DNA. As part of this, the banks, this Fortune 500s, they believe in this and therefore they don&#8217;t feel locked in, and therefore they feel more compelled to invest in it. Yeah, I think that&#8217;s a lot of that.</p>\n\n\n\n<p>[00:19:35] <strong>Nathan Wrigley:</strong> I have this impression, and this is really nothing to do with this conversation. I haven&#8217;t even written it down. But there seems to be a push towards this open banking standard. I don&#8217;t really know much about it, but there seems to be a push to make banking transactions a much more open protocol as well. So that&#8217;s kind of a curious overlap.</p>\n\n\n\n<p>[00:19:50] <strong>Tom Willmot:</strong> I mean, I think there is just, the trends over the last decade have been in open source&#8217;s favor, right? That people, we&#8217;re going to talk a bit about this again in our talk, but there&#8217;s, I&#8217;ve now, as a bank, been through multiple decades of being locked into proprietary platforms, I&#8217;ve felt the pain and expense of that. That&#8217;s where Standard Chartered were when we got involved.</p>\n\n\n\n<p>They were running a CMS that had been end of lifed by the company, and they were having to pay for that company to keep that CMS on life support just for them. And that was incredibly expensive. The CMS was terrible. It was super painful. I remember hearing early on actually, that they had 40 people on site that they were paying for full-time from the CMS vendor, because every single content edit had to be done by the CMS vendor. They couldn&#8217;t do it themselves.</p>\n\n\n\n<p>Absolutely, it&#8217;s in our DNA. Like, we care a lot about growing WordPress, and so there being no lock in a big part of that. But also, all of these customers have felt the pain of lock in so much that it&#8217;s like a huge selling point. We couldn&#8217;t afford to not mention it. It&#8217;s such a benefit of WordPress.</p>\n\n\n\n<p>[00:20:48] <strong>Nathan Wrigley:</strong> Okay, so lock in is one thing, but if you had to cherry pick just one or two things that make it easy to pitch WordPress at this level. So the vast majority of the people listening to this podcast will have no experience dealing with clients of the nature of Human Made. But they might be curious, you know, it&#8217;s nice to hear. What are the things at this enterprise level, that you can say, okay, WordPress has this? Just one or two things.</p>\n\n\n\n<p>[00:21:12] <strong>Tom Willmot:</strong> Yeah, yeah. I mean, I think there&#8217;s two kind of, I think fairly obvious ones that I&#8217;ll mention up front. One is just how flexible WordPress is. Like, a lot of these proprietary systems are not that flexible and customisation is very hard and expensive. And the reality for big enterprise is they&#8217;ve got a ton of like weird stuff that they need to integrate with. They&#8217;ve got a ton of weird, unique workflows that they need to support. And WordPress is just like, can do all of that really easily. So the flexibility&#8217;s a big selling point.</p>\n\n\n\n<p>I think the interesting one that maybe listeners won&#8217;t realise, and which like honestly still surprises me to this day actually, is just how important the usability of WordPress is. I mean enterprise software generally is like known to be terrible to use, and that&#8217;s really true even in the enterprise CMS space. Even today with the like major enterprise CMSs, if you actually see the backends, they&#8217;re all pretty awful. And so often what we do is we go in and we like demo, and they&#8217;re like blown away.</p>\n\n\n\n<p>[00:22:04] <strong>Nathan Wrigley:</strong> Genuinely blown away.</p>\n\n\n\n<p>[00:22:05] <strong>Tom Willmot:</strong> Yeah.</p>\n\n\n\n<p>[00:22:05] <strong>Nathan Wrigley:</strong> That&#8217;s fascinating.</p>\n\n\n\n<p>[00:22:07] <strong>Jon Ang:</strong> I think another number you could take away as well is that the market share of WordPress in Japan is something like 80%. 80% of websites in Japan use WordPress. Not a lot of that is enterprise yet, but whenever I do demo just default Gutenberg, I am showing them creating a block, I am making changes to the font sizes, I&#8217;m moving things up and down. They are like, that&#8217;s possible?</p>\n\n\n\n<p>And again, like this is just them looking at this, right? We&#8217;ve not even like built the custom blocks, made it tuned to the design. And I take a look at the backend that Tom just mentioned, and it would be something that WordPress was maybe 20 years ago when it was first created and. A lot of this really enterprise CMSs that have not moved on.</p>\n\n\n\n<p>So Gutenberg is, I think it&#8217;s a major, major piece that people get interested in. And once you then continue to build that into the way that they think about workflows, content approvals, the way that it integrates into other APIs, and all this visualisation is just showing up, straight up on their backend editor. It&#8217;s just so much more amazing, yeah.</p>\n\n\n\n<p>[00:23:10] <strong>Tom Willmot:</strong> This just reminds me of another story from, this is not from Standard Chartered actually, this is another big enterprise customer. When we went in for like the initial discovery, the way that they managed their online catalog, they were like a product company, they had a custom Java application that ran on one Windows XP PC. All of the content edits had to be done on that computer through that Java application.</p>\n\n\n\n<p>And so like the idea that multiple people could log in and edit content was a major selling feature for them. Again, like I said, I still get surprised by this. It&#8217;s so easy to take for granted the stuff that WordPress does. But actually, in enterprise, a lot of that is pretty groundbreaking.</p>\n\n\n\n<p>[00:23:45] <strong>Nathan Wrigley:</strong> Yeah, it&#8217;s interesting. I recall the joy I found when I first opened up Gutenberg and I could move a paragraph up and down. And I&#8217;ve completely lost that appreciation for that because I&#8217;m in it every single day. And in fact, you get to the point where you only see the things that it can&#8217;t do because you&#8217;re just really familiar with it. But the description that you&#8217;ve just given, it is quite a profound technology, isn&#8217;t it? And because I&#8217;m so familiar with it, can&#8217;t see the wood for the trees.</p>\n\n\n\n<p>[00:24:09] <strong>Tom Willmot:</strong> It&#8217;s one of my favorite things, you know, especially in a company like Standard Chartered, there&#8217;s 500 people using that. Their entire job, they&#8217;re spending in that, doing those workflows. And so like the transformation that something like WordPress can bring to just like the quality of their life at work is huge.</p>\n\n\n\n<p>[00:24:23] <strong>Nathan Wrigley:</strong> Is there anything though where you have to have the opposite discussion? So you&#8217;ve demonstrated it and they find that there&#8217;s drawbacks to WordPress. Do you have to convince them of things in the WordPress space? So you&#8217;ve just demonstrated a couple of things where it was fairly easy. You know, you show them the block editor, great. Are there bits of WordPress Core that they&#8217;re not that happy with?</p>\n\n\n\n<p>[00:24:41] <strong>Tom Willmot:</strong> I think most of that, mostly not with the Core software. Like, I honestly think the Core software is like industry leading. I think the biggest challenge they face goes a little bit back to the bat phone piece, which is that they look at the WordPress ecosystem and it&#8217;s like how am I supposed to interact with this? I need to find a host. I need to find an agency. There&#8217;s all these plugins. Can I use those? What are WordCamps?</p>\n\n\n\n<p>And so it&#8217;s like, it&#8217;s pretty difficult for an enterprise to like understand how that should be put together to meet their needs, and how do they procure it? In enterprise software, there&#8217;s usually an organisation, a vendor, that you can go and deal with that&#8217;s packaged all of that very nicely, and can like tell you what the roadmap is.</p>\n\n\n\n<p>And so that tends to be the biggest challenge, and that&#8217;s like most of what the work we do is like, how can we package what&#8217;s available in the WordPress ecosystem? But like make it available in a way that these companies are going to understand in the terminology they use, provide them with the roadmaps and the confidence that they need to be able to say like, yeah, okay, we&#8217;re going to use it.</p>\n\n\n\n<p>And to some degree hide all the mess and the chaos, which are like, is a real strength for the ecosystem but, yeah, can make it difficult for someone, a digital executive who like doesn&#8217;t really know that much about the ecosystem, and it&#8217;s probably going to get freaked out if they like go to the plugins directory and are like, oh, I need Salesforce. That&#8217;s not a great entry point.</p>\n\n\n\n<p>[00:25:57] <strong>Jon Ang:</strong> I think there&#8217;s also a lot of work that we do to help them understand that moving alongside WordPress&#8217;s innovations is good for you. They&#8217;ve spent last, what, 9, 8, 9 years, 10 years, like believing in that. So it doesn&#8217;t take us a lot of effort saying, this is what WordPress is thinking about in the next few versions. Given the amount of Core committers we have on the project, we kind of can get a good sense of where the roadmap of the project is going. And then we kind of tell them ahead of time. So when it does come out in an actual Core version, like a major version update, then they already knew about it, maybe like a year ago. They&#8217;re thinking, okay, great, now we get to use it.</p>\n\n\n\n<p>[00:26:33] <strong>Nathan Wrigley:</strong> If I was to look at the Standard Chartered backend, would I recognise it? Would it be something which is entirely familiar to me, or is there just a ton of bespoke stuff in there which makes it, you know, usable for them? So I&#8217;m thinking of things like, you&#8217;ve built custom workflows so that people who are, I don&#8217;t know on the editorial blog team or whatever, they can get their work done more quickly, or permissions which allow them to access this block, particular attribute of that block or not. So really, I&#8217;m just opening it up. Have you built a bunch of custom stuff for them to use?</p>\n\n\n\n<p>[00:27:04] <strong>Jon Ang:</strong> There&#8217;s a lot of custom stuff. I&#8217;ll say that our focus in making sure that they stay open and they&#8217;re not bound to, you know, anything that we built that is just not understandable by them. So we continue to use the WordPress language, I guess. Things that feel like it should be part of the block editor, how the workflow should be placed. It should be part of the published button, should it show up as a separate overlay and so on? All of that is taken into the understanding of how WordPress kind of demands it, and we present it in a very similar way.</p>\n\n\n\n<p>So even if you have someone that&#8217;s new to the bank, you know, but that person&#8217;s used WordPress before, they should be able to quickly understand how this is all going.</p>\n\n\n\n<p>Now obviously there are bank rules, and workflows, and regulations that they have to be like inducted into, but the understanding of how to build a content in the platform that&#8217;s built for them should be something that you could get it understood in 30 minutes or an hour. You would probably see it about 60, 70% as what you would usually see in WordPress. But the rest of it, again, is still built within the WordPress design language.</p>\n\n\n\n<p>[00:28:05] <strong>Nathan Wrigley:</strong> So it looks the same. So it looks like a WordPress site, but there&#8217;s obviously some custom bits and pieces, okay.</p>\n\n\n\n<p>[00:28:10] <strong>Jon Ang:</strong> Where you would expect things to be will be where we place it, like the extra buttons, extra workflows, and so on. They&#8217;ll be exactly where you think you&#8217;ll be clicking the publish button, for example.</p>\n\n\n\n<p>[00:28:19] <strong>Nathan Wrigley:</strong> So, I&#8217;m making air quotes, you are using modern WordPress, I&#8217;m guessing. So this is blocks, this is Site Editing. Tell us a little bit about that. Have you got some sort of custom block functionality in there? And I&#8217;m guessing it&#8217;s a Site Editing theme, a Full Site Editing</p>\n\n\n\n<p>[00:28:35] <strong>Jon Ang:</strong> So it is some Full Site Editing, and then the way we&#8217;re set up obviously is that we try to build patterns on Core blocks. So there&#8217;s obviously a lot of custom blocks, but the more we do with the default WordPress blocks. We style them. The more that they benefit when WordPress decides to make some improvements and so on. So that&#8217;s a lot of that.</p>\n\n\n\n<p>And part of our talk, we&#8217;ll talk about the integrations of different APIs into the blocks themselves. So, we are pulling, let&#8217;s say investor data, stock prices, and so on directly from all these APIs outside, and then into this charting systems that we&#8217;ve built within Gutenberg, so you get to build a chart within the block editor itself.</p>\n\n\n\n<p>And there will be visuals, that you&#8217;ll be able to see in our talk. But I think that&#8217;s probably one of the most customised things out there. But it goes back to what&#8217;s using the virtues for the block editor, gives you the visual of what you&#8217;re trying to create, and then it allows you the press button to create this graph that you want to create within WordPress.</p>\n\n\n\n<p>When you see these graphs on the WordPress website that we&#8217;ve created for Standard Chartered, it&#8217;s not an image that someone created in Microsoft Word. It is something that&#8217;s created within WordPress and generated directly inside there. So that&#8217;s basically what, well, part of what we&#8217;ve done for the block editor.</p>\n\n\n\n<p>[00:29:47] <strong>Nathan Wrigley:</strong> I always had this impression that the block editor enabled blocks to basically be mini applications. So, in the example of banking, like you said, you put a block onto the page, it&#8217;s hooked up to some API or something, and then you can provide some custom infographic or something like that. You know, you can see it on the back end and you click publish and it looks basically the same on the front end.</p>\n\n\n\n<p>The curious thing about that is it seems like only the enterprise can get there because that&#8217;s so much work. But the promise is so profound. These little mini applications, you know, for a real estate agent, like a house block or something like that. And in your case, display information about last year&#8217;s stats for Standard Chartered. I just think that&#8217;s the power of it, but so few people can pull it off because of the time and expense.</p>\n\n\n\n<p>[00:30:33] <strong>Jon Ang:</strong> I&#8217;ll say that at an enterprise level, obviously you have to work with someone like Human Made as an enterprise agency to get the maximum out of this very unique API data. You don&#8217;t get access to Morningstar&#8217;s API data as a regular person, for example. But if you&#8217;re talking about, let&#8217;s say a real estate person, there are plugins out there that plug into, let&#8217;s say the country&#8217;s real estate data that automates a lot of this. And these blocks are already built for that.</p>\n\n\n\n<p>So I think if you were in that industry and then talking to even a regular agency, they&#8217;ll be able to find these plugins that do a lot of that. And I said, these vendors, for example, they realise the need their software to integrate into WordPress. They will be building blocks that directly integrate that.</p>\n\n\n\n<p>An example of that is HubSpot. They do a lot of integration into WordPress, and then you&#8217;ve got blocks to do that. Even if you don&#8217;t have a specific official plugin. Gravity Forms, does a lot of integration into separate ecosystems and so on.</p>\n\n\n\n<p>So you get actually all these block transformation integrations and so on with this like popular plugins out there. And the more we use WordPress and the block editor together, I think the more of these blocks will become very accessible to the general public.</p>\n\n\n\n<p>[00:31:40] <strong>Nathan Wrigley:</strong> How do you even have that conversation with a client like Standard Chartered though, because they&#8217;re into banking, you are into building websites, there can&#8217;t be a great deal of overlap in, like we would love this to be on the website. Okay, we can build that. How does that conversation even happen? How do you draw out of them, we can build that into a block? Because you are so miles apart in your areas of expertise.</p>\n\n\n\n<p>[00:32:02] <strong>Tom Willmot:</strong> Really what we did is we worked with Standard Chartered to help them build a web platform team internally. And so the platform is really run as a 50/50 partnership between Human Made and the web platform team. They then act as the kind of internal service provider to all of these like country markets. Compliance and IT, and all of these other stakeholders, they bring the banking knowledge, and we bring the WordPress knowledge. It&#8217;s like we&#8217;ve got to work very, very closely together to make the most of that.</p>\n\n\n\n<p>[00:32:30] <strong>Nathan Wrigley:</strong> So it&#8217;s a case of often them coming to you saying, can this be done?</p>\n\n\n\n<p>[00:32:33] <strong>Tom Willmot:</strong> Yeah. And, you know, we&#8217;ve been running like two week sprints now for 8 years or something. So it&#8217;s like a very deep, agile relationship.</p>\n\n\n\n<p>[00:32:40] <strong>Nathan Wrigley:</strong> This project, fingers crossed, has no end goal. There&#8217;s no date at which it&#8217;s done.</p>\n\n\n\n<p>[00:32:45] <strong>Tom Willmot:</strong> No, exactly.</p>\n\n\n\n<p>[00:32:46] <strong>Nathan Wrigley:</strong> Every two weeks, lets see we&#8217;re at.</p>\n\n\n\n<p>[00:32:48] <strong>Tom Willmot:</strong> WordPress obviously has a pretty fast paced and iterative development process, right? There&#8217;s new stuff coming out pretty regularly. The bank has got aggressive growth targets and marketing plans across all of those countries. I mean, something else we didn&#8217;t talk about in terms of the lock-in, some of these country level teams will have their own agency relationships, maybe a marketing agency or something.</p>\n\n\n\n<p>And so we also act as a centralised agency coordinator service so that those other agencies can plug into the right bits of the website, but in a safe way that complies with the development processes and things that are necessary.</p>\n\n\n\n<p>[00:33:20] <strong>Nathan Wrigley:</strong> Just to finish it off, a few little questions around accessibility and multilingual and things like that. So multilingual, I suppose is fairly self-evident. You&#8217;ve got to translate this website into just about every language on the planet, I would&#8217;ve imagined. So that&#8217;s a whole body of work.</p>\n\n\n\n<p>[00:33:36] <strong>Tom Willmot:</strong> One of the ways actually that, I mean, multilingual is somewhat easier at this big enterprise level because essentially every country just has its own team and its own website. And so actually multilingual is just solved with multi-site. Standard Chartered do not translate their content, they rewrite it in that language. Different people write the content using multi-site.</p>\n\n\n\n<p>[00:33:52] <strong>Nathan Wrigley:</strong> But in terms of accessibility, very hot topic in the year 2025. And I&#8217;m guessing, again, goes back to compliance. I&#8217;m guessing there&#8217;s no missteps here. You can&#8217;t get this wrong. So just tell us about what&#8217;s been going on in that sphere.</p>\n\n\n\n<p>[00:34:06] <strong>Jon Ang:</strong> I think the way that we&#8217;re set up as well is that every single team has their own site, which means that every deploy gets checked in terms of accessibility. So we would expect that any designs that come along is accessible in the first place. So they&#8217;ve done their work. And then when we actually build the front end for it, and a part of their team also builds the front end, it goes through all this accessibility checker stuff that we&#8217;ve already built across time that I think feeds the WCAG to 2.2 AA Plus standards.</p>\n\n\n\n<p>So every single deploy is checked against that to make sure it is accessible. At any point in time where this looked at and said, okay, there should be improvements that we need to be making. It&#8217;s part of the whole two week adjustments that we continue to make sure that all these like websites are accessible.</p>\n\n\n\n<p>It doesn&#8217;t matter whether it is a Chinese website or Japanese website, where maybe like they&#8217;re not held to the same EU accessibility laws, but every piece is actually taken to the same level and held out to the belief that, if we&#8217;re accessible in a specific space, that&#8217;s should be the same everywhere else.</p>\n\n\n\n<p>[00:35:06] <strong>Tom Willmot:</strong> You know, something to say on accessibility, often listeners will probably feel this. It can be difficult to get clients to care about it enough to pay you to do the work necessary to make it accessible, right? That&#8217;s a common problem. It&#8217;s one of the really nice things about working with a heavily compliance regulated industry like Standard Chartered. Like, actually, they really care about it. And so they really do the work. They want to invest to make sure the platform can enable them and support them as much as possible to like meet their compliance requirements, yeah.</p>\n\n\n\n<p>[00:35:31] <strong>Nathan Wrigley:</strong> Has the more recent WordPress past, let&#8217;s say since about September last year, has that caused any ripples in the nature of the work that you do? Or has it required a different relationship with your clients, more explaining what&#8217;s going on in the community? Has there been any kind of blowback from the pace of Core amendments? I think we&#8217;re maybe getting more back on track with that. But I just wondered if there were any ripples?</p>\n\n\n\n<p>[00:35:58] <strong>Tom Willmot:</strong> The dropping from three to one releases a year, like I think in many parts of enterprise, it&#8217;s kind of helpful actually, like three releases a year is pretty fast. And so certainly that&#8217;s not raising eyebrows at the enterprise level.</p>\n\n\n\n<p>I think just like, we&#8217;ve got a mix of clients, some who are the kind of stakeholder who loves WordPress and really wants it, and so they&#8217;re perhaps a little bit more plugged in. And so, yeah, they&#8217;ve got more questions. And then you&#8217;ve got the other 50% of clients who know nothing about it.</p>\n\n\n\n<p>[00:36:22] <strong>Jon Ang:</strong> And I think that when we are building these enterprise websites, right, we are kind of playing at a slightly different playing field. So they&#8217;re not using the typical consumer level plugins and so on. They&#8217;re using the service that we&#8217;ve provided them. So when you look at this, they look at this as the Human Made WordPress thing that we&#8217;ve been doing. And then when they look at whether they can trust this thing, they&#8217;re looking at the service that we provide. So they&#8217;re not concerned about what&#8217;s going else out there. They&#8217;re concerned about whether we have the ability to continue providing this service and nothing has said otherwise, yeah.</p>\n\n\n\n<p>[00:36:53] <strong>Nathan Wrigley:</strong> Okay, very last question then. How much of this can be contributed back into the project? Are there any facets of this, little bits over here or over there that can be contributed back to the community? I don&#8217;t know where they would land. And if that&#8217;s a question you can&#8217;t answer, how does Human Made take on the position of contributing back? What&#8217;s your posture on that?</p>\n\n\n\n<p>[00:37:13] <strong>Jon Ang:</strong> So Standard Chartered was definitely one of the earlier adopters of Gutenberg. But I think one of the earliest, earliest adopters we had was a part of Disney, where we were using version 0.2 beta of Gutenberg. It was not much in Core. We&#8217;re talking about a very beta version of it. So we were building sidebars, we were building like all these things that, Gutenberg didn&#8217;t have yet. It was just paragraphs and so on, like back then.</p>\n\n\n\n<p>So we were doing that and we were contributing back the idea of it, back to the project. And so you&#8217;re going to hear from our talk how we&#8217;ve already completed collaborative editing in Human Made. We are now talking to people outside about contributing the idea back to it as well. I think the growth of the block editor itself has been stuff that we are, you know, pushed back in as well. And then I&#8217;ll say that&#8217;s one part.</p>\n\n\n\n<p>The other part as well is the security aspects of stuff. So banks are checked on CVEs and all these pieces, and their security team are on contact points with us on a regular basis. So when we do learn of these things that they&#8217;re concerned about, and this is something that we&#8217;ve then fixed for them, we then contribute it back to the project.</p>\n\n\n\n<p>So I know John Blackbourn works in Human Made, he&#8217;s the WordPress Security Team lead. Big part of his job is making sure that the projects that we work on is secure, but the stuff that we have secured then afterwards is contributed back to the WordPress project. So there&#8217;s a lot of that ongoing.</p>\n\n\n\n<p>[00:38:30] <strong>Nathan Wrigley:</strong> Do you blow your own trumpet about contributions back or do you like to keep it quiet? I was having a conversation with somebody in the Drupal space recently, and it seems like there&#8217;s this whole thing that they&#8217;ve got there where, if you contribute, you accrue benefits in terms of, you attend an event like a Drupal Con and you can sponsor because you did some things. And so you had to blow your own trumpet in a way to be acknowledged as having done the things.</p>\n\n\n\n<p>I don&#8217;t know what your position on that is, whether you like to sort of shout it from the rooftops. We did this, we contributed this back, or I don&#8217;t know if it&#8217;s more softly, softly than that.</p>\n\n\n\n<p>[00:39:00] <strong>Tom Willmot:</strong> Yeah, I think I&#8217;m quite a fan actually of the maker taker stuff that Drupal does. Like, I think they do some really interesting things to benefit maker organisations, which I think has the right incentives then associated with it. Something I learned about, they&#8217;ve worked with some of the federal and public sector contracting authorities to preference maker organisations in the RFP processes that they do. So I think stuff like that&#8217;s actually really good. I would like to see some of that on the WordPress side.</p>\n\n\n\n<p>We really do trumpet it when we&#8217;re talking to clients because it&#8217;s a big part of our sales pitch, right? That&#8217;s how we contribute back to WordPress. We&#8217;re a part of the Security Team. That means that we can use Gutenberg way before it&#8217;s shipped in Core, which means by the time it&#8217;s shipping in Core, Standard Chartered are already using it. They&#8217;re already familiar with it. There&#8217;s not a big expensive transition. It&#8217;s not a shock.</p>\n\n\n\n<p>The collaborative editing that Jon mentioned, they needed real time editing in the CMS for multiple users, and we were able to take the like alpha version that the Core team are working on, finish that off and do the work to get that running in production.</p>\n\n\n\n<p>[00:39:58] <strong>Nathan Wrigley:</strong> Yeah, just snuck that in. I mean, that&#8217;s a whole episode.</p>\n\n\n\n<p>[00:40:01] <strong>Tom Willmot:</strong> Yeah. And you know, that&#8217;s really interesting. They&#8217;ve been running that in production for a year or more. So then, yeah, there&#8217;s obviously stuff there that is like a two-way thing. So some stuff is like, okay, we build something unique and that&#8217;s like released open source, but actually more of it is just we are using the stuff that&#8217;s coming ahead of time, so then what we are learning can feed back, and make sure that when that is ready, it&#8217;s like already learnt the enterprise lessons it needs to learn to be relevant or whatever, yeah.</p>\n\n\n\n<p>[00:40:26] <strong>Nathan Wrigley:</strong> Well, that was a really, honestly, I got so much out of that. Thank you very much, Tom Willmot and Jon Ang for talking to me today all about your project with Standard Chartered. Thank you very much.</p>\n\n\n\n<p>[00:40:35] <strong>Tom Willmot:</strong> Great to be here and a great way to kick off the day. We&#8217;ve recorded as our first thing for the conference, so that&#8217;s pretty cool.</p>\n\n\n\n<p>[00:40:41] <strong>Jon Ang:</strong> Thank you for helping us walk through our talk as well. So a lot of what we mentioned, it&#8217;s probably going to be mentioned our talk. But it&#8217;s been good to be here.</p>\n</div></details>\n\n\n\n<p>On the podcast today we have <a href=\"https://humanmade.com/who-we-are/tomwillmot/\">Tom Willmot</a> and <a href=\"https://humanmade.com/who-we-are/jonang/\">Jon Ang</a>.</p>\n\n\n\n<p>Tom is the co-founder of Human Made, an enterprise WordPress agency that’s been pushing the boundaries of what WordPress can do since its inception. Jon is also with Human Made, and together they bring a huge amount of experience working with major clients on large-scale projects. At this year’s WordCamp Europe in Basel, they presented a case study: their long-term, continually evolving work with the global banking giant Standard Chartered.</p>\n\n\n\n<p>Most listeners might not be working at the scale of 85,000 employees, 70 countries, and hundreds of millions of page views a month, but Tom and Jon are here to share insights from the top end of WordPress implementation.</p>\n\n\n\n<p>They explain how Human Made helped Standard Chartered shift from proprietary CMS lock-in to a flexible, open-source, Gutenberg-powered WordPress solution that serves as the main web platform for the bank across all its markets.</p>\n\n\n\n<p>We talk about the unique compliance and security challenges of working in the banking sector, what it takes to persuade giant enterprises that WordPress is ‘not a toy’, and how to support hundreds of CMS users with custom workflows and integrations.</p>\n\n\n\n<p>Tom and Jon discuss the specifics of scaling WordPress for the enterprise, from accessibility and multilingual setups to custom block development and real-time collaborative editing.</p>\n\n\n\n<p>We also hear how Human Made works with clients to contribute innovations and security improvements back to the WordPress community, ensuring that lessons learned at the enterprise level benefit everyone.</p>\n\n\n\n<p>If you’re curious about how WordPress powers mission-critical web infrastructure for some of the world’s biggest organisations, or how you might pitch WordPress for enterprise use, this episode is for you.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Useful links</h2>\n\n\n\n<p><a href=\"https://humanmade.com/\">Human Made</a></p>\n\n\n\n<p><a href=\"https://www.sc.com/en/\">Standard Chartered</a></p>\n\n\n\n<p>Tom and Jon&#8217;s WordCamp Europe presentation: <a href=\"https://europe.wordcamp.org/2025/session/banking-on-wordpress-inside-a-ftse-50-banks-global-platform/\">Banking on WordPress: Inside a FTSE 50 Bank’s Global Platform</a></p>\n\n\n\n<p><a href=\"https://humanmade.com/work/standard-chartered-banking-on-the-future/\">Standard Chartered: banking on the future</a></p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 18 Jun 2025 14:00:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Nathan Wrigley\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:43;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:72:\"Open Channels FM: A Journey Integrating AI Agents in WordPress Using MCP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:32:\"https://openchannels.fm/?p=99060\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:96:\"https://openchannels.fm/tihomir-dmitrovics-journey-integrating-ai-agents-in-wordpress-using-mcp/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:196:\"In this episode of Emerging Tech, host Dave talks to Tole, an innovative developer who shares his journey from mobile to WordPress. He discusses his MCP integration in ConvoWorks for AI workflows.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 18 Jun 2025 13:41:37 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:44;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:70:\"Akismet: reCAPTCHA not stopping spam? Here’s the perfect alternative\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:28:\"http://akismet.com/?p=284427\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:53:\"https://akismet.com/blog/recaptcha-not-stopping-spam/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:10649:\"<p>Have you enabled reCAPTCHA thinking it would shield you against spam, only to find bots slipping through? You’re not alone. Those little puzzles prove that some visitors are human, but they don’t always stop the spam messages.</p>\n\n\n<p>It may be disappointing to hear, but reCAPTCHA seriously annoys site visitors while only doing a moderate job of preventing spam. You (and your visitors) deserve something much better. </p>\n\n\n\n<span id=\"more-284427\"></span>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"common-issues-with-recaptcha \">Common issues with reCAPTCHA </h2>\n\n\n\n<p>Though a popular option, reCAPTCHA doesn’t always deliver the spam protection you need.  Let’s look at just a few key reasons why this is the case, from user frustration and accessibility concerns to bots getting through.</p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"1-user-friction-and-poor-accessibility \">1. User friction and poor accessibility </h3>\n\n\n<p>For those caught in an endless loop of trying to find all the squares that include a bicycle, it’s no surprise that user frustration tops the list of reasons that reCAPTCHA isn’t a great option.</p>\n\n<p>In fact, a <a href=\"https://web.stanford.edu/~jurafsky/burszstein_2010_captcha.pdf\" rel=\"noreferrer noopener\" target=\"_blank\">study by Stanford</a> showed that humans need an average of ten seconds to solve Google reCAPTCHAs and up to 30 seconds for audio. This study showed that users abandon the page 29% of the time without even trying to solve it. Imagine losing a sale because your customer couldn’t pass the test!</p>\n\n<h3 class=\"wp-block-heading\" id=\"2-low-effectiveness-against-advanced-bots-and-captcha farms\">2. Low effectiveness against advanced bots and CAPTCHA farms</h3>\n\n\n<p>While effective when it was first released, AI bots can now bypass reCAPTCHA with 99.8% accuracy, according to the <a href=\"https://merchantriskcouncil.org/learning/resource-center/member-news/blog/2024/paypal-captcha-evolution-and-effectiveness\" rel=\"noreferrer noopener\" target=\"_blank\">Merchant Risk Council</a>. </p>\n\n\n\n<p>Where bots aren’t effective, there are even entire “<a href=\"https://www.f5.com/labs/articles/cisotociso/i-was-a-human-captcha-solver\" rel=\"noreferrer noopener\" target=\"_blank\">CAPTCHA farms</a>” that use human labor to bypass CAPTCHAs at astonishing rates. </p>\n\n\n\n<p>Either way, you’ll likely be bogged down with tons of annoying, dangerous spam — even with reCAPTCHA.</p>\n\n\n<h3 class=\"wp-block-heading\" id=\"3-a-negative-impact-on-site-performance-and-load times\">3. A negative impact on site performance and load times</h3>\n\n\n<p>On the internet, every second counts. Visitors won’t wait more than a couple of seconds for your site to load before moving on. </p>\n\n\n\n<p>That’s why site owners put so much effort into optimizing images, finding a high-performing host, installing the right speed plugins, and more. </p>\n\n\n<p>Unfortunately, using reCAPTCHA can undo a lot of that hard work. <a href=\"https://pagepipe.com/how-google-no-captcha-captcha-slows-down-your-mobile-site/\" rel=\"noreferrer noopener\" target=\"_blank\">PagePipe’s testing</a> found that reCAPTCHA adds a full half&#8209;second lag to a site’s load time, costing you visitors and likely customers. After all, <a href=\"https://blog.google/products/admanager/the-need-for-mobile-speed/\" rel=\"noreferrer noopener\" target=\"_blank\">53% of mobile users</a> abandon sites that take over three seconds to load.</p>\n\n<p>Plus, this likely has a serious (negative) impact on Core Web Vitals. This can drop your rankings so fewer visitors find your slow&#8209;loading site to begin with.</p>\n\n\n<h3 class=\"wp-block-heading\" id=\"4-false-positives-galore \">4. False positives galore </h3>\n\n\n\n<p>When reCAPTCHA flags a submission as a false positive, you’re inadvertently telling your visitors that they aren’t even human. </p>\n\n\n\n<p>For example, some reCAPTCHAs flag super fast form submissions under the assumption that, when someone fills out a form too quickly, it must be a bot. But there are some people who are simply fast typers — they could be blocked from your site because of their typing prowess! </p>\n\n\n<p>The inconvenience and potential lost sales that result from false positives simply aren’t worth the risk.</p>\n\n<h2 class=\"wp-block-heading\" id=\"akismet-is-your-superior-spam-protection solution\">Akismet is your superior spam protection solution</h2>\n\n\n<p>With the drawbacks of reCAPTCHA well understood, let’s now think about a scenario where you don’t have to worry about losing clients or driving away new subscribers by confronting them with accusations of being bots. </p>\n\n\n\n<p>The solution <em>does </em>exist, and it’s called Akismet. </p>\n\n\n\n<p>Akismet is an anti-spam tool that works behind the scenes on nearly any type of site (WordPress, Drupal, etc.) to detect and block spam in real time. </p>\n\n\n<p>Its advanced AI algorithm is constantly learning from the network of over 100 million protected sites to maintain an incredible 99.999% accuracy rate.</p>\n\n\n<p>It doesn’t slow down your site, doesn’t challenge your visitors with annoying tests (it’s in the background, remember?), and can be customized for your individual site with the opportunity for you to manually review submissions and provide feedback. </p>\n\n\n\n<p>To date, it’s blocked over 550 billion spam messages, with 76 million pieces of additional spam annihilated each day. Let’s look at how Akismet accomplishes this: </p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"next-generation-ai-and-machine-learning-technology \">Next-generation AI and machine learning technology </h3>\n\n\n<p>Akismet’s AI uses the content within a form submission to identify automated spam attempts and bots. In fact, their advanced machine learning technology analyzes real spam data from more than 100 million users and is always improving.</p>\n\n\n<h3 class=\"wp-block-heading\" id=\"real-time-analysis-of-user-submissions \">Real-time analysis of user submissions </h3>\n\n\n\n<p>Akismet analyzes form submissions in real time, making split-second decisions about whether a comment or form entry is legitimate or spam. This keeps your site free of spam without any work required on your end. </p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"99-99-spam-detection-accuracy \">99.99% spam detection accuracy </h3>\n\n\n\n<p>Akismet has a 99% spam detection accuracy rate with the track record to back up the claim. Notably, <a href=\"https://akismet.com/blog/convertkit-customerstory/\">Kit switched to Akismet</a> and saved 20 hours per customer every month without losing any leads. That kind of performance shows how effective spam protection doesn’t have to come at the cost of user experience. </p>\n\n\n<h3 class=\"wp-block-heading\" id=\"the-largest-spam-database-in-the world\">The largest spam database in the world</h3>\n\n<p>Akismet is powered by the largest spam database on the internet. Every time it catches a new spam pattern, it feeds that data back into its systems, improving accuracy across all the sites it protects.</p>\n\n<h2 class=\"wp-block-heading\" id=\"core-advantages-of-akismet-over recaptcha\">Core advantages of Akismet over reCAPTCHA</h2>\n\n<p>Now that you’ve seen how Akismet works, let’s zoom in on the key differences between it and reCAPTCHA.</p>\n\n<h3 class=\"wp-block-heading\">1. Content&#8209;based analysis, which targets spam (instead of users)</h3>\n\n\n<p>Akismet analyzes content directly rather than relying on click-based tests or suspicious IP lists. It looks at the substance of the message and compares it against patterns of known spam behavior, which makes it far more effective at catching the source. </p>\n\n\n<p>This also means that it doesn’t get in the way of real users because it’s not constantly passing judgment on their behavior (which slows down sites) or asking them to complete tests.</p>\n\n<h3 class=\"wp-block-heading\" id=\"2-zero-friction-for-site visitors\">2. Zero friction for site visitors</h3>\n\n<p>Friction slows down conversions and that’s precisely what reCAPTCHA causes. It introduces friction and interrupts your visitors with tedious tasks before they can even submit a form. If they get it wrong once, many won’t bother trying again.</p>\n\n<p>Akismet removes that friction. It doesn’t bother users with puzzles, challenges, or visual tests. It runs quietly in the background, allowing visitors to stay focused and engaged without even noticing it.</p>\n\n\n<h3 class=\"wp-block-heading\" id=\"3-ongoing-adaptation-to-new-spam-patterns \">3. Ongoing adaptation to new spam patterns </h3>\n\n\n\n<p>One of the most impressive benefits of Akismet often goes unnoticed, and that’s its ability to adapt to new spam methods and bots in real time. Its machine learning engine takes notes from every spam attempt it blocks — across all the websites it protects. </p>\n\n\n<p>That means it’s not just reacting to spam. It’s predicting and adapting in real time, keeping your forms clean no matter how spam trends shift.</p>\n\n\n<h3 class=\"wp-block-heading\" id=\"4-zero-impact-on-performance-and-site-speed \">4. Zero impact on performance and site speed </h3>\n\n\n<p>Unlike reCAPTCHA, which can add lag to your forms and frustrate visitors with slow load times, Akismet promises <a href=\"https://akismet.com/features/#:~:text=zero%20impact%20on%20site%20speed\">zero impact on performance</a>. Since it uses the cloud to store data, Akismet won’t affect your site speed, bounce rates, or conversion rates. Compare that to the half&#8209;second load&#8209;time drag reCAPTCHA brings to the table and the choice becomes clear.</p>\n\n<p>Yes, Akismet is the <a href=\"https://akismet.com/blog/captcha-alternatives/\">perfect alternative to CAPTCHA technology</a> — it quietly filters out spam in the background without adding friction for real users.</p>\n\n\n<h2 class=\"wp-block-heading\" id=\"recaptcha-not-stopping-spam-switch-to-akismet-in-minutes \">reCAPTCHA not stopping spam? Switch to Akismet in minutes </h2>\n\n\n<p>Why settle for a tool that slows down your site, frustrates visitors, and still lets spam slip through? Thankfully, with Akismet, you don’t have to.</p>\n\n<p>Getting started only takes a few minutes. Simply:</p>\n\n\n<ol class=\"wp-block-list\"><li>Remove the CAPTCHAs that turn visitors away.</li>\n\n<li>Activate Akismet on your WordPress site.</li>\n\n<li>Let Akismet handle the spam while you focus on growing your site and improving conversions.</li></ol>\n\n\n<p>Ready to stop making your visitors prove they’re human? <a href=\"https://akismet.com/pricing/\">Add Akismet to your site</a> and see how convenient set&#8209;it&#8209;and&#8209;forget&#8209;it spam protection can be.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 18 Jun 2025 12:00:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:11:\"Jen Swisher\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:45;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:104:\"Open Channels FM: Finding Your Community: The Challenge of Reaching WooCommerce End Users vs. Developers\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:47:\"https://openchannels.fm/?post_type=blog&p=97448\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:109:\"https://openchannels.fm/finding-your-community-the-challenge-of-reaching-woocommerce-end-users-vs-developers/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:356:\"When it comes to building successful plugins and products for WordPress or WooCommerce, everyone talks about the importance of “community.” But what does that really mean—and who should you be building community with? In a recent episode of Woo Product Chat, hosts Katie Keith, James Kemp, and special guest Jonathan Wold dove deep into the [&#8230;]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 18 Jun 2025 11:47:18 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:46;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:73:\"Open Channels FM: How to Tell If Your WordPress News Is Really Newsworthy\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:32:\"https://openchannels.fm/?p=99023\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:110:\"https://openchannels.fm/how-to-tell-if-your-wordpress-news-is-really-newsworthy-with-rae-morey-and-adam-weeks/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:213:\"In the first of the series, Media Playbook, Rae and Adam discuss how to connect WordPress businesses with the media. They share tips on crafting newsworthy stories and building relationships for better visibility.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 17 Jun 2025 09:51:08 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:47;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:55:\"Open Channels FM: We Are Welcoming Woo As a New Sponsor\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:32:\"https://openchannels.fm/?p=98641\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:62:\"https://openchannels.fm/we-are-welcoming-woo-as-a-new-sponsor/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:196:\"Since 2018, WooCommerce has been a vital partner for Do the Woo, promoting the brand and providing resources. They will now sponsor Open Channels FM to strengthen community engagement and support.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 16 Jun 2025 08:31:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:48;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:131:\"Gutenberg Times: Gutenberg Changelog 118 – WordCamp Europe, WordPress New AI Team, the Pride Photo Drive, Gutenberg 20.9 and 21.0\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:53:\"https://gutenbergtimes.com/?post_type=podcast&p=40707\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:103:\"https://gutenbergtimes.com/podcast/gutenberg-changelog-118-wordpress-new-ai-team-the-pride-photo-drive/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:44750:\"<p>Hosted by Birgit Pauli-Haack, with special guest Anne McCarthy, this episode dives into recent happenings in the WordPress ecosystem, including updates from WordCamp Europe, the launch of the new WordPress AI Team, the Pride Photo Drive initiative, and the latest Gutenberg releases (20.9 and 21.0).</p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>WordCamp Europe Recap</strong></h2>\n\n\n\n<p>The community celebrated new milestones, including all workshops being recorded and promptly published to WordPress TV, making it easier for everyone to catch up. Notable sessions covered digital freedom, block development, and innovative ways to extend WordPress without custom blocks. There was also a special mention of the WordPress Campus Connect pilot at the University of Pisa, enabling students to earn credits through WordPress contributions.</p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>WordPress AI Team Launch</strong></h2>\n\n\n\n<p>WordPress has officially formed a core AI Team, supported by both Automattic and Google contributors, focusing on foundational tools and integrations to bring AI capabilities to the platform. The team is working on projects like the AI Services plugin, the Model Context Protocol (MCP), and the WP Feature API, each designed to provide standardized and extensible AI solutions for the WordPress ecosystem.</p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Pride Photo Drive</strong></h2>\n\n\n\n<p>Anne McCarthy introduced the Pride Photo Drive: an open photo submission event to boost LGBTQ+ representation in the WordPress Photo Directory. The initiative encourages everyone (not just the LGBTQ+ community) to contribute, with fun incentives and cash prizes, emphasizing the importance of diverse, high-quality imagery for web creators.</p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Gutenberg 20.9 &amp; 21.0 Releases</strong></h2>\n\n\n\n<p>The latest Gutenberg plugin releases bring a host of improvements and enhancements:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A shift towards more modern and maintainable codebase (SASS modules),</li>\n\n\n\n<li>Usability changes to block settings and tool panels,</li>\n\n\n\n<li>Continued iteration on “content-only” editing for simpler, safer user experiences,</li>\n\n\n\n<li>Accessibility improvements and bug fixes suggested by new and long-time contributors,</li>\n\n\n\n<li>Ongoing expansion of the Interactivity API for richer client-side experiences.</li>\n</ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Community &amp; Contribution</strong></h2>\n\n\n\n<p>Anne and Birgit emphasize the power of direct community feedback—how user suggestions shape features and workflows. There&#8217;s an open call for more engagement, hallway hangouts, and broad collaboration beyond just in-person events.</p>\n\n\n\n<p><em>This episode is packed with optimism and opportunities for WordPress users and contributors of all backgrounds to get involved—whether that’s through new tech like AI, creative community projects, or by shaping the future of Gutenberg.</em></p>\n\n\n\n<p><a href=\"https://gutenbergtimes.com/podcast/gutenberg-changelog-118-wordpress-new-ai-team-the-pride-photo-drive/#shownotes\">Show Notes</a> / <a href=\"https://gutenbergtimes.com/podcast/gutenberg-changelog-118-wordpress-new-ai-team-the-pride-photo-drive/#transcript\">Transcript</a></p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Editor: <a href=\"https://www.linkedin.com/in/sandy-reed/\">Sandy Reed</a></li>\n\n\n\n<li>Logo: <a href=\"https://markuraine.com/\">Mark Uraine</a></li>\n\n\n\n<li>Production: <a href=\"https://icodeforapurpose.com\">Birgit Pauli-Haack</a></li>\n</ul>\n\n\n\n<p class=\"has-larger-font-size\" id=\"shownotes\"><strong>Show Notes</strong></p>\n\n\n\n<h3 class=\"wp-block-heading\">Special Guest: Anne McCarthy</h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https://profiles.wordpress.org/annezazu/\">WordPress profile</a></li>\n\n\n\n<li><a href=\"https://www.linkedin.com/in/anneguionmccarthy/\">LinkedIn</a></li>\n\n\n\n<li>Personal Blog: <a href=\"https://nomad.blog/\">Nomad.blog</a></li>\n\n\n\n<li><a href=\"https://gutenbergtimes.com/podcast/gutenberg-changelog-111-developer-hours-playground-and-collaborative-editing/\">Gutenberg Changelog #111 – Gutenberg 19.6 and 19.7, Developer Hours, Playground, and Collaborative Editing</a></li>\n\n\n\n<li><a href=\"https://gutenbergtimes.com/podcast/gutenberg-changelog-87/\">Gutenberg Changelog #87 – Patterns, Gutenberg 16.3 and WordPress 6.3.</a></li>\n</ul>\n\n\n\n<h3 class=\"wp-block-heading\">Celebrating Pride Month</h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https://lgbtqpress.com/2025/05/share-your-pride-photo-drive-is-back-for-2025/\">Share your Pride Photo Drive is back for 2025</a></li>\n\n\n\n<li>WordPress photo directory<a href=\"https://wordpress.org/photos/search/ShareYourPride2024/\"> ShareYourPride 2024</a></li>\n</ul>\n\n\n\n<h3 class=\"wp-block-heading\">WordPress AI Team</h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https://wordpress.org/news/2025/05/announcing-the-formation-of-the-wordpress-ai-team/\">Announcing the Formation of the WordPress AI Team</a></li>\n\n\n\n<li><a href=\"https://make.wordpress.org/ai/2025/05/23/welcome-to-the-core-ai-team-blog/\">Welcome to the Core AI Team Blog</a></li>\n\n\n\n<li><a href=\"https://make.wordpress.org/ai/2025/06/03/introducing-the-ai-team-hallway-hangout-recap/\">Introducing the AI Team – Hallway Hangout Recap</a></li>\n\n\n\n<li><a href=\"https://wordpress.org/plugins/ai-services/\">AI Services</a></li>\n\n\n\n<li><a href=\"https://github.com/mcp-wp/\">MCP for WordPress</a></li>\n\n\n\n<li><a href=\"https://pascalbirchler.com/wordpress-model-context-protocol-mcp/\">Enabling AI-Powered WordPress Development with WP-CLI and the Model Context Protocol (MCP)</a></li>\n\n\n\n<li><a href=\"https://github.com/Automattic/wp-feature-api\">WP Feature API</a></li>\n\n\n\n<li><a href=\"https://www.youtube.com/watch?v=V08qhLL19cM\">The WordPress AI fightback begins!</a></li>\n</ul>\n\n\n\n<h3 class=\"wp-block-heading\">WordCamp Europe Recordings</h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https://wordpress.tv/2025/06/09/fireside-chat-with-mary-hubbard-and-matt-mullenweg/\">During Fire side Chat</a> with Mary Hubbard and Matt Mullenweg</li>\n\n\n\n<li><a href=\"https://wordpress.tv/2025/06/07/wordpress-without-borders-the-fight-for-digital-freedom/\">WordPress without Borders – The Fight for Digital Freedom</a></li>\n\n\n\n<li><a href=\"https://wordpress.tv/2025/06/07/the-block-developer-cookbook-wceu-2025-edition/\">The Block Developer Cookbook: WCEU 2025 Edition</a></li>\n\n\n\n<li><a href=\"https://wordpress.tv/2025/06/07/wordpress-gems-for-devs-interactivity-api-2/\">WordPress Gems around the Interactivity API</a>.</li>\n\n\n\n<li><a href=\"https://wordpress.tv/2025/06/07/why-block-themes-make-woocommerce-stores-better/\">Why Block Themes Make WooCommerce Stores Better</a></li>\n\n\n\n<li><a href=\"https://wordpress.tv/2025/06/07/do-you-really-need-a-custom-block/\">Do you really need a custom block</a></li>\n\n\n\n<li>All recordings from <a href=\"https://wordpress.tv/event/wordcamp-europe-2025/\">WordCamp Europe on WordPressTV</a></li>\n</ul>\n\n\n\n<h2 class=\"wp-block-heading\">Gutenberg Releases</h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https://developer.wordpress.org/news/2025/06/whats-new-for-developers-june-2025/\">What’s New for Developers (June 2025)</a></li>\n\n\n\n<li><a href=\"https://make.wordpress.org/core/2025/06/11/whats-new-in-gutenberg-20-8-and-20-9/\">What’s new in Gutenberg 20.8 and 20.9?</a></li>\n\n\n\n<li><a href=\"https://make.wordpress.org/core/2025/06/11/whats-new-in-gutenberg-21-0-11-june/\">What’s new in Gutenberg 21.0?</a></li>\n\n\n\n<li>I<a href=\"https://github.com/WordPress/gutenberg/issues/70372\">nteractivity API: Backport of WooCommerce&#8217;s Interactivity API improvements #70372</a><br /></li>\n</ul>\n\n\n\n<p class=\"has-large-font-size\">Stay in Touch</p>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<ul class=\"wp-block-list\">\n<li>Did you like this episode? <a href=\"https://lovethepodcast.com/gutenbergchangelog\"><strong>Please write us a review </strong></a></li>\n\n\n\n<li>Ping us on X (formerly known as Twitter) or send DMs with questions. <a href=\"https://twitter.com/gutenbergtimes\">@gutenbergtimes </a>and <a href=\"https://twitter.com/bph\">@bph</a>.</li>\n\n\n\n<li><em>If you have questions or suggestions, or news you want us to include, send them to <a href=\"mailto:changelog@gutenbergtimes.com\">changelog@gutenbergtimes.com</a>. </em></li>\n\n\n\n<li><em>Please write us a review on iTunes! <a href=\"https://gutenbergtimes.com/itunes/\">(Click here to learn how)</a></em></li>\n</ul>\n</div></div>\n\n\n\n<p class=\"has-large-font-size\" id=\"transcript\"><strong>Transcript</strong></p>\n\n\n\n<p><em>Birgit Pauli-Haack</em>: Ladies and gentlemen, welcome to our 118th episode of the Gutenberg Changelog podcast. In today&#8217;s episode, we will talk about WordCamp Europe and the WordPress new AI team, and Pride Photo Drive and the Gutenberg 20.9 and 21.0 releases. I&#8217;m your host, Birgit Pauli-Haack, curator at the Gutenberg Times, a developer advocate at Automattic, and core contributor to the WordPress open source project. With me today, relatively fresh back from the sabbatical, is Anne McCarthy. Thank you, Anne. Welcome back and I&#8217;m thrilled you&#8217;re on the show. How are you today?</p>\n\n\n\n<p><em>Anne McCarthy</em>: Thank you for having me. It is incredible to be back from sabbatical and also to be back to contributing with sponsorship, which is amazing. I was trying to do it coming back without it and to have to have that change so quickly. Coming back from sabbatical has been so energizing combined with Pride Month, so I can&#8217;t complain. I&#8217;m just excited to get into stuff and excited to be back in this space talking about this important work.</p>\n\n\n\n<p><em>Birgit Pauli-Haack:</em> Wonderful. Yeah, no, we&#8217;re all back contributing. It will be. We still have to kind of figure that out. I know that every team is kind of trying to get unplugged from what they were doing as part so they can contribute back. So the last time you were on the show, it was in November last year. Episode 111. So, so much has changed for the project and for you. What are you now working on at Automattic and respectively for WordPress? Yeah.</p>\n\n\n\n<p><em>Anne McCarthy: </em>So my job title has shifted a bit as well, to align with some of the changes that have happened. So we. I am now an architecture wrangler is the title I&#8217;m rolling with right now. And essentially the core of my job is the same. I&#8217;m looking across Automattic the community to find shared patterns, to accelerate work, to do work and to connect work. And so trying to make sure we&#8217;re moving in the same direction in the project. So working on things like roadmaps, breaking down work, helping for the future, teams get into contributing and figuring out important projects they can work on and providing support there, as well as collecting user feedback across different places and how it impacts things. So if we hear something, for example, from like an enterprise client, I recently did this. A couple weeks ago, there was a bug that came out from an enterprise client. I said, hey, who else has dealt with this? Aaron Jordan used to in publishing. What do you think? Hey, can we get someone to work on this? What are you all seeing? What feedback are you seeing? Here&#8217;s the feedback I&#8217;m seeing. So I&#8217;m still doing the same kind of work. Cool thing is now instead of working with about 100 engineers, I&#8217;m working with about 300, about 50 different teams. So internally there&#8217;s a lot more spread. But I&#8217;m really excited because it can really help influence and move faster on some of the stuff we do in the core project. So instead of things being a bit divorced and separated, especially from customer feedback and customer needs, we can now, you know, using Automattic spread of customers, use that to bring things that are foundational for all WordPress, because we cover so many different use cases between themes and plugins and hosting and enterprise and bloggers and all sorts of stuff. So I&#8217;m really excited to see increased collaboration there, including with the broader Five for the future groups, and encourage everyone to get involved, to share that feedback and join in the fun.</p>\n\n\n\n<p><em>Birgit Pauli-Haack: </em>That&#8217;s wonderful. Yeah, it sounds exciting. It also sounds like a lot of work, but, yeah.</p>\n\n\n\n<p><em>Anne McCarthy: </em>It&#8217;S good work. It&#8217;s good work because you get to kind of see things at the root, which is fine.</p>\n\n\n\n<p><em>Birgit Pauli-Haack: </em>Yeah, yeah. And you can also kind of see it happening when it&#8217;s fixed or something like that, or come together in a. In a very creative way. Yeah.</p>\n\n\n\n<h3 class=\"wp-block-heading\">Announcements</h3>\n\n\n\n<p>So you also are the instigator of the Pride Photo Drive. Tell us about it.</p>\n\n\n\n<h3 class=\"wp-block-heading\">Pride Photo Drive</h3>\n\n\n\n<p><em>Anne McCarthy: </em>Yeah, so it&#8217;s inspired by what I&#8217;ve seen with other photo directories. And something that I think is really near and dear to me is representation really matters. And so if you can find things that actually resonate, whether with your culture, part of your identity, or where you live, it makes it easier when you&#8217;re creating websites. Like, websites are inherently quite visual. And so having really good photos that represent queer people is really awesome. And so, of course, you can&#8217;t have faces in this. But the whole point of the photo drive is to inspire some folks to contribute photos, increase representation in the photo directory, and honestly, just have some fun. Like, I think there is something fun about going out and having a reason to take a photo that I think, at least I enjoy someone who takes a lot of photos. There are some cash prizes for winners, both in terms of most submitted photos, and we&#8217;ll have some folks select the top photos. But honestly, like, you don&#8217;t need to be a part of the LGBTQ community to participate. It&#8217;s for everyone. And it&#8217;s just mainly to ensure when folks go and look for something that represents them, there&#8217;s a higher chance of finding high quality work for that. So I hope to see more kind of initiatives like that. And so if anyone wants to talk about doing more drives, I&#8217;m happy to share what I&#8217;ve done. It&#8217;s been very. It&#8217;s been pretty simple. So more people can do this for sure.</p>\n\n\n\n<p><em>Birgit Pauli-Haack: </em>Yeah. And we have a link to the call for photos on the LGBTDPress.com and there are also the rules and how you actually can upload it to WordPress photo directory. And I&#8217;m really excited about that. I, yeah. Was last year, not this year I missed it, but last year was at the Christopher Street Day here in Munich and that was kind of. Wow. I didn&#8217;t realize how big that was. Yeah. And it was about 600,000 people on the road and 60,000 people in the parade and yeah, totally took over the. The downtown. But I probably have a few pictures made there that I can upload there. Yeah. So yeah, but it was a good point for you to say no photos or no faces or people out there. People, yes, but no faces. Yeah. So that&#8217;s cool. Yeah. So, yeah. </p>\n\n\n\n<h3 class=\"wp-block-heading\">WordPress New AI Team</h3>\n\n\n\n<p>And the second piece of announcement that we have is that WordPress has now an AI team. AI stands for artificial intelligence. There are two, three links actually that I can share with you. One is the welcome to the core AI team blog post, then the announcement and the hallway hangout and recap for the first hangout. </p>\n\n\n\n<p>So the mission I understood it is to build foundational building blocks for AI integration in WordPress and the timing is ideal because of the rapid evolution of AI. Some people at WordCamp EU said, okay, are we not a little bit late or something like that? No, you can&#8217;t. Yeah, it&#8217;s just the right time because now the emerging standards are there, and WordPress could be an ideal platform for AI driven web apps. There are immediate plans to integrate LMMs directly into WordPress, but there are canonical plugins that are on the roadmap and packages that are abstracting the AI provider like AI Services or. And the core integration would be more like. Yeah, a little. A second step. And we know that everything is kind of in place. It has the full support from WordPress leadership, including Matt and Mary. And because they recognize the importance of the open web and ensure it&#8217;s central in the evolving landscape.</p>\n\n\n\n<p>So what are the current initiatives? One is the AI services plugin from Felix Arntz. He&#8217;s on the team. But the team are right now James LePage from Automattic, Felix Arntz from Google as well as Pascal Bichler from Google and then Jeff Paul from TenUp. And all four have already some experience with AI in the space. And so there are three plugins that are being worked on. One is the AI services plugin Felix already publish that, and I&#8217;ll share links in the show Notes so you can look it up. And it&#8217;s an abstraction layer for multiple AI providers to enable plugin authors to unify the API for AI interactions. So you need your OpenAI API key or your CLAUDE API key or whatever you use, but then it helps you to include those services into whatever you want to do on the website. The other, the second one is the called MCP WP. MCP means Model Context Protocol. Those are servers to enable WordPress advanced AI integration with command line or plugins. So plugins say, okay, my plugin can do that with WordPress and you register those services and the AI can discover those on the site. I know that Jonathan Brassinger as well as Ryan Welcher have done some live streams on that and I can share some of that, the latest ones for on the show notes with the videos, so you can kind of follow along with that. </p>\n\n\n\n<p>And the last plugin is the WP feature API. That&#8217;s a plugin coming from Automattic, and it structures WordPress features for better AI integration. It&#8217;s kind of pretty much it&#8217;s a standardized way to register resources for AI. That&#8217;s pretty much what I can say there. It exposes the server and client side functionality in WordPress so LMMs can tap into it if they have the right credentials. Yes. So that&#8217;s kind of what I know about it. I read quite a bit about AI agents and MCP and it&#8217;s all still a little murky, but I think that&#8217;s with any of the new services and new technologies that are kind of coming out that we all need to figure out the smallest use case to figure it all out. Jamie Marsland has interviewed James LePage about the new AI team. And it&#8217;s a video, it&#8217;s called Very Clicky. It&#8217;s called WordPress AI fights back, fight Back Begins. So but it&#8217;s really insightful and Jamie asked some great questions in it. Any thoughts from you?</p>\n\n\n\n<p><em>Anne McCarthy: </em>Yeah, that was such a good rundown. One of the big questions I&#8217;ve heard from people and I&#8217;ve been getting pings about is like, how do I join? How do I join? The team is creating a handbook at its early stages. You can join the core AI Slack channel. That&#8217;s the best place they&#8217;re holding meetings and they&#8217;re pulling together that context. So please get involved. The idea is to create a shared group of tooling that then plugin authors can reuse. It&#8217;s meant to provide a shared base. So for the MCP thing, the way I&#8217;ve been kind of thinking of it is like rather than rewriting every AI integration from scratch, you can reuse this to Talk, to have WordPress talk to LLMs. So like those sorts of things are kind of the current focus to provide tooling for people who want to use AI with WordPress, including with plugin authors and stuff like that. So that&#8217;s the current perspective. And if that appeals to you, you have ideas there, you have personal experience. Trying to make that work like that definitely is a great place to give feedback. And these are the early stages. So it&#8217;s a great time to get involved. But yeah, that to me is the biggest takeaway to do a great job covering everything. And I love that each team member has direct experience building stuff in line with that mission and value. I&#8217;m really excited about the canonical plugins and what we can do and packages that we can do to move this work forward and iterate following a similar model as the performance team.</p>\n\n\n\n<p><em>Birgit Pauli-Haack:</em> Yeah, Fabian Kagy and I were on a podcast with Nathan Wrigley on the WP Builds podcast and we talked a little bit. We talked about a lot of things, but we also talked a little bit about the 10up plugin classify, especially because the latest release actually included an open source way to have LMMs on your server. So every time you ask the AI something, it doesn&#8217;t go out to a central server, it stays on your site.</p>\n\n\n\n<p>Well, you need of course a server with a little bit more oomph. But yeah, for those that want to use it for their internal communications or documentation, it&#8217;s definitely a great way to do this. And that&#8217;s why TenUp is also part of the team, and I share that also in the Show Notes, of course, both the podcast and the plugin. </p>\n\n\n\n<p>So other news the what&#8217;s New for developer edition June 2025 is available now. Justin Tadlock collected lots of information speaking about being back to contributing, lots of information relevant to plugin authors, theme builders and agency freelancers, the freelance developers for Core, Gutenberg and Playground. And it&#8217;s pretty much the best post to catch up on the last two months of updates on WordPress. So check it out with the link on the show notes or you go to developer.WordPress.org news or blog. Either way, Both of them get you to the developer blog.</p>\n\n\n\n<h3 class=\"wp-block-heading\">Community Contributions &#8211; WordCamp Europe</h3>\n\n\n\n<p>All right, so now that brings us to WordCamp Europe, first time. In contrast to previous WordCamps, all workshops have been recorded and all recordings have been already submitted to WordPress TV. That I only saw. That&#8217;s so cool. I only saw this on smaller WordCamps like in Karlsruhe or in Leipzig where there&#8217;s only one track or one or two tracks in only one day. But having two days with three tracks, everything already on WordPress TV, that&#8217;s a phenomenal achievement. </p>\n\n\n\n<p>So I have a few favorites I want to kind of suggest to you. One is of course, the fireside chat with Mary Hubbard and Matt Mullerweg. They discussed, among other things, a lot of other things, but the. The WordPress Campus Connect project that&#8217;s being rolled out as the official program from the WordPress Foundation. And also Mary announced a pilot project with the University of Pisa in Italy where 5,000 students have 150 mandatory contribution hours and those will equate to six credits for college. So that&#8217;s going to be a phenomenal place.</p>\n\n\n\n<p><em>Anne McCarthy: </em>I&#8217;m so excited for that.</p>\n\n\n\n<p><em>Birgit Pauli-Haack: </em>Yeah, yeah. Getting the young folks involved in WordPress evolved in open source and also bringing them together with mentors in the technical fields. Yeah. So I&#8217;m really excited about that. It&#8217;s also more focused on the translations because that&#8217;s the humanities department there. But yeah, yeah, everything helps. Anything helps. Yeah.</p>\n\n\n\n<p><em>Anne McCarthy: </em>So I got my start in college so I would have loved. This would have been amazing. I was working on a WordPress multi site in college and if I could have had this as a chance to get to know the WordPress community rather than learning about it four years after. I think it would have been amazing to have this kind of opportunity and access and experience of open source early on. So I&#8217;m very, I agree with you. I&#8217;m very excited about that program.</p>\n\n\n\n<p><em>Birgit Pauli-Haack: </em>Yeah, yeah. I also had about. Took me about four years to kind of get into the community here. So yeah, it&#8217;s always something, something. Another great talk was by Noel Tock. The title was WordPress Without Borders, the Fight for Digital Freedom. And he not only shared his about his own charity work in the Ukraine, about rescuing dogs and bringing them back to their owners, but also about other charities who helped with finding kids, providing a roof over the head for people that were bombed out and other hardships. And he made us realize the True Impact of WordPress because all the agencies use WordPress, not all the agencies, but over 50% of them use WordPress for the website to fundraise and to connect with the communities. </p>\n\n\n\n<p>So sorry my voice kind of gave out but that has partly to do with something like that. But I also got a gift from WordCamp Europe at home to suffer. There&#8217;s another cold that I&#8217;m fighting. That&#8217;s why I&#8217;m also sound so horsy. So sorry for that. Check it out. The block related talks were Ryan Welch&#8217;s workshop for the Block Development Cookbook and Milana Cap’s workshop around the Interactivity API. And that last one is really I didn&#8217;t see the first one, but the last one I saw and I learned more about the source and the namespace and how you can interact from one block to the next and exchange data. So that&#8217;s a really eye opener. Ellen Bauer talked about how block themes speed up stores and sites in WooCommerce and Robert O&#8217; Rourke asks and provides answers to do you really need a custom block? And he walks you through how you can extend the block editor own blocks without writing your own custom blocks. But really, all the many great talks about the WordCamp Europe are online and there are many for content creators, developers, entrepreneurs, educators, contributors as well. So check out the WordPress TV space with all the recordings. </p>\n\n\n\n<h3 class=\"wp-block-heading\">What’s Released &#8211; Gutenberg 20.9</h3>\n\n\n\n<p>And that brings us to Gutenberg releases. We start out with Gutenberg 20.9. So 20.9 was released on May 28th. We were a little late, but I was traveling and so do you want to start us off?</p>\n\n\n\n<h3 class=\"wp-block-heading\">Enhancements</h3>\n\n\n\n<p><em>Anne McCarthy: </em>Yeah, I totally can. In terms of enhancements, the base styles have been updated to a modern Saas module system, and this was basically an obstacle to the Gutenberg project overall, migrating to the dart SaaS format in the future. So I love this kind of proactive unblocking that&#8217;s happening, kind of moving away from some of the legacy import statements. Great work by Aki per usual, but one of those just kind of foundational pieces to work on and make sure we have up to date just to unblock future things. </p>\n\n\n\n<p>This one, I actually was involved in this one previously, but a revert was done for how the edit site link works. When you&#8217;re viewing your site, you&#8217;re using a block theme and you see edit site. There&#8217;s been a debate; does it open the current template you&#8217;re looking at or does it open just the site editor and the homepage? And this has gone back and forth since the dawn of time. So this is a revert that previously had it update. Basically whenever you hit edit site, it would bring you just to the general homepage of your site editor. Now it brings you to the current template. We got a bunch of feedback and this is where I love the WordPress project and love the feedback that we get straight from folks. Whenever that was implemented in 6.8, people came back and said, hang on, what&#8217;s going on? This is different. This isn&#8217;t interrupting my workflow. This now takes three clicks for me to get to the current template I was looking at rather than bringing me there. I see the argument on both sides. There&#8217;s definitely. I think Rich shared a great video of himself with. If you set a homepage or set a page as your homepage, what the experience of that looks like and how it can be confusing for end users, I have a feeling this is something that will continue to be a conversation and something that hopefully in the overarching issue there was a discussion around having more granularity. So maybe edit site has a little drop down menu, kind of like an ad post thing where you can see it says like edit template, edit homepage, edit, whatever. Like having edit styles, like having something with more granularity. We&#8217;ll see where that ends up. But this is. As of now, this experience has changed. Thanks to feedback. Do you want to jump into…</p>\n\n\n\n<p><em>Birgit Pauli-Haack: </em>The only thing that I wanted to say about that was that there are actually at least one plugin out there who actually tried to implement a dropdown with and kind of. So you can check it out. I&#8217;m going to do some research and share it in the show notes. Yeah, so and with the block library we had a few changes that I wanted to talk about. One is that the search settings. So for the search block there were a lot of settings in the toolbar, and it seems that most end users are kind of now trained to open up the sidebar for the settings. So developers have now moved some of the settings into the inspector to the right hand side in the sidebar so they&#8217;re all together. I think that&#8217;s just for. It&#8217;s also for consistency of the interface. So I like that. And then there were. For the first and the pre-formatted blocks, there were transformers missing and they were added. So people do not have to copy paste things and not delete a block and then add another block and copy paste the content and they just can transform them from paragraph to verse and back and forth. Yeah. And now Anne, we&#8217;re coming to a topic that you know a lot about. One is developers are enhancing content only editing experience. So what does that mean?</p>\n\n\n\n<p><em>Anne McCarthy: </em>Yeah, this is. The names on this are rough. So right now there&#8217;s this idea of write mode. We need a new name because basically what it does and this is something to zoom back out. Whenever I ran the outreach program, one of the things we repeatedly found is that dropping people straight into the site editor is pretty overwhelming. There&#8217;s a lot of options open, there&#8217;s a lot of tools open and it&#8217;s like, how do we add a simplified layer on top? That&#8217;s what write mode is intending to do. </p>\n\n\n\n<p>So you can imagine a way to toggle between a simplified site editing version and then like boom, all the tools you want and having a way to switch in between those modes as you you&#8217;d like. The underpinning technology used for that is content only. And what that does is it basically allows you to only edit the content. So it&#8217;s a lot of fancy names. But this is. I&#8217;m trying to like set the scene. And so there are some updates I think across both releases we&#8217;re covering that improves different blocks and how they work with this option because out of the box, not every block works with it and something has to be done manually to basically add support for it. Now there&#8217;s questions around specific blocks, like how much should be exposed, what should it look like, what should the experience be? I actually did some user testing at work campus last year with random people and recorded them going through this. And so there&#8217;s a lot to be figured out there. At the core it&#8217;s making way and taking steps towards a simplified site editing experience that folks can toggle on. You can imagine the first time in the site editor, maybe you have that experience and then if you run into something where you want to do more, you can have a quick way to just switch into like show me all the tools. Kind of like the idea of when you&#8217;re editing a presentation and like a slide slides for something and you want to go into the overall view of everything, you can do that. Otherwise you can just add text, move things around and have some like simplified experience. So that&#8217;s the context for that. This covers the details block, the code block, the read more block, the post block. There&#8217;s a lot of blocks that were changed for this and we&#8217;ll continue to see this. I think over the future releases we&#8217;ll see iteration on this area. So stay tuned.</p>\n\n\n\n<p><em>Birgit Pauli-Haack: </em>Awesome, awesome.</p>\n\n\n\n<p><em>Anne McCarthy: </em>Does that help explain it?</p>\n\n\n\n<p><em>Birgit Pauli-Haack: </em>Definitely helped me, yeah. And it also helped me to understand why there all of a sudden were different things in the sidebar. Because the different icons on there, they&#8217;re just identifying the places where you can edit the content but not, you&#8217;re not Having anything else in there. There are no display options or settings or something like that. So now I understand that. I also understand why plugin authors or agency for instance, are quite excited about that because they can curate the interface for their clients and kind of keep them out of the design and out of the have some more guardrails for them. And I think that&#8217;s because you can implement that through a plugin as well. So yeah, you can tap into the block JSON and say put this into content only mode because it&#8217;s not a default thing. So yeah, I like it. </p>\n\n\n\n<p>The two components had some changes. One is that the color. The color picker now has visual cues when you copy value. That&#8217;s definitely great. The interaction there. So you don&#8217;t have to wonder, did I copy it or did I not copy it? And then the snack bar, that&#8217;s the term that developers use for the notifications that are on bottom on your screen that come up when you do something. So if you have to, if you save your post, you get the little note. Click here to view it. And now this is also now available to open the links in new tabs, especially when you are a plugin author for your whatever plugin you do. You can also use the snack arx component. And then now you have the options to open links in a new tab, which is controversial, but yeah, just having the option in the components should be fine. It&#8217;s controversial because you take over the freedom of the user to decide if they want it into a new tab or new window or just right there because all of a sudden they don&#8217;t have the choice anymore.</p>\n\n\n\n<p><em>Anne McCarthy: </em>I think that I&#8217;m curious how that bland with. With folks. Yeah, that one I was surprised to see a bit.</p>\n\n\n\n<p><em>Birgit Pauli-Haack: </em>But yeah, yeah, I think that was it for Gutenberg 20.9. </p>\n\n\n\n<h3 class=\"wp-block-heading\">Gutenberg 21.0</h3>\n\n\n\n<p>Gutenberg 21 was just released this week. And do you want to take that next step there?</p>\n\n\n\n<h3 class=\"wp-block-heading\">Enhancements</h3>\n\n\n\n<p><em>Anne McCarthy: </em>Yeah, let&#8217;s dive into it. One of the main enhancements that I love to see is a refactor, the settings panel to use Tools panel. So across a bunch of different blocks to zoom back out, there&#8217;s different ways in which we display settings. And that can cause those little inconsistencies really add up, especially when you&#8217;re looking, you&#8217;re trying to do something in one block and you do something in a different one and it looks slightly different or appears slightly differently. So the more we can have really smart, intuitive defaults where for any block, whenever you want to change something in one block, it&#8217;s the same in another the better and especially just experience wise and using the latest components. It&#8217;s a really important thing to continue to iterate on. And so across a number of different blocks the Tools panel was implemented and there&#8217;s a lot of benefits. I don&#8217;t know if you want to talk about the benefits of it just because it&#8217;d be good to hear your perspective on this too.</p>\n\n\n\n<p><em>Birgit Pauli-Haack: </em>Yeah, I would because I was trying to figure out what is actually that the user gets out of it and. Or the developers that use the blocks or extend those blocks. You get more control for the display. It&#8217;s every time the same thing. That&#8217;s what you mentioned. But it&#8217;s also an easier mechanism for injecting additional settings into an existing group. I&#8217;m not quite sure if that&#8217;s exposed for the third party to. For the extensibility, but that will definitely enable it. And then there is a visual parity between the styles that are already in the Tools panel and those who don&#8217;t. Yeah. So it&#8217;s really. It&#8217;s all the comments block. It&#8217;s. There&#8217;s a tracking issue 67813 where you can kind of see all the progress on this project and also the list of the blocks that are handled with that. Yeah. </p>\n\n\n\n<p>So another change is that the separator has now. Well, we talked about earlier. Well in the last  episode about that. That the separator now has an additional. You can have now a div instead of an HR so you can style it more. And with this release that HTML element option is much more visible. It&#8217;s now kind of moved up in the advanced section and it&#8217;s not hidden anymore. So you can just toggle that and can change the options there. I really like that there was another block about that. I think the same thing happens with a button block. They also move the HTML element section up so you can change through between the element of a button or the element of a link, an anchor. So that&#8217;s why I&#8217;m kind of hesitating about moving forward there. In the video Block has now an additional option to set a track as default and the track is actually the caption track. So you can select the default language there. And that&#8217;s really helpful for anybody who has videos on the website and is not an English speaker or doesn&#8217;t have the audience of any English speaker. So they could set the default but they had to really specifically do it. And if there&#8217;s not one uploaded, it was a little janky, so buggy for things. So I think that was it on the enhancements.</p>\n\n\n\n<h3 class=\"wp-block-heading\">Bug Fixes</h3>\n\n\n\n<p><em>Anne McCarthy: </em>Yeah. Now we can jump into bug fixes if you want to. I can start with that.</p>\n\n\n\n<p><em>Birgit Pauli-Haack: </em>Yeah, yeah.</p>\n\n\n\n<p><em>Anne McCarthy: </em>One of the first bug fixes which I do want to call out is from, I&#8217;m pretty sure a new contributor. Yep, first-time contributor, which is always really cool to see. Super awesome. McCool I think is the name. Apologies if I&#8217;m mispronouncing that, but this work basically fixed an issue where the pull quotes site element couldn&#8217;t be styled or overridden by theme JSON due to basically conflicting CSS specificity. And so this is a nice win for blocking developers because they can now customize citation styles as they&#8217;d like. And it was some nice collaboration with Aki again to basically resolve this by reducing the specificity of the class selector so that theme JSON styles can actually work. I love when that actually works out. So yeah, keep the feedback coming, especially block theme authors around limitations you run into like this. It&#8217;s always really helpful to start to continue to fix these sorts of things. So I was excited to see that bug fix there.</p>\n\n\n\n<p><em>Birgit Pauli-Haack: </em>Definitely. It&#8217;s also, if you want to read up about it and see how such a collaboration between veteran contributors and new contributors actually happens. It&#8217;s a great example where a lot of people have some opinions, but then you move forward and you get a nice PR merged that helps a lot of people. So it&#8217;s definitely a great way to contribute. I don&#8217;t think I see any other bug fixes that I would want to talk about. </p>\n\n\n\n<h3 class=\"wp-block-heading\">Accessibility</h3>\n\n\n\n<p>So there&#8217;s one on the component that&#8217;s more on accessibility thing, that the toolbar now adjusts the colors for dark mode support. And that&#8217;s really cool because now you can also have the toolbar on the block in dark mode. For a lot of people that are around in dark mode, it&#8217;s really cool. </p>\n\n\n\n<h3 class=\"wp-block-heading\">Documentation</h3>\n\n\n\n<p>And then there is one documentation issue I need to look at that, but it is that the block schema now also has a roll field and the role field is important for.</p>\n\n\n\n<p><em>Anne McCarthy: </em>It looks like it was added before in 6.7. Like the roll field was stabilized but it wasn&#8217;t exposed in the schema. Which, you know, might be good to follow up on.</p>\n\n\n\n<p><em>Birgit Pauli-Haack: </em>Yeah, yeah, it happens with 6.7 it was. Yeah. And that&#8217;s for the content mode.</p>\n\n\n\n<p><em>Anne McCarthy: </em>Yeah, that&#8217;s right.</p>\n\n\n\n<p><em>Birgit Pauli-Haack: </em>Yeah. So that&#8217;s it. I think we&#8217;re through that. We have Gutenberg 20.9 and 21 and we are at the last bit of our show. </p>\n\n\n\n<h3 class=\"wp-block-heading\">What’s in Active Development or Released</h3>\n\n\n\n<p>And that is what&#8217;s in active development or discussed. And with a few more talks on flagship WordCamps, the interactivity becomes more and more popular, and the team worked in the last few months with the WordPress team together to implement additional features, and those are now with the start of contributing again backported to the Gutenberg repo. There are many issues and you can follow along on the tracking issue. Backport WooCommerce Interactivity API improvements. That&#8217;s tracking issue 70372. It&#8217;s like a phone number. Yeah, there are actually quite a few issues in there. I&#8217;m really excited about that because there is a new feature that&#8217;s the interactivity router that lets you organize your pages better or the links between blocks. And also what was the other one?</p>\n\n\n\n<p><em>Anne McCarthy: </em>I know there&#8217;s some client side navigation work that&#8217;s been done too, which I&#8217;m really excited about. I&#8217;ve been using that in the Block Museum for a while now and it just makes it super quick to switch between pages and to have it be pulled in and hopefully stabilize soon. It&#8217;d be really, really neat to have as an option. I have loved having it on the Block Museum.</p>\n\n\n\n<p><em>Birgit Pauli-Haack: </em>So yeah, yeah, that was also something, that was an experiment I think in Gutenberg for the, for the query block. Yeah, yes, yes. So, okay, so now we&#8217;re kind of moving forward on that and I&#8217;m quite excited about that, and I hope you dear listeners are too. All right, is there anything else that you wanted to talk about on the show?</p>\n\n\n\n<p><em>Anne McCarthy: </em>But nothing on my mind. I mean I would love this is a selfish ask, but as I get back into the project, mainly coming back from sabbatical, I would love to know what sort of hallway hangouts or conversations folks want to have. I&#8217;m really keen on making sure we continue to have a lot of those community wide conversations, not just at WordCamps because not everyone can join those. And like that&#8217;s some inspiration I took from the COVID times is to continue the conversation. So if folks have ideas or suggestions, I&#8217;m Nzazu and WordPress at org Slack, my site Snowmad Blog, you can contact me there. I&#8217;m not on X or any of the social media so you cannot find me. But yeah, I, I just am. I&#8217;m very curious to see what&#8217;s on people&#8217;s minds, what feels like hot topics to discuss and what feels important to hear more about and how we can facilitate sharing that knowledge and inviting more folks into the work. That&#8217;s the only other thing I&#8217;d love to add.</p>\n\n\n\n<p><em>Birgit Pauli-Haack: </em>Awesome. Awesome. Yes. And as always, the show notes will be published on <a href=\"http://gutenbergtimes.com/podcast\">GutenbergTimes.com/podcast</a> this is episode 118. And if you have questions or suggestions or news you want us to include, send them to <a href=\"mailto:changelog@gutenbergtimes.com\">changelog@gutenbergtimes.com</a> that&#8217;s <a href=\"mailto:changelog@gutenbergtimes.com\">changelog@gutenbergtimes.com</a> and this is the end of this show. </p>\n\n\n\n<p>Thank you all for listening, and thank you so much for taking the time out of your busy, busy schedule to be on the show with me. And thank you all for listening. And until the next time, bye. </p>\n\n\n\n<p><em>Anne McCarthy: </em>Bye.</p>\n\n\n\n<p></p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sun, 15 Jun 2025 14:52:18 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:18:\"Birgit Pauli-Haack\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:49;a:6:{s:4:\"data\";s:21:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:119:\"Gutenberg Times: From WordCamp Europe to AI and Beyond: Figma, Fresh Courses, and Block Style  — Weekend Edition #332\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://gutenbergtimes.com/?p=40572\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:121:\"https://gutenbergtimes.com/from-wordcamp-europe-to-ai-and-beyond-figma-fresh-courses-and-block-style-weekend-edition-332/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:28069:\"<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\n\n\n\n<p>Hi there,</p>\n\n\n\n<p>WordCamp Europe is over. I had a blast and also caught a bug.<img alt=\"🤧\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/15.1.0/72x72/1f927.png\" style=\"height: 1em;\" /> </p>\n\n\n\n<p>The next flagship WordCamp is just around the corner: <a href=\"https://us.wordcamp.org/2025/\">WordCamp US</a> will take place August 26 &#8211; 29 with Contributor Day, Showcase Day and a two-day conference. The <a href=\"https://us.wordcamp.org/2025/call-for-speakers/\">call for speakers is open</a>, notice the deadline June 20 for your submission. Also open are the <a href=\"https://us.wordcamp.org/2025/call-for-sponsors/\">call for sponsors</a> and <a href=\"https://us.wordcamp.org/2025/volunteer/\">for volunteers.</a></p>\n\n\n\n<p>I am so excited as I will finally connect with my WordPress friends from the US again. It took me three years to get back to WordCamp US after our move to Germany. </p>\n\n\n\n<p>With Automattic <a href=\"https://automattic.com/2025/05/29/returning-to-core/\">getting back to contributions</a>, the team caught up on Gutenberg release posts and there is a new Gutenberg version available. I also have a few notes and links collected about the new AI team and their work. </p>\n\n\n\n<p>I hope to see you at WordCamp US, too</p>\n\n\n\n<p>Yours, <img alt=\"💕\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/15.1.0/72x72/1f495.png\" style=\"height: 1em;\" /><br /><em>Birgit</em></p>\n\n\n\n\n\n\n<div class=\"wp-block-newsletterglue-showhide ng-block\" width=\"100%\"></div>\n\n\n<h2 class=\"wp-block-heading\" id=\"0-word-press-release-information\">Developing Gutenberg and WordPress</h2>\n\n\n\n<p>In the latest edition of <a href=\"https://developer.wordpress.org/news/2025/06/whats-new-for-developers-june-2025/\"><strong>What’s New for Developers (June 2025)</strong></a>, <strong>Justin Tadlock</strong> collected lots of information relevant for plugin authors, themes builders and agency freelance developers from Core, Gutenberg, and Playground. It’s the best post to catch up on the last to month of updates in WordPress. </p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\n\n\n\n<p><strong>Carlos Bravo </strong>release Gutenberg 21.0. In his release post <a href=\"https://make.wordpress.org/core/2025/06/11/whats-new-in-gutenberg-21-0-11-june/\"><strong>What’s new in Gutenberg 21.0?</strong></a> he highlighted. </p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https://make.wordpress.org/core/2025/06/11/whats-new-in-gutenberg-21-0-11-june/#html-element-now-selectable\">The HTML Element is now selectable on Button and Separator blocks.</a></li>\n\n\n\n<li><a href=\"https://make.wordpress.org/core/2025/06/11/whats-new-in-gutenberg-21-0-11-june/#experimental-inline-comments\">Extensive ToolsPanel Refactoring</a></li>\n\n\n\n<li><a href=\"https://make.wordpress.org/core/2025/06/11/whats-new-in-gutenberg-21-0-11-june/#accessibility-and-usability\">Accessibility and usability</a></li>\n</ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\n\n\n\n<p><strong>Jessica Lyschik</strong> used the time during Contributor Day at WordCamp Europe to get a head start on catching up with the release posts for earlier Gutenberg releases. </p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https://make.wordpress.org/core/2025/06/05/whats-new-in-gutenberg-20-4-and-20-5/\">What’s new in Gutenberg 20.4 and 20.5?</a></li>\n\n\n\n<li><a href=\"https://make.wordpress.org/core/2025/06/11/whats-new-in-gutenberg-20-6-and-20-7/\">What’s new in Gutenberg 20.6 and 20.7?</a></li>\n\n\n\n<li><a href=\"https://make.wordpress.org/core/2025/06/11/whats-new-in-gutenberg-20-8-and-20-9/\">What’s new in Gutenberg 20.8 and 20.9?</a></li>\n</ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\n\n\n\n<div class=\"wp-block-group has-light-background-background-color has-background\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<p><img alt=\"🎙\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/15.1.0/72x72/1f399.png\" style=\"height: 1em;\" /> The latest episode <a href=\"https://gutenbergtimes.com/podcast/gutenberg-changelog-118-wordpress-new-ai-team-the-pride-photo-drive/\">Gutenberg Changelog 118 – WordCamp Europe, WordPress New AI Team, the Pride Photo Drive, Gutenberg 20.9 and 21.0 </a> <strong>Anne McCarthy</strong> is back from sabbatical and we talked about WordCamp Europe, the new WordPress AI team, the Pride Photo Drive, and Gutenberg 20.9 and 21.0 . </p>\n\n\n\n<p><em>If you are listing via Spotify, please leave a comment. If you listen via other podcast apps, please leave a review. It&#8217;ll help with the distribution.</em></p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img alt=\"\" class=\"wp-image-40687\" height=\"185\" src=\"https://i0.wp.com/gutenbergtimes.com/wp-content/uploads/2025/06/Screenshot-2025-06-14-at-08.28.08.png?resize=652%2C185&#038;ssl=1\" width=\"652\" /></figure>\n</div></div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"new-wordpress-ai-team\">New WordPress AI Team</h3>\n\n\n\n<p>Just ahead of WordCamp Europe, <strong>Mary Hubbard</strong> <a href=\"https://wordpress.org/news/2025/05/announcing-the-formation-of-the-wordpress-ai-team/\"><strong>announce the new AI team</strong></a>, identifying James LePage and Felix Arnzt as team reps. James LePage followed up with his post <a href=\"https://make.wordpress.org/ai/2025/05/23/welcome-to-the-core-ai-team-blog/\"><strong>Welcome to the Core AI Team Blog</strong></a>. </p>\n\n\n\n<p>The community came together for the <strong><a href=\"https://make.wordpress.org/ai/2025/06/03/introducing-the-ai-team-hallway-hangout-recap/\">Introducing the AI Team Hallway Hangout</a></strong> and <strong>Anne McCarthy</strong> published the recap and the recording. </p>\n\n\n\n<p>What I learned: </p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The AI Team is laying the groundwork to bring AI into WordPress, and the timing couldn’t be better. With AI moving at lightning speed, it’s important for WordPress to stay in the mix.</li>\n\n\n\n<li>For now, the AI Team isn’t adding big AI tools directly into WordPress. Instead, they’re working on simple plugins that help connect WordPress to different AI services. Maybe someday AI will be built right into the core, but that’s not on the table yet.</li>\n\n\n\n<li>WordPress leaders are fully behind the AI Team, recognizing that AI is the future and wanting to keep WordPress front and center as things evolve.</li>\n</ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\n\n\n\n<p>The current initiatives / plugins have been mentioned in early editions of the newsletter: </p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https://wordpress.org/plugins/ai-services/\"><strong>AI Services</strong></a> Plugin by Felix Arnzt provides an abstraction layer for multiple AI providers, enabling plugin authors to use a unified API for AI interactions. </li>\n\n\n\n<li><a href=\"https://github.com/mcp-wp/\"><strong>MCP for WordPress</strong></a> plugin  by Pascal Birchler implements Model Context Protocol (MCP) servers in WordPress, enabling advanced AI integrations via command-line or plugins. You can learn more about reading Pascal Bichler&#8217;s post <a href=\"https://pascalbirchler.com/wordpress-model-context-protocol-mcp/\"><em>Enabling AI-Powered WordPress Development with WP-CLI and the Model Context Protocol (MCP)</em></a></li>\n\n\n\n<li><a href=\"https://github.com/Automattic/wp-feature-api\"><strong>WP-Feature-API</strong> </a>plugin by Automattic structures WordPress features for better AI interaction, offering a standardized way to register resources for AI use. It&#8217;s a system for exposing server and client-side functionality in WordPress for use in LLMs and agentic systems</li>\n</ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\n\n\n\n<p>The <strong>WordPress AI Team</strong> chats in the WPSlack <a href=\"https://wordpress.slack.com/archives/C08TJ8BPULS\">#core-ai</a> channel and holds meetings every other Thursday at 16:00 UTC. You can read <a href=\"https://make.wordpress.org/ai/2025/06/13/ai-chat-summary-12-june-2025/\">the summary of this week&#8217;s meeting</a> on the Make AI blog. </p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\n\n\n\n<p>In his video <a href=\"https://www.youtube.com/watch?v=V08qhLL19cM\"><strong>The WordPress AI fightback begins!</strong></a> Jamie Marsland interviews James LePage about AI in WordPress and the new team. </p>\n\n\n<div class=\"wp-block-newsletterglue-showhide ng-block\" width=\"100%\">\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n\n</div></figure>\n</div>\n\n\n<h3 class=\"wp-block-heading\" id=\"wordcamp-europe\">WordCamp Europe </h3>\n\n\n\n<p>It was a fantastic WordCamp at a great venue. I enjoyed the many, many conversations with attendees, sponsors, contributors and fellow speakers. The organizing team has done a fabulous job, in all areas, and the volunteers were awesome. The speaker team was first-class in their support. As a first time WCEU speaker, I felt very well cared for. I loved the bright and brilliant designs at the venue as well as on the website and on screens. </p>\n\n\n\n<p>The most astonishing work was done by the AV team, who <a href=\"https://wordpress.tv/event/wordcamp-europe-2025/\">uploaded all videos to WordPress TV</a> by the end of the WordCamp.  In contrast to previous WordCamps, all workshops were also recorded, and you can watch them at your own speed. </p>\n\n\n\n<p>As always, I share my opinionated list of favorites: </p>\n\n\n\n<p><a href=\"https://wordpress.tv/2025/06/09/fireside-chat-with-mary-hubbard-and-matt-mullenweg/\"><strong>During Fire side Chat</strong></a> with <strong>Mary Hubbard</strong> and <strong>Matt Mullenweg</strong> they discussed, among other things, the <strong>WordPress Campus Connect</strong> project that’s being rolled out as an official program. Hubbard also announced the start of a pilot project for student internships with the University of Pisa, encompassing 5000 students to contribute 150 hours and received six college credits.</p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https://wordpress.tv/2025/06/09/fireside-chat-with-mary-hubbard-and-matt-mullenweg/\"><img alt=\"Mary Hubbard and Matt Mullenweg at WordCamp Europe 2025. Photo by Sathwik Prabhu\" class=\"wp-image-40669\" height=\"435\" src=\"https://i0.wp.com/gutenbergtimes.com/wp-content/uploads/2025/06/Mary-Hubbard-Matt-Mullenweg-WordCamp-Europe-2025.jpg?resize=652%2C435&#038;ssl=1\" width=\"652\" /></a></figure>\n\n\n\n<p>Another great talk was by <strong>Noel Tock <a href=\"https://wordpress.tv/2025/06/07/wordpress-without-borders-the-fight-for-digital-freedom/\">WordPress without Borders – The Fight for Digital Freedom</a></strong>. Tock not only shared from his charity work in Ukraine but also about other charities who help with finding kids, providing a roof over the head of people who lost their homes, and trying to alleviate other hardships. Tock made us realize the true impact of WordPress has to all the agencies who use it for their web site to fundraise and connect with communities. The pictures from Ukraine are heart-wrenching.</p>\n\n\n\n<p>The Block related talks:  </p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Ryan Welcher</strong> and <a href=\"https://wordpress.tv/2025/06/07/the-block-developer-cookbook-wceu-2025-edition/\"><strong>his block development cookbook</strong></a> workshop and</li>\n\n\n\n<li><strong>Milana Cap</strong> conducting the workshop <strong><a href=\"https://wordpress.tv/2025/06/07/wordpress-gems-for-devs-interactivity-api-2/\">WordPress Gems around the Interactivity API</a>. </strong></li>\n\n\n\n<li><strong>Ellen Bauer</strong> talked about <strong><a href=\"https://wordpress.tv/2025/06/07/why-block-themes-make-woocommerce-stores-better/\">how block themes speed up stores and sites</a> </strong>and give back control for the layouts to the merchants</li>\n\n\n\n<li><strong>Robert O’Rourke</strong> asked <strong><a href=\"https://wordpress.tv/2025/06/07/do-you-really-need-a-custom-block/\">Do you really need a custom block</a>.</strong>   </li>\n</ul>\n\n\n\n<p>If you are interested in working with Playground, two workshops might help you get started depending on your needs</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https://wordpress.tv/2025/06/07/from-zero-to-demo-mastering-wordpress-playground-blueprints/\"><strong>From Zero to Demo: Mastering WordPress Playground Blueprints</strong></a> with yours truly and</li>\n\n\n\n<li><a href=\"https://wordpress.tv/2025/06/07/building-automated-tests-with-wordpress-playground/\"><strong>Building Automated Tests with WordPress Playground</strong></a> with <strong>Berislav (Bero) Grgicak</strong></li>\n</ul>\n\n\n\n<p>This is only a small list, and there are many great talks about all WordPress topics, for content creators, developers, entrepreneurs, and educators. <a href=\"https://wordpress.tv/event/wordcamp-europe-2025/\">Check them out.</a> </p>\n\n\n\n<p>A few attendees published recap posts:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https://wordpress.org/news/2025/06/wceu-2025-a-community-celebration-in-the-swiss-sun/\">WCEU 2025: A Community Celebration in the Swiss Sun</a> by <strong>Brett McSherry</strong></li>\n\n\n\n<li><a href=\"https://make.wordpress.org/core/2025/06/10/wordcamp-europe-2025-recap-of-the-event/\">WordCamp Europe 2025 | Recap of the event</a> by <strong>Benjamin Zekavica</strong></li>\n\n\n\n<li><a href=\"https://make.wordpress.org/test/2025/06/10/wceu-2025-contributor-day-recap/\">WCEU 2025 : Test Team Contributor Day Recap</a> by <strong>Krupa Nanda</strong></li>\n\n\n\n<li><strong>TechRadar:</strong> <a href=\"https://www.techradar.com/pro/live/wordcamp-europe-2025-all-the-latest-news-and-updates-as-they-happen\">WordCamp Europe 2025 &#8211; here&#8217;s all the highlights from the event</a></li>\n\n\n\n<li><a href=\"https://kau-boys.com/4146/wordcamp/wordcamp-europe-2025-a-trip-to-a-beautiful-city\">WordCamp Europe 2025 – A trip to a beautiful city</a> by <strong>Bernhard Kau</strong></li>\n</ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"0-p\">Plugins, Themes, and Tools for #nocode site builders and owners</h2>\n\n\n\n<p><strong><br />Carlo Daniele</strong>, Kinsta, dug deeper in the term <a href=\"https://kinsta.com/blog/hybrid-themes/\"><strong>WordPress Hybrid Themes</strong></a>. He covered two approaches. The first is how hybrid themes bridge the gap between Classic and Block Themes by supporting modern block features. They maintain compatibility with traditional plugins and templates. The second highlights ways developers can enhance hybrid themes with global styles. They can use block patterns and template parts for flexible site building.</p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\n\n\n\n<p>In her post, <a href=\"https://groundworx.dev/from-page-builders-to-blocks-how-and-why-to-finally-move-to-gutenberg/\"><strong>From Page Builders to Blocks</strong></a>, <strong>Johanne Courtright</strong>, founder of Groundworx,  explains why it’s time to move from page builders to Gutenberg, the built-in block editor. She points out its built-in stability, better performance, and easier design control. Courtright tackles common worries, then suggests starting small—like switching your blog first, updating your theme, and helping users learn—showing that Gutenberg’s block system is the way forward for WordPress.</p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\n\n\n\n<p>In here post <a href=\"https://binatethoughts.com/design-once-build-everywherethe-lego-principle-for-page-builders/\"><strong>Design Once, Build Everywhere:The Lego Principle for Page Builders</strong></a>, <strong>Tammie Lister </strong>reflects on the fragmented world of page builders, arguing for a “Lego principle” where design components are created once and used everywhere. She suggests that adopting shared foundations and modular systems—much like Lego’s approach—would unlock creativity, improve portability, and better meet modern demands. Ultimately, Lister envisions a future where page builders are collaborative, flexible, and empower users to build without barriers.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"2-word-press-6-0-1-and-6-1-scheduled\">Theme Development for Full Site Editing and Blocks</h2>\n\n\n\n<p><strong>Fabian Kägy,</strong> director of Editorial Engineering, introduced <a href=\"https://fueled.com/blog/figma-to-wordpress-in-minutes/\"><strong>Fueled’s open-source Figma to WordPress plugin,</strong></a> which exports design tokens from Figma directly into a WordPress theme.json file, reducing a 10–15 hour manual process to about an hour and enabling rapid, consistent theme development without extra frameworks or licenses</p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https://fueled.com/blog/figma-to-wordpress-in-minutes/\"><img alt=\"Screenshot of the Figma to WordPress plugin \" class=\"wp-image-40680\" height=\"408\" src=\"https://i0.wp.com/gutenbergtimes.com/wp-content/uploads/2025/06/Figma-to-theme.json_.png?resize=652%2C408&#038;ssl=1\" width=\"652\" /></a></figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\n\n\n\n<p>J<strong>eremy Holcombe</strong> at Kinsta, also researched <a href=\"https://kinsta.com/blog/convert-figma-to-wordpress/\" rel=\"noreferrer noopener\" target=\"_blank\">How to convert a Figma project to WordPress</a> and walks you through three methods. He covers using the <a href=\"https://www.figma.com/community/plugin/1195068675739761335/figma-to-wordpress\">Figma plugin </a>by <a href=\"https://yotako.io/\">Yotako</a> for automation, manually rebuilding designs in WordPress for precision, and hiring professional services, highlighting the pros, cons, and best use cases for each approach.. </p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\n\n\n\n<p><strong>Mike McAlister</strong> introduced <a href=\"https://olliewp.com/introducing-the-ollie-theme-academy-video-course/\"><strong>the Ollie Theme Academy video course</strong></a> a free and in-depth video course teaching everything from the basics to advanced techniques of WordPress block theme development. The course covers full site editing, global styles, patterns, and aims to help anyone modernize their WordPress workflow for 2025 and beyond.</p>\n\n\n\n<p>10 days later, McAlister followed up with the announcement of a <a href=\"https://olliewp.com/introducing-the-ollie-block-dev-academy/\"><strong>Block Development course</strong></a>. This is a new resource to help developers master building custom WordPress blocks. It provides practical, hands-on video lessons focused on modern block development. This approach aims to make it easier for anyone to create powerful, custom blocks for their WordPress sites.</p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https://olliewp.com/introducing-the-ollie-block-dev-academy/\"><img alt=\"Screenshot of the landing page for the Ollie Block Academy, courtesy of Mike McAlister \" class=\"wp-image-40685\" height=\"341\" src=\"https://i0.wp.com/gutenbergtimes.com/wp-content/uploads/2025/06/Screenshot-2025-06-12-at-1.47.26%E2%80%AFPM.png?resize=652%2C341&#038;ssl=1\" width=\"652\" /></a></figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\n\n\n\n<p><strong>Bernhard Kau</strong> explored <a href=\"https://kau-boys.com/4130/web-development/implementing-a-custom-block-style-variation-using-only-json-files\" rel=\"noreferrer noopener\" target=\"_blank\"><strong>Implementing a custom block style variation using only JSON files</strong></a> in WordPress block themes. He explains how to make a perfectly round button by defining a new style in a JSON file. This approach bypasses the need for PHP or JavaScript. Despite some limitations, this approach allows for easy customization. There is incomplete support for certain properties. Nevertheless, it enables consistent design without writing traditional code.</p>\n\n\n<section class=\"wp-block-newsletterglue-callout undefined not-color-set\" style=\"border-color: #f9f9e5; border-radius: 22px; border-style: solid; border-width: 0; padding-top: 20px; padding-bottom: 20px; padding-left: 20px; padding-right: 20px; text-align: left; margin-left: 0; margin-right: 0; margin-top: 0px; margin-bottom: 0px; background-color: #f9f9e5;\">\n<p><strong> <a href=\"https://make.wordpress.org/core/handbook/references/keeping-up-with-gutenberg-index/\" rel=\"noreferrer noopener\" target=\"_blank\">&#8220;Keeping up with Gutenberg &#8211; Index 2025&#8221;</a> </strong><br />A chronological list of the WordPress Make Blog posts from various teams involved in Gutenberg development: Design, Theme Review Team, Core Editor, Core JS, Core CSS, Test, and Meta team from Jan. 2024 on. Updated by yours truly. The previous years are also available: <strong><strong><a href=\"https://make.wordpress.org/core/handbook/references/keeping-up-with-gutenberg-index/keeping-up-with-gutenberg-index-2020/\">2020</a> | <a href=\"https://make.wordpress.org/core/handbook/references/keeping-up-with-gutenberg-index/keeping-up-with-gutenberg-index-2021/\">2021</a></strong> | <strong><a href=\"https://make.wordpress.org/core/handbook/references/keeping-up-with-gutenberg-index/keeping-up-with-gutenberg-index-2022/\">2022</a></strong></strong> | <strong><a href=\"https://make.wordpress.org/core/handbook/references/keeping-up-with-gutenberg-index/gutenberg-index-2023\">2023</a></strong> | <a href=\"https://make.wordpress.org/core/handbook/references/keeping-up-with-gutenberg-index/gutenberg-index-2024/\"><strong>2024</strong></a></p>\n</section>\n\n\n<h2 class=\"wp-block-heading\" id=\"3-building-themes-for-fse-and-word-press\">Building Blocks and Tools for the Block editor</h2>\n\n\n\n<p><br /><strong>Alfredo Navas</strong>, developer at WebDevStudios, explored <a href=\"https://webdevstudios.com/2025/06/11/using-wordpress-mcp-as-a-development-tool/\"><strong>the MCP server plugin</strong></a>. He shared his findings and highlighted how it enables external tools or AI agents to interact with WordPress. These interactions are useful for tasks like creating posts or debugging. He notes its usefulness for automating workflows, its extensibility, and that it’s still under active development.</p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\n\n\n\n<p><strong>Eric Karkovack</strong> explains how to <a href=\"https://speckyboy.com/add-custom-style-variations-wordpress-blocks/\"><strong>add custom style variations to WordPress blocks using a custom plugin</strong></a>. He guides you through creating custom style variations for WordPress blocks. He details building a plugin, using the ‎`register_block_style()` function, and applying unique styles—like a “Unicorn” button—via PHP or JSON. This way you empower your users to personalize block designs and enhance site consistency. </p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\n\n\n\n<p>I mentioned <strong>DeepWiki</strong> before, <a href=\"https://gutenbergtimes.com/block-styles-woo-product-collection-deepwiki-accessibility-day-weekend-edition-329/#deepwiki\">in WE #329</a>, and now <strong>Jonathan Bossenger</strong> invites you in you YouTube video to learn more about <strong><a href=\"https://www.youtube.com/watch?v=bq0P8Gc-9xk\">DeepWiki | AI powered documentation you can talk to</a></strong>.</p>\n\n\n\n<p>I asked DeepWiki the following questions, click on the links to get to the answers. </p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https://deepwiki.com/search/what-are-the-elements-of-the-w_7f48ffc6-285a-4522-bb0c-5b98471c3178\">What are the elements of the WordPress Design system</a></li>\n\n\n\n<li><a href=\"https://deepwiki.com/search/what-are-the-elements-of-the-w_7f48ffc6-285a-4522-bb0c-5b98471c3178\">How is the spacing fluid?</a></li>\n</ul>\n\n\n<div class=\"wp-block-newsletterglue-showhide ng-block\" width=\"100%\">\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n\n</div></figure>\n</div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\n\n\n<section class=\"wp-block-newsletterglue-callout undefined not-color-set\" style=\"border-color: #eeeeee; border-radius: 26px; border-style: solid; border-width: 0; padding-top: 20px; padding-bottom: 20px; padding-left: 20px; padding-right: 20px; text-align: left; margin-left: 0; margin-right: 0; margin-top: 0px; margin-bottom: 0px; background-color: #f3efe9;\">\n<p><strong><a href=\"https://gutenbergtimes.com/need-a-zip-from-master/\">Need a plugin .zip from Gutenberg&#8217;s master branch?</a></strong><br />Gutenberg Times provides daily build for testing and review. </p>\n\n\n\n<p>Now also available via <a href=\"https://playground.wordpress.net/?blueprint-url=https://gutenbergtimes.com/wp-content/uploads/2020/11/playnightly.json\">WordPress Playground</a>. There is no need for a test site locally or on a server. Have you been using it? <a href=\"mailto:pauli@gutenbergtimes.com\">Email me </a>with your experience</p>\n\n\n\n<p><img alt=\"GitHub all releases\" src=\"https://img.shields.io/github/downloads/bph/gutenberg/total?style=for-the-badge\" /></p>\n</section>\n\n\n<p class=\"has-text-align-center has-small-font-size\"><em>Questions? Suggestions? Ideas? </em><br /><em>Don&#8217;t hesitate to send <a href=\"mailto:pauli@gutenbergtimes.com\">them via email</a> or</em><br /><em> send me a message on WordPress Slack or Twitter @bph</em>.</p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" />\n\n\n\n<p class=\"has-text-align-center has-small-font-size\">For questions to be answered on the <a href=\"http://gutenbergtimes.com/podcast\">Gutenberg Changelog</a>, <br />send them to <a href=\"mailto:changelog@gutenbergtimes.com\">changelog@gutenbergtimes.com</a></p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\n\n\n<section class=\"wp-block-newsletterglue-group\" style=\"padding-top: 10px; padding-bottom: 10px; padding-left: 20px; padding-right: 20px; margin-top: 0px; margin-bottom: 0px;\">\n<p>Featured Image: WordCamp Europe 2025 photo by Kostas Fryganiotis, <a href=\"https://www.flickr.com/photos/wceu/54572922149/in/album-72177720326409151\">found on Flickr</a></p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity is-style-wide\" />\n\n\n\n<p class=\"has-text-align-left\"><strong>Don&#8217;t want to miss the next Weekend Edition? </strong></p>\n\n\n<form action=\"https://gutenbergtimes.com/feed/\" autocomplete=\"on\" class=\"wp-block-newsletterglue-form ngl-form ngl-portrait\" method=\"post\"><div class=\"ngl-form-container\"><div class=\"ngl-form-field\" style=\"margin-bottom: 25px;\"><label class=\"ngl-form-label\" for=\"ngl_email\"><br />Type in your Email address to subscribe.</label><div class=\"ngl-form-input\"><input autocomplete=\"email\" class=\"ngl-form-input-text\" id=\"ngl_email\" name=\"ngl_email\" required=\"required\" style=\"border-radius: 21px;\" type=\"email\" /></div></div><button class=\"ngl-form-button\" style=\"background-color: #005075; border-color: #005075; border-width: 1px; border-style: solid; color: #ffffff; border-radius: 21px;\" type=\"submit\">Subscribe</button><p class=\"ngl-form-text\">We hate spam, too, and won&#8217;t give your email address to anyone <br />except Mailchimp to send out our Weekend Edition</p></div><div class=\"ngl-message-overlay\"><div class=\"ngl-message-svg-wrap\"><svg fill=\"none\" height=\"24\" stroke=\"#fff\" stroke-width=\"2\" viewBox=\"0 0 24 24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\"><polyline points=\"20 6 9 17 4 12\"></polyline></svg></div><div class=\"ngl-message-overlay-text\">Thanks for subscribing.</div></div><input id=\"ngl_list_id\" name=\"ngl_list_id\" type=\"hidden\" value=\"26f81bd8ae\" /><input id=\"ngl_double_optin\" name=\"ngl_double_optin\" type=\"hidden\" value=\"yes\" /></form>\n\n\n<hr class=\"wp-block-separator has-css-opacity is-style-wide\" />\n</section>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sat, 14 Jun 2025 09:50:37 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:18:\"Birgit Pauli-Haack\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}}}}}}}}}}}}s:4:\"type\";i:128;s:7:\"headers\";O:48:\"WpOrg\\Requests\\Utility\\CaseInsensitiveDictionary\":1:{s:7:\"\0*\0data\";a:9:{s:6:\"server\";s:5:\"nginx\";s:4:\"date\";s:29:\"Fri, 11 Jul 2025 09:10:35 GMT\";s:12:\"content-type\";s:8:\"text/xml\";s:13:\"last-modified\";s:29:\"Fri, 11 Jul 2025 08:45:17 GMT\";s:4:\"vary\";s:15:\"Accept-Encoding\";s:15:\"x-frame-options\";s:10:\"SAMEORIGIN\";s:16:\"content-encoding\";s:2:\"br\";s:7:\"alt-svc\";s:19:\"h3=\":443\"; ma=86400\";s:4:\"x-nc\";s:9:\"HIT ord 2\";}}s:5:\"build\";i:1727729420;s:21:\"cache_expiration_time\";i:1752268236;s:23:\"__cache_expiration_time\";i:1752268236;}','off'),(1404,'_transient_timeout_dash_v2_88ae138922fe95674369b1cb3d215a2b','1752268236','off'),(1405,'_transient_dash_v2_88ae138922fe95674369b1cb3d215a2b','<div class=\"rss-widget\"><ul><li><a class=\'rsswidget\' href=\'https://wordpress.org/news/2025/07/introducing-wordpress-credits-a-new-contribution-internship-program-for-university-students/\'>Introducing WordPress Credits: A New Contribution Internship Program for University Students</a></li><li><a class=\'rsswidget\' href=\'https://wordpress.org/news/2025/06/wordcamp-us-2025-see-you-in-portland-oregon/\'>WordCamp US 2025: See You in Portland, Oregon!</a></li></ul></div><div class=\"rss-widget\"><ul><li><a class=\'rsswidget\' href=\'https://jonathandesrosiers.com/2025/07/the-ghosts-of-unactivated-contributors/\'>Jonathan Desrosiers: The Ghosts of Unactivated Contributors</a></li><li><a class=\'rsswidget\' href=\'https://wordpress.org/news/2025/07/introducing-wordpress-credits-a-new-contribution-internship-program-for-university-students/\'>WordPress.org blog: Introducing WordPress Credits: A New Contribution Internship Program for University Students</a></li><li><a class=\'rsswidget\' href=\'https://openchannels.fm/beyond-hosting-generalists-pricing-advice-and-ais-role-in-development/\'>Open Channels FM: Beyond Hosting: Generalists, Pricing Advice, and AI’s Role in Development</a></li></ul></div>','off'),(1415,'_transient_timeout_elementor_remote_info_api_data_3.30.2','1752269580','off'),(1416,'_transient_elementor_remote_info_api_data_3.30.2','a:4:{s:9:\"timestamp\";s:10:\"1752224781\";s:14:\"upgrade_notice\";a:3:{s:7:\"version\";s:5:\"2.0.0\";s:7:\"message\";s:0:\"\";s:11:\"update_link\";s:0:\"\";}s:11:\"pro_widgets\";a:82:{i:0;a:4:{s:4:\"name\";s:6:\"search\";s:5:\"title\";s:6:\"Search\";s:4:\"icon\";s:17:\"eicon-site-search\";s:10:\"categories\";s:16:\"[\"pro-elements\"]\";}i:1;a:4:{s:4:\"name\";s:5:\"posts\";s:5:\"title\";s:5:\"Posts\";s:4:\"icon\";s:15:\"eicon-post-list\";s:10:\"categories\";s:16:\"[\"pro-elements\"]\";}i:2;a:4:{s:4:\"name\";s:9:\"portfolio\";s:5:\"title\";s:9:\"Portfolio\";s:4:\"icon\";s:18:\"eicon-gallery-grid\";s:10:\"categories\";s:16:\"[\"pro-elements\"]\";}i:3;a:4:{s:4:\"name\";s:17:\"link-in-bio-var-2\";s:5:\"title\";s:7:\"Classic\";s:4:\"icon\";s:19:\"eicon-site-identity\";s:10:\"categories\";s:15:\"[\"link-in-bio\"]\";}i:4;a:4:{s:4:\"name\";s:9:\"mega-menu\";s:5:\"title\";s:4:\"Menu\";s:4:\"icon\";s:15:\"eicon-mega-menu\";s:10:\"categories\";s:33:\"[\"pro-elements\",\"theme-elements\"]\";}i:5;a:4:{s:4:\"name\";s:17:\"link-in-bio-var-3\";s:5:\"title\";s:8:\"Showcase\";s:4:\"icon\";s:19:\"eicon-site-identity\";s:10:\"categories\";s:15:\"[\"link-in-bio\"]\";}i:6;a:4:{s:4:\"name\";s:4:\"form\";s:5:\"title\";s:4:\"Form\";s:4:\"icon\";s:21:\"eicon-form-horizontal\";s:10:\"categories\";s:16:\"[\"pro-elements\"]\";}i:7;a:4:{s:4:\"name\";s:17:\"link-in-bio-var-4\";s:5:\"title\";s:5:\"Links\";s:4:\"icon\";s:19:\"eicon-site-identity\";s:10:\"categories\";s:15:\"[\"link-in-bio\"]\";}i:8;a:4:{s:4:\"name\";s:9:\"loop-grid\";s:5:\"title\";s:9:\"Loop Grid\";s:4:\"icon\";s:18:\"eicon-loop-builder\";s:10:\"categories\";s:33:\"[\"pro-elements\",\"theme-elements\"]\";}i:9;a:4:{s:4:\"name\";s:17:\"link-in-bio-var-5\";s:5:\"title\";s:8:\"Services\";s:4:\"icon\";s:19:\"eicon-site-identity\";s:10:\"categories\";s:15:\"[\"link-in-bio\"]\";}i:10;a:4:{s:4:\"name\";s:13:\"loop-carousel\";s:5:\"title\";s:13:\"Loop Carousel\";s:4:\"icon\";s:19:\"eicon-carousel-loop\";s:10:\"categories\";s:33:\"[\"pro-elements\",\"theme-elements\"]\";}i:11;a:4:{s:4:\"name\";s:17:\"link-in-bio-var-6\";s:5:\"title\";s:9:\"Portfolio\";s:4:\"icon\";s:19:\"eicon-site-identity\";s:10:\"categories\";s:15:\"[\"link-in-bio\"]\";}i:12;a:4:{s:4:\"name\";s:7:\"gallery\";s:5:\"title\";s:7:\"Gallery\";s:4:\"icon\";s:23:\"eicon-gallery-justified\";s:10:\"categories\";s:16:\"[\"pro-elements\"]\";}i:13;a:4:{s:4:\"name\";s:17:\"link-in-bio-var-7\";s:5:\"title\";s:13:\"Business Card\";s:4:\"icon\";s:19:\"eicon-site-identity\";s:10:\"categories\";s:15:\"[\"link-in-bio\"]\";}i:14;a:4:{s:4:\"name\";s:17:\"animated-headline\";s:5:\"title\";s:17:\"Animated Headline\";s:4:\"icon\";s:23:\"eicon-animated-headline\";s:10:\"categories\";s:16:\"[\"pro-elements\"]\";}i:15;a:4:{s:4:\"name\";s:10:\"price-list\";s:5:\"title\";s:10:\"Price List\";s:4:\"icon\";s:16:\"eicon-price-list\";s:10:\"categories\";s:16:\"[\"pro-elements\"]\";}i:16;a:4:{s:4:\"name\";s:11:\"price-table\";s:5:\"title\";s:11:\"Price Table\";s:4:\"icon\";s:17:\"eicon-price-table\";s:10:\"categories\";s:16:\"[\"pro-elements\"]\";}i:17;a:4:{s:4:\"name\";s:8:\"flip-box\";s:5:\"title\";s:8:\"Flip Box\";s:4:\"icon\";s:14:\"eicon-flip-box\";s:10:\"categories\";s:16:\"[\"pro-elements\"]\";}i:18;a:4:{s:4:\"name\";s:14:\"call-to-action\";s:5:\"title\";s:14:\"Call to Action\";s:4:\"icon\";s:20:\"eicon-image-rollover\";s:10:\"categories\";s:16:\"[\"pro-elements\"]\";}i:19;a:4:{s:4:\"name\";s:14:\"media-carousel\";s:5:\"title\";s:14:\"Media Carousel\";s:4:\"icon\";s:20:\"eicon-media-carousel\";s:10:\"categories\";s:16:\"[\"pro-elements\"]\";}i:20;a:4:{s:4:\"name\";s:15:\"nested-carousel\";s:5:\"title\";s:8:\"Carousel\";s:4:\"icon\";s:21:\"eicon-nested-carousel\";s:10:\"categories\";s:16:\"[\"pro-elements\"]\";}i:21;a:4:{s:4:\"name\";s:10:\"off-canvas\";s:5:\"title\";s:10:\"Off-Canvas\";s:4:\"icon\";s:16:\"eicon-off-canvas\";s:10:\"categories\";s:16:\"[\"pro-elements\"]\";}i:22;a:4:{s:4:\"name\";s:9:\"countdown\";s:5:\"title\";s:9:\"Countdown\";s:4:\"icon\";s:15:\"eicon-countdown\";s:10:\"categories\";s:16:\"[\"pro-elements\"]\";}i:23;a:4:{s:4:\"name\";s:13:\"share-buttons\";s:5:\"title\";s:13:\"Share Buttons\";s:4:\"icon\";s:11:\"eicon-share\";s:10:\"categories\";s:16:\"[\"pro-elements\"]\";}i:24;a:4:{s:4:\"name\";s:10:\"blockquote\";s:5:\"title\";s:10:\"Blockquote\";s:4:\"icon\";s:16:\"eicon-blockquote\";s:10:\"categories\";s:16:\"[\"pro-elements\"]\";}i:25;a:4:{s:4:\"name\";s:6:\"lottie\";s:5:\"title\";s:6:\"Lottie\";s:4:\"icon\";s:12:\"eicon-lottie\";s:10:\"categories\";s:16:\"[\"pro-elements\"]\";}i:26;a:4:{s:4:\"name\";s:7:\"hotspot\";s:5:\"title\";s:7:\"Hotspot\";s:4:\"icon\";s:19:\"eicon-image-hotspot\";s:10:\"categories\";s:16:\"[\"pro-elements\"]\";}i:27;a:4:{s:4:\"name\";s:13:\"paypal-button\";s:5:\"title\";s:13:\"PayPal Button\";s:4:\"icon\";s:19:\"eicon-paypal-button\";s:10:\"categories\";s:16:\"[\"pro-elements\"]\";}i:28;a:4:{s:4:\"name\";s:14:\"code-highlight\";s:5:\"title\";s:14:\"Code Highlight\";s:4:\"icon\";s:20:\"eicon-code-highlight\";s:10:\"categories\";s:16:\"[\"pro-elements\"]\";}i:29;a:4:{s:4:\"name\";s:14:\"video-playlist\";s:5:\"title\";s:14:\"Video Playlist\";s:4:\"icon\";s:20:\"eicon-video-playlist\";s:10:\"categories\";s:16:\"[\"pro-elements\"]\";}i:30;a:4:{s:4:\"name\";s:8:\"template\";s:5:\"title\";s:8:\"Template\";s:4:\"icon\";s:19:\"eicon-document-file\";s:10:\"categories\";s:16:\"[\"pro-elements\"]\";}i:31;a:4:{s:4:\"name\";s:13:\"stripe-button\";s:5:\"title\";s:13:\"Stripe Button\";s:4:\"icon\";s:19:\"eicon-stripe-button\";s:10:\"categories\";s:16:\"[\"pro-elements\"]\";}i:32;a:4:{s:4:\"name\";s:16:\"progress-tracker\";s:5:\"title\";s:16:\"Progress Tracker\";s:4:\"icon\";s:22:\"eicon-progress-tracker\";s:10:\"categories\";s:40:\"[\"pro-elements\",\"theme-elements-single\"]\";}i:33;a:4:{s:4:\"name\";s:8:\"nav-menu\";s:5:\"title\";s:8:\"Nav Menu\";s:4:\"icon\";s:14:\"eicon-nav-menu\";s:10:\"categories\";s:33:\"[\"pro-elements\",\"theme-elements\"]\";}i:34;a:4:{s:4:\"name\";s:17:\"table-of-contents\";s:5:\"title\";s:17:\"Table of Contents\";s:4:\"icon\";s:23:\"eicon-table-of-contents\";s:10:\"categories\";s:33:\"[\"pro-elements\",\"theme-elements\"]\";}i:35;a:4:{s:4:\"name\";s:5:\"login\";s:5:\"title\";s:5:\"Login\";s:4:\"icon\";s:15:\"eicon-lock-user\";s:10:\"categories\";s:16:\"[\"pro-elements\"]\";}i:36;a:4:{s:4:\"name\";s:6:\"slides\";s:5:\"title\";s:6:\"Slides\";s:4:\"icon\";s:12:\"eicon-slides\";s:10:\"categories\";s:16:\"[\"pro-elements\"]\";}i:37;a:4:{s:4:\"name\";s:20:\"testimonial-carousel\";s:5:\"title\";s:20:\"Testimonial Carousel\";s:4:\"icon\";s:26:\"eicon-testimonial-carousel\";s:10:\"categories\";s:16:\"[\"pro-elements\"]\";}i:38;a:4:{s:4:\"name\";s:7:\"reviews\";s:5:\"title\";s:7:\"Reviews\";s:4:\"icon\";s:12:\"eicon-review\";s:10:\"categories\";s:16:\"[\"pro-elements\"]\";}i:39;a:4:{s:4:\"name\";s:15:\"facebook-button\";s:5:\"title\";s:15:\"Facebook Button\";s:4:\"icon\";s:23:\"eicon-facebook-like-box\";s:10:\"categories\";s:16:\"[\"pro-elements\"]\";}i:40;a:4:{s:4:\"name\";s:17:\"facebook-comments\";s:5:\"title\";s:17:\"Facebook Comments\";s:4:\"icon\";s:23:\"eicon-facebook-comments\";s:10:\"categories\";s:16:\"[\"pro-elements\"]\";}i:41;a:4:{s:4:\"name\";s:14:\"facebook-embed\";s:5:\"title\";s:14:\"Facebook Embed\";s:4:\"icon\";s:14:\"eicon-fb-embed\";s:10:\"categories\";s:16:\"[\"pro-elements\"]\";}i:42;a:4:{s:4:\"name\";s:13:\"facebook-page\";s:5:\"title\";s:13:\"Facebook Page\";s:4:\"icon\";s:13:\"eicon-fb-feed\";s:10:\"categories\";s:16:\"[\"pro-elements\"]\";}i:43;a:4:{s:4:\"name\";s:15:\"theme-site-logo\";s:5:\"title\";s:9:\"Site Logo\";s:4:\"icon\";s:15:\"eicon-site-logo\";s:10:\"categories\";s:18:\"[\"theme-elements\"]\";}i:44;a:4:{s:4:\"name\";s:16:\"theme-site-title\";s:5:\"title\";s:10:\"Site Title\";s:4:\"icon\";s:16:\"eicon-site-title\";s:10:\"categories\";s:18:\"[\"theme-elements\"]\";}i:45;a:4:{s:4:\"name\";s:16:\"theme-page-title\";s:5:\"title\";s:10:\"Page Title\";s:4:\"icon\";s:19:\"eicon-archive-title\";s:10:\"categories\";s:18:\"[\"theme-elements\"]\";}i:46;a:4:{s:4:\"name\";s:16:\"theme-post-title\";s:5:\"title\";s:10:\"Post Title\";s:4:\"icon\";s:16:\"eicon-post-title\";s:10:\"categories\";s:18:\"[\"theme-elements\"]\";}i:47;a:4:{s:4:\"name\";s:18:\"theme-post-excerpt\";s:5:\"title\";s:12:\"Post Excerpt\";s:4:\"icon\";s:18:\"eicon-post-excerpt\";s:10:\"categories\";s:18:\"[\"theme-elements\"]\";}i:48;a:4:{s:4:\"name\";s:25:\"theme-post-featured-image\";s:5:\"title\";s:14:\"Featured Image\";s:4:\"icon\";s:20:\"eicon-featured-image\";s:10:\"categories\";s:18:\"[\"theme-elements\"]\";}i:49;a:4:{s:4:\"name\";s:19:\"theme-archive-title\";s:5:\"title\";s:13:\"Archive Title\";s:4:\"icon\";s:19:\"eicon-archive-title\";s:10:\"categories\";s:18:\"[\"theme-elements\"]\";}i:50;a:4:{s:4:\"name\";s:13:\"archive-posts\";s:5:\"title\";s:13:\"Archive Posts\";s:4:\"icon\";s:19:\"eicon-archive-posts\";s:10:\"categories\";s:18:\"[\"theme-elements\"]\";}i:51;a:4:{s:4:\"name\";s:10:\"author-box\";s:5:\"title\";s:10:\"Author Box\";s:4:\"icon\";s:12:\"eicon-person\";s:10:\"categories\";s:18:\"[\"theme-elements\"]\";}i:52;a:4:{s:4:\"name\";s:13:\"post-comments\";s:5:\"title\";s:13:\"Post Comments\";s:4:\"icon\";s:14:\"eicon-comments\";s:10:\"categories\";s:18:\"[\"theme-elements\"]\";}i:53;a:4:{s:4:\"name\";s:15:\"post-navigation\";s:5:\"title\";s:15:\"Post Navigation\";s:4:\"icon\";s:21:\"eicon-post-navigation\";s:10:\"categories\";s:18:\"[\"theme-elements\"]\";}i:54;a:4:{s:4:\"name\";s:9:\"post-info\";s:5:\"title\";s:9:\"Post Info\";s:4:\"icon\";s:15:\"eicon-post-info\";s:10:\"categories\";s:18:\"[\"theme-elements\"]\";}i:55;a:4:{s:4:\"name\";s:7:\"sitemap\";s:5:\"title\";s:7:\"Sitemap\";s:4:\"icon\";s:13:\"eicon-sitemap\";s:10:\"categories\";s:18:\"[\"theme-elements\"]\";}i:56;a:4:{s:4:\"name\";s:11:\"breadcrumbs\";s:5:\"title\";s:11:\"Breadcrumbs\";s:4:\"icon\";s:11:\"eicon-yoast\";s:10:\"categories\";s:18:\"[\"theme-elements\"]\";}i:57;a:4:{s:4:\"name\";s:21:\"woocommerce-menu-cart\";s:5:\"title\";s:9:\"Menu Cart\";s:4:\"icon\";s:10:\"eicon-cart\";s:10:\"categories\";s:41:\"[\"theme-elements\",\"woocommerce-elements\"]\";}i:58;a:4:{s:4:\"name\";s:19:\"wc-archive-products\";s:5:\"title\";s:16:\"Archive Products\";s:4:\"icon\";s:14:\"eicon-products\";s:10:\"categories\";s:24:\"[\"woocommerce-elements\"]\";}i:59;a:4:{s:4:\"name\";s:31:\"woocommerce-archive-description\";s:5:\"title\";s:19:\"Archive Description\";s:4:\"icon\";s:25:\"eicon-product-description\";s:10:\"categories\";s:24:\"[\"woocommerce-elements\"]\";}i:60;a:4:{s:4:\"name\";s:20:\"woocommerce-products\";s:5:\"title\";s:8:\"Products\";s:4:\"icon\";s:14:\"eicon-products\";s:10:\"categories\";s:24:\"[\"woocommerce-elements\"]\";}i:61;a:4:{s:4:\"name\";s:22:\"woocommerce-breadcrumb\";s:5:\"title\";s:23:\"WooCommerce Breadcrumbs\";s:4:\"icon\";s:25:\"eicon-product-breadcrumbs\";s:10:\"categories\";s:24:\"[\"woocommerce-elements\"]\";}i:62;a:4:{s:4:\"name\";s:14:\"wc-add-to-cart\";s:5:\"title\";s:18:\"Custom Add To Cart\";s:4:\"icon\";s:17:\"eicon-woocommerce\";s:10:\"categories\";s:24:\"[\"woocommerce-elements\"]\";}i:63;a:4:{s:4:\"name\";s:11:\"wc-elements\";s:5:\"title\";s:17:\"WooCommerce Pages\";s:4:\"icon\";s:19:\"eicon-product-pages\";s:10:\"categories\";s:24:\"[\"woocommerce-elements\"]\";}i:64;a:4:{s:4:\"name\";s:13:\"wc-categories\";s:5:\"title\";s:18:\"Product Categories\";s:4:\"icon\";s:24:\"eicon-product-categories\";s:10:\"categories\";s:24:\"[\"woocommerce-elements\"]\";}i:65;a:4:{s:4:\"name\";s:25:\"woocommerce-product-title\";s:5:\"title\";s:13:\"Product Title\";s:4:\"icon\";s:19:\"eicon-product-title\";s:10:\"categories\";s:24:\"[\"woocommerce-elements\"]\";}i:66;a:4:{s:4:\"name\";s:26:\"woocommerce-product-images\";s:5:\"title\";s:14:\"Product Images\";s:4:\"icon\";s:20:\"eicon-product-images\";s:10:\"categories\";s:24:\"[\"woocommerce-elements\"]\";}i:67;a:4:{s:4:\"name\";s:25:\"woocommerce-product-price\";s:5:\"title\";s:13:\"Product Price\";s:4:\"icon\";s:19:\"eicon-product-price\";s:10:\"categories\";s:24:\"[\"woocommerce-elements\"]\";}i:68;a:4:{s:4:\"name\";s:31:\"woocommerce-product-add-to-cart\";s:5:\"title\";s:11:\"Add To Cart\";s:4:\"icon\";s:25:\"eicon-product-add-to-cart\";s:10:\"categories\";s:24:\"[\"woocommerce-elements\"]\";}i:69;a:4:{s:4:\"name\";s:26:\"woocommerce-product-rating\";s:5:\"title\";s:14:\"Product Rating\";s:4:\"icon\";s:20:\"eicon-product-rating\";s:10:\"categories\";s:24:\"[\"woocommerce-elements\"]\";}i:70;a:4:{s:4:\"name\";s:25:\"woocommerce-product-stock\";s:5:\"title\";s:13:\"Product Stock\";s:4:\"icon\";s:19:\"eicon-product-stock\";s:10:\"categories\";s:24:\"[\"woocommerce-elements\"]\";}i:71;a:4:{s:4:\"name\";s:24:\"woocommerce-product-meta\";s:5:\"title\";s:12:\"Product Meta\";s:4:\"icon\";s:18:\"eicon-product-meta\";s:10:\"categories\";s:24:\"[\"woocommerce-elements\"]\";}i:72;a:4:{s:4:\"name\";s:37:\"woocommerce-product-short-description\";s:5:\"title\";s:17:\"Short Description\";s:4:\"icon\";s:25:\"eicon-product-description\";s:10:\"categories\";s:24:\"[\"woocommerce-elements\"]\";}i:73;a:4:{s:4:\"name\";s:29:\"woocommerce-product-data-tabs\";s:5:\"title\";s:17:\"Product Data Tabs\";s:4:\"icon\";s:18:\"eicon-product-tabs\";s:10:\"categories\";s:24:\"[\"woocommerce-elements\"]\";}i:74;a:4:{s:4:\"name\";s:42:\"woocommerce-product-additional-information\";s:5:\"title\";s:22:\"Additional Information\";s:4:\"icon\";s:19:\" eicon-product-info\";s:10:\"categories\";s:24:\"[\"woocommerce-elements\"]\";}i:75;a:4:{s:4:\"name\";s:27:\"woocommerce-product-related\";s:5:\"title\";s:15:\"Product Related\";s:4:\"icon\";s:21:\"eicon-product-related\";s:10:\"categories\";s:24:\"[\"woocommerce-elements\"]\";}i:76;a:4:{s:4:\"name\";s:26:\"woocommerce-product-upsell\";s:5:\"title\";s:7:\"Upsells\";s:4:\"icon\";s:20:\"eicon-product-upsell\";s:10:\"categories\";s:24:\"[\"woocommerce-elements\"]\";}i:77;a:4:{s:4:\"name\";s:25:\"woocommerce-checkout-page\";s:5:\"title\";s:8:\"Checkout\";s:4:\"icon\";s:14:\"eicon-checkout\";s:10:\"categories\";s:24:\"[\"woocommerce-elements\"]\";}i:78;a:4:{s:4:\"name\";s:16:\"woocommerce-cart\";s:5:\"title\";s:4:\"Cart\";s:4:\"icon\";s:14:\"eicon-woo-cart\";s:10:\"categories\";s:24:\"[\"woocommerce-elements\"]\";}i:79;a:4:{s:4:\"name\";s:22:\"woocommerce-my-account\";s:5:\"title\";s:10:\"My Account\";s:4:\"icon\";s:16:\"eicon-my-account\";s:10:\"categories\";s:24:\"[\"woocommerce-elements\"]\";}i:80;a:4:{s:4:\"name\";s:28:\"woocommerce-purchase-summary\";s:5:\"title\";s:16:\"Purchase Summary\";s:4:\"icon\";s:22:\"eicon-purchase-summary\";s:10:\"categories\";s:24:\"[\"woocommerce-elements\"]\";}i:81;a:4:{s:4:\"name\";s:19:\"woocommerce-notices\";s:5:\"title\";s:19:\"WooCommerce Notices\";s:4:\"icon\";s:25:\"eicon-woocommerce-notices\";s:10:\"categories\";s:24:\"[\"woocommerce-elements\"]\";}}s:17:\"canary_deployment\";a:2:{s:11:\"plugin_info\";a:11:{s:2:\"id\";s:23:\"w.org/plugins/elementor\";s:4:\"slug\";s:9:\"elementor\";s:6:\"plugin\";s:23:\"elementor/elementor.php\";s:11:\"new_version\";s:5:\"3.6.0\";s:7:\"package\";s:58:\"https://downloads.wordpress.org/plugin/elementor.3.6.0.zip\";s:3:\"url\";s:40:\"https://wordpress.org/plugins/elementor/\";s:5:\"icons\";a:3:{s:2:\"2x\";s:62:\"https://ps.w.org/elementor/assets/icon-256x256.png?rev=1427768\";s:2:\"1x\";s:54:\"https://ps.w.org/elementor/assets/icon.svg?rev=1426809\";s:3:\"svg\";s:54:\"https://ps.w.org/elementor/assets/icon.svg?rev=1426809\";}s:7:\"banners\";a:2:{s:2:\"2x\";s:65:\"https://ps.w.org/elementor/assets/banner-1544x500.png?rev=1475479\";s:2:\"1x\";s:64:\"https://ps.w.org/elementor/assets/banner-772x250.png?rev=1475479\";}s:11:\"banners_rtl\";a:0:{}s:6:\"tested\";s:5:\"6.8.1\";s:12:\"requires_php\";s:3:\"5.6\";}s:10:\"conditions\";a:0:{}}}','off'),(1420,'_elementor_editor_upgrade_notice_dismissed','1752227550','auto'),(1426,'_transient_timeout_elementor_remote_templates_data_3.30.2','1752273562','off');
