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: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: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:\"\";}}}}}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:66:\"Gravatar: Building Better Social Networks Through Decentralization\";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=3324\";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/06/13/decentralized-social-media/\";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:10070:\"<p>Let&#8217;s face it. Social media is starting to feel like a rigged game. Users are burnt out, brands are boxed in, and algorithms act more like black boxes than helpful curators.</p>\n\n\n\n<p>Enter the promise of decentralized social networks: platforms that ditch the central command center and run on independently managed servers. They promise a fairer, freer internet – but pulling it off isn&#8217;t easy.</p>\n\n\n\n<p>And the numbers tell an interesting story.</p>\n\n\n\n<h2 class=\"wp-block-heading\">The Great Migration: What&#8217;s Really Driving Growth?</h2>\n\n\n\n<p>Bluesky has been absolutely exploding lately, adding millions of users in just the past few months. Meanwhile, Mastodon has been puttering along with steady but modest growth for years, never quite hitting that mainstream breakout moment.</p>\n\n\n\n<p>But here&#8217;s the question: are people flocking to Bluesky because they genuinely want decentralization, or because they just want somewhere that ain&#8217;t X?</p>\n\n\n\n<p>Most folks don&#8217;t wake up thinking &#8220;I need a decentralized social network.&#8221; They wake up frustrated that their posts aren&#8217;t reaching their followers, or worried their account might vanish overnight, or just plain tired of dealing with whatever chaos is happening on their current platform.</p>\n\n\n\n<p>Bluesky offers an escape hatch that feels familiar. Mastodon? Well, that&#8217;s where you go when you really, truly care about the principles behind decentralization.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Is Bluesky Actually Decentralized?</h2>\n\n\n\n<p>Here&#8217;s where things get interesting. Bluesky runs on the AT Protocol, which is designed for decentralization. But right now? There&#8217;s essentially one big server doing all the heavy lifting.</p>\n\n\n\n<p>It&#8217;s like having a decentralized highway system with only one on-ramp.</p>\n\n\n\n<p>Bluesky promises you can eventually take your data and followers elsewhere if things go south. That&#8217;s a big improvement over traditional platforms. But as of today, &#8220;elsewhere&#8221; doesn&#8217;t really exist yet. You&#8217;re still trusting one company with your digital life – they just promise to be nicer about it.</p>\n\n\n\n<p>That doesn&#8217;t make Bluesky worthless. The data portability and algorithmic choice features are genuinely useful. And the fact that you can use your own domain as your username? That&#8217;s actually pretty brilliant.</p>\n\n\n\n<p>But calling it fully decentralized right now is like calling a blueprint a building.</p>\n\n\n\n<h2 class=\"wp-block-heading\">How True Decentralization Works: The Fediverse</h2>\n\n\n\n<p>Real decentralization looks more like Mastodon and the fediverse – a sprawling network of independently run servers that all speak the same digital language thanks to open protocols.</p>\n\n\n\n<p>It&#8217;s a bit like email. Your Gmail can talk to someone&#8217;s Outlook, Yahoo, or that one person still clinging to AOL, because they all follow the same basic rules.</p>\n\n\n\n<p>In the fediverse, you don&#8217;t sign up with one big platform. You choose an instance to call home. Each comes with its own vibe, community guidelines, and moderation style. Some are havens for coders, others filled with artists, activists, or people very, very into vintage tractors.</p>\n\n\n\n<p>This setup hands users real control over moderation and community culture. No black-box algorithm deciding who sees what. No getting locked into a single app. And if your current server starts feeling off? You can pack up your followers and posts and move to another instance.</p>\n\n\n\n<p>The fediverse includes:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Mastodon for microblogging (basically Twitter, but with more thoughtful conversations)</li>\n\n\n\n<li>Pixelfed for photo sharing (Instagram without the influencer economy)</li>\n\n\n\n<li>PeerTube for video hosting (YouTube minus the surveillance capitalism)</li>\n</ul>\n\n\n\n<p>But here&#8217;s the catch. All this freedom comes with complexity that makes most people&#8217;s heads spin.</p>\n\n\n\n<h2 class=\"wp-block-heading\">The Identity Problem Nobody Talks About</h2>\n\n\n\n<p>The biggest challenge with decentralized social media isn&#8217;t technical – it&#8217;s practical. How do you maintain a consistent identity when you&#8217;re scattered across multiple platforms, instances, and protocols?</p>\n\n\n\n<p>That dream handle you grabbed on mastodon.social? Already taken on hachyderm.io. Now you&#8217;re stuck with @yourname2024 or something equally clunky. Your bio works perfectly on <a href=\"https://docs.joinmastodon.org/user/profile/#:~:text=Your%20bio%20is%20a%20short,link%20shortener%20to%20save%20characters.\">Mastodon&#8217;s 500-character limit</a> but gets chopped off everywhere else. Profile links follow no consistent format.</p>\n\n\n\n<p>The result? Your digital presence looks different everywhere, making it harder for people to find and recognize you across platforms.</p>\n\n\n\n<p>This is where domain-based usernames start making sense. Whether it&#8217;s Bluesky&#8217;s @yourname.yourdomain.com handles or setting up your own domain for the fediverse, owning your name means owning your identity.</p>\n\n\n\n<p>And that&#8217;s not just about vanity – it&#8217;s about being findable when you inevitably need to move platforms again.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Making Yourself Findable in a Fragmented World</h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><img alt=\"\" class=\"wp-image-3332\" height=\"1170\" src=\"https://blog.gravatar.com/wp-content/uploads/2025/06/image.png\" width=\"2048\" /></figure>\n\n\n\n<p>Here&#8217;s something that might sound contradictory: one way to navigate decentralized social media is through a centralized identity service.</p>\n\n\n\n<p>I know, I know. Using Gravatar to manage your presence across decentralized platforms sounds backwards. Some folks specifically chose Mastodon to escape centralized identity systems. That tension is real, and worth acknowledging.</p>\n\n\n\n<p>But here&#8217;s the thing – when you&#8217;re bouncing between Mastodon, Bluesky, PeerTube, and whatever comes next, consistency becomes valuable. Not for data collection or advertising, but for basic human recognition.</p>\n\n\n\n<p>Unlike your all-in-one identity on places like Facebook or Instagram, <a href=\"https://blog.gravatar.com/2024/07/30/decentralized-identity-management/\">the decentralized world hands you a juggling act</a>. Different apps, different instances, different handles. Not ideal.</p>\n\n\n\n<p>When someone sees @yourname.link posting on Bluesky, then spots the same name and face commenting on a GitHub issue or WordPress blog, that consistency builds trust and recognition. It&#8217;s the difference between being a random username and being a recognizable person.</p>\n\n\n\n<p>Gravatar handles this by creating a portable identity hub that follows you around like a digital business card. Set it up once, and it appears automatically on thousands of sites whenever you use your email to register or comment.</p>\n\n\n\n<p>You choose what to share. You update it when you want. No algorithm meddles with your identity, and your data stays yours.</p>\n\n\n\n<p>For Bluesky specifically, <a href=\"https://blog.gravatar.com/2025/02/06/bluesky-handle/\">Gravatar supports custom domain handles</a>, so you can claim @yourname.bio without the technical hassle of setting up your own server.</p>\n\n\n\n<h2 class=\"wp-block-heading\">The Real Value: Being Found When You Move</h2>\n\n\n\n<p>The benefit ain&#8217;t about convenience – it&#8217;s about portability. When you inevitably need to jump platforms (and you will), your followers can find you because your identity remains consistent.</p>\n\n\n\n<p>Your Gravatar profile becomes a lighthouse, pointing people to wherever you&#8217;ve landed next. Mastodon handle? Listed there. PeerTube channel? Yep. New platform that launches next year? Add it to the list.</p>\n\n\n\n<p>This matters more in a decentralized world where there&#8217;s no central directory, no &#8220;suggested users&#8221; algorithm to help people discover you on a new platform. You&#8217;re responsible for being findable.</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>\n\n\n\n<h2 class=\"wp-block-heading\">What&#8217;s Next for Decentralized Social Media</h2>\n\n\n\n<p>The momentum is real, but the direction isn&#8217;t clear yet. Will Bluesky eventually become truly decentralized, or will it remain a benevolent centralized platform with decentralized features? Will Mastodon find its mainstream moment, or stay the principled-but-niche option?</p>\n\n\n\n<p>And will regular folks – not just tech enthusiasts – actually want the complexity that comes with true decentralization?</p>\n\n\n\n<p>The answer probably depends on whether platforms can solve the basic human problems (finding your people, keeping your identity, avoiding harassment) better than what we have now.</p>\n\n\n\n<p>What we know for sure is that the old model is cracking. People want more control, more transparency, and more choice in how they connect online. Whether that comes through truly decentralized networks or just better-behaved centralized ones remains to be seen.</p>\n\n\n\n<p>But either way, making yourself consistently findable across this changing landscape? That&#8217;s just good sense.</p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Navigating the challenges of cross-platform identity mana</strong></h3>\n\n\n\n<p>So, step into the future.</p>\n\n\n\n<p>Take two minutes (seriously, that’s all it takes) to <a href=\"https://gravatar.com/\">set up your free Gravatar profile</a>, and take charge of your identity across the decentralized web.</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, 13 Jun 2025 14:45: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: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: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:50:\"Gravatar: Vibe Better With Custom LLM Instructions\";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=3315\";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://blog.gravatar.com/2025/06/12/vibe-better-with-custom-llm-instructions/\";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:1651:\"<p>Are you creating code with AI tools like Cursor, Loveable, or Claude? We just made it way easier.</p>\n\n\n\n<p>We&#8217;ve created a single page of custom instructions that developers can copy-paste into any LLM or AI tool to instantly understand how Gravatar works. No more explaining our API from scratch or watching your AI assistant guess how profile data flows.</p>\n\n\n\n<h2 class=\"wp-block-heading\">What&#8217;s In The Box?</h2>\n\n\n\n<p>Our custom instructions give AI tools everything they need to integrate with Gravatar properly:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Complete API understanding for avatars and profiles</li>\n\n\n\n<li>Real-world code examples</li>\n\n\n\n<li>Privacy and data handling best practices (ex. SHA256, not MD5)</li>\n\n\n\n<li>Mobile SDK guidance for iOS and Android</li>\n</ul>\n\n\n\n<p>Think of it as the ultimate cheat sheet for building with Gravatar. </p>\n\n\n\n<h2 class=\"wp-block-heading\">Perfect For Developers Who Vibe</h2>\n\n\n\n<p>Whether you&#8217;re prototyping with v0, building with ChatGPT, or coding alongside any AI assistant, these instructions ensure your AI actually gets what Gravatar does. </p>\n\n\n\n<p>Your AI will understand profile-as-a-service, know our REST API endpoints, and suggest the right integration approach for your project.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Copy, Paste, Build</h2>\n\n\n\n<p>We&#8217;ve done the heavy lifting. </p>\n\n\n\n<p>The instructions work with any LLM that accepts custom prompts. Paste them in, start your project, and watch your AI assistant become a Gravatar integration expert.</p>\n\n\n\n<p><a href=\"https://docs.gravatar.com/guides/llms-txt/\">Grab the instructions here →</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, 12 Jun 2025 21:10: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: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:58:\"Gravatar: 10 Essential Tips for DIY Professional Headshots\";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=3299\";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/06/12/professional-headshot-tips/\";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:22246:\"<p>So, you’ve decided it’s time for a headshot that doesn’t look like it was taken at 11 pm under your kitchen light. Sensible move. But then – bam! You check out the prices and suddenly consider just cropping yourself out of a group photo from 2017.</p>\n\n\n\n<p>You’re not overreacting. </p>\n\n\n\n<p>The professional route is painfully pricey. As for the DIY route, one minute you&#8217;re adjusting lighting, the next you&#8217;re wondering why you suddenly resemble a startled meerkat.</p>\n\n\n\n<p>And yet, the stakes are high. Research shows <a href=\"https://www.psychologicalscience.org/observer/how-many-seconds-to-a-first-impression\">people form an impression of you from your photo in <em>1/10th of a second</em></a>. That’s faster than your thumb can scroll. </p>\n\n\n\n<p>Like it or not, your headshot is your always-on personal brand billboard, beaming across LinkedIn, Zoom, your email signature… basically, everywhere.</p>\n\n\n\n<p>But the truth is, you don’t need a Hollywood budget or a Nikon the size of a shoebox to nail it.</p>\n\n\n\n<p>With just your smartphone, a few clever tricks, and a sprinkle of intention, you can snap a headshot that says “professional,” not “panicked.”</p>\n\n\n\n<p>Below you’ll find <strong>10 practical strategies</strong> to help you:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Nail lighting without a studio.</li>\n\n\n\n<li>Pose without looking like you&#8217;re mid-blink.</li>\n\n\n\n<li>Edit like a pro.</li>\n</ul>\n\n\n\n<p>This guide will take you from “I guess this will do?” to a polished, professional headshot that opens doors, lands clients, or gets you into that next big role.</p>\n\n\n\n<p>Let’s get snapping!</p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>1. Choose your equipment</strong> </h2>\n\n\n\n<p>Good news: The best camera you own is probably already in your pocket. Today’s smartphones are absolute powerhouses, easily capable of snapping headshots that look straight out of a studio… <em>if</em> you know how to wield them. </p>\n\n\n\n<p>Here’s what you’ll need:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A recent phone with at least a 12MP main camera.</li>\n\n\n\n<li>Portrait mode (hello, dreamy background blur).</li>\n\n\n\n<li>A grid display to keep your framing sharp.</li>\n\n\n\n<li>Focus lock to make sure your eyes stay crisp.</li>\n\n\n\n<li>Self-timer or voice command so you’re not sprinting back and forth between shots.</li>\n</ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img alt=\"Phone settings for professional headshot tips\" class=\"wp-image-3300\" height=\"1712\" src=\"https://blog.gravatar.com/wp-content/uploads/2025/05/gravatar-professional-headshot-tips-phone-settings.png\" width=\"959\" /></figure>\n\n\n\n<p>Take note: As tempting as it is to use the front-facing camera, the back camera’s where the magic happens. It’s higher quality, gives you more control, and won’t leave you with that slightly fuzzy “FaceTime screenshot” look.</p>\n\n\n\n<p>To get it right:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Set your phone 3-4 feet away, level with your eyes.</li>\n\n\n\n<li>Balance it on a stack of books, boxes – whatever’s sturdy.</li>\n\n\n\n<li>Or better yet, grab an <a href=\"https://www.nytimes.com/wirecutter/reviews/best-tripod-for-iphones-smartphones/\">adjustable phone tripod</a> (they’re less than $50 and worth every penny).</li>\n</ul>\n\n\n\n<p><img alt=\"✨\" class=\"wp-smiley\" src=\"https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2728.png\" style=\"height: 1em;\" /> <strong>Pro tip:</strong> Some phones flip selfies by default, turning text (and your face) backward. If you insist on the front camera, dig into your settings and switch off image mirroring before you start. That way, your photo looks polished and professional <em>everywhere</em> it shows up.</p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>2. Find your ideal lighting</strong></h2>\n\n\n\n<p>Lighting. It’s the make-or-break factor; the difference between “Oh wow, did you get that done professionally?” and “Cute… but why does it look like you’re hiding in a cave?”</p>\n\n\n\n<p>Don’t worry. Your best lighting? Totally free. Natural light is your secret weapon.</p>\n\n\n\n<p>Start by parking yourself near a big window – bonus points if it faces away from the sun, that way light stays soft and steady, skipping those harsh, unflattering shadows. Aim to stand about 3–5 feet away so that the gentle glow wraps your face like a flattering Instagram filter.</p>\n\n\n\n<p>And yes, timing <em>totally</em> matters:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Early morning (7–9 AM) means crisp, clean, chef’s-kiss light <img alt=\"🤌\" class=\"wp-smiley\" src=\"https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/1f90c.png\" style=\"height: 1em;\" /><img alt=\"☀\" class=\"wp-smiley\" src=\"https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2600.png\" style=\"height: 1em;\" />.</li>\n\n\n\n<li>Golden hour (1–2 hours before sunset): Dreamy, warm, universally flattering.</li>\n\n\n\n<li>Midday? Big no, no. Shadows where you don’t want them.</li>\n</ul>\n\n\n\n<p>And don’t just snap and hope for the best. Play around. Shuffle a little left or right of the window. Step closer, then further away. Test different angles to find <em>your</em> best side.</p>\n\n\n\n<p><img alt=\"✨\" class=\"wp-smiley\" src=\"https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2728.png\" style=\"height: 1em;\" /> <strong>Pro tip:</strong> If you’re wearing spectacles, tilt your chin slightly down, and if you’re using extra lights, angle them upward to give you the no glare, natural, polished look you want.</p>\n\n\n\n<p>Go on, work that window.</p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>3. Pick your background</strong></h2>\n\n\n\n<p>Your background is the unsung hero of your headshot. Typically, you’ll want a backdrop so subtle, no one even notices it. All eyes should be on <em>you</em>, not whatever’s lurking behind you.</p>\n\n\n\n<p>The easiest win is to stick to plain, neutral tones:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Light gray</strong> = sleek, modern vibes.</li>\n\n\n\n<li><strong>Off-white</strong> = timeless, classic feel.</li>\n\n\n\n<li><strong>Soft blue</strong> = just enough warmth without stealing the spotlight.</li>\n</ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img alt=\"\" class=\"wp-image-3302\" height=\"1620\" src=\"https://blog.gravatar.com/wp-content/uploads/2025/05/gravatar-profile-picture-headshot-tips.png\" width=\"1620\" /></figure>\n\n\n\n<p>These shades quietly do their job, keeping attention exactly where it belongs – on your face. And no, you don’t need a fancy studio to pull this off. Try one of these simple DIY setups:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A plain, unadorned wall (yes, really).</li>\n\n\n\n<li>A wrinkle-free bedsheet, hung nicely and smoothly.</li>\n\n\n\n<li>A big sheet of foam board from the craft store.</li>\n</ul>\n\n\n\n<p><img alt=\"✨\" class=\"wp-smiley\" src=\"https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2728.png\" style=\"height: 1em;\" /> <strong>Pro tip:</strong> Do <em>not</em> stand right up against the background. Step forward 3-4 feet to:<br /><img alt=\"✅\" class=\"wp-smiley\" src=\"https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2705.png\" style=\"height: 1em;\" /> Add natural depth<br /><img alt=\"✅\" class=\"wp-smiley\" src=\"https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2705.png\" style=\"height: 1em;\" /> Dodge harsh shadows<br /><img alt=\"✅\" class=\"wp-smiley\" src=\"https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/2705.png\" style=\"height: 1em;\" /> Get a subtle blur in portrait mode</p>\n\n\n\n<p>A few things to avoid: Bright colors that clash with your skin tone. Busy patterns screaming for attention. Random clutter (bookshelves, kitchen counter, laundry pile). Remember, you’re the star. Everything else needs to <em>fade</em> into the background. And if all else fails, you can always swap out the backdrop later when you <a href=\"https://snapseed.online/\">edit your pic</a>.</p>\n\n\n\n<p>There you have it: Pro-looking backdrop, no studio required.</p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>4. Dress for success</strong></h2>\n\n\n\n<p>Let’s talk wardrobe. Color psychology isn’t just fluff, it shapes how people see you. In corporate settings, blues and grays quietly say “trustworthy” and “competent.” Whereas in creative industries, brighter colors scream “innovative.” Rule of thumb: Dress for <em>your</em> industry and purpose.</p>\n\n\n\n<p>Your outfit also needs to work with your background:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Dark clothes + light backdrop = high contrast (tricky for cameras).</li>\n\n\n\n<li>Similar tones = coordinated, polished look.</li>\n\n\n\n<li>Solid colors &gt; busy prints (trust us).</li>\n</ul>\n\n\n\n<p>Necklines matter too:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Round face? V-neck = flattering length.</li>\n\n\n\n<li>Square face? A scoop or rounded neckline softens angles.</li>\n\n\n\n<li>Long face? Boat or crew neck balances things.</li>\n\n\n\n<li>Heart-shaped? Try square or cowl necklines.</li>\n</ul>\n\n\n\n<p>Heads-up: The camera spots <em>everything</em> – gaps, seams, button strain. If it doesn’t fit perfectly, fix it or swap it.</p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img alt=\"Gravatar profile example for headshot tips]\" class=\"wp-image-3303\" height=\"1056\" src=\"https://blog.gravatar.com/wp-content/uploads/2025/05/gravatar-card-joe.png\" width=\"744\" /></figure>\n\n\n\n<p>And once you’ve nailed that shot? Upload it to <a href=\"https://gravatar.com/\"><strong>Gravatar</strong></a>. It syncs your headshot across platforms like <a href=\"https://wordpress.org/\">WordPress</a>, <a href=\"http://github\">GitHub</a>, and <a href=\"https://slack.com/\">Slack</a> – no manual updates needed. </p>\n\n\n\n<p>In just 5 minutes, you can <a href=\"https://gravatar.com/\">create your free profile</a>, upload your pic, and let your digital presence do the talking.</p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>5. Apply makeup strategically</strong></h2>\n\n\n\n<p>Here’s the thing about cameras: They’re sneaky little flatteners. What looks defined and dimensional in real life can end up weirdly washed out or featureless in a photo. That’s why a little strategic makeup can make a big difference for headshots.</p>\n\n\n\n<p>If makeup’s already in your routine, dial it up a notch – think a touch more definition around the eyes and cheekbones than your everyday look. This helps counteract the camera’s flattening effect and keeps your face looking sculpted and alive in the final shot.</p>\n\n\n\n<p>A few things to <em>skip</em> before your shoot:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Products with SPF (they can throw off a ghostly white cast on camera).</li>\n\n\n\n<li>Silica-heavy setting powders (you don’t want that chalky “flashback” effect).</li>\n\n\n\n<li>Super shimmery products (they tend to photograph as oily rather than glowy).</li>\n</ul>\n\n\n\n<p>For men – or anyone who doesn’t usually reach for makeup – consider a few subtle tweaks:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A quick dusting of translucent powder to knock back shine on the forehead and nose.</li>\n\n\n\n<li>A tinted moisturizer to even out skin tone (promise, it won’t look like makeup).</li>\n\n\n\n<li>And don’t underestimate the power of a precise beard trim – cameras love to highlight asymmetry.</li>\n</ul>\n\n\n\n<p>But here’s the best bit: You don’t need to chase perfection on the day. A <a href=\"https://snapseed.online/\">good photo editor</a> can easily tackle things like redness, uneven skin tone, or tiny blemishes after the fact.</p>\n\n\n\n<h2 class=\"wp-block-heading\">6. Use confident body language</h2>\n\n\n\n<p>Body language matters more than you think in a headshot. Research shows small posture tweaks can <a href=\"https://jov.arvojournals.org/article.aspx?articleid=2135912\">boost how competent and approachable you seem</a>. Plus, striking confident poses doesn’t just influence others, <a href=\"https://richardepetty.com/wp-content/uploads/2019/01/2009-ejsp-brinol-petty-wagner.pdf\">it literally boosts your confidence</a> while lowering stress.</p>\n\n\n\n<p>Try the <strong>“turtle method.”</strong></p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Gently push your chin forward and slightly down.</li>\n\n\n\n<li>It sharpens your jawline.</li>\n\n\n\n<li>Separates your head from your shoulders.</li>\n\n\n\n<li>Instantly adds flattering definition.</li>\n</ul>\n\n\n\n<p>Skip perfect symmetry – it reads stiff. Instead:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Tilt your head a little (around 15°).</li>\n\n\n\n<li>Angle your shoulders slightly.</li>\n\n\n\n<li>Keep your spine tall, but relaxed.</li>\n</ul>\n\n\n\n<p>Before the shutter clicks, use this breathing hack to ditch tension:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Inhale through your nose for 4 counts.</li>\n\n\n\n<li>Hold briefly.</li>\n\n\n\n<li>Exhale through your mouth for 6 counts.</li>\n\n\n\n<li>On the last exhale, fully relax your face.</li>\n</ul>\n\n\n\n<p>End result: Less “awkward passport photo,” more polished, confident professional.</p>\n\n\n\n<h2 class=\"wp-block-heading\">7. Find your facial expressions</h2>\n\n\n\n<p>Here’s the thing: Everyone’s got signature expressions that photograph well, but you probably won’t stumble upon them on first try. The secret is to indulge in a little trial and error.</p>\n\n\n\n<p>Block out some time, grab your phone, and take test shots from different angles. What feels natural in the mirror doesn’t always translate on camera. You’ll need to push past your usual go-to faces and experiment.</p>\n\n\n\n<p>Here’s what to try:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>The “squinch”</strong> – a subtle narrowing of the lower eyelids that says “I’ve got this” without veering into “can’t see without my glasses.”</li>\n\n\n\n<li><strong>Eyebrows: Relaxed but slightly lifted</strong> – adds a hint of warmth and approachability.</li>\n\n\n\n<li><strong>The 20% smile</strong> – not a full grin, not stone-faced: Just enough curve to look thoughtful and composed.</li>\n</ul>\n\n\n\n<p>Take note: Each industry carries its own preferences.</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Legal and finance? Go for serious and authoritative.</li>\n\n\n\n<li>Tech? Relaxed, approachable smiles are fair game.</li>\n\n\n\n<li>Creative fields? Feel free to let your personality shine through (quirks welcome).</li>\n</ul>\n\n\n\n<p>And if you’ve ever sworn you’re “just not photogenic”? Join the club. The trick is capturing enough variations to catch those magic in-between moments. Use your phone’s burst mode (hold that shutter down) to snap 10–15 shots at once. Those sneaky, subtle shifts mid-blink or mid-laugh are often the gold you’d never have deliberately posed for.</p>\n\n\n\n<h2 class=\"wp-block-heading\">8. Tweak those phone camera settings</h2>\n\n\n\n<p>Your smartphone camera is smarter than you think. With a few tweaks, you can take your headshot from “meh” to “wow.” Here’s how:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Pick your mode:</strong> <strong>Portrait</strong> for background blur, <strong>Square</strong> for social profiles, <strong>Standard</strong> for flexibility.<br /></li>\n\n\n\n<li><strong>Nail white balance:</strong> Keeps skin tones looking natural (not Smurf-like).\n<ul class=\"wp-block-list\">\n<li>Find it under “pro” or “advanced” modes.</li>\n\n\n\n<li>Outdoors? Auto’s fine.</li>\n\n\n\n<li>Indoors? Pick a preset to match your lighting.</li>\n\n\n\n<li>Still off? Manually adjust until you’re glowing (in a good way).<br /></li>\n</ul>\n</li>\n\n\n\n<li><strong>Switch on gridlines:</strong></li>\n</ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Apply <a href=\"https://digital-photography-school.com/rule-of-thirds/\">the rule of thirds</a> and align the eyes along the top horizontal line.</li>\n\n\n\n<li>Center your face at a grid intersection.</li>\n\n\n\n<li>Voilà: Pro-level framing.<br /></li>\n</ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img alt=\"Grid framing for Gravatar headshot tips\" class=\"wp-image-3304\" height=\"660\" src=\"https://blog.gravatar.com/wp-content/uploads/2025/05/gravatar-headshot-tips-grid.png?w=660\" width=\"660\" /></figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Use HDR (High Dynamic Range):</strong> Helps balance light when:\n<ul class=\"wp-block-list\">\n<li>The background’s brighter than your face.</li>\n\n\n\n<li>You’re dealing with tricky lighting.</li>\n</ul>\n</li>\n\n\n\n<li><strong>Choose your aspect ratio:</strong>\n<ul class=\"wp-block-list\">\n<li>4:3 = classic headshot.</li>\n\n\n\n<li>1:1 = perfect for social profiles.</li>\n</ul>\n</li>\n</ul>\n\n\n\n<p>With these settings dialled in, you’ll be cranking out headshots that punch well above their weight.</p>\n\n\n\n<h2 class=\"wp-block-heading\">9. Time for a quick polish: Edit that headshot</h2>\n\n\n\n<p>Even the best DIY headshots can use a little finesse. But don’t worry, you don’t need Photoshop or a degree in digital media. A few smart tweaks with free (or cheap) apps can level up your photo without draining your wallet:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https://www.adobe.com/products/photoshop-lightroom/mobile.html\"><strong>Lightroom Mobile</strong></a> (the free version has all the essentials).</li>\n\n\n\n<li><a href=\"https://snapseed.online/\"><strong>Snapseed</strong></a> (totally free, with pro-level tools).</li>\n\n\n\n<li><a href=\"https://www.vsco.co/\"><strong>VSCO</strong></a> (great for natural, flattering presets).</li>\n\n\n\n<li><strong>Your phone’s built-in editor</strong> (seriously underrated).</li>\n</ul>\n\n\n\n<p>Here’s where to focus your edits:</p>\n\n\n\n<p><strong>Cropping</strong></p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Frame your eyes in the <em>top third</em> of the shot (see above).</li>\n\n\n\n<li>Snip out any background distractions.</li>\n\n\n\n<li>Keep a comfy balance around your head and shoulders.</li>\n</ul>\n\n\n\n<p><strong>Brightness &amp; contrast</strong></p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Bump exposure up 10–15% for a fresher, more open look.</li>\n\n\n\n<li>Add a dash of contrast (+5 to +10) to sharpen features.</li>\n\n\n\n<li>But don’t overdo it. You want glow, not glare.</li>\n</ul>\n\n\n\n<p><strong>White balance</strong></p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Warm things up slightly (+5 to +10) for friendlier skin tones.</li>\n\n\n\n<li>Tweak any weird color casts from artificial lights.</li>\n</ul>\n\n\n\n<p><strong>Vignette</strong></p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Add a subtle dark edge (-10 to -15) to draw attention inward.</li>\n</ul>\n\n\n\n<p>A few editing <em>don’ts</em> to steer clear of:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Over-smoothing your skin into porcelain doll territory.</li>\n\n\n\n<li>Filters so heavy they’ll age your photo by next week.</li>\n\n\n\n<li>Anything that tweaks your facial features beyond recognition.</li>\n</ul>\n\n\n\n<p>And when you’re done, always save in high-res (at least 1000&#215;1000 pixels) to keep things crisp across every platform.</p>\n\n\n\n<h2 class=\"wp-block-heading\">10. Use Gravatar to display your perfect headshot everywhere</h2>\n\n\n\n<p>You’ve finally nailed the perfect headshot – great lighting, solid pose, zero double chin. Congrats! But now comes the tedious part: Uploading it <em>everywhere</em>. <a href=\"https://www.linkedin.com/\">LinkedIn</a>. Company intranet. <a href=\"https://slack.com/\">Slack</a>. <a href=\"https://github.com/\">GitHub</a>. That random forum you signed up for in 2014. Each site wants a different size, a different crop, a different format. Ugh.</p>\n\n\n\n<p>Enter <a href=\"https://gravatar.com/\"><strong>Gravatar</strong></a>: The no-fuss, no-hassle way to make your headshot follow you around the internet like the loyal professional sidekick it was born to be.</p>\n\n\n\n<p>Here’s how it works:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Gravatar links your email address to your headshot.</li>\n\n\n\n<li>Any platform that’s Gravatar-enabled pulls in your photo automatically.</li>\n\n\n\n<li>Update your pic once in your Gravatar account, and it updates everywhere else, no manual uploads or awkward crops required.</li>\n</ul>\n\n\n\n<p>And it doesn’t stop at just your photo. Gravatar also lets you round out your online presence with:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A professional bio.</li>\n\n\n\n<li>Verified links to your portfolio and social profiles.</li>\n\n\n\n<li>Additional professional images.</li>\n\n\n\n<li>Your contact info.</li>\n</ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img alt=\"Example Gravatar bio for headshot tips\" class=\"wp-image-3305\" height=\"936\" src=\"https://blog.gravatar.com/wp-content/uploads/2025/05/gravatar-card-ethan.png?w=660\" width=\"660\" /></figure>\n\n\n\n<p>The cherry on top? It’s 100% free. <a href=\"https://gravatar.com/\">Spend five minutes setting up your profile</a> today, and you’ll save yourself countless “ugh-I-need-to-update-my-photo-there-too” headaches down the line – all you need for a polished <a href=\"https://blog.gravatar.com/2024/07/10/online-presence-management/\">online presence</a>.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Your perfect headshot + Gravatar = instant professional glow-up</h2>\n\n\n\n<p>Turns out, you <em>can</em> create a killer professional headshot at home – no fancy cameras, no overpriced photographers, no awkward studio backdrops required. Just your smartphone, some decent lighting, and a little know-how.</p>\n\n\n\n<p>By following these 10 steps, you’ve already cracked the code – the gear, the angles, the lighting, the editing – to turn your humble selfie into a headshot that can go toe-to-toe with the pros.</p>\n\n\n\n<p>Pair that polished photo with <a href=\"https://gravatar.com/\"><strong>Gravatar</strong></a>, and suddenly your face shows up <em>everywhere</em> you show up – LinkedIn, blogs, email signatures, you name it – without you lifting another finger. You just update your Gravatar once to instantly refresh across the board.</p>\n\n\n\n<p>So, carve out an hour to snap that headshot, then take five minutes to <a href=\"https://gravatar.com/\">set up your (free!) Gravatar profile</a> today.</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:\"Thu, 12 Jun 2025 20:59:04 +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: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:20:\"Matt: Play With Clay\";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=143265\";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:27:\"https://ma.tt/2025/06/clay/\";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:1699:\"<p>Happy to announce that the amazing <a href=\"https://clay.earth/\">Clay.earth</a> product and team is joining <a href=\"https://automattic.com/\">Automattic</a>. If you haven&#8217;t tried the app out yet, here&#8217;s a quick video to give you a taste.</p>\n\n\n\n<figure class=\"wp-block-embed alignwide 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\n\n\n<p><a href=\"https://techcrunch.com/2025/06/12/automattic-acquires-relationship-manager-clay-to-add-an-identity-layer-to-online-tools/\">TechCrunch has covered the broader strategy pretty well</a>: One of the top requests we&#8217;ve heard from <a href=\"https://www.beeper.com/\">Beeper</a> beta testers is they want to tie in more context, like a personal CRM, and some even requested Clay by name. We&#8217;ll keep the apps separate, as Clay also has some interesting team uses, but they will complement and integrate with each other as part of our all-in-one messaging strategy.</p>\n\n\n\n<p>We share a vision to integrate Clay&#8217;s technology, which manages over 140 million relationships, as a layer across many of our products and experiences at Automattic. I&#8217;m excited to work with the founders, Matt and Zach, to bring this vision to life. I&#8217;ve always felt the missing primitive in WordPress&#8217; content management data architecture was a scalable concept of a Person and Relationships outside of our user table.</p>\n\n\n\n<p><a href=\"https://clay.earth/next\">Here&#8217;s the beautiful announcement on the Clay site</a> and <a href=\"https://automattic.com/2025/06/12/automattic-welcomes-clay/\">on Automattic&#8217;s</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, 12 Jun 2025 18:37:46 +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:59:\"Bernie Reiter: Using git-svn for WordPress Core Development\";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:24:\"http://raz.or.at/?p=1198\";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:74:\"https://raz.or.at/2025/06/12/using-git-svn-for-wordpress-core-development/\";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:11643:\"<p>A while ago, there was a call for WordPress Core Committers to share their development setups. <a href=\"https://make.wordpress.org/core/handbook/best-practices/when-you-become-a-committer/core-committer-workflows/\">Many of them have already done so</a>; I’m finally getting around to sharing mine.</p>\n\n\n\n<p>As far as I know, I’m one of the few people that use <code>git-svn</code>. Not only does it shield me from the quirks of Subversion (SVN); it also allows me to use git to work on branches from the  <code><a href=\"https://github.com/WordPress/wordpress-develop\">WordPress/wordpress-develop</a></code> GitHub mirror (which has become the de-facto standard for Core development), and to merge my contributions to Core’s SVN repo once they’re ready, all from within the same directory.</p>\n\n\n\n<p>The following is based on a <a href=\"https://markjaquith.wordpress.com/2011/05/26/developing-on-wordpress-using-git/\">blog post</a> by Mark Jaquith that’s over fourteen years old, meaning it predates <code>WordPress/wordpress-develop</code> as well as some new features and behavioral changes in git (and <code>git-svn</code>). I used the <a href=\"https://git-scm.com/docs/git-svn\">official <code>git-svn</code> docs</a> to update accordingly.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Setup</h2>\n\n\n\n<p>Assuming you already have git and homebrew installed, you’ll need to use the latter to install <code>git-svn</code>:</p>\n\n\n\n<pre class=\"wp-block-code\"><code>brew install git-svn</code></pre>\n\n\n\n<p>You can now check out the SVN repo. A word of warning before you proceed: Due to the linear nature of SVN, cloning the repository means checking out all ~60k revisions (as of June 2025).<sup class=\"fn\"><a href=\"https://raz.or.at/category/wordpress/feed/#78b71bc7-31f3-4e14-9996-ff8ad1338461\" id=\"78b71bc7-31f3-4e14-9996-ff8ad1338461-link\">1</a></sup> Even with a fast internet connection, this takes several hours; I let it run overnight.<sup class=\"fn\"><a href=\"https://raz.or.at/category/wordpress/feed/#83875f15-4f02-426b-841f-c9104c628e43\" id=\"83875f15-4f02-426b-841f-c9104c628e43-link\">2</a></sup></p>\n\n\n\n<pre class=\"wp-block-code\"><code>git svn clone -s --prefix=svn/ --log-window-size=5000 https://develop.svn.wordpress.org wordpress-develop</code></pre>\n\n\n\n<p>Let’s go through the arguments one by one:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>-s</code> (short for <code>--stdlayout</code>) will make git-svn look for trunk, branches, and tags in the eponymous subdirectories of the repository.</li>\n\n\n\n<li><code>--prefix=svn/</code> <em>(make sure to include the trailing slash!)</em> sets a prefix that’s prepended to remotes in the git ref names that the aforementioned svn directories are mapped to. This defaults to <code>origin</code>, resulting in ref names such as <code>origin/trunk</code>. Since I want to use <code>origin</code> as the name for the <code>WordPress/wordpress-develop</code> GitHub mirror, I set the prefix to <code>svn</code> to denote the SVN repo.</li>\n\n\n\n<li><code>--log-window-size=5000</code>: According to the docs, this specifies the number of log entries fetched per request when scanning the SVN repo. The docs recommend setting this to a higher number than the default 100 when cloning large repositories.</li>\n\n\n\n<li><a href=\"https://develop.svn.wordpress.org/\"><code>https://develop.svn.wordpress.org/</code></a> is of course the location of the WordPress codebase.</li>\n\n\n\n<li><code>wordpress-develop</code> is the name of the target folder that the repo will be cloned into.</li>\n</ul>\n\n\n\n<p>Now for the fun part: We can add git remotes and switch between branches like we’d do in any other git repo! Typically, the next thing you’ll want to do is adding the <code>WordPress/wordpress-develop</code> GitHub mirror as <code>origin</code>:</p>\n\n\n\n<pre class=\"wp-block-code\"><code>git remote add origin git@github.com:WordPress/wordpress-develop.git</code></pre>\n\n\n\n<p>Since you can’t push branches to that repo, you’ll likely also want to add your own fork as a remote (and probably some other folks’, if you want to test their PRs). For my own fork, that’s</p>\n\n\n\n<pre class=\"wp-block-code\"><code>git remote add ockham git@github.com:ockham/wordpress-develop.git</code></pre>\n\n\n\n<h2 class=\"wp-block-heading\">Day-to-day Usage</h2>\n\n\n\n<p>For your day-to-day development, you can use git just like you normally would, i.e. create branches, push them to your remote, fetch updates from the remote, etc.</p>\n\n\n\n<p>The only difference is in the handling of the branches checked out from SVN. If you’re on one of of those – e.g. <code>trunk</code> –  you don’t use <code>git pull</code> to update, but</p>\n\n\n\n<pre class=\"wp-block-code\"><code>git svn rebase</code></pre>\n\n\n\n<p>This will fetch the latest commits from the SVN repo and add them to your local copy of the branch.</p>\n\n\n\n<p>To fetch any new branches and/or tags that have been created in the SVN repo (e.g. around Feature Freeze for a new WordPress version), you’ll do</p>\n\n\n\n<pre class=\"wp-block-code\"><code>git svn fetch</code></pre>\n\n\n\n<p>When checking out the branch, remember that you’ll have to include the <code>svn/</code> prefix to indicate that you want the branch from SVN (rather than from the default <code>origin</code>, which in this setup will point to the <code>WordPress/wordpress-develop</code> GitHub mirror):</p>\n\n\n\n<pre class=\"wp-block-code\"><code>git checkout -b 6.8 svn/6.8</code></pre>\n\n\n\n<p>You can always use <code>git svn info</code> to find out if the branch you’re currently on was checked out from SVN or git.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Committing Code to SVN</h2>\n\n\n\n<h3 class=\"wp-block-heading\">Preparing the commit (the git part)</h3>\n\n\n\n<p>Let’s say I’ve been working on some code in a git branch called <code>add/my-stuff</code>. Once that code is ready to merge, I start by locally squashing all my changes into one commit. There are different ways of doing this; if you’re unfamiliar with them, you can probably find some online tutorials (this part isn’t specific to <code>git-svn</code> at all). I typically either do an interactive rebase (<code>git rebase -i origin/trunk</code>) if there aren’t a lot of commits, or I reset all commits to the point that the branch deviated from <code>origin/trunk</code><sup class=\"fn\"><a href=\"https://raz.or.at/category/wordpress/feed/#d8bbfaa9-8db9-426e-90d2-9a78a0fa3a4c\" id=\"d8bbfaa9-8db9-426e-90d2-9a78a0fa3a4c-link\">3</a></sup>, i.e.</p>\n\n\n\n<pre class=\"wp-block-code\"><code>git reset $(git merge-base origin/trunk $(git rev-parse --abbrev-ref HEAD))</code></pre>\n\n\n\n<p>I then simply re-add all files that had any modifications (including new files that were previously untracked)</p>\n\n\n\n<pre class=\"wp-block-code\"><code>git add -A</code></pre>\n\n\n\n<p>and finally create the commit</p>\n\n\n\n<pre class=\"wp-block-code\"><code>git commit</code></pre>\n\n\n\n<p>At this point, I typically just paste the commit message that I’ve already prepared in my editor. This is the commit message that’s going into SVN, so it needs to follow <a href=\"https://make.wordpress.org/core/handbook/best-practices/commit-messages/\">Core’s guidelines for commit messages</a>. However, it doesn’t have to be perfect right away; you’ll be able to go back to it later and polish it some more via <code>git commit --amend</code>. Be sure to review both the commit message and code changes by looking at the output of <code>git show</code>.</p>\n\n\n\n<h3 class=\"wp-block-heading\">Pushing the code to SVN</h3>\n\n\n\n<p>Once I’m happy with my commit, I note its SHA and switch back to <code>trunk</code>. I do a last <code>git svn rebase</code> to fetch all the latest changes from SVN, and then <code>git cherry-pick</code> my commit. It’s probably a good idea to follow up with a final <code>git log</code> and <code>git show</code> to make sure everything is looking alright.</p>\n\n\n\n<p>I then push my code to SVN by typing</p>\n\n\n\n<pre class=\"wp-block-code\"><code>git svn dcommit</code></pre>\n\n\n\n<p>(Yes, that&#8217;s <code>dcommit</code>.)That’s the <code>git-svn</code> equivalent of <code>git push</code>! I watch as <code>git-svn</code> does its magic. Once it’s done, I check the Trac ticket and <code>wordpress-develop</code> PR which should now have been automatically closed.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Other tools</h2>\n\n\n\n<p>I use <a href=\"https://rancherdesktop.io/\">Rancher Desktop</a> by SUSE, which is a free and open-source replacement for Docker Desktop. I&#8217;m using <strong>VZ</strong> as my virtual machine, and <strong>virtiofs</strong> as mount type. You can set these in <em>Preferences &gt; Virtual Machine</em>, in the <em>Emulation</em> and <em>Volume</em> tabs, respectively. Note that if you&#8217;re on Apple Silicon, you&#8217;ll need to <em>Enable Rosetta support</em>, as the <code>wordpressdevelop/php</code> container <a href=\"https://github.com/WordPress/wpdev-docker-images/issues/127\">isn&#8217;t natively available for the <code>arm64</code> architecture yet</a>.</p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img alt=\"\" class=\"wp-image-1224\" height=\"604\" src=\"https://raz.or.at/wp-content/uploads/2025/06/screenshot-2025-06-16-at-20.00.28.png?w=1024\" width=\"1024\" /></figure>\n\n\n\n<p>(There’s a chance that I won’t need any of that once macOS 26 is available, since apparently Apple is working on <a href=\"https://appleinsider.com/articles/25/06/09/sorry-docker-macos-26-adds-native-support-for-linux-containers\">native support for Linux containers</a>.)</p>\n\n\n<ol class=\"wp-block-footnotes\"><li id=\"78b71bc7-31f3-4e14-9996-ff8ad1338461\">While svn itself supports <code>--set-depth immediates</code>  to only check out the last <em>n</em> commits, <code>git-svn</code> unfortunately doesn’t. There is a <a href=\"https://stackoverflow.com/questions/747075/how-to-git-svn-clone-the-last-n-revisions-from-a-subversion-repository\">workaround</a>; however, if you ever want to <a href=\"https://stackoverflow.com/questions/747075/how-to-git-svn-clone-the-last-n-revisions-from-a-subversion-repository#comment25773619_749054\">fetch the preceding commits</a>, you’ll have to <a href=\"https://stackoverflow.com/questions/747075/how-to-git-svn-clone-the-last-n-revisions-from-a-subversion-repository#comment33777609_749054\">mess with git history</a>, which is something I’d personally rather avoid. <a href=\"https://raz.or.at/category/wordpress/feed/#78b71bc7-31f3-4e14-9996-ff8ad1338461-link\"><img alt=\"↩\" class=\"wp-smiley\" src=\"https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/21a9.png\" style=\"height: 1em;\" />︎</a></li><li id=\"83875f15-4f02-426b-841f-c9104c628e43\">You might want to disable automatic standby in your operating system’s settings; in macOS, it’s a toggle called <em>Prevent automatic sleeping on power adapter when the display is off</em>. <a href=\"https://raz.or.at/category/wordpress/feed/#83875f15-4f02-426b-841f-c9104c628e43-link\"><img alt=\"↩\" class=\"wp-smiley\" src=\"https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/21a9.png\" style=\"height: 1em;\" />︎</a></li><li id=\"d8bbfaa9-8db9-426e-90d2-9a78a0fa3a4c\">We’re using <code>origin/trunk</code> as the base branch here (rather than <code>trunk</code> which maps to <code>svn/trunk</code> in this setup), so it’s important to keep that updated regularly (<code>git fetch origin</code>). <a href=\"https://raz.or.at/category/wordpress/feed/#d8bbfaa9-8db9-426e-90d2-9a78a0fa3a4c-link\"><img alt=\"↩\" class=\"wp-smiley\" src=\"https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/21a9.png\" style=\"height: 1em;\" />︎</a></li></ol>\";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, 12 Jun 2025 11:41: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:13:\"Bernie Reiter\";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:59:\"Open Channels FM: Wrapping Up the Rebrand Series with 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:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:32:\"https://openchannels.fm/?p=97958\";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:66:\"https://openchannels.fm/wrapping-up-the-rebrand-series-with-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:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:207:\"BobWP wraps up the rebranding of Do the Woo into Open Channels FM. The new channel features five diverse shows, maintaining core values while offering more structure for listeners to explore their interests.\";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, 12 Jun 2025 08:30: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: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:117:\"WPTavern: #172 – Reyes Martínez and Héctor De Prada on Website Maintenance for WordPress Agencies and Freelancers\";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=196556\";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:129:\"https://wptavern.com/podcast/172-reyes-martinez-and-hector-de-prada-on-website-maintenance-for-wordpress-agencies-and-freelancers\";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:50854:\"<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, website maintenance for WordPress agencies and freelancers.</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 Reyes Martínez, and Héctor de Prada.</p>\n\n\n\n<p>Reyes has been involved in the WordPress community since 2015, with a background in journalism, digital communications, and early stage startups. From 2021 to 2024, she was sponsored by Automattic to contribute full-time to global marketing and communication efforts for the WordPress Open Source project, She led several initiatives during that time, including the experimental WordPress Media Corps. Reyes currently serves as content lead at Modular DS.</p>\n\n\n\n<p>Héctor has been building websites since he was 12, and has worked with WordPress for nearly a decade, first as a freelancer, then running his own agency. Today, he&#8217;s one of the co-founders of Modular DS. He co-organizes the WordPress meetup in León in Spain, and writes a Spanish newsletter that keeps readers updated with the latest news from the WordPress ecosystem.</p>\n\n\n\n<p>In this episode, we get into the nitty gritty of WordPress maintenance. What it takes to effectively manage multiple websites, and why maintenance is such a crucial, if often overlooked, part of running a successful client business.</p>\n\n\n\n<p>You might think that updating plugins and themes is all there is to it, but Reyes and Héctor explained that there&#8217;s much more involved, performing regular backups, monitoring, uptime, and performance, checking for security vulnerabilities, database cleanups, and ensuring essential features like contact forms continue working as expected.</p>\n\n\n\n<p>We discuss best practices for educating clients, how to position ongoing maintenance as an investment rather than a cost, and solutions which can help automate and streamline these essential tasks.</p>\n\n\n\n<p>We also chat about how the maintenance landscape is changing with upcoming legal requirements around accessibility and privacy, and the emerging business opportunities for professionals specializing solely in website care.</p>\n\n\n\n<p>If you&#8217;re a freelancer or agency owner looking to scale up your business, perhaps you offer care plans to clients, or are considering adding maintenance plans to your service, 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 Reyes Martínez and Héctor de Prada.</p>\n\n\n\n<p>I am joined on the podcast today by Reyes Martinez and by Héctor de Prada. Hello Both.</p>\n\n\n\n<p>[00:03:53] <strong>Héctor de Prada:</strong> Hello Nathan.</p>\n\n\n\n<p>[00:03:54] <strong>Reyes Martínez:</strong> Hello Nathan.</p>\n\n\n\n<p>[00:03:55] <strong>Nathan Wrigley:</strong> I&#8217;m so pleased to have both of you on. This is going to be interesting because I&#8217;m going to be speaking to Héctor in about a week&#8217;s time as well, which will be kind of interesting. So there&#8217;ll be two podcasts coming out in quick succession featuring Héctor.</p>\n\n\n\n<p>But the topic will be very different, and I&#8217;ll explain in a moment what the topic is going to be about.</p>\n\n\n\n<p>But before that, I wonder if we could just get a little bit of an introduction to both of you. If we can keep it around the subject of WordPress that would be helpful.</p>\n\n\n\n<p>So let&#8217;s go to Reyes first. Tell us exactly who you are, who you work for, what do they do, whatever you like in your little potted bio.</p>\n\n\n\n<p>[00:04:29] <strong>Reyes Martínez:</strong> Yeah, sure. I&#8217;m Reyes and I have been part of the WordPress community since 2015. My background is in journalism and digital marketing and communications, and over the past 10 years, more or less, I have worked with startups and tech companies closely connected to the WordPress ecosystem.</p>\n\n\n\n<p>And from 2021 and 2024, I was sponsored by Automattic to contribute full time to the WordPress project, where I had the opportunity to contribute to different marketing and communications initiatives.</p>\n\n\n\n<p>And now I am the content lead at Modular DS. We&#8217;re building a tool to help freelancers and agencies manage multiple WordPress sites more efficiently.</p>\n\n\n\n<p>[00:05:13] <strong>Nathan Wrigley:</strong> Thank you so much. And let&#8217;s move over to Héctor. Similar question really, just give us your little potted bio.</p>\n\n\n\n<p>[00:05:19] <strong>Héctor de Prada:</strong> Of course. Well, I have been making websites, I always say almost all my life, since I was like very young, at 12, 13 years old. At the beginning, not with WordPress, I have to say. But I started working with WordPress around 8, 9 years ago when I started freelancing as a web designer, and that evolved to creating a web design agency.</p>\n\n\n\n<p>So I have been doing web design and websites, WordPress websites, for a long time. And 4 years ago almost, it&#8217;s when my partner and I, David and I, we started our current company, which is Modular DS, which is now where Reyes is working.</p>\n\n\n\n<p>I am also part of the community. This is what you were saying, Nathan, that we are going to talk about, WordCamp Europe, because I am one of the organisers at the meetup in León, in my city. So this is also something I like a lot because we go to a lot of WordCamps, a lot of WordPress events, and it&#8217;s very nice to be able to do that in our own city as well.</p>\n\n\n\n<p>[00:06:20] <strong>Nathan Wrigley:</strong> Thank you both so much. So if we stray into anything today, like a blog post is mentioned or a homepage or anything like that is mentioned, I will endeavor to link to that into the show notes. So if you head to wptavern.com and then search for the episode with these two fine people, then you&#8217;ll be able to find all of those links. It&#8217;s going to be easier to do it that way than to read anything out in an audio podcast.</p>\n\n\n\n<p>The approach I think I want to take with this episode is one of somebody fairly new in the WordPress space. So if you are new in the WordPress space, then you might just have the one website. And maintaining that one simple website is probably a reasonably straightforward thing to do. You know, you log in, you update the plugins, you update the themes and what have you.</p>\n\n\n\n<p>But if you&#8217;ve got any aspirations of becoming a bigger player in the WordPress space, perhaps you want to take on the job of maintaining multiple websites, perhaps you want to have clients and you want to maintain their websites, it becomes fairly obvious, fairly quickly, it&#8217;s a bit of a chore. There&#8217;s quite a lot of tasks that you need to do in order to keep those websites live.</p>\n\n\n\n<p>So that&#8217;s what we&#8217;re going to talk about. What are those tasks? What&#8217;s important to notice if you are a WordPress freelancer or agency owner. What are the things that you need to make sure that your clients are getting updated with and for? And then I guess we&#8217;ll sort of mention right at the beginning that Modular DS is something which kind of can take that process off your shoulders and make it fairly automated. But you can go and check out that of your own accord.</p>\n\n\n\n<p>So let&#8217;s just get into it then. What are the things that you would need to worry about? You can interrupt each other as you see fit. What are the kind of tasks that as a newbie WordPress we may not even know are coming our way, when we&#8217;ve got 2, 3, 5, 50 websites that we&#8217;ve got to keep maintained?</p>\n\n\n\n<p>[00:08:14] <strong>Héctor de Prada:</strong> I don&#8217;t think it&#8217;s, how to say, like that we don&#8217;t know we have to do that, or that we don&#8217;t expect to do it when we are trying to manage a few websites. Reyes and I, we were talking this morning, normally maintenance or maintenance tasks are something nobody is very thrilled about doing, okay. It&#8217;s not like the best job. Like, you can be a designer because you love creativity and designing things, or a developer because you love to build things.</p>\n\n\n\n<p>But I haven&#8217;t met anybody that is like, oh, my dream is to update plugins, create backups, and restore the website when it&#8217;s broken, you know? I think that&#8217;s the number one challenge, okay. Normally I see that one of the biggest problems is that we know maintenance has to be done in a website, but we don&#8217;t always do it. And when we have more and more websites, it becomes even a bigger problem, because we also let it aside more and more because it&#8217;s too much work. So that&#8217;s one of the main problems.</p>\n\n\n\n<p>[00:09:17] <strong>Nathan Wrigley:</strong> One of the things that in my life, I don&#8217;t know what the number of websites was, but there was a point where each morning, because I decided to do the updating on a more or less daily basis, there came a point where you realise that you&#8217;d now logged into X number of websites. So you&#8217;d gone to the URL to log in, you&#8217;d found the username and password, you&#8217;d logged in, you&#8217;d inspected whether there were plugins or themes to be updated. You&#8217;d gone to them individually, you&#8217;d update them in a careful manner to make sure nothing got broken, and you moved on to the next website. And at some point you kind of have the intuition, how many minutes or hours have I just lost?</p>\n\n\n\n<p>And whilst for one or two websites this really isn&#8217;t a problem, I guess what we&#8217;re talking about here is something at scale, when you&#8217;re over a, let&#8217;s say 2 or 3 or 5, or whatever that number is. It does start to add up, and you can&#8217;t afford to waste time in that way. And I think it&#8217;s exactly like you said, you don&#8217;t really know going into it that this is what you&#8217;re going to end up doing with your WordPress websites. But you&#8217;re right, nobody wrote down on their bucket list of things to do in life, I would like to update plugins for a living.</p>\n\n\n\n<p>[00:10:23] <strong>Héctor de Prada:</strong> And it&#8217;s very important at the same time. Like we said, yeah, maybe Reyes, you can say a little bit more about it. But maintenance, it&#8217;s really important for many reasons, in particular in the WordPress ecosystem.</p>\n\n\n\n<p>[00:10:34] <strong>Reyes Martínez:</strong> Yeah, I would say that it&#8217;s just that, that it&#8217;s not the most glamorous part of managing a website, like all the maintenance tasks. But I think it&#8217;s also what keep things running smoothly and professionally. I guess that&#8217;s the difference between being reactive and being proactive as well. I mean, that makes all the difference. So even though it&#8217;s not the most, I don&#8217;t know, glamorous part, it&#8217;s still very important to keep things professionally.</p>\n\n\n\n<p>[00:11:03] <strong>Nathan Wrigley:</strong> What are the things that we&#8217;re updating? So we&#8217;ve covered plugins and themes, and I suspect that they&#8217;re the ones most people, and again, the audience for this podcast is really broad, so obviously that sentence will be really blindingly obvious to many people. But there may be a proportion of people who don&#8217;t even know that that kind of stuff needs to be updated. So let&#8217;s just work from the basics upwards. There&#8217;s plugins and themes. When you talk about maintenance, what else are you bringing into that?</p>\n\n\n\n<p>[00:11:30] <strong>Héctor de Prada:</strong> You have the updates, both plugin, themes and the Core of WordPress, because it also gets updated. Now it&#8217;s once a year, it used to be like two, three times a year so those are also very important updates. But normally it&#8217;s mostly, because some people might ask, why should I update a plugin? If my website is working, if it&#8217;s perfectly fine, why do I have to update a plugin or a theme?</p>\n\n\n\n<p>Well, one of the biggest things in maintenance, because we have to do these updates, is the security part. I am positive that WordPress is a secure solution, that is why it powers 40 something percent of the web. But at the same time, we have 60,000 different plugins just in the WordPress repository. Each one of them is created by an independent team or developers. And even when everybody tries to create the best possible plugin, a secure plugin, and everything, there is human error, of course. And there is always people, since WordPress is so popular, trying to find vulnerabilities to attack these kind of plugins or themes.</p>\n\n\n\n<p>So many times, the most important updates are security updates. To avoid that, you have an older version of a plugin or a theme that maybe got exposed, and somebody found a vulnerability, and your website might get hacked because you didn&#8217;t do the updates. So even if your website is functioning perfectly, you should still do those updates. And this is something, for example, a lot of end clients, they normally don&#8217;t understand when you run an agency and stuff, because they don&#8217;t see the point of doing this. But this is one of the reasons, it&#8217;s super important.</p>\n\n\n\n<p>[00:13:08] <strong>Nathan Wrigley:</strong> In the normal experience in life, you go into a shop and you buy a thing, like some new sunglasses or a pair of shoes. You don&#8217;t anticipate having to update the shoes or update the sunglasses. You kind of just bought the thing and the thing is now yours and off it goes. You know, you expect it to function as sunglasses from now on, and the shoes will keep going as shoes. You know, you might have to replace them from time to time, but that&#8217;s another thing altogether. So it&#8217;s kind of hard to encapsulate that.</p>\n\n\n\n<p>But also, I suspect that most clients wouldn&#8217;t even know that there&#8217;s this sort of specter of security problems and the fact that bad things could potentially happen. Most clients I imagine have just come to you, the agency, the freelancer, because they want a website. They&#8217;re not interested particularly in all of that, but you have to explain that to them. And I always thought that was quite hard. I always got an intuition that the clients kind of thought, what are you on about? I&#8217;ve just bought this thing from you, why do I need to update it? Why do I need to keep doing these things?</p>\n\n\n\n<p>[00:14:07] <strong>Héctor de Prada:</strong> Education is one of the biggest parts in having a WordPress maintenance service in your agency or as a professional. Most people, end clients, many people is not tech people so they won&#8217;t understand. Updates, backups, these are all very not tangible things. So it&#8217;s not hard to explain, but it is more, it&#8217;s not like you go to a store, okay? You buy something, it normally doesn&#8217;t need maintenance. But I would say it&#8217;s like, you buy a house, you buy a car, it needs maintenance, okay? Because you can keep running with a car, but even if the car still works, maybe the brakes, at some point they will stop working and you will have a crash and nobody wants that. So I would say a website is more like a car than a normal product.</p>\n\n\n\n<p>[00:14:49] <strong>Nathan Wrigley:</strong> Yeah, that&#8217;s a really nice example because with a car particularly, there are bad people who are literally trying to break into the car and take the car away, or do damage to the car, or steal bits from the car. That explains it really well.</p>\n\n\n\n<p>Okay, let&#8217;s imagine that you&#8217;ve had that conversation, you&#8217;ve done that education piece, you&#8217;ve said to the clients, look, we need some kind of thing going on in the background. There has to be some kind of ongoing relationship between me, the website builder, the developer, and you, the client. But what are those tasks? What are the things, I guess your software will handle these kind of things, but just talking about them hypothetically, what are the list of things just beyond plugin, theme, Core updates? Are there any other things which you recommend?</p>\n\n\n\n<p>[00:15:32] <strong>Reyes Martínez:</strong> Besides updates there are also, for example, like I think it&#8217;s very important making regular backups. Monitoring up time and performance. Checking for security issues, you were just talking about that as well. Vulnerabilities, cleaning up the database, and in general, like making sure the site is running smoothly, like contact forms and links are working.</p>\n\n\n\n<p>Because there are things that even people think they might have not, I don&#8217;t know, like they are not very important. They can have an impact on their business as well. For example, like a broken contact form, that&#8217;s just like a very small example, but yeah, those things come to mind. I don&#8217;t know, Héctor, if you want to add anything else.</p>\n\n\n\n<p>[00:16:15] <strong>Héctor de Prada:</strong> I think those are the main ones, like your backups and the restoration of the backups when you have a problem. It happened to me I have to say. When we had the agency, I remember more than a few times having a client calling me and telling me, hey Héctor, the website is not working. And I was like, I didn&#8217;t know. So it&#8217;s like a very, very embarrassing moment because you&#8217;re supposed to be taking care of the website, but you didn&#8217;t know it wasn&#8217;t working until the client told you.</p>\n\n\n\n<p>So things like monitoring. When I started making websites, I couldn&#8217;t monitor them at all. If they break, I wouldn&#8217;t find out because somebody told me or I was just trying to do something and I found out. So monitoring as well. Security Monitoring, like you said, for vulnerabilities, for malware. There are a bunch of tools. I mean, it&#8217;s not only tools, maintenance tools, like it can be Modular or others.</p>\n\n\n\n<p>There are a bunch of tools in WordPress, like for everything in WordPress, that can help you with this maintenance task. Because the ideal thing, like we were saying, is to automate them so they don&#8217;t take so much time. Even if you only have one website, the ideal thing is that backups, monitoring, you have most of it automated, so you make sure even if you forget, if you go on holiday or whatever, it will still be running.</p>\n\n\n\n<p>[00:17:30] <strong>Reyes Martínez:</strong> Yeah, and you can get alerts, for example. Like Héctor was saying, if a website goes down, you can get alerts so you don&#8217;t have to be monitoring all the time. Imagine like manual monitoring or going site by site, just checking if everything is working correctly. And monitoring, it&#8217;s exactly a big task as well of maintenance and because it can help you catch problems early.</p>\n\n\n\n<p>[00:17:55] <strong>Nathan Wrigley:</strong> Okay, let&#8217;s just break all that now and then. So we&#8217;re imagining a scenario where we&#8217;ve built a website, we&#8217;ve handed it over to a client, and then we&#8217;re sort of presenting with the client the scenario, look, although we&#8217;ve given you the thing, here&#8217;s the website, there it is, it&#8217;s on the internet, there&#8217;s a whole load of other things that we need to do in the background.</p>\n\n\n\n<p>And there&#8217;s an education piece there, but there&#8217;s also a bit of sales that has to go on there because you have to persuade them, presumably that the thing that I&#8217;m suggesting here, you are going to need to pay for probably, there&#8217;ll be a, some kind of subscription model going on there. We will do all of these things in return for a monthly fee or whatever it might be.</p>\n\n\n\n<p>But broadly it is updating things. So that&#8217;s plugins, themes and Core. Making sure that those things are available. Then there&#8217;s the backup piece, a different thing altogether, and that&#8217;s just basically storing in multiple locations, an entire version of the website, the database, and the files to make sure that if an absolute catastrophe occurs, you can go back to whenever the website was last saved successfully, minus any security problems that you might have.</p>\n\n\n\n<p>And then another thing is uptime monitoring, which is the process of just alerting you, and I presume it&#8217;s you, not the client, that something&#8217;s gone wrong. The website that was there 10 minutes ago is not here now. And that&#8217;s a really, really, you know, that&#8217;s not a once a day thing, that&#8217;s once every two minutes kind of thing. You want to know the minute the website goes down, so that you can be the person that contacts the client to say, look, we see that the website&#8217;s gone down. And in some curious sense, you actually paint yourself in a good light by admitting something before they&#8217;ve even learned about it.</p>\n\n\n\n<p>But also something that you said that I never really think about is the idea of bits of the website, which may appear to work, but which don&#8217;t work. So the contact form is a big one. You know that whole egg on your face moment where you realise that possibly for six months, the contact form hasn&#8217;t worked, has never worked, and you have no way of saying to your client, look, sorry, we&#8217;ll be able to reverse that, we&#8217;ll be able to get all of the contact forms that would have been submitted over the last six months, because you won&#8217;t. It&#8217;s gone. And if it wasn&#8217;t working, that&#8217;s a catastrophe.</p>\n\n\n\n<p>But then my mind then goes to things like e-commerce. The site might look fine. Everything might check out okay, when I say checkout, I don&#8217;t mean checkout through the cart, I mean, looks fine. But the checkout might not work. Maybe people can&#8217;t actually buy things off your website, so it&#8217;s up but it&#8217;s not working.</p>\n\n\n\n<p>So there&#8217;s all this stuff. And I guess what Modular DS is doing, and the rivals that you&#8217;ve got in that space, is they&#8217;re trying to take all of those tasks, package them up into a wrapper piece of software, and basically you don&#8217;t really have to worry too much about it. You just sort of set it all up, make sure that all the dominoes are set up in the right place. And then it will do all of those things for you without you having to do too much. Have I got that about right?</p>\n\n\n\n<p>[00:20:54] <strong>Héctor de Prada:</strong> Yeah, of course. That&#8217;s the idea, to try to centralise everything when you have a lot of websites. And at the same time, like we were saying, yeah, automate these kinds of tasks so they don&#8217;t slip away. And it&#8217;s a great point about the WooCommerce because one thing about maintenance is that it&#8217;s very dependent on the type of website you have. I mean, it&#8217;s not the same maintenance you have to do for maybe a small corporate website, like the Meetup group website, for example, than a big e-commerce that is selling hundreds of products every day. You won&#8217;t need to have the same systems in place, not for backups, not for monitoring, not for any kind of checks. So that&#8217;s also very important to know. Maintenance is very different depending on the website.</p>\n\n\n\n<p>[00:21:38] <strong>Nathan Wrigley:</strong> So in the case of this whole idea of being able to do this for your client, I&#8217;m guessing your position would be that this is something that you can in fact sell to your clients on a regular basis. It&#8217;s not like you built the site back in 2024 and you&#8217;ve charged a fee for it, and then that&#8217;s the end of that. This is more of a, you charged a fee to build the website, and now we have this kind of, I think the term which I hear used a lot is like Care Plan or something like that.</p>\n\n\n\n<p>Some kind of process of, on a monthly basis, annual basis, whatever it might be, you offer these different things in return for a subscription fee, and therefore kind of have recurring revenue. And in many cases that recurring revenue might not need a lot of work. You know, fingers crossed, if everything works out okay, and WordPress updates itself correctly, and the plugins all work out and there are no security vulnerabilities, you might have days, weeks, entire months go by where your revenue is really not that difficult to manage.</p>\n\n\n\n<p>[00:22:39] <strong>Héctor de Prada:</strong> In what you said there, it&#8217;s like all the main things. Not only you can offer Care Plans or Web Maintenance Plans, but you should as a professional. Because I&#8217;ve heard you talk on another podcast, Nathan, you were saying that when you&#8217;re a freelancer or an agency, you are always waiting for next projects to see when they come. What&#8217;s going to be next? And if you&#8217;re going to have enough work to keep going.</p>\n\n\n\n<p>And that&#8217;s why recurring revenue, it&#8217;s so important for us as professionals. And in web design or web development, it&#8217;s not so easy to get besides web maintenance. It might be if you want to go to plugin development or theme development or do something like that, you can start getting recurring revenue.</p>\n\n\n\n<p>But if it&#8217;s just building websites, I think the only way to get that recurring revenue is by offering Care Plans. That&#8217;s why I always say, the critical thing that you were also mentioning before, is that it&#8217;s of course also a sales job to sell this to a client, but I don&#8217;t think it has to be once the website is generated, and you try to tell the client, okay, we did the website, it&#8217;s looking good, it&#8217;s working. And now we are going to do maintenance on the website, and you have to pay this or that.</p>\n\n\n\n<p>I think it has to go way before that. When we were an agency, what worked really good for us, so I always give this advice because it really worked for us, is that we used to talk about maintenance with the clients before we started the website project. If somebody would come to us saying, okay, we want a new website design for our company, we&#8217;d include it always in our proposal. It&#8217;ll be, okay, we are going to design the website, we are going to do the development of the website, and then after that we are going to care for the website.</p>\n\n\n\n<p>So we are going to do a maintenance on the website because this is very important. We are not going to just leave you there with your website, out in the open. Like, you don&#8217;t really know how it works, but we are going to be there with you. And this was like a massive change for us because when we were selling it this way, once the website was completed and we would tell the client, okay, now is the time to start the web maintenance job, and they were like, oh great, so this what we were talking about. It is not even a discussion anymore. It is like, oh great, it&#8217;s finally the time. So that&#8217;s like crucial. It was crucial for us.</p>\n\n\n\n<p>[00:25:00] <strong>Nathan Wrigley:</strong> Yeah, I think when people do get recurring revenue into their business, especially around maintenance, it does feel like, why didn&#8217;t I do this before? Because it really is kind of, I hate to use the phrase, you are kind of leaving money on the table a little bit.</p>\n\n\n\n<p>I wonder what both of you have in your head around the way to pitch that product. Because I went through lots of different ways of doing it. Some of them I&#8217;m not that proud of. So for example, in some cases I would emphasise the problems that could happen. You know, your website could go down. The internet can be a bit of a dark place, there&#8217;s hackers out there. And in the end it felt a bit like, I&#8217;m trying to scare you into giving me this maintenance deal. But then on the other hand, there was the sort of more positive way of doing it. You know, we&#8217;ll make sure that your website is always up and just different ways.</p>\n\n\n\n<p>I wonder how you, both of you, tackle that. Do you have a particular kind of language? Do you have like a brochure or a booklet that you pass on to somebody which outlines it all?</p>\n\n\n\n<p>[00:25:59] <strong>Héctor de Prada:</strong> For us, at least when we were an agency, you are seeing that I like to talk a lot. So for me it was like I could talk a lot with the clients. I would just try to be very educational, like we said from the beginning, in calls or in meetings I could talk about maintenance, the task it requires. Trying to explain it for everybody, of course, like not trying to make it sound technical or anything. Just trying to make them understand that technology evolves, WordPress evolves, the needs that the website, or the business, might have change so we should keep the website evolving with the business so it always stays in good shape.</p>\n\n\n\n<p>Luckily, even when this is a terrible thing for our field, is that many, many clients, they come to you when they have had a bad experience before, having a website design. And this experience, so many times has more to do about not having maintenance than about the web design itself. Because they might come after three, four years and they might tell you, somebody did this website for me four years ago and now nothing works.</p>\n\n\n\n<p>And it&#8217;s like, okay, when they did the website, everything worked. What happened? Nobody looked at the website for four years, so now nothing is working, which is understandable. So that also helps you a lot to make them understand that you don&#8217;t want that to happen again.</p>\n\n\n\n<p>[00:27:22] <strong>Reyes Martínez:</strong> I think it&#8217;s also important to maybe reframe things or just showing clients that that&#8217;s part of, I mean that you care about their success over time. So it&#8217;s not just about launching their site. I don&#8217;t know, sometimes I like to think about maintenance as insurance. You hope you don&#8217;t need it, but if something goes wrong, you&#8217;ll be glad to have it. So I think it&#8217;s the same. Like, if you have someone who&#8217;s taking care of your website to make sure it&#8217;s healthy, that it is performant and that everything is running smoothly. I think you are investing in its long-term success as well.</p>\n\n\n\n<p>[00:27:57] <strong>Nathan Wrigley:</strong> Framing it as an investment is quite a good way around it, isn&#8217;t it? As opposed to a, it&#8217;s not like a cost, it&#8217;s an investment. You&#8217;re putting something in so that it maintains. Spending money kind of feels like, oh, I&#8217;ve spent it, it&#8217;s all gone. Whereas an investment, you feel a bit more like, okay, I&#8217;ve spent some money, but as a result, things are going to be better in the future.</p>\n\n\n\n<p>[00:28:15] <strong>Héctor de Prada:</strong> You both said it, Reyes, you said right now that it is kind of an insurance also, if something bad happens. Because when something really bad, like the website crashes or gets hacked or whatever, because it can always happen, at some point everybody will be glad to have a professional taking care of things.</p>\n\n\n\n<p>Because another way to frame this, and you were saying that before Nathan, is that I&#8217;ve seen many, many professionals that they are like, okay, so the client doesn&#8217;t want to pay for maintenance, so I&#8217;m just going to wait until they have a huge problem that will come sooner or later. When they come without the maintenance deal, I&#8217;m going to charge them a bunch and then they will be glad they get the maintenance package. And they will start paying for that. I&#8217;m not saying I recommend that, I haven&#8217;t done that, but I&#8217;ve seen so many people do that at the same time.</p>\n\n\n\n<p>[00:29:04] <strong>Nathan Wrigley:</strong> Yeah, I think describing his insurance is quite interesting. The curious thing about insurance is, how to describe it, at some point you might begin to resent paying the insurance if you never have an accident or nothing is ever stolen. So one of the things that I often got with the Care Plans was this whole thing of years would go by, I would do my job well, so nothing ever happened.</p>\n\n\n\n<p>And so after 24 months of nothing ever happening, the client would turn around and say, what am I actually spending the money on? And then it occurred to me, okay, maybe there should have been some process of telling you what I was doing each month. Some kind of report or something to give to the client to say, look, literally things are happening. It&#8217;s not like we&#8217;ve gone away with your monthly subscription and done nothing.</p>\n\n\n\n<p>So I wondered if you had any thoughts around those, you know those clients who think nothing&#8217;s happening, why am I spending this each month in order for apparently nothing to happen? It&#8217;s just a black hole.</p>\n\n\n\n<p>[00:30:02] <strong>Reyes Martínez:</strong> That&#8217;s actually one of the hardest parts as well, like showing all the work that professionals are, like us are doing in the background. That work, that it&#8217;s not so visible as well, and how to communicate the value of all that work.</p>\n\n\n\n<p>So I think there are, I don&#8217;t know, there are many different ways to communicate that value, but for example, like reports are pretty common. Showing, not just task, but all you have been monitoring and performance data, updates. And just, again, like educating on how all the work done have an impact on their business.</p>\n\n\n\n<p>Because I think it&#8217;s also easy to go maybe, or to get into technical details, but I think clients don&#8217;t really care if you update a plugin or if you, you know, how you are maintaining their site. I think they care that their website is secure, fast and it&#8217;s working. It&#8217;s always working.</p>\n\n\n\n<p>[00:30:58] <strong>Nathan Wrigley:</strong> One of the things that I ended up doing, which I think worked well was, I eventually landed on the idea of this report thing. So I would issue a report and it would say, during the course of the last month, these things have happened. And it would be a list of all the plugins that been updated, maybe WordPress Core had been updated, maybe I&#8217;d done some work on the server to update that, a PHP version or something like that. So all of those kind of things. And then some kind of indication of how the uptime went. You know, it was 99.9% last month, we had a little glitch on Tuesday or whatever, but that was taken care of within five minutes.</p>\n\n\n\n<p>But the thing which worked best for me was I offered a proportion of time, based upon the plan that they gave me, of my actual time. And that could be deployed in any which way they wanted.So, for example, it could have been, I will just tell you what that report means or let&#8217;s just knock our heads together for half an hour or an hour, and figure out if there&#8217;s anything you wanted doing on the website. Maybe you want a telephone number updating or you want to have a different design on the homepage because Christmas is coming or whatever it might be.</p>\n\n\n\n<p>And interestingly, most clients never took me up on it, but the mere fact that it was offered, and I&#8217;d offered the time, there was just something a bit more to it. There was something more tangible and more credible about it. And then when the clients did take me up on it, and I could explain what had happened and that it wasn&#8217;t this black hole where the money was just falling into for the maintenance plan and nothing happened, that really worked.</p>\n\n\n\n<p>But I had the time available. And it may be that some people, most people don&#8217;t have that time available. For me, that was a good thing, you know, that kind of personal touch was a way to make it work.</p>\n\n\n\n<p>[00:32:33] <strong>Héctor de Prada:</strong> Also another thing that is very important to solve, for example, in client reports, and it&#8217;s not so obvious, it&#8217;s because it is not a job you are doing. It&#8217;s some stats about how the website is working for their business. Because 99% of the time a website comes from a business that needs an online presence.</p>\n\n\n\n<p>So it should be very important for them to know how this is performing or how this is helping the business. And I found this hundreds of times, that people have a website and they don&#8217;t know if somebody&#8217;s visiting the website, if you can find it on Google. They don&#8217;t know anything about the website. They are just like, yeah, I have a website there, but I don&#8217;t really know what&#8217;s happening with it.</p>\n\n\n\n<p>So I think adding things like, I don&#8217;t know, like Google Analytics or any other analytics. Or search console results so you know, it&#8217;s somebody coming from Google or where is people coming. Or if you have an international website, from which countries is people coming. Things like that, I think it&#8217;s like very valuable for the end client, for the business, to know how the website is performing. And it&#8217;s not always added, but I think it&#8217;s crucial to also put that information.</p>\n\n\n\n<p>[00:33:41] <strong>Nathan Wrigley:</strong> Do you know if anybody actually makes a business out of what you do? So, do people have a business of maintaining websites? Just doing that work. So they&#8217;ve decided they don&#8217;t want to be involved in creating the website, but they want to turn this product, if you like, that we&#8217;re talking about now. Is that a thing? Do people do that for a living? They maintain other people&#8217;s websites for them. Maybe you could bind yourself to an agency and they would hand the maintenance side to you. You are both nodding, so I&#8217;m guessing the answer&#8217;s yes.</p>\n\n\n\n<p>[00:34:11] <strong>Héctor de Prada:</strong> We know many people, but we are kind of biased because most of our clients are agencies or freelancers that manage a lot of websites. So many of them are actually specialised in this kind of service. So we have freelancers that manage like 120 websites, and that&#8217;s all they do. They don&#8217;t do any websites, they just manage websites.</p>\n\n\n\n<p>And then we have agencies that they are like fully specialised in web maintenance, web caring, and maybe if you have an urgency in your site because it&#8217;s broken or something, they can help you with that also. But they don&#8217;t design websites or create new websites.</p>\n\n\n\n<p>So I think, yes. And one example I always say is that, at least in Spain, if you search in Google for WordPress maintenance, there are so many page results. So that means it&#8217;s a profitable business, okay? There is a lot of competence of people trying to get leads out of those keywords. I would imagine in most countries it could be the same. So yeah, definitely. I think it&#8217;s possible. I see it every day, so yeah, a hundred percent</p>\n\n\n\n<p>[00:35:10] <strong>Nathan Wrigley:</strong> That&#8217;s kind of interesting because it may be that you are, I don&#8217;t know, you just want to take a break from actually building websites, and this might be an interesting way to pivot, especially if you&#8217;ve got your foot in the door with a bunch of agencies, and you know people that could supply you that work and they don&#8217;t wish to be involved in that. That&#8217;s curious.</p>\n\n\n\n<p>[00:35:27] <strong>Héctor de Prada:</strong> You can automate much more stuff than in a web design process, or web development. In maintenance, like we were saying, with tools like Modular or other tools, you can automate most of the maintenance tasks. So many times, yeah, like one person can manage like 120 websites. Imagine how long it would take to build 120 websites. It&#8217;s almost impossible. You could say, oh, I don&#8217;t know, like five years, seven years. But you can maintain every week or every month, 120 websites by yourselves, just with the tools that are available. So that&#8217;s a really big difference.</p>\n\n\n\n<p>[00:36:04] <strong>Nathan Wrigley:</strong> Does this maintenance landscape change? Because I&#8217;m just curious, the web industry changes all the time, but broadly, you know, plugins and theme updates, that&#8217;s been around since WordPress got plugins and themes. Hosting and backups, again, similar.</p>\n\n\n\n<p>But there have been developments in the more recent past where I&#8217;m thinking, okay, you could definitely push that into the maintenance idea. So things that come to mind are, I don&#8217;t know, optimisation, Core Web Vital scores, maybe something like that could leak in.</p>\n\n\n\n<p>And the one at the minute, which I think would be really interesting, and again, maybe it&#8217;s a thing already, is accessibility. Some kind of report about, okay, it looks like these pages need a particular bit of attention, or something&#8217;s gone wrong here from an accessibility point of view. And so really my question there is, does the landscape of maintenance change, or is it broadly fixed with whatever it is now is how it&#8217;ll be in a decade?</p>\n\n\n\n<p>[00:36:57] <strong>Héctor de Prada:</strong> Now also with AI, I don&#8217;t even know what&#8217;s going to happen in a decade. But I do think things change. For example, with accessibility, like you said, now in Europe it&#8217;s going to be big changes. With security as well, with the new Cyber Resilience Act, it&#8217;s going to be changes.</p>\n\n\n\n<p>And for example, we saw it a few years ago with the data privacy law in Europe. I&#8217;ve seen so many agencies offering legal checks for the cookie banners and things like that. To also add in maintenance, I don&#8217;t know, like seven years ago, that wasn&#8217;t a theme because it wasn&#8217;t mandatory, so nobody really cared that much. And it is the same with accessibility.</p>\n\n\n\n<p>A few years ago, nobody, almost nobody cared about that. And I think now because of the law changes, this is going to change drastically and almost every professional is going to start doing things related to accessibility, and is going to care about that. And it&#8217;s also going to be able to offer that to their clients as an upsell, or as an extra value, they&#8217;re going to give in their care plans.</p>\n\n\n\n<p>So yeah, I do think it changes. We don&#8217;t have a lot of changes because the basics are always the same, the updates, the backups, the monitoring. But there are things that, yeah, might bring big changes every once in a while and we have to adapt.</p>\n\n\n\n<p>[00:38:12] <strong>Reyes Martínez:</strong> I just wanted to add that also with AI and no-code tools, I mean, it&#8217;s easier than ever to launch a website. But what happens after that? Because maybe we find that more and more sites are being left behind with no updates, no backups.</p>\n\n\n\n<p>What I mean with this is that maybe, maybe not, there&#8217;s already a growing maybe opportunity, because there are more and more sites that we don&#8217;t know what would happen with them. And they will need maintenance for sure. So I think we are seeing a growing opportunity as well, there for people who want to manage or dedicate themselves to maintain websites, yeah.</p>\n\n\n\n<p>[00:38:51] <strong>Nathan Wrigley:</strong> Yeah, it does feel like in the year 2025 when we&#8217;re recording this, there are some key bits of legislation which are coming. You know, the European Accessibility Act very, very soon going to be completely mandatory across the whole of the EU. I mean, basically it should be something that you&#8217;ve taken care of already, but nevertheless.</p>\n\n\n\n<p>And so these kind of things I imagine, will become part of the platform, the ethos of doing maintenance in the future. So that&#8217;s kind of interesting.</p>\n\n\n\n<p>Just for the last moment or two, minute or two, let&#8217;s talk a little bit about what you have. So Modular DS, I&#8217;ll put a link into the show notes, but is the URL, is it modulards.com? Is that where we would go?</p>\n\n\n\n<p>[00:39:30] <strong>Héctor de Prada:</strong> Yeah, we could say dash EN for the English version.</p>\n\n\n\n<p>[00:39:33] <strong>Nathan Wrigley:</strong> Lovely, okay, so I will link to that into the show notes. I&#8217;ll link to the English version in this case, just because I think that makes most sense given that we&#8217;re all talking in English.</p>\n\n\n\n<p>This is what you do. This is that in a nutshell. You have a service that you can sign up to. Is it plugin based? Is it a SaaS? Is it a mixture of SaaS and a plugin? How does it work and what kind of things can you do?</p>\n\n\n\n<p>[00:39:56] <strong>Héctor de Prada:</strong> It&#8217;s kind of a mixture. It&#8217;s a SaaS outside of WordPress, we are going to say, but it needs a connector plugin to connect your websites to Modular DS. So basically what you do is you connect your different websites, the ones you manage, to Modular, and then from there you can like centralise most of the maintenance tasks, do updates, for example, in all the sites at the same time.</p>\n\n\n\n<p>And also you can automate monitoring, vulnerability analysis. You can automate client reports like the generation of this client reports. So it basically tries to help, yeah, agencies, freelancer to save time, to have a good maintenance business. And also, like we have been saying, to sell the maintenance business to their clients, which we all know is not easy. So that&#8217;s what we try to do.</p>\n\n\n\n<p>[00:40:42] <strong>Nathan Wrigley:</strong> So if I were somebody looking after my site and a bunch of others, you cater to that market, but also you are catering towards the more agency owner, if you know what I mean, where they&#8217;ve got multiple websites.</p>\n\n\n\n<p>Is it possible to, white label is often the word I hear surrounding this. Is it possible to sort of make it so that it appears your own? That seems to be something that people really like, but I don&#8217;t know if you offer that feature.</p>\n\n\n\n<p>[00:41:04] <strong>Héctor de Prada:</strong> You can white label everything that goes to the client. Let&#8217;s say, client reports. Of course, you can white label that, like your agency logo, your agency email to send the reports. Also, you can white label the plugin. So in the WordPress installation, you can change the plugin info so the client doesn&#8217;t know you&#8217;re using Modular, if you don&#8217;t want them to know. So yeah, of course, that&#8217;s important for many professionals, yeah.</p>\n\n\n\n<p>[00:41:27] <strong>Nathan Wrigley:</strong> You could definitely be checking that out. And obviously this entire episode really was to provide an education piece around what it is that you might need to do, especially for those people who are new. You may not realise that there&#8217;s an actual business opportunity here for you, but also that there&#8217;s a whole cavalcade of different things that you can do.</p>\n\n\n\n<p>So just to reprise, plugin, theme, updates, plus up time monitoring, backups, client reports. There&#8217;s a whole laundry list of things in there.</p>\n\n\n\n<p>Yeah, I think that&#8217;s everything I wanted to ask. So if that&#8217;s the case, I will say, Reyes and Héctor, thank you very much for chatting to me today. I really appreciate it.</p>\n\n\n\n<p>[00:42:04] <strong>Héctor de Prada:</strong> Well, thank you, Nathan.</p>\n\n\n\n<p>[00:42:05] <strong>Reyes Martínez:</strong> Thank you.</p>\n</div></details>\n\n\n\n<p>On the podcast today we have <a href=\"https://profiles.wordpress.org/rmartinezduque/\">Reyes Martínez</a> and <a href=\"https://profiles.wordpress.org/hdeprada/\">Héctor De Prada</a>.</p>\n\n\n\n<p>Reyes has been involved in the WordPress community since 2015, with a background in journalism, digital communications, and early-stage startups. From 2021 to 2024, she was sponsored by Automattic to contribute full-time to global marketing and communication efforts for the WordPress open-source project. She led several initiatives during that time, including the experimental WordPress Media Corps. Reyes currently serves as Content Lead at <a href=\"https://modulards.com/en/\">Modular DS</a>.</p>\n\n\n\n<p>Héctor has been building websites since he was 12 and has worked with WordPress for nearly a decade, first as a freelancer, then running his own agency. Today, he&#8217;s one of the co-founders of Modular DS. He co-organizes the WordPress meetup in León in Spain, and writes a Spanish newsletter that keeps readers updated with the latest news from the WordPress ecosystem.</p>\n\n\n\n<p>In this episode, we get into the nitty-gritty of WordPress maintenance. What it takes to effectively manage multiple websites, and why maintenance is such a crucial, if often overlooked, part of running a successful client business.</p>\n\n\n\n<p>You might think that updating plugins and themes is all there is to it, but Reyes and Héctor explain that there’s much more involved: performing regular backups, monitoring uptime and performance, checking for security vulnerabilities, database clean-ups, and ensuring essential site features like contact forms continue working as expected.</p>\n\n\n\n<p>We discuss best practices for educating clients, how to position ongoing maintenance as an investment rather than a cost, and solutions which can help automate and streamline these essential tasks.</p>\n\n\n\n<p>We also chat about how the maintenance landscape is changing, with upcoming legal requirements around accessibility and privacy, and the emerging business opportunities for professionals specializing solely in website care.</p>\n\n\n\n<p>If you’re a freelancer or agency owner looking to scale up your business, perhaps you offer care plans to clients, or are considering adding maintenance plans to your services, this episode’s for you.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Useful links</h2>\n\n\n\n<p><a href=\"https://modulards.com/en/\">Modular DS</a></p>\n\n\n\n<p><a href=\"https://www.meetup.com/es-ES/Leon-WordPress-Meetup/\">Meetup in  León, Spain</a></p>\n\n\n\n<p><a href=\"https://en.wikipedia.org/wiki/Cyber_Resilience_Act\">Cyber Resilience Act</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, 11 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: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:69:\"Open Channels FM: Rebrand: Amplifying with the Open Source Reach Show\";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=97948\";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:75:\"https://openchannels.fm/rebrand-amplifying-with-the-open-source-reach-show/\";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:140:\"Bob\'s getting close to wrapping up the series and introducing \"Open Source Reach,\" exploring open source\'s real-world impacts beyond coding.\";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, 11 Jun 2025 09:44: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: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:71:\"Open Channels FM: Thanks to The Repository for Sharing Our Next Chapter\";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=98164\";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/thanks-to-the-repository-for-sharing-our-next-chapter/\";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:89:\"It means a lot to be recognized by a publication that truly gets the WordPress ecosystem.\";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, 10 Jun 2025 09:22:22 +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:73:\"Open Channels FM: Rebrand: Moving the Needle with the Content Sparks Show\";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=97940\";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://openchannels.fm/rebrand-moving-the-needle-with-the-content-sparks-show/\";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:372:\"On today’s BobWP Unplugged, host BobWP walks us through day five of the OpenChannel FM rebranding series. He gives us a look at Content Sparks, and each series designed to help creators make smarter digital content, from streamlining workflows and harnessing AI, to mastering storytelling and media strategy. If you’re passionate about creating great content [&#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, 10 Jun 2025 08:32: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:47:\"Aaron Jorbin: Some initial questions about FAIR\";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=192654\";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:56:\"https://aaron.jorb.in/some-initial-questions-about-fair/\";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:3344:\"<p>Congratulations to the <a href=\"https://fair.pm/\">FAIR</a> team on thier launch. <a href=\"https://ma.tt/2010/11/one-point-oh/\">1.0 is the lonliest number</a>, so getting to to this milestone is something for them to celebrate and I hope the team behind it feels great about getting this far. </p>\n\n\n\n<p>One of the best parts of getting to a public release is that you start getting feedback from real users. Some of that is coming out and I&#8217;m sure I will have some to add, at this point I don&#8217;t yet have a solid opinion on FAIR. What I do have are some questions I haven&#8217;t found the answer to while reading the <a href=\"https://github.com/fairpm/fair-protocol\">protocol documentation</a>. I am hoping someone can either point me to the documentation for each of these or answer directly while I continue to digest as much as I can:</p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>How does someone report a bad actor in a federated repository? If I discover someone who is acting in bad faith, do I need to track down every discovery aggregator, inform them independetly, and have each do its own investigation before users are protected?\n<ul class=\"wp-block-list\">\n<li>For this purpose, I&#8217;m using Bad Actor in all of it&#8217;s possible meanings including introducing intentional and unintentional security issues, hacked accounts, and people being jerks. </li>\n</ul>\n</li>\n\n\n\n<li>What happens if different aggregagtors accept the same name for a plugin/theme? What can be done to prevent user confusion?\n<ul class=\"wp-block-list\">\n<li>I think this is also important since someone doing local development with one aggregator but using a different in production feels like a distinct possibility.</li>\n</ul>\n</li>\n\n\n\n<li>In order to be listed in the plugin, is there a standard for the aggregator and the standards that they set for inclusion?\n<ul class=\"wp-block-list\">\n<li>Similiarly, how will these standards be monitored for potential exclusion later on?</li>\n</ul>\n</li>\n\n\n\n<li>If the <strong>Decentralized ID</strong> is based on the repo, does that mean you can not transfer ownership of a plugin?\n<ul class=\"wp-block-list\">\n<li>The <a href=\"https://github.com/fairpm/fair-protocol/blob/main/specification.md#resolving-dids\">documentaiton states</a> &#8220;Vendors SHOULD use DID methods that are future-proof for data portability, and which avoid encoding trademarks or potentially-ephemeral names or domains.&#8221; Does this mean that Github should be avoided since it is a trademark?</li>\n</ul>\n</li>\n\n\n\n<li>Does FAIR have a concept of release confirmations or other 2nd factor for releases?</li>\n\n\n\n<li>How do reviews work in a decentralized manner? If I have an opinion on a plugin, will I need to share it with all aggregators?\n<ul class=\"wp-block-list\">\n<li>On a similiar basis, if reviews are going to multiple places, what is the plan to combat sock puppets?</li>\n</ul>\n</li>\n</ol>\n\n\n\n<p>I imagine some of these are questions that will need to get answered over time, and also that for some, today&#8217;s answer may not be tomorrow’s. As with all open source projects, I can only imagine FAIR will change over time.</p>\n<p>The post <a href=\"https://aaron.jorb.in/some-initial-questions-about-fair/\">Some initial questions about FAIR</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:\"Mon, 09 Jun 2025 15:19: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: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: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:49:\"Open Channels FM: Rebrand: Our New Show WP Voices\";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=97908\";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://openchannels.fm/rebrand-our-new-show-wp-voices/\";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:231:\"BobWP is shaking things up with a rebrand of his podcast, introducing \"WP Voices\", where community members share their WordPress experiences. Expect humor, familiar faces, and new shows focusing on agency life, core and multisites.\";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, 09 Jun 2025 09:02: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: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:44:\"Tammie Lister: Defining roadmaps in the open\";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=1858\";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:57:\"https://binatethoughts.com/defining-roadmaps-in-the-open/\";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:6251:\"<p>WordCamp Europe has just concluded, and one term that emerged during the contribution day discussions across a wide range of areas was &#8216;roadmaps&#8217;. As someone who appreciates the power of a roadmap and aligning with it, working towards agreed-upon goals, this couldn&#8217;t make me happier. It makes me think curiously whether everyone is using the term in the same way, and I wanted to examine how we could define these terms openly and come to a shared understanding of what they mean.</p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img alt=\"\" class=\"wp-image-1859\" height=\"1024\" src=\"https://binatethoughts.com/wp-content/uploads/2025/06/openart-87541afc-67ae-4ef5-8da8-528a8ea86813.png\" width=\"1024\" /></figure>\n\n\n\n<h2 class=\"wp-block-heading\">Basic definitions</h2>\n\n\n\n<p>The reality is that even in companies, the definition and use of the term &#8216;roadmap&#8217; can vary significantly. This may be due to frameworks and processes, or it may simply be a matter of personal preference. In order, though, to have them work on an open project, some common understanding has to be reached. We start at the beginning, and it is clear what the vision is and what a roadmap is.</p>\n\n\n\n<p><strong>Vision: </strong>a high-level, inspirational description of what you hope to achieve in the long term. This is often seen as the &#8220;why&#8221; and &#8220;what&#8221; and the ultimate destination everyone works towards.</p>\n\n\n\n<p><strong>A roadmap</strong> is a practical, time-based plan that involves action and outlines how to achieve a vision through specific steps. It includes milestones, notes, priorities and ties to deliverables.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Why not both?</h2>\n\n\n\n<p>To answer this, we need both in most projects. WordPress is no exception, and it is similar to other open source platforms; both are essential. To have both, though, you need clear definitions and differences between them.</p>\n\n\n\n<p>The vision needs to be clear about where you want to go, broad, inspiring, and strategic. It&#8217;s a partner that helps with the roadmap and the plan for getting there. This is detailed, tactical and tied to times.</p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>&#8220;A vision gives people a reason to care; a roadmap gives them a way to help.&#8221;</strong></p>\n\n\n\n<p>— <em>Nadia Eghbal</em></p>\n</blockquote>\n\n\n\n<p>Combining both is essential. The roadmap gets you towards the vision, but it doesn&#8217;t define it. In my opinion, as the wider project has a vision, each team and component also likely has a vision, but these should always align with and add up to support the broad vision. This is why defining roadmaps and visions in isolation is often problematic in larger projects. </p>\n\n\n\n<h2 class=\"wp-block-heading\">Essential duplicity</h2>\n\n\n\n<p>To look more at why both matter in an open-source project, you can split each into relatively easy formats:</p>\n\n\n\n<p>A vision:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Unites contributors around a shared purpose. </li>\n\n\n\n<li>Inspires commitment over time. A vision doesn&#8217;t specifically though allocate that inspiration or fund; that&#8217;s the roadmap.</li>\n\n\n\n<li>Clarifies what the project is not. Often more essential than we think.</li>\n</ul>\n\n\n\n<p>A roadmap:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Shows the process. It allows each stage to be broken down into the steps required to achieve it.</li>\n\n\n\n<li>Organizes contributions. Which in turn attracts and allocates people and funding.</li>\n\n\n\n<li>Builds trust and focus. By seeing what is being done at a given point, it can be clear to everyone, whether they are contributor, sponsors, makers, users, supporters, or implementors.</li>\n</ul>\n\n\n\n<p>Whilst they aren&#8217;t the same, they certainly are companions to each other. A roadmap without a vision is a guess. It&#8217;s placing things on a calendar and hoping for delivery. A roadmap that lacks a clear vision is unable to gain focus and often spirals due to a lack of delivery. A vision that serves as a roadmap is uninspiring and fails to clarify or unite.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Defining in open</h2>\n\n\n\n<p>This is the more complex piece. It&#8217;s all well and good to know the difference and want to do this. You then need to take these seeds, grow them into roadmaps and visions, and collectively agree, because that is how open things get buy-in. </p>\n\n\n\n<p>A simple process is a first pass from those leading the work, facilitated, distilled, and then shared, reviewed, and iterated. This is typical amongst open source projects. In WordPress, we have had several variations over time, and now we need to determine what works today. Both need to be shared; a roadmap is a document to check and measure against, a living thing.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Beyond defining</h2>\n\n\n\n<p>As we move forward into the second half of this year, the topic of roadmaps arises. Let&#8217;s make sure they are roadmaps. We could collaborate on a project to define what they are for us and share the results somewhere. Having an agreed-upon definition and working from it helps everyone, regardless of their approach to this topic. </p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>&#8220;Open source thrives on clarity. A vision tells us why to show up, and a roadmap shows us how to move forward together.&#8221;</strong></p>\n\n\n\n<p>— <em>Danese Cooper</em></p>\n</blockquote>\n\n\n\n<p>The reality is we need both vision and roadmaps, and all too often, we easily have a vision. Most likely, WordPress has not only a project vision, but we also need to gather some team visions to unite those working together. If you were to think of this as an adventure, think of them not as side quests but as storyline quest points that lead to the end point. </p>\n\n\n\n<p>Roadmaps get us to delivery, and what we need more of is that right now in WordPress across all areas. They also allow us to start thinking about measuring, but they shouldn&#8217;t be where we end the measuring. That is another conversation but an essential one. We are at step one on the path to collectively growing our processes.</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, 09 Jun 2025 08:14:31 +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: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:68:\"Open Channels FM: Rebrand: Expanding the Open Web Conversations Show\";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=97900\";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:74:\"https://openchannels.fm/rebrand-expanding-the-open-web-conversations-show/\";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:248:\"The episode introduces the show Open Web Conversatioins during the Open Channel FM\'s rebranding series, featuring insights from builders and innovators on digital identity, emerging technologies, and online creativity, inviting listeners to engage.\";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, 08 Jun 2025 09:20: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: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:71:\"WordPress.org blog: WCEU 2025: A Community Celebration in the Swiss Sun\";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=18776\";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://wordpress.org/news/2025/06/wceu-2025-a-community-celebration-in-the-swiss-sun/\";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:28388:\"<figure class=\"wp-block-image size-large\"><img alt=\"\" class=\"wp-image-18837\" height=\"683\" src=\"https://i0.wp.com/wordpress.org/news/files/2025/06/IMG-20250607-WA0151.jpg?resize=1024%2C683&#038;ssl=1\" width=\"1024\" /><figcaption class=\"wp-element-caption\"><em>Photo by Nilo Velez</em></figcaption></figure>\n\n\n\n<p>Over 1,723 attendees from 84 countries gathered at the Messe and Congress Center Basel in Switzerland, and 20,353 more joined online for WordCamp Europe 2025.</p>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\n<figure class=\"wp-block-pullquote\"><blockquote><p>I’m personally very excited&#8230; There’s so much I want to do. I think there’s a clear pathway to 7.0 and beyond.</p><cite>Matt Mullenweg, WordPress Cofounder</cite></blockquote></figure>\n</div>\n\n\n\n<p>The flagship WordPress event kicked off in Basel, Switzerland, with a dedicated Contributor Day. It was followed by two days of engaging talks, panels, hands-on workshops, and vibrant community connections. WordPress Cofounder Matt Mullenweg and Executive Director Mary Hubbard joined a diverse lineup of speakers and panelists, sharing insights in the heart of one of Europe’s most charming cities.</p>\n\n\n\n<p>Set against the backdrop of Basel’s historic streets and Rhine-side views, the sponsor hall buzzed with activity as companies from across the WordPress ecosystem showcased their latest innovations, offered live demos, and connected with attendees. Each day, participants refueled with a range of local and international cuisine — from Swiss specialties to global favorites — making mealtime a lively space for networking, collaboration, and sparking new ideas.</p>\n\n\n\n<h2 class=\"wp-block-heading\">A Global Gathering in Basel</h2>\n\n\n\n<p>WordCamp Europe has long been one of the most anticipated WordPress events of the year — a space where community, creativity, and collaboration thrive. This year in Basel, the conference delivered an exciting and diverse program that reached every corner of the WordPress ecosystem.</p>\n\n\n\n<p>Here’s what attendees experienced:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Engaging Sessions Across Tracks</strong> &#8211; Across two full days, the conference featured informative talks, captivating keynotes, and dynamic discussions exploring WordPress and the broader web.</li>\n\n\n\n<li><strong>A Global Speaker Lineup</strong> &#8211; The stage welcomed 52 speakers from 23 countries across five continents, each bringing unique insights and global perspectives.</li>\n\n\n\n<li><strong>Wide-Ranging Topics</strong> &#8211; The schedule included 45 sessions and four hands-on workshops across three tracks, covering:\n<ul class=\"wp-block-list\">\n<li>Accessibility and key policy updates like the European Accessibility Act and the Cyber Resilience Act</li>\n\n\n\n<li>The evolving role of Artificial Intelligence in the open web</li>\n\n\n\n<li>Cutting-edge web design, development best practices, SEO, and content strategy</li>\n\n\n\n<li>Real-world case studies and showcases from across the community</li>\n</ul>\n</li>\n\n\n\n<li><strong>Hands-On Learning Opportunities</strong> &#8211; Interactive workshops allowed attendees to roll up their sleeves and develop practical skills in a collaborative setting.</li>\n\n\n\n<li><strong>A Community Built on Collaboration</strong> &#8211; Whether developer, designer, content creator, or entrepreneur, every attendee found space to connect, learn, and grow within a vibrant and welcoming community.</li>\n</ul>\n\n\n\n<h2 class=\"wp-block-heading\">Contributor Day</h2>\n\n\n\n<p>WordCamp Europe began with a vibrant Contributor Day that brought together 640 contributors—including many first-timers—to collaborate, share knowledge, and support the WordPress project. Guided by 33 dedicated table leads, with 21 teams, attendees of all experience levels came together to exchange ideas, solve real challenges, and make meaningful contributions to open source. From accessibility improvements to theme development and translation efforts, every table played a part in moving WordPress forward.</p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped has-black-background-color has-background wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\" style=\"border-width: 20px; border-radius: 2px;\">\n<figure class=\"wp-block-image size-large wp-lightbox-container\"><img alt=\"\" class=\"wp-image-18798\" height=\"683\" src=\"https://i0.wp.com/wordpress.org/news/files/2025/06/54568125707_c7f1d5c4a2_k.jpg?resize=1024%2C683&#038;ssl=1\" width=\"1024\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button><figcaption class=\"wp-element-caption\">Thanh Nguyen</figcaption></figure>\n\n\n\n<figure class=\"wp-block-image size-large wp-lightbox-container\"><img alt=\"\" class=\"wp-image-18799\" height=\"683\" src=\"https://i0.wp.com/wordpress.org/news/files/2025/06/54568126032_465e58f52e_k.jpg?resize=1024%2C683&#038;ssl=1\" width=\"1024\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button><figcaption class=\"wp-element-caption\">Jeroen Rotty</figcaption></figure>\n\n\n\n<figure class=\"wp-block-image size-large wp-lightbox-container\"><img alt=\"\" class=\"wp-image-18800\" height=\"683\" src=\"https://i0.wp.com/wordpress.org/news/files/2025/06/54568127677_4608e6c2e5_k.jpg?resize=1024%2C683&#038;ssl=1\" width=\"1024\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button><figcaption class=\"wp-element-caption\">Thanh Nguyen</figcaption></figure>\n\n\n\n<figure class=\"wp-block-image size-large wp-lightbox-container\"><img alt=\"\" class=\"wp-image-18801\" height=\"683\" src=\"https://i0.wp.com/wordpress.org/news/files/2025/06/54568995131_a2b3103540_k.jpg?resize=1024%2C683&#038;ssl=1\" width=\"1024\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button><figcaption class=\"wp-element-caption\">Roan de Vries</figcaption></figure>\n\n\n\n<figure class=\"wp-block-image size-large wp-lightbox-container\"><img alt=\"\" class=\"wp-image-18802\" height=\"576\" src=\"https://i0.wp.com/wordpress.org/news/files/2025/06/54568997316_388cdfd4e5_k-1.jpg?resize=1024%2C576&#038;ssl=1\" width=\"1024\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button><figcaption class=\"wp-element-caption\">Thanh Nguyen</figcaption></figure>\n\n\n\n<figure class=\"wp-block-image size-large wp-lightbox-container\"><img alt=\"\" class=\"wp-image-18803\" height=\"683\" src=\"https://i0.wp.com/wordpress.org/news/files/2025/06/54569219743_6bc7238ce1_k.jpg?resize=1024%2C683&#038;ssl=1\" width=\"1024\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button><figcaption class=\"wp-element-caption\">Nilo Velez</figcaption></figure>\n\n\n\n<figure class=\"wp-block-image size-large wp-lightbox-container\"><img alt=\"\" class=\"wp-image-18804\" height=\"683\" src=\"https://i0.wp.com/wordpress.org/news/files/2025/06/54569219883_c2df21a0cb_k.jpg?resize=1024%2C683&#038;ssl=1\" width=\"1024\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button><figcaption class=\"wp-element-caption\">Thanh Nguyen</figcaption></figure>\n\n\n\n<figure class=\"wp-block-image size-large wp-lightbox-container\"><img alt=\"\" class=\"wp-image-18805\" height=\"683\" src=\"https://i0.wp.com/wordpress.org/news/files/2025/06/54569220458_b2cc7018a6_k.jpg?resize=1024%2C683&#038;ssl=1\" width=\"1024\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button><figcaption class=\"wp-element-caption\">Levente András Tóth</figcaption></figure>\n\n\n\n<figure class=\"wp-block-image size-large wp-lightbox-container\"><img alt=\"\" class=\"wp-image-18806\" height=\"683\" src=\"https://i0.wp.com/wordpress.org/news/files/2025/06/54569220633_32194e94d5_k.jpg?resize=1024%2C683&#038;ssl=1\" width=\"1024\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button><figcaption class=\"wp-element-caption\">Jeroen Rotty</figcaption></figure>\n\n\n\n<figure class=\"wp-block-image size-large wp-lightbox-container\"><img alt=\"\" class=\"wp-image-18807\" height=\"683\" src=\"https://i0.wp.com/wordpress.org/news/files/2025/06/54569320070_03f700e2a1_k.jpg?resize=1024%2C683&#038;ssl=1\" width=\"1024\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button><figcaption class=\"wp-element-caption\">Levente András Tóth</figcaption></figure>\n\n\n\n<figure class=\"wp-block-image size-large wp-lightbox-container\"><img alt=\"\" class=\"wp-image-18808\" height=\"683\" src=\"https://i0.wp.com/wordpress.org/news/files/2025/06/54569320480_cc49061ebc_k.jpg?resize=1024%2C683&#038;ssl=1\" width=\"1024\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button><figcaption class=\"wp-element-caption\">Sebastián Echeverri Jaramillo</figcaption></figure>\n\n\n\n<figure class=\"wp-block-image size-large wp-lightbox-container\"><img alt=\"\" class=\"wp-image-18809\" height=\"683\" src=\"https://i0.wp.com/wordpress.org/news/files/2025/06/54569323570_dfb78eb42f_k.jpg?resize=1024%2C683&#038;ssl=1\" width=\"1024\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button><figcaption class=\"wp-element-caption\">Thanh Nguyen</figcaption></figure>\n\n\n\n<figure class=\"wp-block-image size-large wp-lightbox-container\"><img alt=\"\" class=\"wp-image-18810\" height=\"683\" src=\"https://i0.wp.com/wordpress.org/news/files/2025/06/IMG-20250605-WA0137-1.jpg?resize=1024%2C683&#038;ssl=1\" width=\"1024\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button><figcaption class=\"wp-element-caption\">Nilo Velez</figcaption></figure>\n</figure>\n\n\n\n<p>Contributor Day at WordCamp Europe 2025 brought together a mix of first-time and returning contributors across a wide range of teams, from Core and Accessibility to Polyglots, Training, and Community. Attendees tackled everything from onboarding and ticket triage to translating strings, improving documentation, and enhancing tools and workflows. Development-focused teams explored performance and testing improvements and worked through live coding exercises. Meanwhile, accessibility testers, support volunteers, and photo moderators contributed to efforts that directly impact users around the world.</p>\n\n\n\n<p>In parallel, teams like Marketing, Meta, Hosting, and Sustainability focused on future-facing initiatives—from promoting WordPress through the Showcase and social media campaigns to refining infrastructure, increasing accessibility, and preparing for long-term project growth. Whether contributing to plugins, themes, documentation, or new contributor experiences, participants reinforced the values that power the WordPress project: collaboration, inclusivity, and openness. The day served as a reminder that WordPress is not just software—it’s a community built by and for everyone.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Tomorrow Starts with WordPress</h2>\n\n\n\n<p>The first full day of WordCamp Europe 2025 brought the community together to celebrate the power of open source collaboration and innovation. Opening remarks from both global and local event leads reflected on the journey of WordCamp Europe—from its beginnings in 2013 in Leiden, Netherlands, to the vibrant event in Basel today. This full-circle moment underscored the growth of the WordPress community, united by a shared commitment to an open web.</p>\n\n\n\n<p>The day launched into an inspiring program with the keynote session, <em>WordPress Without Borders – The Fight for Digital Freedom</em>, delivered by Noel Tock. Drawing from his experiences—including time on the frontlines in Ukraine—Tock illustrated how open source supports global resilience and serves as a digital human right. His message called on contributors to see their work as part of something greater, offering a compelling and forward-looking vision to energize and unify the WordPress community.</p>\n\n\n\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\n\n\n<p>From there, the program unfolded across multiple tracks—each one sparking new conversations and insights. One standout session highlighted social entrepreneurship in Bulgaria, where WordPress is helping grassroots organizations drive change in education, journalism, and social justice. Petya Raykovska shared how nonprofits like Teenovator and the Bulgarian Fund for Women are using WordPress to amplify their work and strengthen their communities.</p>\n\n\n\n<p>Designers and developers explored ways to improve workflows and collaboration. In <em>Bridging Design and Development</em>, attendees learned how Figma Design Systems can connect design and development through shared structures mapped to block themes. Real-world examples, like the Novus Media Newspaper Design System, demonstrated how scalable, consistent design can power multi-brand platforms.</p>\n\n\n\n<p>Workshops played a key role throughout the day, including the interactive <em>Block Developer Cookbook: WCEU 2025 Edition</em>, where attendees worked through community-voted code recipes featuring the latest WordPress APIs. Sessions also dove into emerging technologies, such as <em>Automating WordPress Setup with Modern AI Tools</em>, which showcased how WP-CLI, scripting, and AI can accelerate project setup and reduce repetitive tasks.</p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img alt=\"\" class=\"wp-image-18817\" height=\"683\" src=\"https://i0.wp.com/wordpress.org/news/files/2025/06/54571048139_5009fd3c2b_k.jpg?resize=1024%2C683&#038;ssl=1\" width=\"1024\" /><figcaption class=\"wp-element-caption\"><em>Photo by Marc Wieland</em></figcaption></figure>\n\n\n\n<p>Day Two of WordCamp Europe 2025 opened with a focus on the evolving role of the WordPress community in a rapidly changing digital world. Sessions explored how contributors—from local meetup organizers to global advocates—play a vital part in shaping WordPress’s future. Talks on inclusivity, such as <em>Over the Rainbow</em>, encouraged attendees to consider how individual actions can help build a more welcoming, representative open source ecosystem. Throughout the morning, the spirit of collaboration and shared purpose remained front and center.</p>\n\n\n\n<p>As the day progressed, attention turned to the tools and technologies pushing WordPress forward. From sessions on scaling multilingual sites and managing observability to hands-on workshops, developers explored new ways to streamline workflows and enhance performance. Highlights included <em>WordPress Gems for Devs</em>, which introduced the Interactivity API through live coding, and <em>Client-side Web AI Agents</em>, a look at cutting-edge browser-based AI that unlocks new possibilities for web experiences. These talks reflected the platform’s growing capacity to adapt to emerging trends while staying true to its open foundations.</p>\n\n\n\n<p>The afternoon brought a blend of practical guidance and inspiring stories across tracks. A case study on accessibility from Switzerland showed how thoughtful design can benefit all users, while a session on brand-building for women entrepreneurs highlighted the creative and economic opportunities WordPress enables. With topics spanning content strategy, business growth, regulatory readiness, and more, the second day of WCEU 2025 affirmed the strength of the WordPress ecosystem—not only as a technology platform, but as a global movement fueled by people, purpose, and possibility.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Fireside Chat</h2>\n\n\n\n<p>As the final day drew to a close, Matt and Mary shared some thoughts on EU regulation (Open Web Alliance), AI, and the introduction of the WordPress AI team, and then answered questions from the audience.</p>\n\n\n\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\n\n\n<h2 class=\"wp-block-heading\">Closing</h2>\n\n\n\n<p>A heartfelt thank you to the dedicated organizers who brought WordCamp Europe 2025 to life in Basel, the speakers who shared their insights, the attendees who joined us in person, and those who followed along from afar. We hope you leave with fresh ideas, meaningful connections, and renewed energy to help shape the future of the open web.</p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex\" style=\"border-width: 20px;\">\n<figure class=\"wp-block-image size-large wp-lightbox-container\"><img alt=\"\" class=\"wp-image-18827\" height=\"683\" src=\"https://i0.wp.com/wordpress.org/news/files/2025/06/54571099103_b61e92651c_k.jpg?resize=1024%2C683&#038;ssl=1\" width=\"1024\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button><figcaption class=\"wp-element-caption\">Jeroen Rotty</figcaption></figure>\n\n\n\n<figure class=\"wp-block-image size-large wp-lightbox-container\"><img alt=\"\" class=\"wp-image-18825\" height=\"683\" src=\"https://i0.wp.com/wordpress.org/news/files/2025/06/54570002952_63c3ced847_k.jpg?resize=1024%2C683&#038;ssl=1\" width=\"1024\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button><figcaption class=\"wp-element-caption\">Chris Clarke</figcaption></figure>\n\n\n\n<figure class=\"wp-block-image size-large wp-lightbox-container\"><img alt=\"\" class=\"wp-image-18824\" height=\"683\" src=\"https://i0.wp.com/wordpress.org/news/files/2025/06/54569999382_839ad34def_k.jpg?resize=1024%2C683&#038;ssl=1\" width=\"1024\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button><figcaption class=\"wp-element-caption\">Thanh Nguyen</figcaption></figure>\n\n\n\n<figure class=\"wp-block-image size-large wp-lightbox-container\"><img alt=\"\" class=\"wp-image-18823\" height=\"683\" src=\"https://i0.wp.com/wordpress.org/news/files/2025/06/54571194430_99b40d9280_k.jpg?resize=1024%2C683&#038;ssl=1\" width=\"1024\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button><figcaption class=\"wp-element-caption\">Thanh Nguyen</figcaption></figure>\n\n\n\n<figure class=\"wp-block-image size-large wp-lightbox-container\"><img alt=\"\" class=\"wp-image-18822\" height=\"684\" src=\"https://i0.wp.com/wordpress.org/news/files/2025/06/54571195715_0e2dbb778c_k.jpg?resize=1024%2C684&#038;ssl=1\" width=\"1024\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button><figcaption class=\"wp-element-caption\">Maksym Kaharlytskyi</figcaption></figure>\n\n\n\n<figure class=\"wp-block-image size-large wp-lightbox-container\"><img alt=\"\" class=\"wp-image-18821\" height=\"533\" src=\"https://i0.wp.com/wordpress.org/news/files/2025/06/54571048019_d36c78cc86_c.jpg?resize=799%2C533&#038;ssl=1\" width=\"799\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button><figcaption class=\"wp-element-caption\">Chris Clarke</figcaption></figure>\n\n\n\n<figure class=\"wp-block-image size-large wp-lightbox-container\"><img alt=\"\" class=\"wp-image-18820\" height=\"683\" src=\"https://i0.wp.com/wordpress.org/news/files/2025/06/54570870476_a8bef84c32_k.jpg?resize=1024%2C683&#038;ssl=1\" width=\"1024\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button><figcaption class=\"wp-element-caption\">Atsushi Ando</figcaption></figure>\n\n\n\n<figure class=\"wp-block-image size-large wp-lightbox-container\"><img alt=\"\" class=\"wp-image-18819\" height=\"683\" src=\"https://i0.wp.com/wordpress.org/news/files/2025/06/54570001717_fa54bba4e1_k.jpg?resize=1024%2C683&#038;ssl=1\" width=\"1024\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button><figcaption class=\"wp-element-caption\">Nilo Velez</figcaption></figure>\n\n\n\n<figure class=\"wp-block-image size-large wp-lightbox-container\"><img alt=\"\" class=\"wp-image-18829\" height=\"683\" src=\"https://i0.wp.com/wordpress.org/news/files/2025/06/54570869816_7de53cc2f1_k-1.jpg?resize=1024%2C683&#038;ssl=1\" width=\"1024\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button><figcaption class=\"wp-element-caption\">Jeroen Rotty</figcaption></figure>\n\n\n\n<figure class=\"wp-block-image size-large wp-lightbox-container\"><img alt=\"\" class=\"wp-image-18859\" height=\"682\" src=\"https://i0.wp.com/wordpress.org/news/files/2025/06/IMG-20250607-WA0337.jpg?resize=1024%2C682&#038;ssl=1\" width=\"1024\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button><figcaption class=\"wp-element-caption\">Nilo Velez</figcaption></figure>\n</figure>\n\n\n\n<p>Be sure to mark your calendars for the final major WordPress events in 2025: <a href=\"https://us.wordcamp.org/2025/\">WordCamp US</a> (Portland, Oregon, USA). Then join us in <a href=\"https://europe.wordcamp.org/2026/\">Kraków, Poland for WordCamp Europe 2026</a>! Also, if you want to get involved with WCEU, the call for organisers is already open for 2026. </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:\"Sat, 07 Jun 2025 19:19: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: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: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:198:\"WordCamp Central: WordCamp Jinja 2025 Recap: An impactful 2 days of learning, diverse speakers, hands-on workshops, contributions, charity website hackathon, and celebration of WordPress on the Nile\";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:40:\"https://central.wordcamp.org/?p=10743950\";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:217:\"https://central.wordcamp.org/news/2025/06/wordcamp-jinja-2025-recap-an-impactful-2-days-of-learning-diverse-speakers-hands-on-workshops-contributions-charity-website-hackathon-and-celebration-of-wordpress-on-the-nile/\";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:15797:\"<figure class=\"wp-block-image size-large\"><img alt=\"\" class=\"wp-image-791\" src=\"https://jinja.wordcamp.org/2025/files/2025/05/IMG_20250524_115107_645-1024x768.jpg\" /></figure>\n\n\n\n<p>From <strong>May 24th to 25th, 2025</strong>, we had the fourth annual <strong>WordCamp Jinja</strong> at the <strong>largest </strong>educational institution in the region <strong>Jinja Senior Secondary School</strong>. This year’s event was our <strong>biggest and most impactful yet</strong> both in numbers and key demographics, having <strong>over 250 attendees and participants that primarily included students</strong> as well as developers, designers, bloggers, educators, and entrepreneurs from across Uganda and East Africa.</p>\n\n\n\n<p>With the theme <em><strong>“Create, Impact, and Explore with WordPress!”</strong></em><strong>,</strong> the event was a celebration of open-source innovation, practical skills, and community spirit, all set against the stunning backdrop of the Nile.</p>\n\n\n\n<h3 class=\"wp-block-heading has-x-large-font-size\"><strong>A WordCamp Designed for Student WordPressers, Developers and Creatives Alike</strong></h3>\n\n\n\n<p><strong>Students were at the heart of WordCamp Jinja 2025</strong>, reflecting their role as a key and growing demographic in both the WordPress Jinja community and the wider Ugandan community. This year’s venue <strong>Jinja Senior Secondary School</strong>—was purposefully chosen to bring the WordPress experience closer to students, ensuring greater accessibility, relevance, and impact.</p>\n\n\n\n<p>We welcomed enthusiastic participation from students of <strong>Jinja SS</strong>, <strong>Makerere University</strong>, <strong>Macedonian Vocational School</strong>, <strong>Ezone School of Computing</strong>, and others. For most, it was their first exposure to open-source tools, and the excitement was palpable. At Jinja SS, the event left a lasting impression—inspiring students to launch their very own <strong>ICT Club</strong> to continue learning and collaborating long after the event, thus we left a standing souvenir at the school.</p>\n\n\n\n<p>As a community, we are intentional about <strong>balancing engagement</strong> between our student and creative/developer communities. We do this by <strong>alternating venues each year</strong> to better suit both these key groups and demographics, whether it’s schools, colleges or innovation hubs. We are excited to continue our <strong>outreach programs</strong> and student-focused initiatives at both <strong>Jinja Senior Secondary School</strong> and <strong>Macedonian Vocational School</strong> among other schools, nurturing future WordPress contributors, creators, and tech leaders as well as having creative and developer oriented meetups and next-gen events.</p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Diverse Speaker Sessions</strong></h3>\n\n\n\n<p>Attendees enjoyed powerful sessions across two tracks led by speakers from Uganda, Kenya, Rwanda, USA, and beyond. Talks covered everything from advanced contributions, development and accessibility to blogging, diversity, SEO, and AI tools for content creators—sparking learning, inspiration, and engagement throughout the event.</p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large wp-duotone-unset-1\"><img alt=\"\" class=\"wp-image-818\" src=\"https://jinja.wordcamp.org/2025/files/2025/06/P5250896-1024x576.jpg\" /></figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img alt=\"\" class=\"wp-image-798\" src=\"https://jinja.wordcamp.org/2025/files/2025/06/IMG_20250524_115609_422-1024x768.jpg\" /></figure>\n</figure>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-4 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img alt=\"\" class=\"wp-image-821\" src=\"https://jinja.wordcamp.org/2025/files/2025/06/Gr49gctW0AARSNv-1024x771.png\" /></figure>\n\n\n\n<figure class=\"wp-block-image size-large wp-duotone-unset-3\"><img alt=\"\" class=\"wp-image-820\" src=\"https://jinja.wordcamp.org/2025/files/2025/06/Gr49gdJXcAAznXz-1024x771.png\" /></figure>\n</figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Contributor Day sessions and Website Hackathon Track</strong></h3>\n\n\n\n<p>Teams collaborated in a <strong>WordPress Website Hackathon</strong>, that we have been holding each year, building websites for NGOs, community initiatives, and personal projects—all powered by WordPress. It was an energetic, purpose-driven space where learning met real-world impact.</p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-6 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large wp-duotone-unset-5\"><img alt=\"\" class=\"wp-image-806\" src=\"https://jinja.wordcamp.org/2025/files/2025/06/IMG_20250525_093536_203-1024x768.jpg\" /></figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img alt=\"\" class=\"wp-image-801\" src=\"https://jinja.wordcamp.org/2025/files/2025/06/IMG_9604-1024x683.jpg\" /></figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img alt=\"\" class=\"wp-image-822\" src=\"https://jinja.wordcamp.org/2025/files/2025/06/IMG_20250525_132024_307-1024x458.jpg\" /></figure>\n</figure>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-7 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img alt=\"\" class=\"wp-image-833\" src=\"https://jinja.wordcamp.org/2025/files/2025/06/IMG_20250525_132931_056-1024x768.jpg\" /></figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img alt=\"\" class=\"wp-image-800\" src=\"https://jinja.wordcamp.org/2025/files/2025/06/IMG_9734-1024x683.jpg\" /></figure>\n</figure>\n\n\n\n<p>Throughout the event during the hackathon track and culminating on <strong>May 25th</strong>, participants joined the global open-source movement through the <strong>Contributor Day</strong> and sessions. From learning how to translate and reviewing content to contributing to the WordPress Photos and Polyglots teams, attendees learned how to give back and make an impact in the WordPress ecosystem.</p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>After-Party on the Nile</strong></h3>\n\n\n\n<p>The event concluded with an unforgettable <strong>after-party</strong> at the <strong>Source of the Nile</strong>, where participants networked, shared stories, and reflected on two days of community connection and creative exploration. The boat ride to the source of the Nile closed off such an eventful experience.</p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-8 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img alt=\"\" class=\"wp-image-827\" src=\"https://jinja.wordcamp.org/2025/files/2025/06/IMG_3273-1024x768.jpg\" /></figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img alt=\"\" class=\"wp-image-811\" src=\"https://jinja.wordcamp.org/2025/files/2025/06/IMG_0175-1024x683.jpg\" /></figure>\n</figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img alt=\"\" class=\"wp-image-824\" src=\"https://jinja.wordcamp.org/2025/files/2025/06/IMG_0092-1-1024x794.jpg\" /></figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Thank You!</strong></h2>\n\n\n\n<p>We are deeply grateful to:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Our over <strong>250+ attendees and participants</strong> especially all the students for bringing their energy and enthusiasm for learning<br /></li>\n\n\n\n<li>Our <strong>amazing speakers and workshop facilitators</strong><strong><br /></strong></li>\n\n\n\n<li>Our <strong>sponsors and partners</strong> for their generous support<br /></li>\n\n\n\n<li>Our <strong>volunteers</strong> who made everything run smoothly<br /></li>\n</ul>\n\n\n\n<p>Your commitment and passion made this year’s WordCamp Jinja the <strong>biggest and most impactful yet</strong>! </p>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 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-embed alignright is-type-rich is-provider-twitter wp-block-embed-twitter\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"twitter-tweet\"><p dir=\"ltr\" lang=\"en\">Happening Now: Patrick Lumumba  <a href=\"https://twitter.com/lumiblog?ref_src=twsrc%5Etfw\">@lumiblog</a> from Kenya delivering his presentation on Contributing to WordPress: Making an Impact on the Test Team—With or Without Coding Skills <a href=\"https://twitter.com/WordPressJinja?ref_src=twsrc%5Etfw\">@WordPressJinja</a><a href=\"https://t.co/yponyClmwm\">https://t.co/yponyClmwm</a> <a href=\"https://twitter.com/hashtag/WordCampJinja?src=hash&amp;ref_src=twsrc%5Etfw\">#WordCampJinja</a> <a href=\"https://t.co/W75ZJ23dIA\">pic.twitter.com/W75ZJ23dIA</a></p>&mdash; Mukalele Rogers (@mrogers4christ) <a href=\"https://twitter.com/mrogers4christ/status/1926207964743938443?ref_src=twsrc%5Etfw\">May 24, 2025</a></blockquote>\n</div></figure>\n\n\n\n<figure class=\"wp-block-embed alignright is-type-rich is-provider-twitter wp-block-embed-twitter\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"twitter-tweet\"><p dir=\"ltr\" lang=\"en\">Happening now! <a href=\"https://twitter.com/hashtag/WordCampJinja?src=hash&amp;ref_src=twsrc%5Etfw\">#WordCampJinja</a> 2025 is live at Jinja S.S School with insightful sessions<br /> Extending WordPress Block Editor with Spectra and Website Hackathon workshops led by  @rogersmukalele<a href=\"https://twitter.com/wmjackson?ref_src=twsrc%5Etfw\">@wmjackson</a> <a href=\"https://twitter.com/WordPressJinja?ref_src=twsrc%5Etfw\">@WordPressJinja</a><a href=\"https://twitter.com/NorahBetsy?ref_src=twsrc%5Etfw\">@NorahBetsy</a> <a href=\"https://t.co/sej7sEcfPl\">pic.twitter.com/sej7sEcfPl</a></p>&mdash; Jinja WordPress Meetup (@WordPressJinja) <a href=\"https://twitter.com/WordPressJinja/status/1926195145373819348?ref_src=twsrc%5Etfw\">May 24, 2025</a></blockquote>\n</div></figure>\n\n\n\n<figure class=\"wp-block-embed alignright is-type-rich is-provider-twitter wp-block-embed-twitter\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"twitter-tweet\"><p dir=\"ltr\" lang=\"en\">Jinja day 2 <img alt=\"🇺🇬\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/16.0.1/72x72/1f1fa-1f1ec.png\" style=\"height: 1em;\" /><br />I\'m glad to see students and Genzs this committed<img alt=\"❤\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/16.0.1/72x72/2764.png\" style=\"height: 1em;\" /><img alt=\"❤\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/16.0.1/72x72/2764.png\" style=\"height: 1em;\" /><a href=\"https://twitter.com/hashtag/WordCampJinja?src=hash&amp;ref_src=twsrc%5Etfw\">#WordCampJinja</a><a href=\"https://twitter.com/hashtag/WordPressOnTheNile2025?src=hash&amp;ref_src=twsrc%5Etfw\">#WordPressOnTheNile2025</a> <a href=\"https://twitter.com/hashtag/TechWithTwin?src=hash&amp;ref_src=twsrc%5Etfw\">#TechWithTwin</a> <a href=\"https://t.co/9DcQnGtseQ\">pic.twitter.com/9DcQnGtseQ</a></p>&mdash; TechWithTwin (@techwithtwin) <a href=\"https://twitter.com/techwithtwin/status/1926578521154932862?ref_src=twsrc%5Etfw\">May 25, 2025</a></blockquote>\n</div></figure>\n</div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-embed alignleft is-type-rich is-provider-twitter wp-block-embed-twitter\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"twitter-tweet\"><p dir=\"ltr\" lang=\"en\">Don\'t miss out on the amazing learning, networking and fun at  <a href=\"https://twitter.com/hashtag/WordCampJinja?src=hash&amp;ref_src=twsrc%5Etfw\">#WordCampJinja</a> 24th-25th May 2025. We have an amazing set of speakers, sessions and activities this year. <br /><br />Secure your spot here: <a href=\"https://t.co/PVtyJ87ePr\">https://t.co/PVtyJ87ePr</a><a href=\"https://twitter.com/hashtag/WordCampJinja?src=hash&amp;ref_src=twsrc%5Etfw\">#WordCampJinja</a> <a href=\"https://twitter.com/hashtag/WordPress?src=hash&amp;ref_src=twsrc%5Etfw\">#WordPress</a> <a href=\"https://twitter.com/hashtag/Jinja?src=hash&amp;ref_src=twsrc%5Etfw\">#Jinja</a> 1/6 <a href=\"https://t.co/riQhoIiRmo\">pic.twitter.com/riQhoIiRmo</a></p>&mdash; Jinja WordPress Meetup (@WordPressJinja) <a href=\"https://twitter.com/WordPressJinja/status/1922564449837216202?ref_src=twsrc%5Etfw\">May 14, 2025</a></blockquote>\n</div></figure>\n\n\n\n<figure class=\"wp-block-embed alignleft is-type-rich is-provider-twitter wp-block-embed-twitter\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"twitter-tweet\"><p dir=\"ltr\" lang=\"en\">We’re excited to be part of <a href=\"https://twitter.com/hashtag/WordCampJinja?src=hash&amp;ref_src=twsrc%5Etfw\">#WordCampJinja</a> 2025!<br />Connecting with the amazing WordPress community, sharing ideas, and learning from others.<br />Grateful for the energy, inspiration, and all the new connections!<a href=\"https://twitter.com/hashtag/WordCampJinja?src=hash&amp;ref_src=twsrc%5Etfw\">#WordCampJinja</a> <a href=\"https://twitter.com/hashtag/WordPressUG?src=hash&amp;ref_src=twsrc%5Etfw\">#WordPressUG</a> <a href=\"https://twitter.com/hashtag/WordCamp2025?src=hash&amp;ref_src=twsrc%5Etfw\">#WordCamp2025</a> <a href=\"https://twitter.com/hashtag/sharebilityug?src=hash&amp;ref_src=twsrc%5Etfw\">#sharebilityug</a> <a href=\"https://t.co/GJP1QfdMd0\">pic.twitter.com/GJP1QfdMd0</a></p>&mdash; MACARENA (@renadevug) <a href=\"https://twitter.com/renadevug/status/1926578021722407181?ref_src=twsrc%5Etfw\">May 25, 2025</a></blockquote>\n</div></figure>\n\n\n\n<figure class=\"wp-block-embed alignleft is-type-rich is-provider-twitter wp-block-embed-twitter\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"twitter-tweet\"><p dir=\"ltr\" lang=\"in\">Jinja day 1 <img alt=\"🥳\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/16.0.1/72x72/1f973.png\" style=\"height: 1em;\" /><a href=\"https://twitter.com/hashtag/WordCampJinja?src=hash&amp;ref_src=twsrc%5Etfw\">#WordCampJinja</a><a href=\"https://twitter.com/hashtag/WordPressOnTheNile2025?src=hash&amp;ref_src=twsrc%5Etfw\">#WordPressOnTheNile2025</a><a href=\"https://twitter.com/hashtag/TechWithTwin?src=hash&amp;ref_src=twsrc%5Etfw\">#TechWithTwin</a> <a href=\"https://t.co/vZxnrfLBzd\">pic.twitter.com/vZxnrfLBzd</a></p>&mdash; TechWithTwin (@techwithtwin) <a href=\"https://twitter.com/techwithtwin/status/1926221392137122218?ref_src=twsrc%5Etfw\">May 24, 2025</a></blockquote>\n</div></figure>\n</div>\n</div>\n</div></div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>What Next</strong></h2>\n\n\n\n<p>Don’t forget to follow<a href=\"https://twitter.com/WordPressJinja\"> @WordPressJinja</a> for continued updates.</p>\n\n\n\n<p>Uganda is one of the places with the highest turnover of WordPress events and a vibrant, supportive, and passionate WordPress community with over 8 WordPress events a year. Including Next Gens and Do Actions. Next inline is the <a href=\"https://events.wordpress.org/uganda/2025/competition/\">Uganda Websites Projects Competition</a> on 20th June 2025 and <a href=\"https://masaka.wordcamp.org/2025/\">WordCamp Masaka</a> on 18th and 19th July 2025 with more to follow in the coming months.</p>\n\n\n\n<p>Remember to join our <a href=\"https://www.meetup.com/Jinja-WordPress-Meetup/\">WordPress Jinja Meetup</a> community for timely updates as well. We can’t wait to welcome you to all WordPress Jinja meetups, creative and developer centric next-gen events and <strong>WordCamp Jinja 2026</strong> — which shall be even bigger and more impactful, let’s continue to create, impact, and explore together with WordPress!</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:\"Sat, 07 Jun 2025 13:18: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:18:\"Mohammed Kateregga\";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:55:\"Open Channels FM: Version 6.0 OpenChannels.fm Changelog\";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=97751\";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/version-6-0-openchannels-fm-changelog/\";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:50:\"An update to our changelog for OpenChannels.fm 6.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:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sat, 07 Jun 2025 10:19: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: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: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:51:\"Jonathan Desrosiers: The Impact of Open Source 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:38:\"https://jonathandesrosiers.com/?p=4976\";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:70:\"https://jonathandesrosiers.com/2025/06/the-impact-of-open-source-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:8423:\"<hr class=\"is-style-wide wp-block-separator has-alpha-channel-opacity\" />\n\n\n\n<p class=\"has-small-font-size\"><em>June 9, 2025: The YouTube embed at the end of this post was  hanged to the upload of the specific talk mentioned instead of the Day 1 &#8211; Track 1 live stream.<br />June 10, 2025: The photo credit has been updated to include the photographer&#8217;s name and linking to the source instead of Twitter.</em></p>\n\n\n\n<hr class=\"is-style-wide wp-block-separator has-alpha-channel-opacity\" />\n\n\n\n<p class=\"\">There’s been growing debate recently about whether <a href=\"https://central.wordcamp.org/\">WordCamps</a> have lost their value and relevance. Some argue that attendees rarely share meaningful takeaways afterward, and question whether the talks are impactful enough to provide real learning. They suggest that many people attend only for the travel, social events, and parties. While there may be some truth to these points for certain individuals, I don’t believe this is a fair or accurate generalization.</p>\n\n\n\n<p class=\"\">There are certainly <a href=\"https://jonathandesrosiers.com/2024/11/the-state-of-the-badge/\">areas where WordCamps could improve</a>. But there are also aspects that stand out as exceptional. They bring together people from around the world and across all walks of life. They celebrate the <a href=\"https://www.gnu.org/licenses/quick-guide-gplv3.html\">four freedoms of the GPL</a> and the core ideals that make open source meaningful. And they use the opportunity of being together in person to rally around the shared mission of <a href=\"https://wordpress.org/about/\">democratizing publishing</a>.</p>\n\n\n\n<p class=\"\">But like anything in life, these events are only as good the mindset you approach them with.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-meaningful-impact-of-open-source-software\">Meaningful Impact of Open Source Software</h2>\n\n\n\n<p class=\"\">Yesterday’s keynote at <a href=\"https://europe.wordcamp.org/2025/\">WordCamp Europe</a> struck a deep chord with me. In <em><a href=\"https://europe.wordcamp.org/2025/session/wordpress-without-borders-the-fight-for-digital-freedom/\">WordPress without Borders — The Fight for Digital Freedom</a></em>, <a href=\"https://www.noeltock.com/\">Noel Tock</a> spoke about his personal experiences in war-torn Ukraine. Through his non-profit, <a href=\"https://dog-help-kharkiv.org/\">Dog Help Kharkiv</a>, he works to evacuate dogs from the frontlines before finding them safe, loving homes.</p>\n\n\n\n<figure class=\"wp-block-image alignwide size-large wp-lightbox-container\"><img alt=\"Noel Tock on stage at WordCamp Europe. He\'s wearing a black hooded sweatshirt and is holding a remote control.\" class=\"wp-image-5019 not-transparent\" height=\"683\" src=\"https://jonathandesrosiers.com/wp-content/uploads/2025/06/noel-tock-wordcamp-europe-2025-1024x683.jpg\" width=\"1024\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button><figcaption class=\"wp-element-caption\">Photo credit: <a href=\"https://www.flickr.com/photos/wceu/54571046049/in/album-72177720326409156/\">Paco Marchante</a>, WordCamp Europe 2025 volunteer photographer.</figcaption></figure>\n\n\n\n<p class=\"\">He witnessed how the open web enables life-changing work first-hand. Ukranian organizations are <a href=\"https://www.saveukraineua.org/\">reuniting families</a> or <a href=\"https://east-sos.org/en/\">literally</a> <a href=\"https://www.repair-together.com/home/\">changing</a> <a href=\"https://www.caritas.org/\">and</a> <a href=\"https://toukrainewithlove.org/\">saving</a> <a href=\"https://superhumans.com/\">lives</a>. These initiatives were made possible thanks in part to the work we all do building and maintaining the WordPress software powering tens of millions of websites.</p>\n\n\n\n<p class=\"\">What a powerful reality made possible by the <a href=\"https://ma.tt/2014/01/four-freedoms/\">ideals of Open Source</a>.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-sharing-our-stories\">Sharing Our Stories</h2>\n\n\n\n<p class=\"\">While stories at the severe end of the spectrum like these are (hopefully) rare, there’s no shortage of instances where the impact of the software we maintain is life changing. But why is it so hard to find them? It&#8217;s not because they don’t exist. The people living these stories are just busy doing the actual work: fundraising, helping others, managing the demands of everyday life, and running their businesses.</p>\n\n\n\n<p class=\"\">WordCamps are more than just conferences. They are moments of connection, reflection, and renewal for a global community working toward something bigger than ourselves. The value is not always in the slides or the swag, but in the relationships formed, the perspectives expanded, and the stories shared. But they&#8217;re also an opportunity to share our own stories.</p>\n\n\n\n<p class=\"\">If we want WordCamps to improve, we have to show up with purpose. Attend the talks, ask thoughtful questions, introduce yourself to someone new, and share what you learn. Most importantly, we need to be more intentional about sharing the stories that matter.</p>\n\n\n\n<figure class=\"wp-block-image size-large wp-lightbox-container\"><img alt=\"A person standing at a microphone in front of a stage asking a question. A person is visible but out of focus in the background.\" class=\"wp-image-5020 not-transparent\" height=\"683\" src=\"https://jonathandesrosiers.com/wp-content/uploads/2025/06/299677c4502451b71.58467430-scaled-1-1024x683.jpg\" width=\"1024\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button><figcaption class=\"wp-element-caption\"><a href=\"https://creativecommons.org/publicdomain/zero/1.0/\">CC0</a> licensed <a href=\"https://wordpress.org/photos/photo/299677c450/\">photo</a> by <a href=\"https://www.nilovelez.com/\">Nilo Velez</a> from the <a href=\"https://wordpress.org/photos/\">WordPress Photo Directory</a>.</figcaption></figure>\n\n\n\n<p class=\"\">When we tell stories about a simple blog that helps reunite a family, or a one-page fundraising site that powers a grassroots rescue effort, we remind ourselves why this work is meaningful. These are not outliers. WordPress is designed to be stable, extensible, and accessible so that anyone can build with confidence. And what they build can change lives.</p>\n\n\n\n<p class=\"\">To make WordCamps better, we must make space for stories like these. Seek them out, listen to them, and share them. When we do, we not only rediscover purpose in our work, we also learn from the people who use what we build. But we don’t have to wait for a WordCamp to do this. Reach out. Tell <a href=\"https://jonathandesrosiers.com/2017/03/why-i-wordcamp-a-reflection/\">someone how their work has impacted your community, your family, or your life</a>.</p>\n\n\n\n<p class=\"\">As I <a href=\"https://jonathandesrosiers.com/2025/06/how-a-core-committer-thinks-making-decisions-for-millions/\">highlighted in the talk I gave yesterday</a>, every line matters.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-watch-the-replay\">Watch the Replay</h2>\n\n\n\n<figure class=\"wp-embed-aspect-16-9 wp-has-aspect-ratio wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube\"><div class=\"wp-block-embed__wrapper\">\n\n</div></figure>\n\n\n\n<p class=\"has-text-align-right\"><em>Featured image credit: <a href=\"https://creativecommons.org/publicdomain/zero/1.0/\">CC0</a> licensed <a href=\"https://wordpress.org/photos/photo/91461e729c/\">photo</a> by <a href=\"https://nomad.blog\">annezazu</a> from the <a href=\"https://wordpress.org/photos/\">WordPress Photo Directory</a>.</em></p>\n<p>The post <a href=\"https://jonathandesrosiers.com/2025/06/the-impact-of-open-source-work/\">The Impact of Open Source Work</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:\"Sat, 07 Jun 2025 08:45: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: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: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:59:\"Open Channels FM: Rebrand: Do the Woo Podcast Is Still Here\";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=97887\";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:65:\"https://openchannels.fm/rebrand-do-the-woo-podcast-is-still-here/\";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:166:\"BobWP updates listeners on the evolution of \"Do the Woo,\" a podcast focused on WooCommerce. It features diverse hosts and segments, catering to all experience levels.\";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, 07 Jun 2025 06:30: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: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:79:\"Jonathan Desrosiers: How a Core Committer Thinks: Making Decisions for Millions\";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:38:\"https://jonathandesrosiers.com/?p=4970\";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:97:\"https://jonathandesrosiers.com/2025/06/how-a-core-committer-thinks-making-decisions-for-millions/\";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:3247:\"<p class=\"\">I just left the stage in Basel after giving my talk at <a href=\"https://jonathandesrosiers.com/2025/04/speaking-at-wordcamp-europe-2025/\">WordCamp Europe</a>. I am really happy with how it turned out, and I hope others found it insightful. There are some points that have stuck with me that I plan to dive into a bit deeper here on my blog in the coming weeks.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-further-reading\">Further Reading</h2>\n\n\n\n<p class=\"\">In my session, I covered how the WordPress philosophies and other Open Source decision making frameworks apply to evaluating suggested changes as a Core Committer. If you found yourself wanting to learn more, the philosophies of the WordPress project are largely adapted <a href=\"https://ometer.com/features.html\" rel=\"nofollow\">from some</a> <a href=\"https://ometer.com/free-software-ui.html\">essays</a> by <a href=\"https://en.wikipedia.org/wiki/Havoc_Pennington\">Havoc Pennington</a>.</p>\n\n\n\n<p class=\"\">These concepts are also detailed in <em><a href=\"https://producingoss.com/\">Producing Open Source Software: How to Run a Successful Free Software Project</a></em> by <a href=\"https://www.red-bean.com/kfogel/\">Karl Fogel</a>. My talk submissions are sometimes a way to promote exploring a subject that I am interested in more deeply. While I use the concepts in this talk at depth every time I work on WordPress, this was definitely one of those cases (<a href=\"https://amzn.to/4jC38Oc\" rel=\"sponsored nofollow\">I&#8217;ve had the paperback version</a> of Fogel&#8217;s book on my desk for longer than I&#8217;d like to admit).</p>\n\n\n\n<p class=\"\">WordPress Lead Developer Andrew Nacin also expanded on the topic a bit in his <em><a href=\"https://nacin.com/2014/02/07/how-wordpress-chooses-committers/\">The qualities of a great WordPress contributor</a></em> post on his blog.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-watch-the-replay\">Watch the Replay</h2>\n\n\n\n<p class=\"\">If you missed my talk live, you can watch the replay of the live stream. I’ve included it below and set the video to start when I took the stage. </p>\n\n\n\n<figure class=\"wp-embed-aspect-16-9 wp-has-aspect-ratio wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube\"><div class=\"wp-block-embed__wrapper\">\n\n</div></figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-slide-deck\">Slide Deck</h2>\n\n\n\n<p class=\"\">And here&#8217;s my slide deck if you wish to follow along.</p>\n\n\n\n<div class=\"wp-block-file\"><a href=\"https://jonathandesrosiers.com/wp-content/uploads/2025/06/How-a-WordPress-Core-Committer-Thinks-Making-Decisions-for-Millions-WCEU.pdf\" id=\"wp-block-file--media-688a1d9c-604d-4262-88f5-7e116d4d6500\">How-a-WordPress-Core-Committer-Thinks-Making-Decisions-for-Millions-WCEU</a><a class=\"wp-block-file__button wp-element-button\" href=\"https://jonathandesrosiers.com/wp-content/uploads/2025/06/How-a-WordPress-Core-Committer-Thinks-Making-Decisions-for-Millions-WCEU.pdf\">Download</a></div>\n\n\n\n<p class=\"\"></p>\n<p>The post <a href=\"https://jonathandesrosiers.com/2025/06/how-a-core-committer-thinks-making-decisions-for-millions/\">How a Core Committer Thinks: Making Decisions for Millions</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:\"Fri, 06 Jun 2025 16:21:02 +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: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:71:\"Open Channels FM: Press Release: Do the Woo Rebrands to 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=97748\";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:77:\"https://openchannels.fm/press-release-do-the-woo-rebrands-to-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:202:\"Do the Woo has rebranded as OpenChannels.fm, expanding its podcast community to cover various aspects of the open web, while still celebrating WooCommerce as a core focus. It\'s all about diverse voices.\";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, 06 Jun 2025 08:55: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: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:64:\"Open Channels FM: The Rebrand: Do the Woo is now 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=97880\";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:70:\"https://openchannels.fm/the-rebrand-do-the-woo-is-now-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:210:\"So, the podcast \"Do the Woo\" is now \"OpenChannels.fm\"! It’s a cool rebrand to reflect their broader focus on WordPress and open web topics, while still keeping the WooCommerce content. Exciting changes ahead.\";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, 06 Jun 2025 06: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: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:58:\"Weston Ruter: Eliminating Layout Shifts in the Video Block\";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://weston.ruter.net/?p=34930\";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:81:\"https://weston.ruter.net/2025/06/05/eliminating-layout-shifts-in-the-video-block/\";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:35090:\"<p>Like the rest of the internet, I&#8217;ve been awestruck by the quality of Google&#8217;s <a href=\"https://deepmind.google/models/veo/\">Veo 3</a> AI video generator (even with audio). As you&#8217;ve seen from my posts, the <a href=\"https://en.wikipedia.org/wiki/American_bison\">American bison</a> <img alt=\"🦬\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/15.1.0/72x72/1f9ac.png\" style=\"height: 1em;\" /> is my favorite animal (aside from my cat of course). Also, perhaps I&#8217;ve watched too many <a href=\"https://www.instagram.com/moustache_farmer/\">videos</a> from the <a href=\"https://www.moustache-farmer.de/en\">Mustache Farmer</a>, but I realized I could use Veo 3 to realize a fantasy of being able to pal around with what in reality is a wild animal. Generating bison videos brought me a lot of joy so I had to share them. However, I faced a dilemma because I didn&#8217;t want to do so via WordPress&#8217;s Video block in its current state: it suffers from a bad case of <em>layout shiftitus</em>. Since web performance is an even greater passion of mine than the bison, before I could share the videos I did a deep dive on the problem and came up with a fix. <em>(Skip to the <a href=\"https://weston.ruter.net/category/wordpress/feed/#videos\">videos</a> below if you don&#8217;t care.)</em></p>\n\n\n\n<p>There&#8217;s a 2-year old Gutenberg issue (<a href=\"https://github.com/WordPress/gutenberg/issues/52185\" title=\"Video block: Should have width height dimensions to prevent cumulative layout shift (CLS)\">#52185</a>) which reported the underlying problem here that the Video block should have <code>width</code> and <code>height</code> attributes added to prevent layout shifts. Such jank causes a poor user experience and negatively impacts the <a href=\"https://web.dev/articles/cls\">Cumulative Layout Shift</a> (CLS) metric of <a href=\"https://web.dev/articles/vitals\">Core Web Vitals</a> (CWV).</p>\n\n\n\n<p>A dimensionless <code>video</code> element gets a 2:1 aspect ratio placeholder (a 300&#215;150 <a href=\"https://html.spec.whatwg.org/multipage/media.html#the-video-element:default-object-size\">default object size</a>) until the video&#8217;s metadata is loaded, at which time a layout shift happens due to the new dimensions being applied. When there&#8217;s a <code>poster</code> attribute, the placeholder dimensions get replaced with the dimensions of the poster image once it loads, also resulting in a layout shift; lastly, if the poster image doesn&#8217;t have the exact same dimensions as the video, then a second layout shift occurs once the video starts playing.</p>\n\n\n\n<p>Take a look at these screen recordings of a Video block without a poster and then with a poster provided (and there&#8217;s a script on this test page that starts video playback after 4 seconds):</p>\n\n\n\n<div class=\"wp-block-columns is-not-stacked-on-mobile is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" id=\"screen-recordings-with-layout-shifts\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-video\"><video controls=\"controls\" height=\"1080\" loop=\"loop\" src=\"https://weston.ruter.net/wp-content/uploads/2025/06/1-no-poster-layout-shift.mp4\" width=\"476\"></video><figcaption class=\"wp-element-caption\">Without a poster, causing a layout shift.</figcaption></figure>\n</div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-video\"><video controls=\"controls\" height=\"1080\" loop=\"loop\" src=\"https://weston.ruter.net/wp-content/uploads/2025/06/2-with-poster-layout-shift.mp4\" width=\"476\"></video><figcaption class=\"wp-element-caption\">With a poster, causing a layout shift.</figcaption></figure>\n</div>\n</div>\n\n\n\n<p>The layout shifts are somewhat exaggerated here because:</p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>A vertical/portrait video is used.</li>\n\n\n\n<li>A network delay is added to slow down the loading of the poster and video (which is not unexpected on a mobile connection).</li>\n\n\n\n<li>The poster image doesn&#8217;t have the same dimensions as the video.</li>\n</ol>\n\n\n\n<p>In any case, such layout shifts seem to occur anywhere the Video block is used to some degree. </p>\n\n\n\n<h2 class=\"wp-block-heading\">CLS Passing Rates</h2>\n\n\n\n<p>Layout shifts from the Video block contribute to WordPress overall having a relatively poor passing rate for CLS. On desktop, 71% of WordPress origins have a good CLS passing rate, while on mobile the passing rate is 82%. (CLS is worse on desktop presumably because more content is on the screen at a time, meaning there are more opportunities for layout shifts to appear in the viewport.) When evaluating these CLS passing rates in terms of <a href=\"https://en.wikipedia.org/wiki/Academic_grading_in_the_United_States#Grade_conversion\">academic letter grades</a>, <strong>WordPress is getting a B− on mobile and a C− on desktop.</strong> When comparing WordPress to other popular CMS platforms, it ranks near the bottom with only Joomla performing worse, as seen in this table sorted by desktop:</p>\n\n\n\n<figure class=\"wp-block-table is-style-regular has-medium-font-size\"><table><thead><tr><th>Technology</th><th><a href=\"https://httparchive.org/reports/techreport/tech?good-cwv-over-time=CLS&amp;client=desktop&amp;tech=ALL%2CWordPress%2CShopify%2CWix%2CSquarespace%2CJoomla%2CDrupal&amp;geo=ALL&amp;rank=ALL#comparison-good-cwvs\">Desktop</a></th><th><a href=\"https://httparchive.org/reports/techreport/tech?good-cwv-over-time=CLS&amp;client=mobile&amp;tech=ALL%2CWordPress%2CShopify%2CWix%2CSquarespace%2CJoomla%2CDrupal&amp;geo=ALL&amp;rank=ALL#comparison-good-cwvs\">Mobile</a></th></tr></thead><tbody><tr><td>Wix</td><td>91% (A−)</td><td>94% (A)</td></tr><tr><td>Shopify</td><td>82% (B−)</td><td>90% (A−)</td></tr><tr><td>Squarespace</td><td>77% (C+)</td><td>88% (B+)</td></tr><tr><td>Drupal</td><td>72% (C−)</td><td>85% (B)</td></tr><tr><td><em>(Any)</em></td><td>72% (C−)</td><td>79% (C+)</td></tr><tr><td><strong>WordPress</strong></td><td><strong>71%</strong> (C−)</td><td><strong>82%</strong> (B−)</td></tr><tr><td>Joomla</td><td>69% (D+)</td><td>79% (C+)</td></tr></tbody></table></figure>\n\n\n\n<details class=\"wp-block-details has-small-font-size is-layout-flow wp-block-details-is-layout-flow\">Graphs of origins with good CLS over time\n<div class=\"wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-0884d4d2 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p class=\"has-text-align-center\">Desktop</p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized wp-lightbox-container\" style=\"margin-top: 0;\"><img alt=\"Graph showing good CLS over time on desktop for WordPress, Shopify, Wix, Squarespace, Joomla, and Drupal. All platforms are trending upward, but WordPress is near the bottom with Joomla at ~70%, while Wix is at the top with ~90%.\" class=\"wp-image-35018\" height=\"600\" src=\"https://weston.ruter.net/wp-content/uploads/2025/06/chart-cls-desktop-svgomg.svg\" style=\"width: 600px; height: auto;\" width=\"600\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button></figure>\n</div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p class=\"has-text-align-center\">Mobile</p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized wp-lightbox-container\" style=\"margin-top: 0;\"><img alt=\"Graph showing good CLS over time on mobile for WordPress, Shopify, Wix, Squarespace, Joomla, and Drupal. All platforms are trending upward, but WordPress is near the bottom with Joomla at ~80%, while Wix is at the top with ~95%.\" class=\"wp-image-35019\" height=\"600\" src=\"https://weston.ruter.net/wp-content/uploads/2025/06/chart-cls-mobile-svgomg.svg\" style=\"width: 600px; height: auto;\" width=\"600\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button></figure>\n</div>\n</div>\n</details>\n\n\n\n<p>The passing rates for WordPress are unsurprisingly very close to the passing rates for the web overall (any technology) since WordPress has the largest market share by far. <strong>Whenever WordPress performs badly, the web as a whole suffers. Whenever WordPress performs well, the web as a whole improves.</strong> This was the drive behind my “scaled activation” Chrome team at Google <a href=\"https://weston.ruter.net/2025/05/14/a-decade-as-a-core-committer-my-wordpress-contribution-history/\">when I was sponsored</a> there to work on WordPress performance full time.</p>\n\n\n\n<p>Now, CLS in WordPress is not nearly as problematic as Largest Contentful Paint (LCP), which is getting an <strong>F grade</strong> for its passing rates of <a href=\"https://httparchive.org/reports/techreport/tech?good-cwv-over-time=LCP&amp;client=mobile&amp;tech=ALL%2CWordPress%2CShopify%2CWix%2CSquarespace%2CJoomla%2CDrupal&amp;geo=ALL&amp;rank=ALL#comparison-good-cwvs\">54% on mobile</a> and <a href=\"https://httparchive.org/reports/techreport/tech?good-cwv-over-time=LCP&amp;client=desktop&amp;tech=ALL%2CWordPress%2CShopify%2CWix%2CSquarespace%2CJoomla%2CDrupal&amp;geo=ALL&amp;rank=ALL#comparison-good-cwvs\">65% on desktop</a>. Because of this, improving LCP has been the primary focus for us on the WordPress Core Performance Team, and the <a href=\"https://make.wordpress.org/core/2023/09/19/analyzing-the-core-web-vitals-performance-impact-of-wordpress-6-3-in-the-field/\">metric has improved</a> thanks in part to <a href=\"https://make.wordpress.org/core/2023/07/13/image-performance-enhancements-in-wordpress-6-3/\">adding</a> <code>fetchpriority=high</code> to LCP-probable <code>img</code> tags, <a href=\"https://make.wordpress.org/core/2023/07/13/image-performance-enhancements-in-wordpress-6-3/#:~:text=Lazy%2Dloading%20issues%20addressed\">adjusting</a> image lazy-loading heuristics, <a href=\"https://core.trac.wordpress.org/ticket/58472\">optimizing</a> the emoji loader, and most recently landing <a href=\"https://make.wordpress.org/core/2025/03/06/speculative-loading-in-6-8/\">Speculative Loading</a>. And work continues on improving LCP, for example, by <a href=\"https://weston.ruter.net/2025/05/26/improve-lcp-by-deprioritizing-interactivity-api-script-modules/\">deprioritizing non-critical scripts</a> and by leveraging client-side metrics to more accurately prioritize images via the <a href=\"https://github.com/WordPress/performance/blob/trunk/plugins/optimization-detective/docs/introduction.md\">Optimization Detective</a> project (see also <a href=\"https://weston.ruter.net/2025/02/21/boosting-performance-with-optimization-detective/\">my talk</a>).</p>\n\n\n\n<p>The other CWV metric, Interaction to Next Paint (INP), is in relatively great shape with a passing rate of <a href=\"https://httparchive.org/reports/techreport/tech?good-cwv-over-time=INP&amp;client=mobile&amp;tech=ALL%2CWordPress%2CShopify%2CWix%2CSquarespace%2CJoomla%2CDrupal&amp;geo=ALL&amp;rank=ALL#comparison-good-cwvs\">85% on mobile</a> (B) and <a href=\"https://httparchive.org/reports/techreport/tech?good-cwv-over-time=INP&amp;client=desktop&amp;tech=ALL%2CWordPress%2CShopify%2CWix%2CSquarespace%2CJoomla%2CDrupal&amp;geo=ALL&amp;rank=ALL#comparison-good-cwvs\">98% on desktop</a> (A+).</p>\n\n\n\n<p>So, in parallel with the continued work to improve LCP, it&#8217;s important to not neglect WordPress&#8217;s sub-optimal CLS passing rate. Prior work to improve CLS included <a href=\"https://make.wordpress.org/core/2020/07/14/lazy-loading-images-in-5-5/\">adding</a> <code>width</code> and <code>height</code> attributes to <code>img</code> tags for the sake of lazy-loading. There&#8217;s also a ticket (<a href=\"https://core.trac.wordpress.org/ticket/59119\" title=\"Measure layout stability metrics in performance tests\">#59119</a>) to measure CLS in performance tests. Additionally, a key feature of the <a href=\"https://wordpress.org/plugins/embed-optimizer/\">Embed Optimizer</a> extension to the aforementioned Optimization Detective <a href=\"https://wordpress.org/plugins/optimization-detective/\">plugin</a> is the <strong>reduction of layout shifts</strong> caused by embeds that resize when they load. This is commonly seen in embeds for Twitter, Bluesky, and WordPress itself. Embed Optimizer keeps track of these embeds&#8217; resized heights. Then, with these resized heights stored, Embed Optimizer sets the appropriate height on the container <code>figure</code> element as the viewport-specific <code>min-height</code> so that when the embed loads any layout shift is minimized.</p>\n\n\n\n<p>Lastly, coming back to the impetus of this post, there&#8217;s the issue of layout shifts in the Video block.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Fixing the Video Block</h2>\n\n\n\n<p>Preventing layout shifts in the Video block is straightforward. As described in the <a href=\"https://github.com/WordPress/gutenberg/issues/52185\">Gutenberg issue</a>, the <code>width</code> and <code>height</code> attributes need to be supplied on the <code>video</code> tag, although a bit more is needed than just that. When a video is uploaded to the Media Library, the metadata is <a href=\"https://developer.wordpress.org/reference/functions/wp_generate_attachment_metadata/\">obtained</a> via the <code><a href=\"https://developer.wordpress.org/reference/functions/wp_read_video_metadata/\">wp_read_video_metadata()</a></code> function, including its width and height. Assuming that reading the metadata was successful, these dimensions can then be injected into the <code>video</code> tag in the same way as dimensions are being <a href=\"https://developer.wordpress.org/reference/functions/wp_img_tag_add_width_and_height_attr/\">added</a> to the <code>img</code> tag. (For external videos added by URL not uploaded into the Media Library, the dimensions could be read client-side in the block editor or they could be <a href=\"https://github.com/WordPress/performance/issues/10#issuecomment-2601037707\">gathered via Optimization Detective on the frontend</a>.)</p>\n\n\n\n<p>This goes full circle for me because we did something similar in <time datetime=\"2018-05-21\">2018 (7 years ago!)</time> to <a href=\"https://github.com/ampproject/amp-wp/pull/1026\">add dimensions to videos</a> in the <a href=\"https://wordpress.org/plugins/amp/\">AMP plugin</a> when converting from the <code>video</code> tag to the <code><a href=\"https://amp.dev/documentation/components/amp-video\">amp-video</a></code> component. The <a href=\"https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml\">AMP HTML spec</a> <a href=\"https://amp.dev/documentation/guides-and-tutorials/learn/amp-html-layout/#width-and-height\">mandates</a> (generally) that all elements must have dimensions supplied to <a href=\"https://blog.amp.dev/2020/04/16/cumulative-layout-shift-in-amp/\">prevent layout shifts</a>, as the first of <a href=\"https://amp.dev/about/mission-and-vision#:~:text=merchant%2C%20and%20advertiser.-,Design%20Principles,-These%20design%20principles\">AMP&#8217;s design principles</a> is to prioritize the user experience. As I <a href=\"https://weston.ruter.net/2025/05/14/a-decade-as-a-core-committer-my-wordpress-contribution-history/#:~:text=Ultimately%2C%20a%20lot,improving%20CWV%20metrics.\">mentioned</a> in my recent <a href=\"https://weston.ruter.net/2025/05/14/a-decade-as-a-core-committer-my-wordpress-contribution-history/\">contribution retrospective</a>, AMP predates CWV; as part of <a href=\"https://blog.amp.dev/2019/05/21/contributing-back-lessons-learned-part-1/\">contributing back lessons learned from AMP to the whole web</a>, it “invested in defining additional metrics that would paint a more holistic image of user perceived performance.” This included a “Layout Stability” metric which came to be known as CLS.</p>\n\n\n\n<p>In addition to providing the <code>width</code> and <code>height</code> attributes, for the <code>video</code> to scale to fit its container and to have the correct aspect ratio, the element needs to be styled with <code>height:auto</code> since it has <code>width:100%</code>. Finally, because of an <a href=\"https://github.com/w3c/csswg-drafts/issues/7524\" title=\"[css-sizing-4] aspect-ratio via width and height attributes doesn\'t work for &lt;video&gt;\">issue</a> in the CSS spec (as <a href=\"https://jakearchibald.com/2022/img-aspect-ratio/#:~:text=Update%3A%20Although%20browsers%20implemented%20the%20feature%20for%20%3Cvideo%3E%20as%20per%20the%20spec%2C%20the%20spec%20is%20broken%2C%20so%20it%20doesn%27t%20work%20in%20practice.\">highlighted</a> by <a href=\"https://jakearchibald.com/\">Jake Archibald</a>), the width and height need to be replicated in an <code><a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/aspect-ratio\">aspect-ratio</a></code> style. This currently has to be added as an inline style since the following desired use of the <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/attr\"><code>attr()</code></a> function in a style rule is currently only <a href=\"https://caniuse.com/css3-attr\">supported</a> in Chromium:</p>\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-class\">.wp-block-video</span> <span class=\"hljs-selector-tag\">video</span><span class=\"hljs-selector-attr\">&#91;width]</span><span class=\"hljs-selector-attr\">&#91;height]</span> {\n	<span class=\"hljs-attribute\">aspect-ratio</span>:\n		<span class=\"hljs-built_in\">attr</span>(width  type(&lt;number&gt;)) /\n		<span class=\"hljs-built_in\">attr</span>(height type(&lt;number&gt;));\n}</code></span></pre>\n\n\n<p>I&#8217;ve submitted the fix in Gutenberg pull request #70293: <a href=\"https://github.com/WordPress/gutenberg/pull/70293\">Fix layout shift caused by video tag in Video block lacking width and height</a>.</p>\n\n\n\n<p>And since I didn&#8217;t want to wait for that fix to be merged and available in a new Gutenberg release, I also adapted it into a standalone <a href=\"https://github.com/westonruter/layout-stabilized-video-block\">Layout-stabilized Video Block</a> plugin which is active here on my blog (since I wanted to share those AI-generated bison videos!). Please install the plugin on your site and test how it works with your Video blocks.</p>\n\n\n\n<p>Compare the <a href=\"https://weston.ruter.net/category/wordpress/feed/#screen-recordings-with-layout-shifts\">above screen recordings</a> of layout-shifting Video blocks with the following screen recordings where the fix is applied:</p>\n\n\n\n<div class=\"wp-block-columns is-not-stacked-on-mobile is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" id=\"screen-recordings-without-layout-shifts\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-video\"><video controls=\"controls\" height=\"1080\" loop=\"loop\" src=\"https://weston.ruter.net/wp-content/uploads/2025/06/3-no-poster-and-no-layout-shift.mp4\" width=\"476\"></video><figcaption class=\"wp-element-caption\">Without a poster, not causing a layout shift.</figcaption></figure>\n</div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-video\"><video controls=\"controls\" height=\"1080\" loop=\"loop\" src=\"https://weston.ruter.net/wp-content/uploads/2025/06/4-with-poster-and-no-layout-shift.mp4\" width=\"476\"></video><figcaption class=\"wp-element-caption\">With a poster, not causing a layout shift.</figcaption></figure>\n</div>\n</div>\n\n\n\n<details class=\"wp-block-details has-small-font-size is-layout-flow wp-block-details-is-layout-flow\">Aside: Command used for transcoding screen recordings\n<p>I was really impressed with how well FFmpeg compressed the original Quicktime screen recordings from ~32MB down to just ~400KB, and since the args to <code>ffmpeg</code> are always something I have to re-discover, here&#8217;s the command for (my) future reference:</p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs language-bash\"><span class=\"hljs-keyword\">for</span> video <span class=\"hljs-keyword\">in</span> $(ls *.mov); <span class=\"hljs-keyword\">do</span>\n  ffmpeg \n    -i <span class=\"hljs-string\">\"<span class=\"hljs-variable\">$video</span>\"</span> \\\n    -vf <span class=\"hljs-string\">\"scale=-2:1080\"</span> \\\n    -c:v libx264 \\\n    -preset medium \\\n    -crf 30 \\\n    -an \\\n    -b:a 128k \\\n    -movflags \\\n    +faststart \\\n    <span class=\"hljs-string\">\"<span class=\"hljs-variable\">${video/.mov/.mp4}</span>\"</span>\n<span class=\"hljs-keyword\">done</span></code></span></pre></details>\n\n\n\n<p>You can <a href=\"https://weston.ruter.net/?p=34930&amp;disable_layout_stabilized_video_block=1#screen-recordings-without-layout-shifts\">try loading this post without the fix</a> by adding a special query var to the URL (and then keep hard reloading to see more layout instability).</p>\n\n\n\n<p>And now, with the layout shift fixed, let&#8217;s get to the bison videos.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"videos\">AI Bison Videos</h2>\n\n\n\n<p>The following Veo-generated videos were downloaded from Gemini and uploaded without any transcoding, although they are encoded quite well for the web at ~3MB each for 8 seconds of high quality 720p video with audio. I manually selected a representative frame of each video to create the poster images.</p>\n\n\n\n<aside class=\"wp-block-group is-style-section-1 has-global-padding is-layout-constrained wp-container-core-group-is-layout-c385debf wp-block-group-is-layout-constrained is-style-section-1--1\">\n<p class=\"is-style-default\">Bonus: This site is running the <a href=\"https://wordpress.org/plugins/image-prioritizer/\">Image Prioritizer</a> extension of Optimization Detective which improves the loading of videos by:</p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Lazy loading the videos by setting the <code>preload</code> initially to <code>none</code>, and then removing this when the video enters the viewport.</li>\n\n\n\n<li>Lazy loading the poster images.</li>\n\n\n\n<li>Reducing the size of the poster image according to the max width of the <code>video</code> across all viewport sizes.</li>\n\n\n\n<li>Preloading poster images for LCP <code>video</code> elements (not relevant for this post).</li>\n</ol>\n</aside>\n\n\n\n<p>This first video leans a little too hard into the “mustache” of the Mustache Farmer:</p>\n\n\n\n<figure class=\"wp-block-video\"><video controls=\"controls\" height=\"720\" poster=\"https://weston.ruter.net/wp-content/uploads/2025/06/Video_Ready_Bison_and_Man.jpg\" src=\"https://weston.ruter.net/wp-content/uploads/2025/06/Video_Ready_Bison_and_Man.mp4\" width=\"1280\"></video><figcaption class=\"wp-element-caption\">Prompt: A bison falls asleep in the lap of a man in the style of the Mustache Farmer.</figcaption></figure>\n\n\n\n<p>I like how this guy seemingly pretends he didn&#8217;t know where the bison was in the open field, “Oh, there you are buddy!”:</p>\n\n\n\n<figure class=\"wp-block-video\"><video controls=\"controls\" height=\"720\" poster=\"https://weston.ruter.net/wp-content/uploads/2025/06/Bison_Nuzzles_Man_Video_Ready.jpg\" src=\"https://weston.ruter.net/wp-content/uploads/2025/06/Bison_Nuzzles_Man_Video_Ready.mp4\" width=\"1280\"></video><figcaption class=\"wp-element-caption\">Prompt: A bison runs over to a man and affectionately nuzzles him, putting his head next to the man to rub up against him. The man pets the bison&#8217;s head and smiles. The bison is the man&#8217;s pet.</figcaption></figure>\n\n\n\n<p>Awkward running:</p>\n\n\n\n<figure class=\"wp-block-video\"><video controls=\"controls\" height=\"720\" poster=\"https://weston.ruter.net/wp-content/uploads/2025/06/Bison_Nuzzles_Petting_Man_Video.jpg\" src=\"https://weston.ruter.net/wp-content/uploads/2025/06/Bison_Nuzzles_Petting_Man_Video.mp4\" width=\"1280\"></video><figcaption class=\"wp-element-caption\">Prompt: A bison and a man run toward each other. When they meet, the bison affectionately nuzzles him, putting his head next to the man to rub up against him. The man pets the bison&#8217;s head and smiles. The bison is the man&#8217;s pet.</figcaption></figure>\n\n\n\n<p>A somewhat less awkward run:</p>\n\n\n\n<figure class=\"wp-block-video\"><video controls=\"controls\" height=\"720\" poster=\"https://weston.ruter.net/wp-content/uploads/2025/06/Bison_and_Man_s_Affectionate_Meeting.jpg\" src=\"https://weston.ruter.net/wp-content/uploads/2025/06/Bison_and_Man_s_Affectionate_Meeting.mp4\" width=\"1280\"></video><figcaption class=\"wp-element-caption\">Prompt: A bison and a man run toward each other. When they meet, the bison affectionately nuzzles him, putting his head next to the man to rub up against him. The man pets the bison&#8217;s head and smiles. The bison is the man&#8217;s pet.</figcaption></figure>\n\n\n\n<p>There&#8217;s an invisible stirrup in this one:</p>\n\n\n\n<figure class=\"wp-block-video\"><video controls=\"controls\" height=\"720\" poster=\"https://weston.ruter.net/wp-content/uploads/2025/06/Bison_Ride_Video_Ready.jpg\" src=\"https://weston.ruter.net/wp-content/uploads/2025/06/Bison_Ride_Video_Ready.mp4\" width=\"1280\"></video><figcaption class=\"wp-element-caption\">Prompt: A bison kneels down for a man, and the man climbs on the back of the bison and they gallop off into the sunset.</figcaption></figure>\n\n\n\n<p>Apparently Tom Cruise with maniacal laughter and a magically-appearing saddle:</p>\n\n\n\n<figure class=\"wp-block-video\"><video controls=\"controls\" height=\"720\" poster=\"https://weston.ruter.net/wp-content/uploads/2025/06/Bison_Ride_Video_Ready_.jpg\" src=\"https://weston.ruter.net/wp-content/uploads/2025/06/Bison_Ride_Video_Ready_.mp4\" width=\"1280\"></video><figcaption class=\"wp-element-caption\">Prompt: A bison kneels down for a man to mount on top of the bison. The bison wants to give the man a ride. The man laughs and smiles as he climbs onto the back of the bison and they gallop off into the sunset.</figcaption></figure>\n\n\n\n<p>Just heartwarming:</p>\n\n\n\n<figure class=\"wp-block-video\"><video controls=\"controls\" height=\"720\" poster=\"https://weston.ruter.net/wp-content/uploads/2025/06/Bison_and_Man_s_Affectionate_Moment.jpg\" src=\"https://weston.ruter.net/wp-content/uploads/2025/06/Bison_and_Man_s_Affectionate_Moment.mp4\" width=\"1280\"></video><figcaption class=\"wp-element-caption\">Prompt: A bison walks up to a man. The bison rubs his head against the man, nuzzling him like a cat. The man affectionately rubs the bison&#8217;s head. The man smiles. The bison could be the man&#8217;s pet.</figcaption></figure>\n\n\n\n<p>The guy&#8217;s smile is a little intense in this one, but it&#8217;s also heartwarming:</p>\n\n\n\n<figure class=\"wp-block-video\"><video controls=\"controls\" height=\"720\" poster=\"https://weston.ruter.net/wp-content/uploads/2025/06/Video_of_Man_and_Bison.jpg\" src=\"https://weston.ruter.net/wp-content/uploads/2025/06/Video_of_Man_and_Bison.mp4\" width=\"1280\"></video><figcaption class=\"wp-element-caption\">Prompt: A man and a bison having fun together, rolling in the grass and wrestling. The bison is the man&#8217;s pet.</figcaption></figure>\n\n\n\n<p>This guy seems a little fake (almost like he&#8217;s AI):</p>\n\n\n\n<figure class=\"wp-block-video\"><video controls=\"controls\" height=\"720\" poster=\"https://weston.ruter.net/wp-content/uploads/2025/06/Bison_Petting_Video_Ready_.jpg\" src=\"https://weston.ruter.net/wp-content/uploads/2025/06/Bison_Petting_Video_Ready_.mp4\" width=\"1280\"></video><figcaption class=\"wp-element-caption\">Prompt: A bison is standing close to a man. The man scratches the bison under its neck and he pets the hair on the bison&#8217;s head. The bison is enjoying the affection. The man smiles and tells the bison, &#8220;You&#8217;re such a good boy.&#8221; The bison likes the man. The bison is the man&#8217;s pet.</figcaption></figure>\n\n\n\n<p>Nice purring sound effect, followed by flapping bird wings?</p>\n\n\n\n<figure class=\"wp-block-video\"><video controls=\"controls\" height=\"720\" poster=\"https://weston.ruter.net/wp-content/uploads/2025/06/Cat_and_Bison_Video_Link.jpg\" src=\"https://weston.ruter.net/wp-content/uploads/2025/06/Cat_and_Bison_Video_Link.mp4\" width=\"1280\"></video><figcaption class=\"wp-element-caption\">Prompt: A gray tabby cat with faint stripes jumps on top of a bison and starts to knead its paws into the bison&#8217;s thick fur. The bison likes it. The bison and the cat are friends.</figcaption></figure>\n\n\n\n<p>Cozy, but the cat glitches a bit at the end:</p>\n\n\n\n<figure class=\"wp-block-video\"><video controls=\"controls\" height=\"720\" poster=\"https://weston.ruter.net/wp-content/uploads/2025/06/Video_Bison_and_Cat_Nap.jpg\" src=\"https://weston.ruter.net/wp-content/uploads/2025/06/Video_Bison_and_Cat_Nap.mp4\" width=\"1280\"></video><figcaption class=\"wp-element-caption\">Prompt: A bison is lying down in the grass. A gray tabby cat nuzzles up to the bison and climbs on its back to lie down for a nap. The bison likes the cat&#8217;s company.</figcaption></figure>\n\n\n\n<p>Now I&#8217;m going to go pet my real cat. <img alt=\"😸\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/15.1.0/72x72/1f638.png\" style=\"height: 1em;\" /></p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" />\n\n\n\n<p class=\"has-medium-font-size\">Where I&#8217;ve shared this:</p>\n\n\n\n<ul class=\"wp-block-social-links is-layout-flex wp-block-social-links-is-layout-flex\"><li class=\"wp-social-link wp-social-link-linkedin  wp-block-social-link\"><a class=\"wp-block-social-link-anchor\" href=\"https://www.linkedin.com/posts/westonruter_eliminating-layout-shifts-in-the-video-block-activity-7336504092174729217-HmKO\"><svg height=\"24\" version=\"1.1\" viewBox=\"0 0 24 24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M19.7,3H4.3C3.582,3,3,3.582,3,4.3v15.4C3,20.418,3.582,21,4.3,21h15.4c0.718,0,1.3-0.582,1.3-1.3V4.3 C21,3.582,20.418,3,19.7,3z M8.339,18.338H5.667v-8.59h2.672V18.338z M7.004,8.574c-0.857,0-1.549-0.694-1.549-1.548 c0-0.855,0.691-1.548,1.549-1.548c0.854,0,1.547,0.694,1.547,1.548C8.551,7.881,7.858,8.574,7.004,8.574z M18.339,18.338h-2.669 v-4.177c0-0.996-0.017-2.278-1.387-2.278c-1.389,0-1.601,1.086-1.601,2.206v4.249h-2.667v-8.59h2.559v1.174h0.037 c0.356-0.675,1.227-1.387,2.526-1.387c2.703,0,3.203,1.779,3.203,4.092V18.338z\"></path></svg><span class=\"wp-block-social-link-label screen-reader-text\">LinkedIn</span></a></li>\n\n<li class=\"wp-social-link wp-social-link-bluesky  wp-block-social-link\"><a class=\"wp-block-social-link-anchor\" href=\"https://bsky.app/profile/weston.ruter.net/post/3lqvbcqwx622q\"><svg height=\"24\" version=\"1.1\" viewBox=\"0 0 24 24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6.3,4.2c2.3,1.7,4.8,5.3,5.7,7.2.9-1.9,3.4-5.4,5.7-7.2,1.7-1.3,4.3-2.2,4.3.9s-.4,5.2-.6,5.9c-.7,2.6-3.3,3.2-5.6,2.8,4,.7,5.1,3,2.9,5.3-5,5.2-6.7-2.8-6.7-2.8,0,0-1.7,8-6.7,2.8-2.2-2.3-1.2-4.6,2.9-5.3-2.3.4-4.9-.3-5.6-2.8-.2-.7-.6-5.3-.6-5.9,0-3.1,2.7-2.1,4.3-.9h0Z\"></path></svg><span class=\"wp-block-social-link-label screen-reader-text\">Bluesky</span></a></li>\n\n<li class=\"wp-social-link wp-social-link-mastodon  wp-block-social-link\"><a class=\"wp-block-social-link-anchor\" href=\"https://mastodon.social/@westonruter/114632880406289198\"><svg height=\"24\" version=\"1.1\" viewBox=\"0 0 24 24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M23.193 7.879c0-5.206-3.411-6.732-3.411-6.732C18.062.357 15.108.025 12.041 0h-.076c-3.068.025-6.02.357-7.74 1.147 0 0-3.411 1.526-3.411 6.732 0 1.192-.023 2.618.015 4.129.124 5.092.934 10.109 5.641 11.355 2.17.574 4.034.695 5.535.612 2.722-.15 4.25-.972 4.25-.972l-.09-1.975s-1.945.613-4.129.539c-2.165-.074-4.449-.233-4.799-2.891a5.499 5.499 0 0 1-.048-.745s2.125.52 4.817.643c1.646.075 3.19-.097 4.758-.283 3.007-.359 5.625-2.212 5.954-3.905.517-2.665.475-6.507.475-6.507zm-4.024 6.709h-2.497V8.469c0-1.29-.543-1.944-1.628-1.944-1.2 0-1.802.776-1.802 2.312v3.349h-2.483v-3.35c0-1.536-.602-2.312-1.802-2.312-1.085 0-1.628.655-1.628 1.944v6.119H4.832V8.284c0-1.289.328-2.313.987-3.07.68-.758 1.569-1.146 2.674-1.146 1.278 0 2.246.491 2.886 1.474L12 6.585l.622-1.043c.64-.983 1.608-1.474 2.886-1.474 1.104 0 1.994.388 2.674 1.146.658.757.986 1.781.986 3.07v6.304z\"></svg><span class=\"wp-block-social-link-label screen-reader-text\">Mastodon</span></a></li>\n\n<li class=\"wp-social-link wp-social-link-twitter  wp-block-social-link\"><a class=\"wp-block-social-link-anchor\" href=\"https://x.com/westonruter/status/1930738990308884546\"><svg height=\"24\" version=\"1.1\" viewBox=\"0 0 24 24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M22.23,5.924c-0.736,0.326-1.527,0.547-2.357,0.646c0.847-0.508,1.498-1.312,1.804-2.27 c-0.793,0.47-1.671,0.812-2.606,0.996C18.324,4.498,17.257,4,16.077,4c-2.266,0-4.103,1.837-4.103,4.103 c0,0.322,0.036,0.635,0.106,0.935C8.67,8.867,5.647,7.234,3.623,4.751C3.27,5.357,3.067,6.062,3.067,6.814 c0,1.424,0.724,2.679,1.825,3.415c-0.673-0.021-1.305-0.206-1.859-0.513c0,0.017,0,0.034,0,0.052c0,1.988,1.414,3.647,3.292,4.023 c-0.344,0.094-0.707,0.144-1.081,0.144c-0.264,0-0.521-0.026-0.772-0.074c0.522,1.63,2.038,2.816,3.833,2.85 c-1.404,1.1-3.174,1.756-5.096,1.756c-0.331,0-0.658-0.019-0.979-0.057c1.816,1.164,3.973,1.843,6.29,1.843 c7.547,0,11.675-6.252,11.675-11.675c0-0.178-0.004-0.355-0.012-0.531C20.985,7.47,21.68,6.747,22.23,5.924z\"></path></svg><span class=\"wp-block-social-link-label screen-reader-text\">Twitter</span></a></li>\n\n<li class=\"wp-social-link wp-social-link-threads  wp-block-social-link\"><a class=\"wp-block-social-link-anchor\" href=\"https://www.threads.com/@westonruter/post/DKmwlxgOHzL\"><svg height=\"24\" version=\"1.1\" viewBox=\"0 0 24 24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M16.3 11.3c-.1 0-.2-.1-.2-.1-.1-2.6-1.5-4-3.9-4-1.4 0-2.6.6-3.3 1.7l1.3.9c.5-.8 1.4-1 2-1 .8 0 1.4.2 1.7.7.3.3.5.8.5 1.3-.7-.1-1.4-.2-2.2-.1-2.2.1-3.7 1.4-3.6 3.2 0 .9.5 1.7 1.3 2.2.7.4 1.5.6 2.4.6 1.2-.1 2.1-.5 2.7-1.3.5-.6.8-1.4.9-2.4.6.3 1 .8 1.2 1.3.4.9.4 2.4-.8 3.6-1.1 1.1-2.3 1.5-4.3 1.5-2.1 0-3.8-.7-4.8-2S5.7 14.3 5.7 12c0-2.3.5-4.1 1.5-5.4 1.1-1.3 2.7-2 4.8-2 2.2 0 3.8.7 4.9 2 .5.7.9 1.5 1.2 2.5l1.5-.4c-.3-1.2-.8-2.2-1.5-3.1-1.3-1.7-3.3-2.6-6-2.6-2.6 0-4.7.9-6 2.6C4.9 7.2 4.3 9.3 4.3 12s.6 4.8 1.9 6.4c1.4 1.7 3.4 2.6 6 2.6 2.3 0 4-.6 5.3-2 1.8-1.8 1.7-4 1.1-5.4-.4-.9-1.2-1.7-2.3-2.3zm-4 3.8c-1 .1-2-.4-2-1.3 0-.7.5-1.5 2.1-1.6h.5c.6 0 1.1.1 1.6.2-.2 2.3-1.3 2.7-2.2 2.7z\"></svg><span class=\"wp-block-social-link-label screen-reader-text\">Threads</span></a></li></ul>\n\n\n\n<p></p>\n<p>The post <a href=\"https://weston.ruter.net/2025/06/05/eliminating-layout-shifts-in-the-video-block/\">Eliminating Layout Shifts in the Video Block</a> appeared first on <a href=\"https://weston.ruter.net\">Weston Ruter</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, 05 Jun 2025 21:09:42 +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:\"Weston Ruter\";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:66:\"Felix Arntz: Introducing the View Transitions Plugin for 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:30:\"https://felix-arntz.me/?p=2122\";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:74:\"https://felix-arntz.me/blog/introducing-view-transitions-wordpress-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:16276:\"<p>I&#8217;m thrilled to announce a new plugin from the WordPress Core Performance Team: <a href=\"http://wordpress.org/plugins/view-transitions/\" rel=\"noreferrer noopener\" target=\"_blank\">View Transitions</a>! This experimental plugin brings the power of the <a href=\"https://developer.chrome.com/docs/web-platform/view-transitions/cross-document\" rel=\"noreferrer noopener\" target=\"_blank\">cross-document View Transitions browser API</a> to your WordPress site, allowing for smoother, animated transitions between page navigations.</p>\n\n\n\n<h2 class=\"wp-block-heading\">View Transitions?</h2>\n\n\n\n<p>Traditionally, moving from one page (or, technically, URL) to another on the web has always involved an abrupt, &#8220;hard&#8221; reload. While this might seem completely natural to many of us on the web, user expectations have shifted drastically in the past (almost) two decades.</p>\n\n\n\n<p>Native mobile applications, with their seamless in-app navigations and smooth transitions, have set a new bar for user experience. This has led web developers to try to catch up with that experience, often turning to Single Page Applications (SPAs). While SPAs aim to mimic native app navigations by dynamically updating content without full page reloads, this often comes with increased development complexity and a shift in how you structure your entire website, often at the cost of accessibility or performance.</p>\n\n\n\n<p>Now, with <a href=\"https://developer.chrome.com/docs/web-platform/view-transitions/cross-document\">cross-document view transitions</a>, you can achieve that desired user experience through smooth transitions on the web without any extensive overhaul of your website. And the new <a href=\"http://wordpress.org/plugins/view-transitions/\">View Transitions</a> plugin makes it super simple in WordPress.</p>\n\n\n\n<span id=\"more-2122\"></span>\n\n\n\n<h2 class=\"wp-block-heading\">How Do View Transitions Work in WordPress?</h2>\n\n\n\n<p>As soon as you have activated the plugin on your WordPress site and navigate between a few pages of your site, you&#8217;ll notice that the plugin implements a gentle fade effect for the transition, creating a more graceful and visually engaging user experience. This is the default behavior not only for the plugin, but also for the View Transitions API in the browser.</p>\n\n\n\n<p>If you want to see a live demo &#8211; you&#8217;re on it! The plugin is active on my site, so for example you could click on the &#8220;Blog&#8221; link in the header navigation. You should see a smooth transition if your browser supports it (see further below). Just make sure to navigate back here afterwards to continue reading. 😁</p>\n\n\n\n<p>(If you want to test it more, you could navigate to the home page by clicking on the site title, scroll down to &#8220;Latest posts&#8221;, then click on the &#8220;View post&#8221; button for this post. When using a large enough viewport, that transition should expand/morph the small featured image from the post in the grid to the much larger featured image shown above. If the animation is too fast, try clicking the Back/Forward button in your browser a few times to get a better sense of what I&#8217;m referring to.)</p>\n\n\n\n<p>Because the nature and style of transitions can be heavily dependent on a theme&#8217;s specific layout and design, the long-term vision is for themes to opt in and customize this behavior. This is facilitated through the WordPress theme support API, for instance by calling <code>add_theme_support( \'view-transitions\' )</code>.</p>\n\n\n\n<p>For now, since this plugin&#8217;s explicit purpose is to enable and showcase view transitions, it automatically enables them across your site, regardless of the theme currently in use.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"customizing-view-transitions\">Customizing View Transitions</h2>\n\n\n\n<p>For this initial experimental phase, the plugin offers a user-friendly way to explore different configurations directly within the WordPress admin. You&#8217;ll find settings under <strong>Settings &gt; Reading</strong> that allow you to tweak the view transitions behavior. This UI is primarily for easy exploration and testing at this early stage. Should view transitions make their way into Core, customization would solely be managed through code via the theme support API. That said, even with this early plugin version, themes can already start using the theme support API.</p>\n\n\n\n<h3 class=\"wp-block-heading\">Customizing with <code>add_theme_support()</code></h3>\n\n\n\n<p>To quickly enable view transitions with standard settings, add the following to your theme&#8217;s <code>functions.php</code> file (typically within the <code>after_setup_theme</code> action hook):</p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs language-php\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">function</span> <span class=\"hljs-title\">mytheme_setup</span><span class=\"hljs-params\">()</span> </span>{\n	add_theme_support( <span class=\"hljs-string\">\'view-transitions\'</span> );\n}\nadd_action( <span class=\"hljs-string\">\'after_setup_theme\'</span>, <span class=\"hljs-string\">\'mytheme_setup\'</span> );</code></span></pre>\n\n\n<p>For more control, you can pass an array of arguments to <code>add_theme_support( \'view-transitions\', $args )</code>. Here are the available arguments:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><code>default-animation</code></strong>: Specifies the default animation style for transitions.</li>\n\n\n\n<li><strong><code>post-selector</code></strong>: CSS selector(s) to identify individual post containers, crucial for applying post-specific transitions from archive/listing pages.</li>\n\n\n\n<li><strong><code>global-transition-names</code></strong>: A map (associative array) defining CSS selectors for global elements (like headers or sidebars) and their view transition names that should have persistent <code>view-transition-name</code> values across the entire site.</li>\n\n\n\n<li><strong><code>post-transition-names</code></strong>: A map (associative array) defining CSS selectors for elements <em>within</em> post containers (like titles or featured images) and their view transition names that should animate during transitions to/from single views.</li>\n</ul>\n\n\n\n<p>To provide additional context on what the view transition names are for: Whenever an element has the same view transition name assigned between two URLs that the user navigates between, it will gently morph as part of the transition, maintaining a clear association. For example, a post title in a grid of posts in an archive might scale up in size and move to the top of the page when navigating to its single post URL.</p>\n\n\n\n<p>For the <code>default-animation</code>, a few animations are available by default. Additionally, the plugin provides an API to register additional animations, each of which encompasses a unique identifier, some configuration values, a CSS stylesheet, and optional aliases. I&#8217;m not going to cover this here for now since it&#8217;s a more advanced integration, but ideally in the long term there could be plugins or themes that register their own view transition animations that themes could use. For now, a few basic animations are available out of the box, mostly as an example of what can be done. The initial supported identifiers (and their aliases) are:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>fade</code></li>\n\n\n\n<li><code>slide</code>\n<ul class=\"wp-block-list\">\n<li><code>slide-from-right</code></li>\n\n\n\n<li><code>slide-from-bottom</code></li>\n\n\n\n<li><code>slide-from-left</code></li>\n\n\n\n<li><code>slide-from-top</code></li>\n</ul>\n</li>\n\n\n\n<li><code>swipe</code>\n<ul class=\"wp-block-list\">\n<li><code>swipe-from-right</code></li>\n\n\n\n<li><code>swipe-from-bottom</code></li>\n\n\n\n<li><code>swipe-from-left</code></li>\n\n\n\n<li><code>swipe-from-top</code></li>\n</ul>\n</li>\n\n\n\n<li><code>wipe</code>\n<ul class=\"wp-block-list\">\n<li><code>wipe-from-right</code></li>\n\n\n\n<li><code>wipe-from-bottom</code></li>\n\n\n\n<li><code>wipe-from-left</code></li>\n\n\n\n<li><code>wipe-from-top</code></li>\n</ul>\n</li>\n</ul>\n\n\n\n<p>You can customize any or all of the supported arguments by passing an array to <code>add_theme_support()</code>. Here’s an example modifying all available options:</p>\n\n\n<pre class=\"wp-block-code alignwide\"><span><code class=\"hljs language-php\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">function</span> <span class=\"hljs-title\">mytheme_custom_view_transitions_setup</span><span class=\"hljs-params\">()</span> </span>{\n	add_theme_support( <span class=\"hljs-string\">\'view-transitions\'</span>, <span class=\"hljs-keyword\">array</span>(\n		<span class=\"hljs-string\">\'default-animation\'</span>       =&gt; <span class=\"hljs-string\">\'wipe-from-right\'</span>,\n		<span class=\"hljs-string\">\'post-selector\'</span>           =&gt; <span class=\"hljs-string\">\'.wp-block-post.post, article.post, article.entry\'</span>,\n		<span class=\"hljs-string\">\'global-transition-names\'</span> =&gt; <span class=\"hljs-keyword\">array</span>(\n			<span class=\"hljs-string\">\'.site-branding\'</span> =&gt; <span class=\"hljs-string\">\'logo\'</span>,\n			<span class=\"hljs-string\">\'.site-header\'</span>   =&gt; <span class=\"hljs-string\">\'header\'</span>,\n        	),\n        	<span class=\"hljs-string\">\'post-transition-names\'</span>   =&gt; <span class=\"hljs-keyword\">array</span>(\n			<span class=\"hljs-comment\">// These are mostly just the defaults, but there\'s one extra entry.</span>\n			<span class=\"hljs-string\">\'.wp-block-post-title, .entry-title\'</span>     =&gt; <span class=\"hljs-string\">\'post-title\'</span>,\n			<span class=\"hljs-string\">\'.wp-post-image\'</span>                         =&gt; <span class=\"hljs-string\">\'post-thumbnail\'</span>,\n			<span class=\"hljs-string\">\'.wp-block-post-content, .entry-content\'</span> =&gt; <span class=\"hljs-string\">\'post-content\'</span>,\n			<span class=\"hljs-string\">\'.post-meta\'</span>                             =&gt; <span class=\"hljs-string\">\'post-meta\'</span>, <span class=\"hljs-comment\">// Additional entry.</span>\n		),\n	) );\n}\nadd_action( <span class=\"hljs-string\">\'after_setup_theme\'</span>, <span class=\"hljs-string\">\'mytheme_custom_view_transitions_setup\'</span> );</code></span></pre>\n\n\n<p>As you can see in this example, which also indicates some of the default values, they aim to capture common patterns that work across block themes and classic themes alike. That said, block themes are likely a perfect fit for view transitions, given their more predictable nature in markup due to using exclusively blocks.</p>\n\n\n\n<p>The default values for all the supported arguments are based partly on WordPress-generated classes that should almost always be included in WordPress sites, and partly on very common conventions. The goal is that the defaults should work well for the majority of WordPress sites. That said, it is impossible to make it look perfect for every possible WordPress theme. That&#8217;s precisely why the theme support approach was chosen for making View Transitions available in WordPress.</p>\n\n\n\n<h3 class=\"wp-block-heading\">Customizing via <em>Settings &gt; Reading</em></h3>\n\n\n\n<p>A limited subset of what can be customized via <code>add_theme_support</code> is made available via the &#8220;View Transitions&#8221; settings section under <em>Settings &gt; Reading</em>.</p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img alt=\"Settings section of the View Transitions plugin for WordPress\" class=\"wp-image-2131\" height=\"576\" src=\"https://felix-arntz.me/wp-content/uploads/2025/05/view-transitions-wordpress-settings-1024x576.webp\" width=\"1024\" /></figure>\n\n\n\n<p>You can customize the default animation, and the selectors for the default view transition names for both global and post-specific elements. While this means the customization options are limited via the UI, it still allows you to play around with different configurations via UI, and likely for the majority of sites these are the most relevant parameters to customize anyways. Keep in mind that this UI is only supplemental, and it only exists for easy exploration in the plugin. The recommended way to customize is via <code>add_theme_support</code> in your site&#8217;s WordPress theme.</p>\n\n\n\n<h3 class=\"wp-block-heading\">A Note on Configuration Precedence</h3>\n\n\n\n<p>It&#8217;s important to be mindful that, for now, any configurations you make via the Settings UI will take precedence over what is defined in your theme&#8217;s code using <code>add_theme_support()</code>. This is something to keep in mind as you test and explore the plugin.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Browser Support</h2>\n\n\n\n<p>Cross-document view transitions are currently supported in a range of modern browsers, including Chrome, Edge, and Safari. For users on browsers that do not yet support this API, there should be no adverse effects; they will simply experience the traditional hard transitions between pages. You can always check the latest browser compatibility at <a href=\"https://caniuse.com/mdn-css_at-rules_view-transition\" rel=\"noreferrer noopener\" target=\"_blank\">caniuse.com</a>.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Your Feedback is Needed!</h2>\n\n\n\n<p>If you&#8217;re a WordPress theme developer or maintainer, I strongly encourage you to install the <a href=\"http://wordpress.org/plugins/view-transitions/\" rel=\"noreferrer noopener\" target=\"_blank\">View Transitions plugin</a> and give it a spin. Better yet, consider experimenting with adding support directly into your theme using <code>add_theme_support( \'view-transitions\' )</code>.</p>\n\n\n\n<p>And if you&#8217;re simply curious about the feature and want to enable it on your WordPress site, I similarly encourage you to try out the plugin. The Core Performance Team would love to get your feedback.</p>\n\n\n\n<p>While this is a fresh first release and still experimental, like other plugins incubated within the <a href=\"https://wordpress.org/plugins/performance-lab/\" rel=\"noreferrer noopener\" target=\"_blank\">Performance Lab program</a>, it holds the potential to one day become a part of WordPress Core.</p>\n\n\n\n<p>Your early feedback and real-world use cases will be absolutely instrumental in refining this feature, addressing potential issues, and shaping its future.</p>\n\n\n\n<h3 class=\"wp-block-heading\">Join Us at WordCamp Europe 2025 Contributor Day!</h3>\n\n\n\n<p>I&#8217;m publishing this post in a very timely manner &#8211; today is <a href=\"https://europe.wordcamp.org/2025/contributor-day/\">WordCamp Europe 2025 Contributor Day</a>! I&#8217;ll be at the Core Performance Team table, and a key part of our agenda will be testing, discussing, and gathering feedback on this new <a href=\"https://wordpress.org/plugins/view-transitions/\">View Transitions</a> plugin.</p>\n\n\n\n<p>If you&#8217;re attending and are curious to learn more, want to get involved, or have initial thoughts to share, I would love for you to join us. Your insights will be invaluable!</p>\n\n\n\n<h3 class=\"wp-block-heading\">Feedback and Contributions</h3>\n\n\n\n<p>As this plugin is in its early stages, your feedback is highly encouraged and deeply appreciated.</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>If you have suggestions, ideas for new features, or encounter any bugs, please <a href=\"https://github.com/WordPress/performance/issues/new/choose\" rel=\"noreferrer noopener\" target=\"_blank\">submit them as an issue in the WordPress Core Performance Team&#8217;s GitHub repository</a>.</li>\n\n\n\n<li>If you need help with troubleshooting or have questions about the plugin, please <a href=\"https://wordpress.org/support/plugin/view-transitions/#new-topic-0\" rel=\"noreferrer noopener\" target=\"_blank\">create a new topic on our support forum</a>.</li>\n</ul>\n\n\n\n<p>And of course, contributions are always welcome! You can learn more about how to get involved by checking out the <a href=\"https://make.wordpress.org/performance/handbook/get-involved/\" rel=\"noreferrer noopener\" target=\"_blank\">Core Performance Team Handbook</a>.</p>\n\n\n\n<p>I&#8217;m really excited to see how the community uses and shapes this new feature!</p>\n<p>The post <a href=\"https://felix-arntz.me/blog/introducing-view-transitions-wordpress-plugin/\">Introducing the View Transitions Plugin for WordPress</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, 05 Jun 2025 04:09:09 +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: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:31:\"Tammie Lister: May 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=1853\";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:44:\"https://binatethoughts.com/may-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:4014:\"<p>This month was full of backlog management, prioritisation and clearing out queues. I focused on identifying where things were blocking and preparing for WordCamp Europe.</p>\n\n\n\n<h3 class=\"wp-block-heading\">Areas of contribution</h3>\n\n\n\n<p>Whilst my focus was on backlog management, it split into two distinct areas:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Closing tickets:</strong> I focused on Trac and the Gutenberg repo for this. Make sure to go oldest first.</li>\n\n\n\n<li><strong>Focusing design: </strong>Ensuring the design queue was clear about what needed design and what required feedback. This was something that arose from contributor input as a point of confusion, and I have made considerable progress through this. I worked on issues, focusing on having only one of those states, and also addressed items in &#8216;needs design&#8217; that were truly ready for implementation, having an agreement in place. This work does need to continue.</li>\n</ul>\n\n\n\n<p>I also began thinking about how to optimise and make reporting easier for backlog management, and I want to bring those discussions to WordCamp Europe. </p>\n\n\n\n<p>Some stats across the backlog management of issues and tickets in Trac and Github.</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Triaged: </strong>around 143</li>\n\n\n\n<li><strong>Closed:</strong> 60</li>\n\n\n\n<li><strong>Prioritised in design</strong>: around 49</li>\n</ul>\n\n\n\n<p>In other contributions, I worked on some designs and gave feedback across a range of tickets. I also began exploring how far DataViews can go and have a list of things to now report from this. It reminded me of the value of pushing the boundaries of our learning features.</p>\n\n\n\n<h3 class=\"wp-block-heading\">Upcoming plans for contribution</h3>\n\n\n\n<p>The big event is WordCamp Europe, which is taking place this week. I will be attending Contribution Day. After that, the following are my objectives:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Extensibility:</strong> Continue my focus on work there and prioritise how to establish criteria for what gets in and what does not. Hopefully, unblocking a range of issues during WordCamp Europe.</li>\n\n\n\n<li><strong>Backlog management: </strong>My work is constant, but I want to explore how it can evolve smarter, potentially utilising systems to manage and enhance workflow.</li>\n\n\n\n<li><strong>Papercuts: </strong>After WordCamp, I will pick this up again with several issues to focus on.</li>\n</ul>\n\n\n\n<p>With WordCamp Europe, I am restricting my plans beyond what I have mentioned above, as things will likely emerge from it and change.</p>\n\n\n\n<h3 class=\"wp-block-heading\">Sponsors this month</h3>\n\n\n\n<p>I now have three company sponsors: <a href=\"https://www.bigscoots.com/\" rel=\"noreferrer noopener\" target=\"_blank\">BigScoots</a>, <a href=\"https://greyd.io/\" rel=\"noreferrer noopener\" target=\"_blank\">Greyd</a> and <a href=\"https://kinsta.com/\" rel=\"noreferrer noopener\" target=\"_blank\">Kinsta</a>. I also have five sponsors through GitHub: <a href=\"https://github.com/aaronjorbin\" rel=\"noreferrer noopener\" target=\"_blank\">Aaron Jorbin</a>, <a href=\"https://github.com/timnashcouk\" rel=\"noreferrer noopener\" target=\"_blank\">Tim Nash</a>, <a href=\"https://github.com/jeffpaul\" rel=\"noreferrer noopener\" target=\"_blank\">Jeffrey Paul</a>, <a href=\"https://github.com/foosantos\" rel=\"noreferrer noopener\" target=\"_blank\">Felipe Santos</a> and <a href=\"https://github.com/scotrumery\">Scot Rumery</a>. To everyone who sponsored me and helped me secure a sponsorship, thank you.</p>\n\n\n\n<p><strong>Want to sponsor me? </strong>You can go through <a href=\"https://github.com/karmatosed\" rel=\"noreferrer noopener\" target=\"_blank\">GitHub</a> or also get in <a href=\"mailto:hello@tammielister.com\" rel=\"noreferrer noopener\" target=\"_blank\">touch</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>\";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, 04 Jun 2025 08:48:26 +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: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:78:\"Jonathan Desrosiers: WordPress Grab Bag: WCEU, WordPress turns 22, new AI team\";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:38:\"https://jonathandesrosiers.com/?p=4833\";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:94:\"https://jonathandesrosiers.com/2025/06/wordpress-grab-bag-wceu-wordpress-turns-22-new-ai-team/\";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:5531:\"<p class=\"\">I haven&#8217;t been doing a great job blogging regularly so far this year. We&#8217;ve now passed the 40% mark of the calendar year, and I&#8217;m hoping to make up for that during the remaining 60% of the time. To get started, here are some thoughts on a few topics that have been on my mind over the course of the last week.</p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-attending-and-presenting-at-wordcamp-europe\">Attending and presenting at WordCamp Europe</h2>\n\n\n\n<p class=\"\">I&#8217;m currently sitting in Terminal A of <a href=\"https://www.massport.com/logan-airport\">Boston Logan International Airport</a> waiting for the first leg of my journey to <a href=\"https://jonathandesrosiers.com/2025/04/speaking-at-wordcamp-europe-2025/\">attend WordCamp Europe in Basel, Switzerland</a>. In addition to the obvious reasons to be excited (seeing friends, meeting new people, checking out what everyone in the community has been building), I&#8217;m also really happy with what my presentation has grown into and can’t wait to present it. It’s not just about the decision making frameworks Core Committers use, but also a reflection on the project&#8217;s foundational philosophies and how they&#8217;ve helped the project thrive.</p>\n\n\n\n<figure class=\"wp-block-image alignwide size-large wp-lightbox-container\"><img alt=\"\" class=\"wp-image-4896 not-transparent\" height=\"576\" src=\"https://jonathandesrosiers.com/wp-content/uploads/2025/06/wceu-title-slide-1024x576.jpg\" width=\"1024\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button></figure>\n\n\n\n<p class=\"\">There are several points in my speaker notes that have stuck with me. I plan to write some additional posts to explore deeper in the coming weeks!</p>\n\n\n\n<p class=\"\">If you&#8217;re unable to join in person, I&#8217;m including the live stream below.</p>\n\n\n\n<figure class=\"wp-embed-aspect-4-3 wp-has-aspect-ratio wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube\"><div class=\"wp-block-embed__wrapper\">\n\n</div></figure>\n\n\n\n<h2 class=\"wp-block-heading\">WordPress reaches 22 years old</h2>\n\n\n\n<p class=\"\">Last week was the 22nd birthday for the WordPress project. The <a href=\"https://wordpress.org/news/2003/05/wordpress-now-available/\">first version of the software was released on May 27, 2003</a>. While 22 is not as exciting as 21, I always enjoy reading the reflections from the community and seeing how the software we all help maintain has changed lives.</p>\n\n\n\n<p class=\"\">I first used WordPress around 2007, and received my first credit for contributing in 2013. This means I’ve now been a user of WordPress for over 80%, and a contributor for over 55% of the project’s lifespan.</p>\n\n\n\n<p class=\"\">Happy Birthday WordPress! <img alt=\"🎉\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/15.1.0/72x72/1f389.png\" style=\"height: 1em;\" /><img alt=\"🎊\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/15.1.0/72x72/1f38a.png\" style=\"height: 1em;\" /><img alt=\"🍾\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/15.1.0/72x72/1f37e.png\" style=\"height: 1em;\" /><img alt=\"🥳\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/15.1.0/72x72/1f973.png\" style=\"height: 1em;\" /></p>\n\n\n\n<h2 class=\"wp-block-heading\">New WordPress AI team</h2>\n\n\n\n<p class=\"\">Also last week, a post was published to <a href=\"https://wordpress.org/news/2025/05/announcing-the-formation-of-the-wordpress-ai-team/\">announce the formation of a new AI team for the project</a>. I&#8217;m really looking forward to this team getting started. Initially, the <a href=\"https://make.wordpress.org/core/2023/05/02/lets-talk-wordpress-core-artificial-intelligence/\">stance of the Core team</a> was to observe and wait for the needs to become more clear. But the time has come to explore taking action in some important areas. Specifically extensibility of the block editor, documentation, and ensuring any necessary internal functionality is available through APIs.</p>\n\n\n\n<p class=\"\">Near term, I think once some of these items have a plan to be addressed, what could make the most sense is several canonical AI plugins that integrate with different models or services similar to how importing site content works (WordPress, Tumblr, Movable Type/TypePad, etc. each have their own plugin).</p>\n\n\n\n<p class=\"\">If you have thoughts about the place AI has in the project, join the conversation in the <a href=\"https://wordpress.slack.com/archives/C08TJ8BPULS\">#core-ai channel</a> of the <a href=\"https://make.wordpress.org/chat/\">WordPress.org Slack</a>!</p>\n\n\n\n<p class=\"has-text-align-right\"><em>Featured image credit: <a href=\"https://creativecommons.org/publicdomain/zero/1.0/\">CC0</a> licensed <a href=\"https://wordpress.org/photos/photo/8456505dd5/\">photo</a> by <a href=\"https://www.nilovelez.com/\">Nilo Velez</a> from the <a href=\"https://wordpress.org/photos/\">WordPress Photo Directory</a>.</em></p>\n<p>The post <a href=\"https://jonathandesrosiers.com/2025/06/wordpress-grab-bag-wceu-wordpress-turns-22-new-ai-team/\">WordPress Grab Bag: WCEU, WordPress turns 22, new AI team</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, 03 Jun 2025 11:32:01 +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:\"\";}}}}}}}}}}}}}}}}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:\"Sat, 28 Jun 2025 15:32:07 GMT\";s:12:\"content-type\";s:8:\"text/xml\";s:13:\"last-modified\";s:29:\"Sat, 28 Jun 2025 15:15:18 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 1\";}}s:5:\"build\";i:1727761820;s:21:\"cache_expiration_time\";i:1751167928;s:23:\"__cache_expiration_time\";i:1751167928;}','off'),
(4321,'_transient_timeout_dash_v2_88ae138922fe95674369b1cb3d215a2b','1751167928','off'),
(4322,'_transient_dash_v2_88ae138922fe95674369b1cb3d215a2b','<div class=\"rss-widget\"><ul><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><li><a class=\'rsswidget\' href=\'https://wordpress.org/news/2025/06/dropping-security-updates-for-wordpress-versions-4-1-through-4-6/\'>Dropping security updates for WordPress versions 4.1 through 4.6</a></li></ul></div><div class=\"rss-widget\"><ul><li><a class=\'rsswidget\' href=\'https://wordpress.org/news/2025/06/wordcamp-us-2025-see-you-in-portland-oregon/\'>WordPress.org blog: WordCamp US 2025: See You in Portland, Oregon!</a></li><li><a class=\'rsswidget\' href=\'https://ma.tt/2025/06/alpha-school/\'>Matt: Alpha School Insider</a></li><li><a class=\'rsswidget\' href=\'https://openchannels.fm/the-evolving-landscape-of-core-contribution-and-company-sponsorship/\'>Open Channels FM: The Evolving Landscape of Core Contribution and Company Sponsorship</a></li></ul></div>','off'),
(4323,'_site_transient_timeout_wp_plugin_dependencies_plugin_timeout_woocommerce','1751167936','off'),
(4324,'_site_transient_wp_plugin_dependencies_plugin_timeout_woocommerce','1','off'),
(4325,'_site_transient_timeout_wp_plugin_dependencies_plugin_timeout_dokan-lite','1751167936','off'),
(4326,'_site_transient_wp_plugin_dependencies_plugin_timeout_dokan-lite','1','off'),
(4327,'_site_transient_timeout_poptags_40cd750bba9870f18aada2478b24840a','1751135537','off'),
(4328,'_site_transient_poptags_40cd750bba9870f18aada2478b24840a','O:8:\"stdClass\":100:{s:11:\"woocommerce\";a:3:{s:4:\"name\";s:11:\"woocommerce\";s:4:\"slug\";s:11:\"woocommerce\";s:5:\"count\";i:7169;}s:6:\"widget\";a:3:{s:4:\"name\";s:6:\"widget\";s:4:\"slug\";s:6:\"widget\";s:5:\"count\";i:4897;}s:4:\"post\";a:3:{s:4:\"name\";s:4:\"post\";s:4:\"slug\";s:4:\"post\";s:5:\"count\";i:2798;}s:5:\"admin\";a:3:{s:4:\"name\";s:5:\"admin\";s:4:\"slug\";s:5:\"admin\";s:5:\"count\";i:2719;}s:5:\"posts\";a:3:{s:4:\"name\";s:5:\"posts\";s:4:\"slug\";s:5:\"posts\";s:5:\"count\";i:2122;}s:9:\"shortcode\";a:3:{s:4:\"name\";s:9:\"shortcode\";s:4:\"slug\";s:9:\"shortcode\";s:5:\"count\";i:2045;}s:8:\"comments\";a:3:{s:4:\"name\";s:8:\"comments\";s:4:\"slug\";s:8:\"comments\";s:5:\"count\";i:1952;}s:3:\"seo\";a:3:{s:4:\"name\";s:3:\"seo\";s:4:\"slug\";s:3:\"seo\";s:5:\"count\";i:1926;}s:9:\"ecommerce\";a:3:{s:4:\"name\";s:9:\"ecommerce\";s:4:\"slug\";s:9:\"ecommerce\";s:5:\"count\";i:1621;}s:6:\"images\";a:3:{s:4:\"name\";s:6:\"images\";s:4:\"slug\";s:6:\"images\";s:5:\"count\";i:1616;}s:5:\"image\";a:3:{s:4:\"name\";s:5:\"image\";s:4:\"slug\";s:5:\"image\";s:5:\"count\";i:1604;}s:6:\"google\";a:3:{s:4:\"name\";s:6:\"google\";s:4:\"slug\";s:6:\"google\";s:5:\"count\";i:1557;}s:7:\"twitter\";a:3:{s:4:\"name\";s:7:\"twitter\";s:4:\"slug\";s:7:\"twitter\";s:5:\"count\";i:1512;}s:8:\"facebook\";a:3:{s:4:\"name\";s:8:\"facebook\";s:4:\"slug\";s:8:\"facebook\";s:5:\"count\";i:1509;}s:5:\"email\";a:3:{s:4:\"name\";s:5:\"email\";s:4:\"slug\";s:5:\"email\";s:5:\"count\";i:1473;}s:7:\"gallery\";a:3:{s:4:\"name\";s:7:\"gallery\";s:4:\"slug\";s:7:\"gallery\";s:5:\"count\";i:1339;}s:7:\"sidebar\";a:3:{s:4:\"name\";s:7:\"sidebar\";s:4:\"slug\";s:7:\"sidebar\";s:5:\"count\";i:1318;}s:8:\"security\";a:3:{s:4:\"name\";s:8:\"security\";s:4:\"slug\";s:8:\"security\";s:5:\"count\";i:1255;}s:5:\"login\";a:3:{s:4:\"name\";s:5:\"login\";s:4:\"slug\";s:5:\"login\";s:5:\"count\";i:1239;}s:6:\"social\";a:3:{s:4:\"name\";s:6:\"social\";s:4:\"slug\";s:6:\"social\";s:5:\"count\";i:1175;}s:4:\"page\";a:3:{s:4:\"name\";s:4:\"page\";s:4:\"slug\";s:4:\"page\";s:5:\"count\";i:1159;}s:5:\"video\";a:3:{s:4:\"name\";s:5:\"video\";s:4:\"slug\";s:5:\"video\";s:5:\"count\";i:1045;}s:7:\"payment\";a:3:{s:4:\"name\";s:7:\"payment\";s:4:\"slug\";s:7:\"payment\";s:5:\"count\";i:1045;}s:10:\"e-commerce\";a:3:{s:4:\"name\";s:10:\"e-commerce\";s:4:\"slug\";s:10:\"e-commerce\";s:5:\"count\";i:1045;}s:5:\"block\";a:3:{s:4:\"name\";s:5:\"block\";s:4:\"slug\";s:5:\"block\";s:5:\"count\";i:1015;}s:9:\"analytics\";a:3:{s:4:\"name\";s:9:\"analytics\";s:4:\"slug\";s:9:\"analytics\";s:5:\"count\";i:1008;}s:7:\"widgets\";a:3:{s:4:\"name\";s:7:\"widgets\";s:4:\"slug\";s:7:\"widgets\";s:5:\"count\";i:998;}s:9:\"gutenberg\";a:3:{s:4:\"name\";s:9:\"gutenberg\";s:4:\"slug\";s:9:\"gutenberg\";s:5:\"count\";i:982;}s:6:\"slider\";a:3:{s:4:\"name\";s:6:\"slider\";s:4:\"slug\";s:6:\"slider\";s:5:\"count\";i:938;}s:7:\"content\";a:3:{s:4:\"name\";s:7:\"content\";s:4:\"slug\";s:7:\"content\";s:5:\"count\";i:930;}s:9:\"elementor\";a:3:{s:4:\"name\";s:9:\"elementor\";s:4:\"slug\";s:9:\"elementor\";s:5:\"count\";i:925;}s:5:\"links\";a:3:{s:4:\"name\";s:5:\"links\";s:4:\"slug\";s:5:\"links\";s:5:\"count\";i:923;}s:4:\"spam\";a:3:{s:4:\"name\";s:4:\"spam\";s:4:\"slug\";s:4:\"spam\";s:5:\"count\";i:911;}s:15:\"payment-gateway\";a:3:{s:4:\"name\";s:15:\"payment gateway\";s:4:\"slug\";s:15:\"payment-gateway\";s:5:\"count\";i:911;}s:4:\"form\";a:3:{s:4:\"name\";s:4:\"form\";s:4:\"slug\";s:4:\"form\";s:5:\"count\";i:906;}s:5:\"media\";a:3:{s:4:\"name\";s:5:\"media\";s:4:\"slug\";s:5:\"media\";s:5:\"count\";i:857;}s:6:\"search\";a:3:{s:4:\"name\";s:6:\"search\";s:4:\"slug\";s:6:\"search\";s:5:\"count\";i:832;}s:6:\"editor\";a:3:{s:4:\"name\";s:6:\"editor\";s:4:\"slug\";s:6:\"editor\";s:5:\"count\";i:804;}s:10:\"buddypress\";a:3:{s:4:\"name\";s:10:\"buddypress\";s:4:\"slug\";s:10:\"buddypress\";s:5:\"count\";i:784;}s:12:\"contact-form\";a:3:{s:4:\"name\";s:12:\"contact form\";s:4:\"slug\";s:12:\"contact-form\";s:5:\"count\";i:772;}s:4:\"menu\";a:3:{s:4:\"name\";s:4:\"menu\";s:4:\"slug\";s:4:\"menu\";s:5:\"count\";i:763;}s:3:\"rss\";a:3:{s:4:\"name\";s:3:\"rss\";s:4:\"slug\";s:3:\"rss\";s:5:\"count\";i:759;}s:5:\"pages\";a:3:{s:4:\"name\";s:5:\"pages\";s:4:\"slug\";s:5:\"pages\";s:5:\"count\";i:748;}s:5:\"embed\";a:3:{s:4:\"name\";s:5:\"embed\";s:4:\"slug\";s:5:\"embed\";s:5:\"count\";i:741;}s:4:\"feed\";a:3:{s:4:\"name\";s:4:\"feed\";s:4:\"slug\";s:4:\"feed\";s:5:\"count\";i:712;}s:8:\"category\";a:3:{s:4:\"name\";s:8:\"category\";s:4:\"slug\";s:8:\"category\";s:5:\"count\";i:706;}s:4:\"ajax\";a:3:{s:4:\"name\";s:4:\"ajax\";s:4:\"slug\";s:4:\"ajax\";s:5:\"count\";i:680;}s:7:\"youtube\";a:3:{s:4:\"name\";s:7:\"youtube\";s:4:\"slug\";s:7:\"youtube\";s:5:\"count\";i:673;}s:6:\"jquery\";a:3:{s:4:\"name\";s:6:\"jquery\";s:4:\"slug\";s:6:\"jquery\";s:5:\"count\";i:665;}s:3:\"api\";a:3:{s:4:\"name\";s:3:\"api\";s:4:\"slug\";s:3:\"api\";s:5:\"count\";i:661;}s:8:\"shipping\";a:3:{s:4:\"name\";s:8:\"shipping\";s:4:\"slug\";s:8:\"shipping\";s:5:\"count\";i:653;}s:4:\"chat\";a:3:{s:4:\"name\";s:4:\"chat\";s:4:\"slug\";s:4:\"chat\";s:5:\"count\";i:641;}s:11:\"performance\";a:3:{s:4:\"name\";s:11:\"performance\";s:4:\"slug\";s:11:\"performance\";s:5:\"count\";i:639;}s:3:\"css\";a:3:{s:4:\"name\";s:3:\"css\";s:4:\"slug\";s:3:\"css\";s:5:\"count\";i:634;}s:9:\"affiliate\";a:3:{s:4:\"name\";s:9:\"affiliate\";s:4:\"slug\";s:9:\"affiliate\";s:5:\"count\";i:634;}s:9:\"marketing\";a:3:{s:4:\"name\";s:9:\"marketing\";s:4:\"slug\";s:9:\"marketing\";s:5:\"count\";i:628;}s:9:\"dashboard\";a:3:{s:4:\"name\";s:9:\"dashboard\";s:4:\"slug\";s:9:\"dashboard\";s:5:\"count\";i:627;}s:10:\"responsive\";a:3:{s:4:\"name\";s:10:\"responsive\";s:4:\"slug\";s:10:\"responsive\";s:5:\"count\";i:620;}s:4:\"link\";a:3:{s:4:\"name\";s:4:\"link\";s:4:\"slug\";s:4:\"link\";s:5:\"count\";i:618;}s:10:\"javascript\";a:3:{s:4:\"name\";s:10:\"javascript\";s:4:\"slug\";s:10:\"javascript\";s:5:\"count\";i:614;}s:14:\"contact-form-7\";a:3:{s:4:\"name\";s:14:\"contact form 7\";s:4:\"slug\";s:14:\"contact-form-7\";s:5:\"count\";i:613;}s:5:\"share\";a:3:{s:4:\"name\";s:5:\"share\";s:4:\"slug\";s:5:\"share\";s:5:\"count\";i:608;}s:7:\"contact\";a:3:{s:4:\"name\";s:7:\"contact\";s:4:\"slug\";s:7:\"contact\";s:5:\"count\";i:595;}s:6:\"events\";a:3:{s:4:\"name\";s:6:\"events\";s:4:\"slug\";s:6:\"events\";s:5:\"count\";i:589;}s:3:\"ads\";a:3:{s:4:\"name\";s:3:\"ads\";s:4:\"slug\";s:3:\"ads\";s:5:\"count\";i:585;}s:5:\"forms\";a:3:{s:4:\"name\";s:5:\"forms\";s:4:\"slug\";s:5:\"forms\";s:5:\"count\";i:583;}s:6:\"custom\";a:3:{s:4:\"name\";s:6:\"custom\";s:4:\"slug\";s:6:\"custom\";s:5:\"count\";i:579;}s:7:\"comment\";a:3:{s:4:\"name\";s:7:\"comment\";s:4:\"slug\";s:7:\"comment\";s:5:\"count\";i:577;}s:6:\"blocks\";a:3:{s:4:\"name\";s:6:\"blocks\";s:4:\"slug\";s:6:\"blocks\";s:5:\"count\";i:576;}s:5:\"theme\";a:3:{s:4:\"name\";s:5:\"theme\";s:4:\"slug\";s:5:\"theme\";s:5:\"count\";i:574;}s:10:\"categories\";a:3:{s:4:\"name\";s:10:\"categories\";s:4:\"slug\";s:10:\"categories\";s:5:\"count\";i:570;}s:5:\"popup\";a:3:{s:4:\"name\";s:5:\"popup\";s:4:\"slug\";s:5:\"popup\";s:5:\"count\";i:559;}s:8:\"calendar\";a:3:{s:4:\"name\";s:8:\"calendar\";s:4:\"slug\";s:8:\"calendar\";s:5:\"count\";i:552;}s:6:\"button\";a:3:{s:4:\"name\";s:6:\"button\";s:4:\"slug\";s:6:\"button\";s:5:\"count\";i:549;}s:8:\"payments\";a:3:{s:4:\"name\";s:8:\"payments\";s:4:\"slug\";s:8:\"payments\";s:5:\"count\";i:544;}s:4:\"user\";a:3:{s:4:\"name\";s:4:\"user\";s:4:\"slug\";s:4:\"user\";s:5:\"count\";i:532;}s:5:\"users\";a:3:{s:4:\"name\";s:5:\"users\";s:4:\"slug\";s:5:\"users\";s:5:\"count\";i:528;}s:2:\"ai\";a:3:{s:4:\"name\";s:2:\"AI\";s:4:\"slug\";s:2:\"ai\";s:5:\"count\";i:528;}s:4:\"tags\";a:3:{s:4:\"name\";s:4:\"tags\";s:4:\"slug\";s:4:\"tags\";s:5:\"count\";i:527;}s:10:\"newsletter\";a:3:{s:4:\"name\";s:10:\"newsletter\";s:4:\"slug\";s:10:\"newsletter\";s:5:\"count\";i:508;}s:6:\"mobile\";a:3:{s:4:\"name\";s:6:\"mobile\";s:4:\"slug\";s:6:\"mobile\";s:5:\"count\";i:507;}s:10:\"navigation\";a:3:{s:4:\"name\";s:10:\"navigation\";s:4:\"slug\";s:10:\"navigation\";s:5:\"count\";i:504;}s:12:\"social-media\";a:3:{s:4:\"name\";s:12:\"social media\";s:4:\"slug\";s:12:\"social-media\";s:5:\"count\";i:486;}s:8:\"tracking\";a:3:{s:4:\"name\";s:8:\"tracking\";s:4:\"slug\";s:8:\"tracking\";s:5:\"count\";i:481;}s:5:\"stats\";a:3:{s:4:\"name\";s:5:\"stats\";s:4:\"slug\";s:5:\"stats\";s:5:\"count\";i:469;}s:8:\"checkout\";a:3:{s:4:\"name\";s:8:\"checkout\";s:4:\"slug\";s:8:\"checkout\";s:5:\"count\";i:468;}s:12:\"notification\";a:3:{s:4:\"name\";s:12:\"notification\";s:4:\"slug\";s:12:\"notification\";s:5:\"count\";i:465;}s:7:\"gateway\";a:3:{s:4:\"name\";s:7:\"gateway\";s:4:\"slug\";s:7:\"gateway\";s:5:\"count\";i:465;}s:10:\"statistics\";a:3:{s:4:\"name\";s:10:\"statistics\";s:4:\"slug\";s:10:\"statistics\";s:5:\"count\";i:462;}s:9:\"slideshow\";a:3:{s:4:\"name\";s:9:\"slideshow\";s:4:\"slug\";s:9:\"slideshow\";s:5:\"count\";i:457;}s:8:\"redirect\";a:3:{s:4:\"name\";s:8:\"redirect\";s:4:\"slug\";s:8:\"redirect\";s:5:\"count\";i:457;}s:5:\"photo\";a:3:{s:4:\"name\";s:5:\"photo\";s:4:\"slug\";s:5:\"photo\";s:5:\"count\";i:455;}s:6:\"import\";a:3:{s:4:\"name\";s:6:\"import\";s:4:\"slug\";s:6:\"import\";s:5:\"count\";i:451;}s:4:\"news\";a:3:{s:4:\"name\";s:4:\"news\";s:4:\"slug\";s:4:\"news\";s:5:\"count\";i:434;}s:6:\"photos\";a:3:{s:4:\"name\";s:6:\"photos\";s:4:\"slug\";s:6:\"photos\";s:5:\"count\";i:432;}s:5:\"cache\";a:3:{s:4:\"name\";s:5:\"cache\";s:4:\"slug\";s:5:\"cache\";s:5:\"count\";i:431;}s:4:\"code\";a:3:{s:4:\"name\";s:4:\"code\";s:4:\"slug\";s:4:\"code\";s:5:\"count\";i:422;}s:10:\"shortcodes\";a:3:{s:4:\"name\";s:10:\"shortcodes\";s:4:\"slug\";s:10:\"shortcodes\";s:5:\"count\";i:421;}s:7:\"plugins\";a:3:{s:4:\"name\";s:7:\"plugins\";s:4:\"slug\";s:7:\"plugins\";s:5:\"count\";i:413;}s:9:\"multisite\";a:3:{s:4:\"name\";s:9:\"multisite\";s:4:\"slug\";s:9:\"multisite\";s:5:\"count\";i:411;}}','off'),
(4332,'activation_plugin_pixelyoursite/facebook-pixel-master.php','2025-06-28 15:32:59','auto'),
(4333,'pys_core_free_version','11.0.0.3','auto'),
(4334,'pys_updated_at','1751124780','auto'),
(4335,'pys_core','a:46:{s:13:\"debug_enabled\";N;s:24:\"google_retargeting_logic\";N;s:14:\"license_status\";N;s:16:\"send_external_id\";N;s:15:\"pys_logs_enable\";N;s:31:\"woo_enabled_save_data_to_orders\";b:1;s:29:\"woo_add_enrich_to_admin_email\";b:1;s:31:\"edd_enabled_save_data_to_orders\";b:1;s:31:\"woo_add_to_cart_on_button_click\";b:1;s:19:\"block_robot_enabled\";b:1;s:21:\"signal_events_enabled\";N;s:24:\"automatic_events_enabled\";b:0;s:19:\"signal_form_enabled\";N;s:23:\"signal_download_enabled\";N;s:22:\"signal_comment_enabled\";N;s:26:\"signal_page_scroll_enabled\";N;s:27:\"signal_time_on_page_enabled\";N;s:24:\"signal_page_scroll_value\";N;s:25:\"signal_time_on_page_value\";N;s:25:\"download_event_extensions\";N;s:28:\"automatic_event_form_enabled\";b:0;s:32:\"automatic_event_download_enabled\";b:0;s:31:\"automatic_event_comment_enabled\";b:0;s:30:\"automatic_event_scroll_enabled\";b:0;s:36:\"automatic_event_time_on_page_enabled\";b:0;s:28:\"automatic_event_scroll_value\";i:0;s:34:\"automatic_event_time_on_page_value\";i:0;s:35:\"automatic_event_download_extensions\";a:1:{i:0;s:0:\"\";}s:31:\"gdpr_bing_prior_consent_enabled\";b:1;s:36:\"gdpr_cookiebot_bing_consent_category\";s:9:\"marketing\";s:17:\"gdpr_ajax_enabled\";b:0;s:23:\"enable_all_tracking_ids\";b:1;s:24:\"enable_success_send_form\";b:0;s:30:\"automatic_event_signup_enabled\";b:1;s:29:\"automatic_event_login_enabled\";b:1;s:27:\"automatic_event_404_enabled\";b:1;s:30:\"automatic_event_search_enabled\";b:1;s:11:\"fdp_enabled\";b:0;s:23:\"enable_page_title_param\";b:1;s:22:\"enable_post_type_param\";b:1;s:26:\"enable_post_category_param\";b:1;s:20:\"enable_post_id_param\";b:1;s:25:\"enable_content_name_param\";b:1;s:22:\"enable_event_url_param\";b:1;s:22:\"enable_user_role_param\";b:1;s:28:\"woo_add_to_cart_catch_method\";s:13:\"add_cart_hook\";}','auto'),
(4336,'pys_gatags','a:13:{s:18:\"main_pixel_enabled\";b:1;s:19:\"gtag_datalayer_type\";s:7:\"default\";s:19:\"gtag_datalayer_name\";s:12:\"dataLayerPYS\";s:22:\"woo_variable_as_simple\";b:1;s:32:\"woo_variable_data_select_product\";b:0;s:30:\"woo_variations_use_parent_name\";b:0;s:14:\"woo_content_id\";s:10:\"product_id\";s:21:\"woo_content_id_prefix\";s:0:\"\";s:21:\"woo_content_id_suffix\";s:0:\"\";s:19:\"woo_wpml_unified_id\";b:0;s:14:\"edd_content_id\";s:11:\"download_id\";s:21:\"edd_content_id_prefix\";s:0:\"\";s:21:\"edd_content_id_suffix\";s:0:\"\";}','auto'),
(4337,'pys_custom_event_migrate_free','1','auto'),
(4338,'free_next_chain_notice','2','auto'),
(4339,'free_expiration_chain_notice_dismissed_at','1751170314','auto'),
(4340,'pys_notice_dont_CAPI_start_delay','1751124780','auto'),
(4341,'pys_core_optin_first_time_dismissed_at','1751124788','auto'),
(4343,'_site_transient_update_plugins','O:8:\"stdClass\":5:{s:12:\"last_checked\";i:1751124821;s:8:\"response\";a:2:{s:19:\"akismet/akismet.php\";O:8:\"stdClass\":13:{s:2:\"id\";s:21:\"w.org/plugins/akismet\";s:4:\"slug\";s:7:\"akismet\";s:6:\"plugin\";s:19:\"akismet/akismet.php\";s:11:\"new_version\";s:3:\"5.4\";s:3:\"url\";s:38:\"https://wordpress.org/plugins/akismet/\";s:7:\"package\";s:54:\"https://downloads.wordpress.org/plugin/akismet.5.4.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:60:\"https://ps.w.org/akismet/assets/icon-256x256.png?rev=2818463\";s:2:\"1x\";s:60:\"https://ps.w.org/akismet/assets/icon-128x128.png?rev=2818463\";}s:7:\"banners\";a:2:{s:2:\"2x\";s:63:\"https://ps.w.org/akismet/assets/banner-1544x500.png?rev=2900731\";s:2:\"1x\";s:62:\"https://ps.w.org/akismet/assets/banner-772x250.png?rev=2900731\";}s:11:\"banners_rtl\";a:0:{}s:8:\"requires\";s:3:\"5.8\";s:6:\"tested\";s:5:\"6.8.1\";s:12:\"requires_php\";s:3:\"7.2\";s:16:\"requires_plugins\";a:0:{}}s:39:\"flexible-shipping/flexible-shipping.php\";O:8:\"stdClass\":13:{s:2:\"id\";s:31:\"w.org/plugins/flexible-shipping\";s:4:\"slug\";s:17:\"flexible-shipping\";s:6:\"plugin\";s:39:\"flexible-shipping/flexible-shipping.php\";s:11:\"new_version\";s:5:\"6.2.1\";s:3:\"url\";s:48:\"https://wordpress.org/plugins/flexible-shipping/\";s:7:\"package\";s:66:\"https://downloads.wordpress.org/plugin/flexible-shipping.6.2.1.zip\";s:5:\"icons\";a:2:{s:2:\"1x\";s:62:\"https://ps.w.org/flexible-shipping/assets/icon.svg?rev=2737045\";s:3:\"svg\";s:62:\"https://ps.w.org/flexible-shipping/assets/icon.svg?rev=2737045\";}s:7:\"banners\";a:2:{s:2:\"2x\";s:73:\"https://ps.w.org/flexible-shipping/assets/banner-1544x500.png?rev=2737045\";s:2:\"1x\";s:72:\"https://ps.w.org/flexible-shipping/assets/banner-772x250.png?rev=2737045\";}s:11:\"banners_rtl\";a:0:{}s:8:\"requires\";s:3:\"6.4\";s:6:\"tested\";s:5:\"6.8.1\";s:12:\"requires_php\";s:3:\"7.4\";s:16:\"requires_plugins\";a:0:{}}}s:12:\"translations\";a:0:{}s:9:\"no_update\";a:13:{s:19:\"chaty/cht-icons.php\";O:8:\"stdClass\":10:{s:2:\"id\";s:19:\"w.org/plugins/chaty\";s:4:\"slug\";s:5:\"chaty\";s:6:\"plugin\";s:19:\"chaty/cht-icons.php\";s:11:\"new_version\";s:5:\"3.4.5\";s:3:\"url\";s:36:\"https://wordpress.org/plugins/chaty/\";s:7:\"package\";s:54:\"https://downloads.wordpress.org/plugin/chaty.3.4.5.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:58:\"https://ps.w.org/chaty/assets/icon-256x256.gif?rev=2938062\";s:2:\"1x\";s:58:\"https://ps.w.org/chaty/assets/icon-128x128.gif?rev=2938062\";}s:7:\"banners\";a:2:{s:2:\"2x\";s:61:\"https://ps.w.org/chaty/assets/banner-1544x500.png?rev=2938062\";s:2:\"1x\";s:60:\"https://ps.w.org/chaty/assets/banner-772x250.png?rev=2938062\";}s:11:\"banners_rtl\";a:0:{}s:8:\"requires\";s:3:\"3.1\";}s:36:\"contact-form-7/wp-contact-form-7.php\";O:8:\"stdClass\":10:{s:2:\"id\";s:28:\"w.org/plugins/contact-form-7\";s:4:\"slug\";s:14:\"contact-form-7\";s:6:\"plugin\";s:36:\"contact-form-7/wp-contact-form-7.php\";s:11:\"new_version\";s:3:\"6.1\";s:3:\"url\";s:45:\"https://wordpress.org/plugins/contact-form-7/\";s:7:\"package\";s:61:\"https://downloads.wordpress.org/plugin/contact-form-7.6.1.zip\";s:5:\"icons\";a:2:{s:2:\"1x\";s:59:\"https://ps.w.org/contact-form-7/assets/icon.svg?rev=2339255\";s:3:\"svg\";s:59:\"https://ps.w.org/contact-form-7/assets/icon.svg?rev=2339255\";}s:7:\"banners\";a:2:{s:2:\"2x\";s:69:\"https://ps.w.org/contact-form-7/assets/banner-1544x500.png?rev=860901\";s:2:\"1x\";s:68:\"https://ps.w.org/contact-form-7/assets/banner-772x250.png?rev=880427\";}s:11:\"banners_rtl\";a:0:{}s:8:\"requires\";s:3:\"6.7\";}s:51:\"webappick-product-feed-for-woocommerce/woo-feed.php\";O:8:\"stdClass\":10:{s:2:\"id\";s:52:\"w.org/plugins/webappick-product-feed-for-woocommerce\";s:4:\"slug\";s:38:\"webappick-product-feed-for-woocommerce\";s:6:\"plugin\";s:51:\"webappick-product-feed-for-woocommerce/woo-feed.php\";s:11:\"new_version\";s:6:\"6.5.68\";s:3:\"url\";s:69:\"https://wordpress.org/plugins/webappick-product-feed-for-woocommerce/\";s:7:\"package\";s:88:\"https://downloads.wordpress.org/plugin/webappick-product-feed-for-woocommerce.6.5.68.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:91:\"https://ps.w.org/webappick-product-feed-for-woocommerce/assets/icon-256x256.png?rev=2474809\";s:2:\"1x\";s:91:\"https://ps.w.org/webappick-product-feed-for-woocommerce/assets/icon-128x128.png?rev=2475271\";}s:7:\"banners\";a:2:{s:2:\"2x\";s:94:\"https://ps.w.org/webappick-product-feed-for-woocommerce/assets/banner-1544x500.jpg?rev=3203386\";s:2:\"1x\";s:93:\"https://ps.w.org/webappick-product-feed-for-woocommerce/assets/banner-772x250.jpg?rev=3203386\";}s:11:\"banners_rtl\";a:0:{}s:8:\"requires\";s:3:\"4.4\";}s:20:\"dokan-lite/dokan.php\";O:8:\"stdClass\":10:{s:2:\"id\";s:24:\"w.org/plugins/dokan-lite\";s:4:\"slug\";s:10:\"dokan-lite\";s:6:\"plugin\";s:20:\"dokan-lite/dokan.php\";s:11:\"new_version\";s:5:\"4.0.2\";s:3:\"url\";s:41:\"https://wordpress.org/plugins/dokan-lite/\";s:7:\"package\";s:59:\"https://downloads.wordpress.org/plugin/dokan-lite.4.0.2.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:63:\"https://ps.w.org/dokan-lite/assets/icon-256x256.gif?rev=3239229\";s:2:\"1x\";s:63:\"https://ps.w.org/dokan-lite/assets/icon-128x128.gif?rev=3239229\";}s:7:\"banners\";a:2:{s:2:\"2x\";s:66:\"https://ps.w.org/dokan-lite/assets/banner-1544x500.png?rev=3289941\";s:2:\"1x\";s:65:\"https://ps.w.org/dokan-lite/assets/banner-772x250.png?rev=3289941\";}s:11:\"banners_rtl\";a:0:{}s:8:\"requires\";s:3:\"6.5\";}s:23:\"elementor/elementor.php\";O:8:\"stdClass\":10:{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:6:\"3.29.2\";s:3:\"url\";s:40:\"https://wordpress.org/plugins/elementor/\";s:7:\"package\";s:59:\"https://downloads.wordpress.org/plugin/elementor.3.29.2.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:62:\"https://ps.w.org/elementor/assets/icon-256x256.gif?rev=3111597\";s:2:\"1x\";s:62:\"https://ps.w.org/elementor/assets/icon-128x128.gif?rev=3111597\";}s:7:\"banners\";a:2:{s:2:\"2x\";s:65:\"https://ps.w.org/elementor/assets/banner-1544x500.png?rev=3164133\";s:2:\"1x\";s:64:\"https://ps.w.org/elementor/assets/banner-772x250.png?rev=3164133\";}s:11:\"banners_rtl\";a:0:{}s:8:\"requires\";s:3:\"6.5\";}s:9:\"hello.php\";O:8:\"stdClass\":10:{s:2:\"id\";s:25:\"w.org/plugins/hello-dolly\";s:4:\"slug\";s:11:\"hello-dolly\";s:6:\"plugin\";s:9:\"hello.php\";s:11:\"new_version\";s:5:\"1.7.2\";s:3:\"url\";s:42:\"https://wordpress.org/plugins/hello-dolly/\";s:7:\"package\";s:60:\"https://downloads.wordpress.org/plugin/hello-dolly.1.7.3.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:64:\"https://ps.w.org/hello-dolly/assets/icon-256x256.jpg?rev=2052855\";s:2:\"1x\";s:64:\"https://ps.w.org/hello-dolly/assets/icon-128x128.jpg?rev=2052855\";}s:7:\"banners\";a:2:{s:2:\"2x\";s:67:\"https://ps.w.org/hello-dolly/assets/banner-1544x500.jpg?rev=2645582\";s:2:\"1x\";s:66:\"https://ps.w.org/hello-dolly/assets/banner-772x250.jpg?rev=2052855\";}s:11:\"banners_rtl\";a:0:{}s:8:\"requires\";s:3:\"4.6\";}s:23:\"loco-translate/loco.php\";O:8:\"stdClass\":10:{s:2:\"id\";s:28:\"w.org/plugins/loco-translate\";s:4:\"slug\";s:14:\"loco-translate\";s:6:\"plugin\";s:23:\"loco-translate/loco.php\";s:11:\"new_version\";s:5:\"2.8.0\";s:3:\"url\";s:45:\"https://wordpress.org/plugins/loco-translate/\";s:7:\"package\";s:63:\"https://downloads.wordpress.org/plugin/loco-translate.2.8.0.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:67:\"https://ps.w.org/loco-translate/assets/icon-256x256.png?rev=1000676\";s:2:\"1x\";s:67:\"https://ps.w.org/loco-translate/assets/icon-128x128.png?rev=1000676\";}s:7:\"banners\";a:1:{s:2:\"1x\";s:68:\"https://ps.w.org/loco-translate/assets/banner-772x250.jpg?rev=745046\";}s:11:\"banners_rtl\";a:0:{}s:8:\"requires\";s:3:\"6.6\";}s:39:\"pixelyoursite/facebook-pixel-master.php\";O:8:\"stdClass\":10:{s:2:\"id\";s:27:\"w.org/plugins/pixelyoursite\";s:4:\"slug\";s:13:\"pixelyoursite\";s:6:\"plugin\";s:39:\"pixelyoursite/facebook-pixel-master.php\";s:11:\"new_version\";s:8:\"11.0.0.3\";s:3:\"url\";s:44:\"https://wordpress.org/plugins/pixelyoursite/\";s:7:\"package\";s:65:\"https://downloads.wordpress.org/plugin/pixelyoursite.11.0.0.3.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:66:\"https://ps.w.org/pixelyoursite/assets/icon-256x256.jpg?rev=3178123\";s:2:\"1x\";s:66:\"https://ps.w.org/pixelyoursite/assets/icon-128x128.jpg?rev=2163168\";}s:7:\"banners\";a:2:{s:2:\"2x\";s:69:\"https://ps.w.org/pixelyoursite/assets/banner-1544x500.jpg?rev=3178123\";s:2:\"1x\";s:68:\"https://ps.w.org/pixelyoursite/assets/banner-772x250.jpg?rev=2163168\";}s:11:\"banners_rtl\";a:0:{}s:8:\"requires\";s:3:\"4.4\";}s:33:\"instagram-feed/instagram-feed.php\";O:8:\"stdClass\":10:{s:2:\"id\";s:28:\"w.org/plugins/instagram-feed\";s:4:\"slug\";s:14:\"instagram-feed\";s:6:\"plugin\";s:33:\"instagram-feed/instagram-feed.php\";s:11:\"new_version\";s:5:\"6.9.1\";s:3:\"url\";s:45:\"https://wordpress.org/plugins/instagram-feed/\";s:7:\"package\";s:63:\"https://downloads.wordpress.org/plugin/instagram-feed.6.9.1.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:67:\"https://ps.w.org/instagram-feed/assets/icon-256x256.png?rev=2700807\";s:2:\"1x\";s:67:\"https://ps.w.org/instagram-feed/assets/icon-128x128.png?rev=2700807\";}s:7:\"banners\";a:2:{s:2:\"2x\";s:70:\"https://ps.w.org/instagram-feed/assets/banner-1544x500.png?rev=2679382\";s:2:\"1x\";s:69:\"https://ps.w.org/instagram-feed/assets/banner-772x250.png?rev=2679382\";}s:11:\"banners_rtl\";a:0:{}s:8:\"requires\";s:3:\"4.1\";}s:51:\"header-footer-elementor/header-footer-elementor.php\";O:8:\"stdClass\":10:{s:2:\"id\";s:37:\"w.org/plugins/header-footer-elementor\";s:4:\"slug\";s:23:\"header-footer-elementor\";s:6:\"plugin\";s:51:\"header-footer-elementor/header-footer-elementor.php\";s:11:\"new_version\";s:5:\"2.4.2\";s:3:\"url\";s:54:\"https://wordpress.org/plugins/header-footer-elementor/\";s:7:\"package\";s:72:\"https://downloads.wordpress.org/plugin/header-footer-elementor.2.4.2.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:76:\"https://ps.w.org/header-footer-elementor/assets/icon-256x256.gif?rev=3278750\";s:2:\"1x\";s:76:\"https://ps.w.org/header-footer-elementor/assets/icon-128x128.gif?rev=3278750\";}s:7:\"banners\";a:2:{s:2:\"2x\";s:79:\"https://ps.w.org/header-footer-elementor/assets/banner-1544x500.gif?rev=3278750\";s:2:\"1x\";s:78:\"https://ps.w.org/header-footer-elementor/assets/banner-772x250.gif?rev=3278750\";}s:11:\"banners_rtl\";a:0:{}s:8:\"requires\";s:3:\"5.0\";}s:19:\"weforms/weforms.php\";O:8:\"stdClass\":10:{s:2:\"id\";s:21:\"w.org/plugins/weforms\";s:4:\"slug\";s:7:\"weforms\";s:6:\"plugin\";s:19:\"weforms/weforms.php\";s:11:\"new_version\";s:6:\"1.6.25\";s:3:\"url\";s:38:\"https://wordpress.org/plugins/weforms/\";s:7:\"package\";s:57:\"https://downloads.wordpress.org/plugin/weforms.1.6.25.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:60:\"https://ps.w.org/weforms/assets/icon-256x256.png?rev=1978687\";s:2:\"1x\";s:60:\"https://ps.w.org/weforms/assets/icon-128x128.png?rev=1978687\";}s:7:\"banners\";a:2:{s:2:\"2x\";s:63:\"https://ps.w.org/weforms/assets/banner-1544x500.png?rev=2243402\";s:2:\"1x\";s:62:\"https://ps.w.org/weforms/assets/banner-772x250.png?rev=2243402\";}s:11:\"banners_rtl\";a:0:{}s:8:\"requires\";s:3:\"5.0\";}s:27:\"woocommerce/woocommerce.php\";O:8:\"stdClass\":10:{s:2:\"id\";s:25:\"w.org/plugins/woocommerce\";s:4:\"slug\";s:11:\"woocommerce\";s:6:\"plugin\";s:27:\"woocommerce/woocommerce.php\";s:11:\"new_version\";s:5:\"9.9.5\";s:3:\"url\";s:42:\"https://wordpress.org/plugins/woocommerce/\";s:7:\"package\";s:60:\"https://downloads.wordpress.org/plugin/woocommerce.9.9.5.zip\";s:5:\"icons\";a:2:{s:2:\"1x\";s:56:\"https://ps.w.org/woocommerce/assets/icon.svg?rev=3234504\";s:3:\"svg\";s:56:\"https://ps.w.org/woocommerce/assets/icon.svg?rev=3234504\";}s:7:\"banners\";a:2:{s:2:\"2x\";s:67:\"https://ps.w.org/woocommerce/assets/banner-1544x500.png?rev=3234504\";s:2:\"1x\";s:66:\"https://ps.w.org/woocommerce/assets/banner-772x250.png?rev=3234504\";}s:11:\"banners_rtl\";a:0:{}s:8:\"requires\";s:3:\"6.7\";}s:33:\"yith-woocommerce-compare/init.php\";O:8:\"stdClass\":10:{s:2:\"id\";s:38:\"w.org/plugins/yith-woocommerce-compare\";s:4:\"slug\";s:24:\"yith-woocommerce-compare\";s:6:\"plugin\";s:33:\"yith-woocommerce-compare/init.php\";s:11:\"new_version\";s:5:\"3.1.0\";s:3:\"url\";s:55:\"https://wordpress.org/plugins/yith-woocommerce-compare/\";s:7:\"package\";s:73:\"https://downloads.wordpress.org/plugin/yith-woocommerce-compare.3.1.0.zip\";s:5:\"icons\";a:2:{s:2:\"1x\";s:69:\"https://ps.w.org/yith-woocommerce-compare/assets/icon.svg?rev=3042935\";s:3:\"svg\";s:69:\"https://ps.w.org/yith-woocommerce-compare/assets/icon.svg?rev=3042935\";}s:7:\"banners\";a:2:{s:2:\"2x\";s:80:\"https://ps.w.org/yith-woocommerce-compare/assets/banner-1544x500.jpg?rev=3091419\";s:2:\"1x\";s:79:\"https://ps.w.org/yith-woocommerce-compare/assets/banner-772x250.jpg?rev=3091419\";}s:11:\"banners_rtl\";a:0:{}s:8:\"requires\";s:3:\"6.6\";}}s:7:\"checked\";a:18:{s:19:\"akismet/akismet.php\";s:5:\"5.3.7\";s:19:\"chaty/cht-icons.php\";s:5:\"3.4.5\";s:36:\"contact-form-7/wp-contact-form-7.php\";s:5:\"6.6.4\";s:51:\"webappick-product-feed-for-woocommerce/woo-feed.php\";s:6:\"6.5.68\";s:20:\"dokan-lite/dokan.php\";s:5:\"4.0.2\";s:23:\"dokan-pro/dokan-pro.php\";s:5:\"4.0.3\";s:23:\"elementor/elementor.php\";s:6:\"3.29.2\";s:23:\"nasa-core/nasa-core.php\";s:5:\"6.4.2\";s:39:\"flexible-shipping/flexible-shipping.php\";s:5:\"6.2.0\";s:9:\"hello.php\";s:5:\"1.7.2\";s:23:\"loco-translate/loco.php\";s:5:\"2.8.0\";s:39:\"pixelyoursite/facebook-pixel-master.php\";s:8:\"11.0.0.3\";s:23:\"revslider/revslider.php\";s:6:\"6.7.34\";s:33:\"instagram-feed/instagram-feed.php\";s:5:\"6.9.1\";s:51:\"header-footer-elementor/header-footer-elementor.php\";s:5:\"2.4.2\";s:19:\"weforms/weforms.php\";s:6:\"1.6.25\";s:27:\"woocommerce/woocommerce.php\";s:5:\"9.9.5\";s:33:\"yith-woocommerce-compare/init.php\";s:5:\"3.1.0\";}}','off'),
(4346,'wf_schedule','3600','off'),
(4347,'woo_feed_free_version','6.5.68','off'),
(4348,'woo-feed-free-activation-time','1751124821','off'),
(4350,'activation_plugin_webappick-product-feed-for-woocommerce/woo-feed.php','2025-06-28 15:33:41','auto'),
(4351,'wf_dismissed_upload_dicrotory_writable','1','off'),
(4352,'_transient_timeout_webappick-product-feed-for-woocommerce_cached_promos','1751168023','off'),
(4353,'_transient_webappick-product-feed-for-woocommerce_cached_promos','[]','off'),
(4354,'webappick-product-feed-for-woocommerce_allow_tracking','no','off'),
(4355,'webappick-product-feed-for-woocommerce_tracking_notice','hide','off'),
(4356,'_transient_timeout___woo_feed_cache_getAttributeTaxonomies','1751146651','off'),
(4357,'_transient___woo_feed_cache_getAttributeTaxonomies','a:2:{s:16:\"wf_attr_pa_color\";s:10:\"اللون\";s:15:\"wf_attr_pa_size\";s:10:\"الحجم\";}','off'),
(4358,'_transient_timeout___woo_feed_cache_woo_feed_dropdown_product_custom_attributes','1751146651','off'),
(4359,'_transient___woo_feed_cache_woo_feed_dropdown_product_custom_attributes','a:2:{s:12:\"wf_attr_logo\";s:4:\"Logo\";s:8:\"wf_attr_\";s:0:\"\";}','off'),
(4360,'_transient_timeout___woo_feed_cache_woo_feed_dropdown_product_taxonomy','1751146651','off'),
(4361,'_transient___woo_feed_cache_woo_feed_dropdown_product_taxonomy','a:1:{s:21:\"wf_taxo_product_brand\";s:49:\"العلامات التجارية [product_brand]\";}','off'),
(4362,'_transient_timeout___woo_feed_cache_woo_feed_dropdown_meta_keys','1751146651','off'),
(4363,'_transient___woo_feed_cache_woo_feed_dropdown_meta_keys','a:41:{s:25:\"wf_cattr__wc_review_count\";s:16:\"_wc_review_count\";s:25:\"wf_cattr__wc_rating_count\";s:16:\"_wc_rating_count\";s:27:\"wf_cattr__wc_average_rating\";s:18:\"_wc_average_rating\";s:31:\"wf_cattr_wc_productdata_options\";s:22:\"wc_productdata_options\";s:23:\"wf_cattr__regular_price\";s:14:\"_regular_price\";s:20:\"wf_cattr__sale_price\";s:11:\"_sale_price\";s:31:\"wf_cattr__sale_price_dates_from\";s:22:\"_sale_price_dates_from\";s:29:\"wf_cattr__sale_price_dates_to\";s:20:\"_sale_price_dates_to\";s:20:\"wf_cattr__tax_status\";s:11:\"_tax_status\";s:19:\"wf_cattr__tax_class\";s:10:\"_tax_class\";s:22:\"wf_cattr__manage_stock\";s:13:\"_manage_stock\";s:20:\"wf_cattr__backorders\";s:11:\"_backorders\";s:27:\"wf_cattr__sold_individually\";s:18:\"_sold_individually\";s:20:\"wf_cattr__upsell_ids\";s:11:\"_upsell_ids\";s:23:\"wf_cattr__crosssell_ids\";s:14:\"_crosssell_ids\";s:23:\"wf_cattr__purchase_note\";s:14:\"_purchase_note\";s:17:\"wf_cattr__virtual\";s:8:\"_virtual\";s:22:\"wf_cattr__downloadable\";s:13:\"_downloadable\";s:31:\"wf_cattr__product_image_gallery\";s:22:\"_product_image_gallery\";s:24:\"wf_cattr__download_limit\";s:15:\"_download_limit\";s:25:\"wf_cattr__download_expiry\";s:16:\"_download_expiry\";s:15:\"wf_cattr__stock\";s:6:\"_stock\";s:22:\"wf_cattr__stock_status\";s:13:\"_stock_status\";s:25:\"wf_cattr__product_version\";s:16:\"_product_version\";s:15:\"wf_cattr__price\";s:6:\"_price\";s:23:\"wf_cattr_slide_template\";s:14:\"slide_template\";s:20:\"wf_cattr_total_sales\";s:11:\"total_sales\";s:22:\"wf_cattr__thumbnail_id\";s:13:\"_thumbnail_id\";s:26:\"wf_cattr__low_stock_amount\";s:17:\"_low_stock_amount\";s:25:\"wf_cattr__accessories_ids\";s:16:\"_accessories_ids\";s:25:\"wf_cattr_rs_page_bg_color\";s:16:\"rs_page_bg_color\";s:27:\"wf_cattr_chosen_product_cat\";s:18:\"chosen_product_cat\";s:17:\"wf_cattr_pageview\";s:8:\"pageview\";s:20:\"wf_cattr__visibility\";s:11:\"_visibility\";s:18:\"wf_cattr__featured\";s:9:\"_featured\";s:38:\"wf_cattr__per_product_admin_commission\";s:29:\"_per_product_admin_commission\";s:43:\"wf_cattr__per_product_admin_commission_type\";s:34:\"_per_product_admin_commission_type\";s:42:\"wf_cattr__per_product_admin_additional_fee\";s:33:\"_per_product_admin_additional_fee\";s:25:\"wf_cattr_dokan_dummy_data\";s:16:\"dokan_dummy_data\";s:21:\"wf_cattr__product_url\";s:12:\"_product_url\";s:21:\"wf_cattr__button_text\";s:12:\"_button_text\";}','off'),
(4364,'wf_feed_catalogall','a:4:{s:9:\"feedrules\";a:59:{s:8:\"provider\";s:8:\"facebook\";s:12:\"feed_country\";s:2:\"EG\";s:8:\"filename\";s:11:\"catalog-all\";s:8:\"feedType\";s:3:\"xml\";s:10:\"ftpenabled\";b:0;s:9:\"ftporsftp\";s:3:\"ftp\";s:7:\"ftphost\";s:0:\"\";s:7:\"ftpport\";s:2:\"21\";s:7:\"ftpuser\";s:0:\"\";s:11:\"ftppassword\";s:0:\"\";s:7:\"ftppath\";s:0:\"\";s:7:\"ftpmode\";s:6:\"active\";s:13:\"is_variations\";s:1:\"y\";s:14:\"variable_price\";s:5:\"first\";s:17:\"variable_quantity\";s:5:\"first\";s:12:\"feedLanguage\";N;s:12:\"feedCurrency\";s:3:\"EGP\";s:12:\"itemsWrapper\";s:8:\"products\";s:11:\"itemWrapper\";s:7:\"product\";s:9:\"delimiter\";s:1:\",\";s:9:\"enclosure\";s:6:\"double\";s:11:\"extraHeader\";s:0:\"\";s:7:\"vendors\";a:0:{}s:11:\"mattributes\";a:18:{i:0;s:2:\"id\";i:1;s:5:\"title\";i:2;s:11:\"description\";i:3;s:13:\"item_group_id\";i:4;s:4:\"link\";i:5;s:12:\"product_type\";i:6;s:19:\"fb_product_category\";i:7;s:5:\"image\";i:8;s:9:\"condition\";i:9;s:12:\"availability\";i:10;s:5:\"price\";i:11;s:10:\"sale_price\";i:12;s:5:\"brand\";i:13;s:8:\"images_1\";i:14;s:8:\"images_2\";i:15;s:8:\"images_3\";i:16;s:8:\"images_4\";i:17;s:8:\"images_5\";}s:6:\"prefix\";a:18:{i:0;s:0:\"\";i:1;s:0:\"\";i:2;s:0:\"\";i:3;s:0:\"\";i:4;s:0:\"\";i:5;s:0:\"\";i:6;s:0:\"\";i:7;s:0:\"\";i:8;s:0:\"\";i:9;s:0:\"\";i:10;s:0:\"\";i:11;s:0:\"\";i:12;s:0:\"\";i:13;s:0:\"\";i:14;s:0:\"\";i:15;s:0:\"\";i:16;s:0:\"\";i:17;s:0:\"\";}s:4:\"type\";a:18:{i:0;s:9:\"attribute\";i:1;s:9:\"attribute\";i:2;s:9:\"attribute\";i:3;s:9:\"attribute\";i:4;s:9:\"attribute\";i:5;s:9:\"attribute\";i:6;s:7:\"pattern\";i:7;s:9:\"attribute\";i:8;s:7:\"pattern\";i:9;s:9:\"attribute\";i:10;s:9:\"attribute\";i:11;s:9:\"attribute\";i:12;s:9:\"attribute\";i:13;s:9:\"attribute\";i:14;s:9:\"attribute\";i:15;s:9:\"attribute\";i:16;s:9:\"attribute\";i:17;s:9:\"attribute\";}s:10:\"attributes\";a:18:{i:0;s:2:\"id\";i:1;s:5:\"title\";i:2;s:11:\"description\";i:3;s:13:\"item_group_id\";i:4;s:4:\"link\";i:5;s:12:\"product_type\";i:6;s:1:\"0\";i:7;s:5:\"image\";i:8;s:1:\"0\";i:9;s:12:\"availability\";i:10;s:5:\"price\";i:11;s:13:\"current_price\";i:12;s:21:\"wf_taxo_product_brand\";i:13;s:7:\"image_1\";i:14;s:7:\"image_2\";i:15;s:7:\"image_3\";i:16;s:7:\"image_4\";i:17;s:7:\"image_5\";}s:7:\"default\";a:18:{i:0;s:0:\"\";i:1;s:0:\"\";i:2;s:0:\"\";i:3;s:0:\"\";i:4;s:0:\"\";i:5;s:0:\"\";i:6;s:0:\"\";i:7;s:0:\"\";i:8;s:3:\"new\";i:9;s:0:\"\";i:10;s:0:\"\";i:11;s:0:\"\";i:12;s:6:\"Trojix\";i:13;s:0:\"\";i:14;s:0:\"\";i:15;s:0:\"\";i:16;s:0:\"\";i:17;s:0:\"\";}s:6:\"suffix\";a:18:{i:0;s:0:\"\";i:1;s:0:\"\";i:2;s:0:\"\";i:3;s:0:\"\";i:4;s:0:\"\";i:5;s:0:\"\";i:6;s:0:\"\";i:7;s:0:\"\";i:8;s:0:\"\";i:9;s:0:\"\";i:10;s:4:\" EGP\";i:11;s:4:\" EGP\";i:12;s:0:\"\";i:13;s:0:\"\";i:14;s:0:\"\";i:15;s:0:\"\";i:16;s:0:\"\";i:17;s:0:\"\";}s:11:\"output_type\";a:18:{i:0;a:1:{i:0;s:1:\"1\";}i:1;a:1:{i:0;s:1:\"1\";}i:2;a:1:{i:0;s:2:\"11\";}i:3;a:1:{i:0;s:1:\"1\";}i:4;a:1:{i:0;s:1:\"1\";}i:5;a:1:{i:0;s:1:\"1\";}i:6;a:1:{i:0;s:1:\"1\";}i:7;a:1:{i:0;s:1:\"1\";}i:8;a:1:{i:0;s:1:\"1\";}i:9;a:1:{i:0;s:1:\"1\";}i:10;a:1:{i:0;s:1:\"6\";}i:11;a:1:{i:0;s:1:\"6\";}i:12;a:1:{i:0;s:1:\"1\";}i:13;a:1:{i:0;s:1:\"1\";}i:14;a:1:{i:0;s:1:\"1\";}i:15;a:1:{i:0;s:1:\"1\";}i:16;a:1:{i:0;s:1:\"1\";}i:17;a:1:{i:0;s:1:\"1\";}}s:5:\"limit\";a:18:{i:0;s:0:\"\";i:1;s:0:\"\";i:2;s:0:\"\";i:3;s:0:\"\";i:4;s:0:\"\";i:5;s:0:\"\";i:6;s:0:\"\";i:7;s:0:\"\";i:8;s:0:\"\";i:9;s:0:\"\";i:10;s:0:\"\";i:11;s:0:\"\";i:12;s:0:\"\";i:13;s:0:\"\";i:14;s:0:\"\";i:15;s:0:\"\";i:16;s:0:\"\";i:17;s:0:\"\";}s:15:\"composite_price\";s:17:\"all_product_price\";s:11:\"product_ids\";a:0:{}s:10:\"categories\";a:0:{}s:11:\"post_status\";a:1:{i:0;s:7:\"publish\";}s:11:\"filter_mode\";a:3:{s:11:\"product_ids\";s:7:\"include\";s:10:\"categories\";s:7:\"include\";s:11:\"post_status\";s:7:\"include\";}s:19:\"campaign_parameters\";a:5:{s:10:\"utm_source\";s:0:\"\";s:10:\"utm_medium\";s:0:\"\";s:12:\"utm_campaign\";s:0:\"\";s:8:\"utm_term\";s:0:\"\";s:11:\"utm_content\";s:0:\"\";}s:13:\"is_outOfStock\";b:0;s:12:\"is_backorder\";b:0;s:19:\"is_emptyDescription\";b:0;s:13:\"is_emptyImage\";b:0;s:13:\"is_emptyPrice\";b:0;s:18:\"product_visibility\";b:0;s:21:\"outofstock_visibility\";b:0;s:11:\"ptitle_show\";s:0:\"\";s:17:\"decimal_separator\";s:0:\"\";s:18:\"thousand_separator\";s:0:\"\";s:8:\"decimals\";s:0:\"\";s:16:\"feed_option_name\";s:0:\"\";s:7:\"feed_id\";s:0:\"\";s:20:\"meta-box-order-nonce\";s:0:\"\";s:16:\"shipping_country\";s:0:\"\";s:11:\"tax_country\";s:0:\"\";s:11:\"str_replace\";a:1:{i:0;a:3:{s:7:\"subject\";s:0:\"\";s:6:\"search\";s:0:\"\";s:7:\"replace\";s:0:\"\";}}s:10:\"concatType\";a:0:{}s:10:\"fattribute\";a:0:{}s:9:\"condition\";a:0:{}s:13:\"filterCompare\";a:0:{}s:7:\"wf_tabs\";b:1;}s:3:\"url\";s:82:\"https://aramega.com/trojix/wp-content/uploads/woo-feed/facebook/xml/catalogall.xml\";s:12:\"last_updated\";s:19:\"2025-06-28 15:38:57\";s:6:\"status\";i:1;}','off'),
(4367,'pys_facebook','a:67:{s:7:\"enabled\";b:1;s:8:\"pixel_id\";a:1:{i:0;s:15:\"655507370870654\";}s:25:\"advanced_matching_enabled\";b:1;s:15:\"remove_metadata\";b:1;s:21:\"general_event_enabled\";b:1;s:21:\"comment_event_enabled\";b:1;s:22:\"download_event_enabled\";b:1;s:18:\"form_event_enabled\";b:1;s:22:\"woo_variable_as_simple\";b:0;s:14:\"woo_content_id\";s:10:\"product_id\";s:21:\"woo_content_id_prefix\";s:0:\"\";s:21:\"woo_content_id_suffix\";s:0:\"\";s:20:\"woo_content_id_logic\";s:7:\"default\";s:19:\"woo_wpml_unified_id\";b:0;s:20:\"woo_purchase_enabled\";b:1;s:29:\"woo_initiate_checkout_enabled\";b:1;s:28:\"woo_remove_from_cart_enabled\";b:1;s:23:\"woo_add_to_cart_enabled\";b:1;s:24:\"woo_view_content_enabled\";b:1;s:25:\"woo_view_category_enabled\";b:1;s:14:\"edd_content_id\";s:11:\"download_id\";s:21:\"edd_content_id_prefix\";s:0:\"\";s:21:\"edd_content_id_suffix\";s:0:\"\";s:20:\"edd_purchase_enabled\";b:1;s:29:\"edd_initiate_checkout_enabled\";b:1;s:28:\"edd_remove_from_cart_enabled\";b:1;s:23:\"edd_add_to_cart_enabled\";b:1;s:24:\"edd_view_content_enabled\";b:1;s:25:\"edd_view_category_enabled\";b:1;s:16:\"fdp_content_type\";s:7:\"product\";s:24:\"fdp_view_content_enabled\";b:0;s:25:\"fdp_view_category_enabled\";b:0;s:23:\"fdp_add_to_cart_enabled\";b:0;s:33:\"fdp_add_to_cart_event_fire_scroll\";s:2:\"50\";s:20:\"fdp_purchase_enabled\";b:0;s:23:\"fdp_purchase_event_fire\";s:10:\"scroll_pos\";s:30:\"fdp_purchase_event_fire_scroll\";s:2:\"90\";s:27:\"fdp_purchase_event_fire_css\";s:0:\"\";s:12:\"fdp_pixel_id\";s:0:\"\";s:20:\"fdp_use_own_pixel_id\";b:0;s:12:\"fdp_currency\";s:3:\"USD\";s:21:\"fdp_add_to_cart_value\";s:1:\"0\";s:18:\"fdp_purchase_value\";s:1:\"0\";s:14:\"use_server_api\";b:1;s:23:\"server_access_api_token\";a:1:{i:0;s:198:\"EAFUxfUbEOMwBOZCz3nbYSPft96kxMtd7DfeXm76yEDXt8j5YuzhCv892bEOYPf9xPXSsoO8nJYD4WcHVjpYC21spon7gzZBZBdcCtxf9TuVa58cZCeQsyuBZATlWEKaZCMIfxk3NlDj1VtQURauekgWDVfmEULIIZC9btC3oiU9gvWrdaqqJ3KJ8K6FUpRw1gZDZD\";}s:19:\"test_api_event_code\";a:0:{}s:33:\"test_api_event_code_expiration_at\";a:0:{}s:35:\"complete_registration_event_enabled\";b:1;s:41:\"woo_complete_registration_fire_every_time\";b:0;s:42:\"woo_complete_registration_use_custom_value\";b:1;s:38:\"woo_complete_registration_custom_value\";s:5:\"price\";s:39:\"woo_complete_registration_percent_value\";s:0:\"\";s:38:\"woo_complete_registration_global_value\";s:0:\"\";s:42:\"woo_complete_registration_custom_value_old\";s:0:\"\";s:42:\"woo_complete_registration_send_from_server\";b:1;s:15:\"verify_meta_tag\";a:0:{}s:28:\"automatic_event_form_enabled\";b:1;s:30:\"automatic_event_signup_enabled\";b:1;s:29:\"automatic_event_login_enabled\";b:1;s:32:\"automatic_event_download_enabled\";b:1;s:31:\"automatic_event_comment_enabled\";b:1;s:30:\"automatic_event_scroll_enabled\";b:1;s:36:\"automatic_event_time_on_page_enabled\";b:1;s:30:\"automatic_event_search_enabled\";b:1;s:16:\"disable_noscript\";b:0;s:15:\"enabled_medical\";b:0;s:26:\"do_not_track_medical_param\";a:8:{i:0;s:9:\"event_url\";i:1;s:10:\"post_title\";i:2;s:10:\"page_title\";i:3;s:12:\"landing_page\";i:4;s:12:\"content_name\";i:5;s:10:\"categories\";i:6;s:13:\"category_name\";i:7;s:4:\"tags\";}}','auto'),
(4368,'pys_ga','a:48:{s:7:\"enabled\";b:1;s:20:\"is_enable_debug_mode\";a:0:{}s:11:\"tracking_id\";a:1:{i:0;s:12:\"G-0VXQX31BV9\";}s:23:\"enable_server_container\";b:0;s:22:\"first_party_collection\";b:1;s:20:\"server_container_url\";a:0:{}s:13:\"transport_url\";a:0:{}s:20:\"cross_domain_enabled\";b:0;s:28:\"cross_domain_accept_incoming\";b:0;s:20:\"cross_domain_domains\";a:0:{}s:21:\"comment_event_enabled\";b:1;s:22:\"download_event_enabled\";b:1;s:18:\"form_event_enabled\";b:1;s:22:\"woo_variable_as_simple\";b:0;s:30:\"woo_variations_use_parent_name\";b:0;s:14:\"woo_content_id\";s:10:\"product_id\";s:21:\"woo_content_id_prefix\";s:0:\"\";s:21:\"woo_content_id_suffix\";s:0:\"\";s:19:\"woo_wpml_unified_id\";b:0;s:20:\"woo_purchase_enabled\";b:1;s:29:\"woo_initiate_checkout_enabled\";b:1;s:28:\"woo_remove_from_cart_enabled\";b:1;s:23:\"woo_add_to_cart_enabled\";b:1;s:24:\"woo_view_content_enabled\";b:1;s:25:\"woo_view_category_enabled\";b:1;s:21:\"woo_view_cart_enabled\";b:1;s:14:\"edd_content_id\";s:11:\"download_id\";s:21:\"edd_content_id_prefix\";s:0:\"\";s:21:\"edd_content_id_suffix\";s:0:\"\";s:20:\"edd_purchase_enabled\";b:1;s:29:\"edd_initiate_checkout_enabled\";b:1;s:28:\"edd_remove_from_cart_enabled\";b:1;s:23:\"edd_add_to_cart_enabled\";b:1;s:24:\"edd_view_content_enabled\";b:1;s:25:\"edd_view_category_enabled\";b:1;s:28:\"disable_advertising_features\";b:0;s:35:\"disable_advertising_personalization\";b:0;s:28:\"automatic_event_form_enabled\";b:1;s:30:\"automatic_event_signup_enabled\";b:1;s:29:\"automatic_event_login_enabled\";b:1;s:32:\"automatic_event_download_enabled\";b:1;s:31:\"automatic_event_comment_enabled\";b:1;s:30:\"automatic_event_scroll_enabled\";b:1;s:36:\"automatic_event_time_on_page_enabled\";b:1;s:27:\"automatic_event_404_enabled\";b:1;s:30:\"automatic_event_search_enabled\";b:1;s:16:\"disable_noscript\";b:0;s:22:\"custom_page_view_event\";b:0;}','auto'),
(4369,'pys_gtm','a:98:{s:7:\"enabled\";b:1;s:10:\"main_pixel\";a:0:{}s:18:\"main_pixel_enabled\";b:1;s:20:\"is_enable_debug_mode\";s:0:\"\";s:20:\"server_container_url\";s:0:\"\";s:10:\"pixel_lang\";s:0:\"\";s:13:\"track_user_id\";b:0;s:6:\"gtm_id\";a:0:{}s:19:\"gtm_just_data_layer\";b:0;s:18:\"gtm_dataLayer_name\";s:9:\"dataLayer\";s:20:\"gtm_container_domain\";s:24:\"www.googletagmanager.com\";s:24:\"gtm_container_identifier\";s:3:\"gtm\";s:8:\"gtm_auth\";s:0:\"\";s:11:\"gtm_preview\";s:0:\"\";s:15:\"track_page_view\";b:0;s:14:\"container_code\";b:1;s:10:\"check_list\";s:8:\"disabled\";s:18:\"check_list_contain\";a:0:{}s:20:\"select_all_blacklist\";a:0:{}s:13:\"hide_this_tag\";b:0;s:21:\"hide_this_tag_contain\";a:0:{}s:21:\"hide_this_tag_timeout\";i:24;s:13:\"hide_this_url\";b:0;s:21:\"hide_this_url_contain\";a:0:{}s:14:\"is_fire_signal\";b:1;s:11:\"is_fire_woo\";b:1;s:11:\"is_fire_edd\";b:1;s:22:\"woo_variable_as_simple\";b:0;s:32:\"woo_variable_data_select_product\";b:0;s:30:\"woo_variations_use_parent_name\";b:0;s:14:\"woo_content_id\";s:10:\"product_id\";s:21:\"woo_content_id_prefix\";s:0:\"\";s:21:\"woo_content_id_suffix\";s:0:\"\";s:19:\"woo_wpml_unified_id\";b:0;s:28:\"woo_frequent_shopper_enabled\";b:1;s:22:\"woo_vip_client_enabled\";b:1;s:21:\"woo_big_whale_enabled\";b:1;s:26:\"woo_FirstTimeBuyer_enabled\";b:1;s:29:\"woo_ReturningCustomer_enabled\";b:1;s:20:\"woo_purchase_enabled\";b:1;s:29:\"woo_initiate_checkout_enabled\";b:1;s:40:\"woo_initiate_set_checkout_option_enabled\";b:1;s:40:\"woo_initiate_checkout_progress_f_enabled\";b:1;s:40:\"woo_initiate_checkout_progress_l_enabled\";b:1;s:40:\"woo_initiate_checkout_progress_e_enabled\";b:1;s:40:\"woo_initiate_checkout_progress_o_enabled\";b:1;s:28:\"woo_remove_from_cart_enabled\";b:1;s:23:\"woo_add_to_cart_enabled\";b:1;s:24:\"woo_view_content_enabled\";b:1;s:25:\"woo_view_category_enabled\";b:1;s:21:\"woo_view_cart_enabled\";b:1;s:21:\"woo_affiliate_enabled\";b:1;s:18:\"woo_paypal_enabled\";b:1;s:26:\"woo_select_content_enabled\";b:1;s:26:\"woo_view_item_list_enabled\";b:1;s:14:\"edd_content_id\";s:11:\"download_id\";s:21:\"edd_content_id_prefix\";s:0:\"\";s:21:\"edd_content_id_suffix\";s:0:\"\";s:28:\"edd_frequent_shopper_enabled\";b:1;s:22:\"edd_vip_client_enabled\";b:1;s:21:\"edd_big_whale_enabled\";b:1;s:20:\"edd_purchase_enabled\";b:1;s:29:\"edd_initiate_checkout_enabled\";b:1;s:28:\"edd_remove_from_cart_enabled\";b:1;s:23:\"edd_add_to_cart_enabled\";b:1;s:24:\"edd_view_content_enabled\";b:1;s:25:\"edd_view_category_enabled\";b:1;s:35:\"disable_advertising_personalization\";b:0;s:28:\"wcf_cart_flows_event_enabled\";b:1;s:22:\"wcf_step_event_enabled\";b:1;s:22:\"wcf_bump_event_enabled\";b:1;s:12:\"wcf_pixel_id\";s:0:\"\";s:37:\"automatic_event_internal_link_enabled\";b:1;s:37:\"automatic_event_outbound_link_enabled\";b:1;s:29:\"automatic_event_video_enabled\";b:1;s:38:\"automatic_event_video_youtube_disabled\";b:0;s:32:\"automatic_event_tel_link_enabled\";b:1;s:34:\"automatic_event_email_link_enabled\";b:1;s:28:\"automatic_event_form_enabled\";b:1;s:30:\"automatic_event_signup_enabled\";b:1;s:29:\"automatic_event_login_enabled\";b:1;s:32:\"automatic_event_download_enabled\";b:1;s:31:\"automatic_event_comment_enabled\";b:1;s:31:\"automatic_event_adsense_enabled\";b:1;s:30:\"automatic_event_scroll_enabled\";b:1;s:36:\"automatic_event_time_on_page_enabled\";b:1;s:27:\"automatic_event_404_enabled\";b:0;s:30:\"automatic_event_search_enabled\";b:1;s:20:\"woo_enable_list_shop\";b:1;s:23:\"woo_enable_list_related\";b:1;s:24:\"woo_enable_list_category\";b:1;s:20:\"woo_enable_list_tags\";b:1;s:26:\"woo_enable_list_shortcodes\";b:1;s:22:\"woo_track_item_list_id\";b:0;s:24:\"woo_track_item_list_name\";b:0;s:29:\"woo_view_item_list_track_name\";b:0;s:16:\"disable_noscript\";b:0;s:24:\"enable_remarketing_param\";b:1;}','auto'),
(4370,'pys_head_footer','a:18:{s:7:\"enabled\";b:1;s:12:\"head_enabled\";b:1;s:8:\"head_any\";s:0:\"\";s:12:\"head_desktop\";s:0:\"\";s:11:\"head_mobile\";s:0:\"\";s:14:\"footer_enabled\";b:1;s:10:\"footer_any\";s:0:\"\";s:14:\"footer_desktop\";s:0:\"\";s:13:\"footer_mobile\";s:0:\"\";s:26:\"woo_order_received_enabled\";b:1;s:31:\"woo_order_received_head_enabled\";b:1;s:27:\"woo_order_received_head_any\";s:0:\"\";s:31:\"woo_order_received_head_desktop\";s:0:\"\";s:30:\"woo_order_received_head_mobile\";s:0:\"\";s:33:\"woo_order_received_footer_enabled\";b:1;s:29:\"woo_order_received_footer_any\";s:0:\"\";s:33:\"woo_order_received_footer_desktop\";s:0:\"\";s:32:\"woo_order_received_footer_mobile\";s:0:\"\";}','auto'),
(4375,'pys_free_fixed_dismissed_notices','a:3:{i:0;s:25:\"free_block_1_message_1_v1\";i:1;s:25:\"free_block_1_message_2_v3\";i:2;s:25:\"free_block_1_message_3_v2\";}','auto'),
(4376,'pys_facebook_no_pixel_dismissed_at','1751127118','auto'),
(4377,'pys_ga_UA_notice_dismissed_at','1751127119','auto'),
(4378,'_site_transient_timeout_wp_theme_files_patterns-00cba9c439a769b2e5a5570910500f48','1751129631','off'),
(4379,'_site_transient_wp_theme_files_patterns-00cba9c439a769b2e5a5570910500f48','a:2:{s:7:\"version\";s:3:\"1.0\";s:8:\"patterns\";a:0:{}}','off'),
(4380,'_site_transient_timeout_wp_theme_files_patterns-de0c7fa38b21291eabb0799c9037b2b8','1751129631','off'),
(4381,'_site_transient_wp_theme_files_patterns-de0c7fa38b21291eabb0799c9037b2b8','a:2:{s:7:\"version\";s:5:\"6.4.2\";s:8:\"patterns\";a:0:{}}','off');

--
