diff --git a/examples/astro/previews/.wp-env.json b/examples/astro/previews/.wp-env.json new file mode 100644 index 00000000..029eb757 --- /dev/null +++ b/examples/astro/previews/.wp-env.json @@ -0,0 +1,25 @@ +{ + "phpVersion": "8.3", + "plugins": [ + "https://github.com/wp-graphql/wp-graphql/releases/latest/download/wp-graphql.zip", + "https://github.com/wpengine/hwptoolkit/releases/download/%40wpengine%2Fhwp-previews-wordpress-plugin-0.0.8/hwp-previews.zip", + "https://github.com/wp-graphql/wpgraphql-ide/releases/latest/download/wpgraphql-ide.zip" + ], + "themes": ["https://downloads.wordpress.org/theme/nude.1.2.zip"], + "config": { + "WP_DEBUG": true, + "SCRIPT_DEBUG": false, + "GRAPHQL_DEBUG": true, + "WP_DEBUG_LOG": true, + "WP_DEBUG_DISPLAY": false, + "SAVEQUERIES": false + }, + "mappings": { + "db": "./wp-env/db", + "wp-content/uploads": "./wp-env/uploads", + ".htaccess": "./wp-env/setup/.htaccess" + }, + "lifecycleScripts": { + "afterStart": "wp-env run cli -- wp theme activate nude && wp-env run cli -- wp theme delete --all && wp-env run cli -- wp rewrite structure '/%postname%/' && wp-env run cli -- wp rewrite flush" + } +} diff --git a/examples/astro/previews/README.md b/examples/astro/previews/README.md new file mode 100644 index 00000000..ad71d533 --- /dev/null +++ b/examples/astro/previews/README.md @@ -0,0 +1,18 @@ +# Astro Template HIerarchy and Data fetching w/URQL Example + +In this example we show how to implement the WP Template Hierarchy in Astro for use with a Headless WordPress backend using WPGraphQL. We use URQL for all routing and fetching page content. + +## Getting Started + +> [!IMPORTANT] +> Docker Desktop needs to be installed to run WordPress locally. + +1. Run `npm run example:setup` to install dependencies and configure the local WP server. +2. Run `npm run example:start` to start the WP server and Astro development server. + +> [!NOTE] +> When you kill the long running process this will not shutdown the local WP instance, only Astro. You must run `npm run example:stop` to kill the local WP server. + +## Trouble Shooting + +To reset the WP server and re-run setup you can run `npm run example:prune` and confirm "Yes" at any prompts. diff --git a/examples/astro/previews/example-app/.gitignore b/examples/astro/previews/example-app/.gitignore new file mode 100644 index 00000000..016b59ea --- /dev/null +++ b/examples/astro/previews/example-app/.gitignore @@ -0,0 +1,24 @@ +# build output +dist/ + +# generated types +.astro/ + +# dependencies +node_modules/ + +# logs +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* + +# environment variables +.env +.env.production + +# macOS-specific files +.DS_Store + +# jetbrains setting folder +.idea/ diff --git a/examples/astro/previews/example-app/README.md b/examples/astro/previews/example-app/README.md new file mode 100644 index 00000000..ff19a3e7 --- /dev/null +++ b/examples/astro/previews/example-app/README.md @@ -0,0 +1,48 @@ +# Astro Starter Kit: Basics + +```sh +npm create astro@latest -- --template basics +``` + +[](https://stackblitz.com/github/withastro/astro/tree/latest/examples/basics) +[](https://codesandbox.io/p/sandbox/github/withastro/astro/tree/latest/examples/basics) +[](https://codespaces.new/withastro/astro?devcontainer_path=.devcontainer/basics/devcontainer.json) + +> 🧑🚀 **Seasoned astronaut?** Delete this file. Have fun! + + + +## 🚀 Project Structure + +Inside of your Astro project, you'll see the following folders and files: + +```text +/ +├── public/ +│ └── favicon.svg +├── src/ +│ ├── layouts/ +│ │ └── Layout.astro +│ └── pages/ +│ └── index.astro +└── package.json +``` + +To learn more about the folder structure of an Astro project, refer to [our guide on project structure](https://docs.astro.build/en/basics/project-structure/). + +## 🧞 Commands + +All commands are run from the root of the project, from a terminal: + +| Command | Action | +| :------------------------ | :----------------------------------------------- | +| `npm install` | Installs dependencies | +| `npm run dev` | Starts local dev server at `localhost:4321` | +| `npm run build` | Build your production site to `./dist/` | +| `npm run preview` | Preview your build locally, before deploying | +| `npm run astro ...` | Run CLI commands like `astro add`, `astro check` | +| `npm run astro -- --help` | Get help using the Astro CLI | + +## 👀 Want to learn more? + +Feel free to check [our documentation](https://docs.astro.build) or jump into our [Discord server](https://astro.build/chat). diff --git a/examples/astro/previews/example-app/astro.config.mjs b/examples/astro/previews/example-app/astro.config.mjs new file mode 100644 index 00000000..245b4b2d --- /dev/null +++ b/examples/astro/previews/example-app/astro.config.mjs @@ -0,0 +1,7 @@ +// @ts-check +import { defineConfig } from "astro/config"; + +// https://astro.build/config +export default defineConfig({ + output: "server", +}); diff --git a/examples/astro/previews/example-app/package.json b/examples/astro/previews/example-app/package.json new file mode 100644 index 00000000..07f65ee1 --- /dev/null +++ b/examples/astro/previews/example-app/package.json @@ -0,0 +1,16 @@ +{ + "name": "astro-previews-example-app", + "description": "A template for Astro with WordPress and URQL", + "type": "module", + "version": "0.0.1", + "scripts": { + "dev": "astro dev", + "build": "astro build", + "preview": "astro preview", + "astro": "astro" + }, + "dependencies": { + "@urql/core": "^5.1.1", + "astro": "^5.6.1" + } +} diff --git a/examples/astro/previews/example-app/public/favicon.svg b/examples/astro/previews/example-app/public/favicon.svg new file mode 100644 index 00000000..f157bd1c --- /dev/null +++ b/examples/astro/previews/example-app/public/favicon.svg @@ -0,0 +1,9 @@ + diff --git a/examples/astro/previews/example-app/src/assets/astro.svg b/examples/astro/previews/example-app/src/assets/astro.svg new file mode 100644 index 00000000..8cf8fb0c --- /dev/null +++ b/examples/astro/previews/example-app/src/assets/astro.svg @@ -0,0 +1 @@ + diff --git a/examples/astro/previews/example-app/src/assets/background.svg b/examples/astro/previews/example-app/src/assets/background.svg new file mode 100644 index 00000000..4b2be0ac --- /dev/null +++ b/examples/astro/previews/example-app/src/assets/background.svg @@ -0,0 +1 @@ + diff --git a/examples/astro/previews/example-app/src/components/Nav.astro b/examples/astro/previews/example-app/src/components/Nav.astro new file mode 100644 index 00000000..d35cab7d --- /dev/null +++ b/examples/astro/previews/example-app/src/components/Nav.astro @@ -0,0 +1,50 @@ +--- +/** + * We've hard coded this but you can use the client to fetch this data from WP Menus! + * import { client, gql } from "../lib/client"; + */ +--- + + + diff --git a/examples/astro/previews/example-app/src/components/TemplateHierarchyInfo.astro b/examples/astro/previews/example-app/src/components/TemplateHierarchyInfo.astro new file mode 100644 index 00000000..3bbaafe8 --- /dev/null +++ b/examples/astro/previews/example-app/src/components/TemplateHierarchyInfo.astro @@ -0,0 +1,52 @@ +--- +const template = Astro.locals.templateData; + +if (!template) { + return null; +} +--- + + diff --git a/examples/astro/previews/example-app/src/content.config.ts b/examples/astro/previews/example-app/src/content.config.ts new file mode 100644 index 00000000..fc82f890 --- /dev/null +++ b/examples/astro/previews/example-app/src/content.config.ts @@ -0,0 +1,32 @@ +import { defineCollection, z } from "astro:content"; +import { readdir } from "node:fs/promises"; +import { join } from "node:path"; + +const TEMPLATE_PATH = "wp-templates"; + +const templates = defineCollection({ + loader: async () => { + const files = await readdir(join("src", "pages", TEMPLATE_PATH)); + return files.map((file) => { + const slug = file.replace(".astro", ""); + + if (slug === "index") { + return { + id: slug, + path: join(TEMPLATE_PATH, "/"), + }; + } + + return { + id: slug, + path: join(TEMPLATE_PATH, slug), + }; + }); + }, + schema: z.object({ + id: z.string(), + path: z.string(), + }), +}); + +export const collections = { templates }; diff --git a/examples/astro/previews/example-app/src/env.d.ts b/examples/astro/previews/example-app/src/env.d.ts new file mode 100644 index 00000000..f873a378 --- /dev/null +++ b/examples/astro/previews/example-app/src/env.d.ts @@ -0,0 +1,6 @@ +declare namespace App { + interface Locals { + templateData?: import("./lib/templateHierarchy").TemplateData; + isPreview?: boolean; + } +} diff --git a/examples/astro/previews/example-app/src/layouts/Layout.astro b/examples/astro/previews/example-app/src/layouts/Layout.astro new file mode 100644 index 00000000..7e3e8b01 --- /dev/null +++ b/examples/astro/previews/example-app/src/layouts/Layout.astro @@ -0,0 +1,36 @@ +--- +import Nav from "../components/Nav.astro"; +import TemplateHierarchyInfo from "../components/TemplateHierarchyInfo.astro"; +--- + + + +
+ + + + ++ I can't find the page you are looking for. Please check the info above for + some insights. +
+Ooops! Please check the info above or server logs for insights.
+
+ {JSON.stringify(results, null, 2)}
+
+I like sharing my life!
+ ++ This is the index template for the WordPress template hierarchy. + It will be used to render the WordPress content if no more appropriate template + is provided (e.g. front-page, single, singular, archive, etc). It should never + be used directly. +
+ + {data.node.title && } + {data.node.content && } + { + !data.node.content && !data.node.title && ( +
+ {JSON.stringify(data ?? {}, null, 2)}
+
+ )
+ }
+We’re excited to announce that the full schedule for WordCamp US 2025 has been published! From August 26–29 in Portland, Oregon, join web creators, innovators, and community leaders for four days of learning, collaboration, and inspiration. This year’s lineup brings together sessions on everything from cutting-edge AI to hands-on workshops, performance, accessibility, design, and the future of WordPress.
\n\n\n\nCheck out the full schedule and start planning your WordCamp experience.
\n\n\n\n \n\n\n\nKicking off the week on Tuesday, August 26 is Contributor Day, it is your chance to roll up your sleeves and make a direct impact on WordPress. Whether you’re a seasoned developer, creative designer, translator, marketer, or simply passionate about open source, there’s a place for you to get involved. Join WordPress teams working on real projects, share your skills, and connect with people across the global community. Contributor Day is also a fantastic place for hiring managers or business owners to meet emerging talent and see contributors in action. Lunch is provided, and both in-person and select remote participation options are available. If you’ve ever wanted to help shape the future of WordPress, this is your moment!
Read more: Start planning your Contributor Day activities >>
\n\n\n\nShowcase Day on Wednesday, August 27, shines a spotlight on what’s possible with WordPress. Get inspired by live demos, case studies, and actionable presentations from experts and innovators using WordPress in creative and impactful ways. You’ll see how changemakers, nonprofits, publishers, and agencies use WordPress to solve real-world problems, build new products, and drive the web forward. Highlights include hands-on workshops, technical talks, and practical sessions covering everything from design systems to modern AI. It’s a full day dedicated to celebrating the talent, creativity, and innovation of the WordPress community.
\n\n\n\nRead more: See where these inspirational showcases take you >>
\n\n\n\nThe main event days for Thursday and Friday, August 28-29, feature a robust mix of technical deep-dives, product masterclasses, and sessions designed for all experience levels. Whether you’re a developer, designer, business owner, or just starting out, you’ll find plenty to explore—from future-focused discussions on AI and performance to hands-on workshops and networking events that bring the community together.
\n\n\n\nKeynote Highlights:
\n\n\n\nWith dozens of sessions across multiple tracks, plus workshops and networking opportunities, WordCamp US is set to be an unforgettable experience. Don’t miss your chance to connect, share ideas, and help shape the future of the web.
\n\n\n\nCheck out the full schedule and start planning your WordCamp experience.
\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:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"19004\";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:1;a:6:{s:4:\"data\";s:63:\"\n \n \n \n \n \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:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:54:\"Maintenance Releases for WordPress branches 4.7 to 6.7\";s: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:90:\"https://wordpress.org/news/2025/08/maintenance-releases-for-wordpress-branches-4-7-to-6-7/\";s: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, 05 Aug 2025 19:11:05 +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:8:\"category\";a:3:{i:0;a:5:{s:4:\"data\";s:7:\"General\";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:1;a:5:{s:4:\"data\";s:14:\"minor-releases\";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:2;a:5:{s:4:\"data\";s:8:\"releases\";s: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=18997\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}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:374:\"Following on from the WordPress 6.8.2 maintenance release last month, the included update to the root security certificate bundle has been backported to all branches back to 4.7. This ensures that when your site performs server-side HTTP requests, the most up-to-date information about trusted security certificates is used. Further information can be found on the […]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:15:\"John Blackbourn\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:2119:\"\nFollowing on from the WordPress 6.8.2 maintenance release last month, the included update to the root security certificate bundle has been backported to all branches back to 4.7. This ensures that when your site performs server-side HTTP requests, the most up-to-date information about trusted security certificates is used. Further information can be found on the Core Trac ticket.
\n\n\n\nA new maintenance release for each branch from 4.7 to 6.7 is now available. If you have sites on these branches and they support automatic background updates, the update process will begin automatically.
\n\n\n\nThe latest and only supported version of WordPress remains as 6.8.2. This is being done as a courtesy for sites still running older versions of WordPress. You can download WordPress 6.8.2 from WordPress.org, or visit your WordPress Dashboard, click “Updates”, and then click “Update Now”.
\n\n\n\nSpecial thanks to @desrosj, @ocean90, @davidbaumwald, @peterwilsoncc, @jorbin, @estelaris, and @johnbillion for backporting and releasing this update.
\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:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"18997\";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:2;a:6:{s:4:\"data\";s:63:\"\n \n \n \n \n \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:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"WordPress 6.8.2 Maintenance Release\";s: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:71:\"https://wordpress.org/news/2025/07/wordpress-6-8-2-maintenance-release/\";s: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, 15 Jul 2025 15:41:50 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:3:{i:0;a:5:{s:4:\"data\";s:8:\"Releases\";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:1;a:5:{s:4:\"data\";s:14:\"minor-releases\";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:2;a:5:{s:4:\"data\";s:8:\"releases\";s: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=18903\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}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:357:\"WordPress 6.8.2 is now available! This minor release includes fixes for 20 Core tickets and 15 Block Editor issues. For a full list of bug fixes, please refer to the release candidate announcement. WordPress 6.8.2 is a short-cycle maintenance release. More maintenance releases may be made available throughout 2025. If you have sites that support […]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:9:\"Jb Audras\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:10720:\"\nThis minor release includes fixes for 20 Core tickets and 15 Block Editor issues. For a full list of bug fixes, please refer to the release candidate announcement.
\n\n\n\nWordPress 6.8.2 is a short-cycle maintenance release. More maintenance releases may be made available throughout 2025.
\n\n\n\nIf you have sites that support automatic background updates, the update process will begin automatically.
\n\n\n\nYou can download WordPress 6.8.2 from WordPress.org, or visit your WordPress Dashboard, click “Updates”, and then click “Update Now”. For more information on this release, please visit the HelpHub version page.
\n\n\n\nThis is not directly related to the 6.8.2 maintenance release, but branches 4.1 to 4.6 had their final release today. These branches won’t receive any security update anymore.
\n\n\n\nWordPress 6.8.2 was led by Jb Audras, Estela Rueda and Zunaid Amin.
\n\n\n\nSpecial thanks to @davidbaumwald, @sergeybiryukov, @mamaduka, @wildworks and @jorbin for their help on specific release tasks.
\n\n\n\nWordPress 6.8.2 would not have been possible without the contributions of the following 96 people. Their asynchronous coordination to deliver maintenance fixes into a stable release is a testament to the power and capability of the WordPress community.
\n\n\n\nAaron Jorbin, Adam Silverstein, Adam Zieliński, Aki Hamano, Alex Stine, Anatol Broder, Andrea Fercia, Andrew Nacin, Ankit Kumar Shah, annezazu, Azhar Deraiya, Benjamin Gosset, Brandon Hubbard, Brandon Kraft, brhodes, Carolina Nymark, Chris Zarate, Courtney Robertson, Daniel Richards, Darshit Rajyaguru, David Baumwald, Dennis Snell, Dhruvang21, Dilip Bheda, Dion Hulse, divinenephron, dustintechsmith, Eric Andrew Lewis, Eshaan Dabasiya, Estela Rueda, Evan Herman, Fabian Kägy, Faisal Ahammad, Felix Arntz, Gary Pendergast, Gaurang Dabhi, George Mamadashvili, gernberg, Greg Ziółkowski, Harsh Gajipara, HelgaTheViking, Himanshu Pathak, Jb Audras, Jeffrey Paul, Jenny Dupuy, Jessica Lyschik, Jigar Panchal, Joe Dolson, Joe McGill, John Blackbourn, John Parris, Jon Surrell, Jonathan Desrosiers, Jonny Harris, Kausar Alam, Kishan Jasani, Marin Atanasov, Matt Mullenweg, Matthias Pfefferle, megane9988, Moses Cursor Ssebunya, Mukesh Panchal, mwillman1991, Nazar Hotsa, nidhidhandhukiya, Nikunj Hatkar, oferlaor, Olga Gleckler, Pascal Birchler, paulstanos, Peter Wilson, puggan, Ravi Gadhiya, Riad Benguella, Rolly Bueno, room34, Sainath Poojary, Sajjad Hossain Sagor, sam_a, Sandeep Dahiya, Sergey Biryukov, Shane Muirhead, siliconforks, SirLouen, Stephen Bernhardt, Sukhendu Sekhar Guria, Tammie Lister, Tobias Bäthge, Travis Smith, Ugyen Dorji, uxl, Weston Ruter, whaze, Yash B, Yogesh Bhutkar, and Zunaid Amin
\n\n\n\nTo get involved in WordPress core development, head over to Trac, pick a ticket, and join the conversation on Slack, in the #core and #6-8-release-leads channels. Need help? Check out the Core Contributor Handbook.
\n\n\n\nThanks to @estelaris and @zunaid321 for proofreading.
\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:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"18903\";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:3;a:6:{s:4:\"data\";s:60:\"\n \n \n \n \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:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:71:\"Celebrating Kim Parsell: 2025 WordCamp US Scholarship Applications 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:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:87:\"https://wordpress.org/news/2025/07/kim-parsell-2025-wcus-scholarship-applications-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:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 14 Jul 2025 18:57:47 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:2:{i:0;a:5:{s:4:\"data\";s:9:\"Community\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:8:\"WordCamp\";s: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=18911\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}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:364:\"The WordPress Foundation is pleased to announce the return of the Kim Parsell Memorial Scholarship for WordCamp US 2025. Applications are being accepted until July 25, 2025. Remembering Kim Parsell Kim Parsell was a dedicated contributor and a beloved member of the WordPress community. Her passion for open source and her welcoming spirit inspired many, […]\";s: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:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:6182:\"\nThe WordPress Foundation is pleased to announce the return of the Kim Parsell Memorial Scholarship for WordCamp US 2025. Applications are being accepted until July 25, 2025.
\n\n\n\nKim Parsell was a dedicated contributor and a beloved member of the WordPress community. Her passion for open source and her welcoming spirit inspired many, both online and in person. Each year at WordCamp US, the WordPress Foundation celebrates Kim’s legacy by supporting contributors who share her commitment and enthusiasm. The Kim Parsell Memorial Scholarship aims to make it easier for deserving community members to attend WordCamp US, reflecting Kim’s belief in making WordPress accessible and inclusive for all.
\nIf you’re unfamiliar with Kim’s story or her invaluable role in the community, we encourage you to read these heartfelt tributes collected from friends and colleagues.
\nThis year, a single scholarship will be awarded. To qualify, applicants must:
\n\n\n\nIf you meet these qualifications, we invite you to apply before the July 25 deadline. All applicants will be notified of the decision by August 7, 2025.
\n\n\n\nFor additional information, visit the Kim Parsell Memorial Scholarship page hosted by the WordPress Foundation.
\n\n\n\nReady to Apply?
\n\n\n\n\n\n\n\n \n\n\n\n\nHelp us spread the word about this opportunity and make WordCamp US 2025 even more special.
\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:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"18911\";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:4;a:6:{s:4:\"data\";s:63:\"\n \n \n \n \n \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:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:92:\"Introducing WordPress Credits: A New Contribution Internship Program for University Students\";s: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:127:\"https://wordpress.org/news/2025/07/introducing-wordpress-credits-a-new-contribution-internship-program-for-university-students/\";s: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, 10 Jul 2025 16:56:52 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:3:{i:0;a:5:{s:4:\"data\";s:9:\"Community\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:9:\"community\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:2;a:5:{s:4:\"data\";s:17:\"WordPress Credits\";s: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=18913\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}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:393:\"The WordPress Foundation is proud to launch WordPress Credits, a contribution-focused internship program that brings university students into the heart of the WordPress open source project. While WordPress thrives on contributions from a global volunteer community, many students and newcomers face barriers to entry, such as a lack of structured guidance or real-world experience in […]\";s: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:\"Isotta Peira\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:4768:\"\nThe WordPress Foundation is proud to launch WordPress Credits, a contribution-focused internship program that brings university students into the heart of the WordPress open source project. While WordPress thrives on contributions from a global volunteer community, many students and newcomers face barriers to entry, such as a lack of structured guidance or real-world experience in open source projects. This new program is designed to bridge that gap, nurturing future contributors and ensuring WordPress remains innovative, inclusive, and sustainable for years to come.
\n\n\n\nThe pilot program, developed in partnership with the University of Pisa, was announced on stage at WordCamp Europe 2025 by Matt Mullenweg and Mary Hubbard. Since then, it has attracted interest from students across various fields of study, including humanities, computer science, and communication. Companies in the WordPress ecosystem have also expressed support and interest in contributing to the project. In response to the growing interest from both community members and academic institutions, we are now inviting more universities to join the initiative.
\n\n\n\nOpen to students from all fields of study, the program blends structured onboarding with a personalized contribution project. Activities are adapted to each student’s degree program and familiarity with WordPress, aiming to develop transferable skills, academic-related competencies, and active participation in the WordPress community. Internship durations may vary depending on the university or educational institution. Some may align with academic semesters (typically 3–4 months), while others, like the University of Pisa, allow students to sign up year-round with a requirement to complete a set number of contribution hours (e.g. 150 hours). Flexible arrangements can be discussed to meet the specific requirements of each institution.
\n\n\n\nFoundational Training includes:
\n\n\n\nEach student will choose a contribution area and design their own personal project within that area. Examples of possible projects include:
\n\n\n\nInterns are guided by an experienced mentor specific to their chosen area and supported by a dedicated WordPress Foundation contact person throughout the program. All student contributions, whether code, translations, documentation, or educational materials, will be publicly visible and integrated into official WordPress projects and resources, directly benefiting the wider community.
\n\n\n\nInterested universities and educational institutions interested in participating can reach out by filling the interest form.
\n\n\n\nWe also invite companies in the WordPress ecosystem to support this initiative by sponsoring mentors who will guide and empower the next generation of contributors, or by providing tools and resources that help students succeed in their contribution journey.
\n\n\n\nIf your company is interested in getting involved, please visit the Company Guide to learn more and fill out the form to join the program.
\n\n\n\nBy welcoming students, mentors, sponsors, and volunteers into this initiative, we are building a stronger and more connected WordPress community. Each person who takes part, whether they guide a student, share their experiences, provide sponsorship, or simply help spread the word, helps ensure that open source remains vibrant and accessible for all. Together, we are not just supporting individual contributors; we are shaping the future of WordPress and open source itself.
\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:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"18913\";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:5;a:6:{s:4:\"data\";s:63:\"\n \n \n \n \n \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:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:46:\"WordCamp US 2025: See You in Portland, Oregon!\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:79:\"https://wordpress.org/news/2025/06/wordcamp-us-2025-see-you-in-portland-oregon/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 27 Jun 2025 18:14:33 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:3:{i:0;a:5:{s:4:\"data\";s:6:\"Events\";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:1;a:5:{s:4:\"data\";s:8:\"WordCamp\";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:2;a:5:{s:4:\"data\";s:4:\"WCUS\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=18884\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}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:383:\"WordCamp US 2025 is heading to vibrant Portland, Oregon, from August 26–29, 2025! Join fellow open source enthusiasts, developers, designers, and WordPress professionals from across the United States and around the world for four days of learning, networking, and collaboration at the Oregon Convention Center. Nestled in the Pacific Northwest, Portland is famous for its […]\";s: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:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:8274:\"\nWordCamp US 2025 is heading to vibrant Portland, Oregon, from August 26–29, 2025! Join fellow open source enthusiasts, developers, designers, and WordPress professionals from across the United States and around the world for four days of learning, networking, and collaboration at the Oregon Convention Center.
\n\n\n\nNestled in the Pacific Northwest, Portland is famous for its creative spirit, lush green spaces, and riverside trails, making it an inspiring backdrop for this year’s WordCamp. Whether building your first site or leading a digital agency, WordCamp US offers something for everyone, all set against the city’s stunning natural scenery.
\n\n\n\n Tickets are limited—secure yours today!
Kick off your WordCamp US experience by giving back. Contributor Day welcomes all skill levels to collaborate on teams that help make WordPress better, from code to community to documentation. You can make a difference to the project, and build new friendships or rekindle old ones, perhaps even while enjoying views of Portland’s skyline and tree-lined streets.
\n\n\n\nAs part of the main conference, day one will give us a look at project showcases, discover innovative uses of WordPress, see how people push the platform’s boundaries, and get inspired to try something new.
\n\n\n\nExperience another two days filled with inspiring keynotes, practical sessions, and deep dives into the latest trends in web development, design, content, accessibility, and more. Hear from some of the brightest minds in the WordPress ecosystem and explore topics that get to the heart of what makes WordPress unique. Also, take some time to explore the main floors of WCUS, like the Sponsors Hall.
\n\n\n\nMeet WordPress friends new and old, exchange ideas with community leaders, and collaborate with people who share your passion for open source. Enjoy daily lunches and a memorable social event, all included with your ticket. Stroll along the Willamette River or explore nearby parks in between sessions.
\n\n\n\nThis year, we’re gathering at the Oregon Convention Center in the heart of Portland—a city known for its vibrant neighborhoods and abundant green spaces. We’ve secured a special hotel block right across the street at the Hyatt Regency Portland for convenient, comfortable lodging during your stay.
\n\n\n\nRegistration officially kicked off last month. Secure your spot early; tickets are selling quickly.
\n\n\n\n Tickets are limited—secure yours today!
Keep checking the WordCamp US site for travel tips, to book accommodations, and to watch for the whole event schedule—coming soon! While here, why not plan to take in some of Portland’s scenic hiking trails, bike-friendly streets, or local food scene?
\n\n\n\nStay tuned for updates and announcements on WordPress social media channels, and join the conversation.
\n\n\n\nWhether attending in person or following along online, share your experience and help welcome others to the WordPress community. Use the #WCUS and #WordPress hashtags and tell your story on social!
\n\n\n\nPortland is calling—see you at WordCamp US 2025!
As of July 2025, the WordPress Security Team will no longer provide security updates for WordPress versions 4.1 through 4.6.
\n\n\n\nThese versions were first released nine or more years ago and over 99% of WordPress installations run a more recent version. The chances this will affect your site, or sites, is very small.
\n\n\n\nIf you are unsure if you are running an up-to-date version of WordPress, please log in to your site’s dashboard. Out of date versions will display a notice that looks like this:
\n\n\n\nThe version you are running is displayed in the bottom of the “At a Glance” section of the dashboard.
\n\n\n\nAs a reminder, the only actively supported version of WordPress is the most recent one. Security updates are only backported to older branches as a courtesy.
\n\n\n\nThe Make WordPress Security blog has further details about the process to end support.
\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:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"18872\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:7;a:6:{s:4:\"data\";s:63:\"\n \n \n \n \n \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:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:51:\"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:\"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: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:8:\"category\";a:3:{i:0;a:5:{s:4:\"data\";s:6:\"Events\";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:1;a:5:{s:4:\"data\";s:8:\"WordCamp\";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:2;a:5:{s:4:\"data\";s:4:\"WCEU\";s: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:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}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:362:\"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. I’m personally very excited… There’s so much I want to do. I think there’s a clear pathway to 7.0 and beyond. Matt Mullenweg, WordPress Cofounder The flagship WordPress event kicked […]\";s: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:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:61400:\"\nOver 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.
\n\n\n\nI’m personally very excited… There’s so much I want to do. I think there’s a clear pathway to 7.0 and beyond.
Matt Mullenweg, WordPress Cofounder
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.
\n\n\n\nSet 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.
\n\n\n\nWordCamp 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.
\n\n\n\nHere’s what attendees experienced:
\n\n\n\nWordCamp 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.
\n\n\n\nContributor 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.
\n\n\n\nIn 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.
\n\n\n\nThe 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.
\n\n\n\nThe day launched into an inspiring program with the keynote session, WordPress Without Borders – The Fight for Digital Freedom, 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.
\n\n\n\nFrom 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.
\n\n\n\nDesigners and developers explored ways to improve workflows and collaboration. In Bridging Design and Development, 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.
\n\n\n\nWorkshops played a key role throughout the day, including the interactive Block Developer Cookbook: WCEU 2025 Edition, where attendees worked through community-voted code recipes featuring the latest WordPress APIs. Sessions also dove into emerging technologies, such as Automating WordPress Setup with Modern AI Tools, which showcased how WP-CLI, scripting, and AI can accelerate project setup and reduce repetitive tasks.
\n\n\n\nDay 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 Over the Rainbow, 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.
\n\n\n\nAs 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 WordPress Gems for Devs, which introduced the Interactivity API through live coding, and Client-side Web AI Agents, 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.
\n\n\n\nThe 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.
\n\n\n\nAs 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.
\n\n\n\nA 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.
\n\n\n\nBe sure to mark your calendars for the final major WordPress events in 2025: WordCamp US (Portland, Oregon, USA). Then join us in Kraków, Poland for WordCamp Europe 2026! Also, if you want to get involved with WCEU, the call for organisers is already open for 2026.
\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:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"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:\"\";}}}}}i:8;a:6:{s:4:\"data\";s:57:\"\n \n \n \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:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:49:\"Announcing the Formation of the WordPress 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:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:85:\"https://wordpress.org/news/2025/05/announcing-the-formation-of-the-wordpress-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:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 27 May 2025 16:28: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:8:\"category\";a:1:{i:0;a:5:{s:4:\"data\";s:7:\"General\";s: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=18769\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}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:397:\"Today, I’m pleased to announce the formation of a new WordPress AI Team, a dedicated group focused on accelerating and coordinating artificial intelligence projects across the WordPress ecosystem. AI is already transforming how people create and manage content online. As this technology evolves, it’s essential that WordPress remains at the forefront, ensuring innovation happens in […]\";s: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:\"Mary Hubbard\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:2961:\"\nToday, I’m pleased to announce the formation of a new WordPress AI Team, a dedicated group focused on accelerating and coordinating artificial intelligence projects across the WordPress ecosystem.
\n\n\n\nAI is already transforming how people create and manage content online. As this technology evolves, it’s essential that WordPress remains at the forefront, ensuring innovation happens in the open, guided by community values, and built to core standards.
\n\n\n\nThe AI Team will:
\n\n\n\nThe WordPress AI Team brings deep experience in open-source, performance, and product development and a strong commitment to building AI features the WordPress way. The team will launch with the following team contributors:
\n\n\n\nTo help get things started, James and Felix will serve as the initial Team Reps in supporting team organization, communication, and coordination with other Make WordPress teams.
\n\n\n\nThis is an exciting and important step in WordPress’s evolution. I look forward to seeing what we’ll create together and in the open.
\n\n\n\nIf you’re interested in contributing or following along, please join the conversations in #core-ai and watch for upcoming meeting announcements on https://make.wordpress.org/ai/.
\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:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"18769\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:9;a:6:{s:4:\"data\";s:60:\"\n \n \n \n \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:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:32:\"WordPress Campus Connect Expands\";s: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:68:\"https://wordpress.org/news/2025/05/wordpress-campus-connect-expands/\";s: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, 07 May 2025 12:40: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:8:\"category\";a:2:{i:0;a:5:{s:4:\"data\";s:9:\"Community\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:6:\"Events\";s: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=18726\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}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:391:\"WordPress Campus Connect, initially launched in October 2024 as a pilot program, has now been formally established as an official event series due to its resounding success. The inaugural program, spearheaded by myself, Anand Upadhyay, garnered immense enthusiasm from 400 Indian students who were eager to engage in hands-on WordPress training. WordPress Campus Connect transcends […]\";s: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:\"Anand Upadhyay\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:28141:\"\nWordPress Campus Connect, initially launched in October 2024 as a pilot program, has now been formally established as an official event series due to its resounding success. The inaugural program, spearheaded by myself, Anand Upadhyay, garnered immense enthusiasm from 400 Indian students who were eager to engage in hands-on WordPress training.
\n\n\n\nWordPress Campus Connect transcends the conventional workshop model by fostering a holistic learning community. It couples on-campus event learning with a diverse range of post-event activities, including meetups, website challenges, scholarships, and volunteering opportunities, all geared towards nurturing student development. The program’s efficacy has prompted other organizations in India to express interest in replicating its structure.
\n\n\n\nLooking ahead, multiple local WordPress communities in India aim to reach more students in India through WordPress Campus Connect events. The curriculum will include beginner content, delve into more advanced WordPress concepts, and feature specialized sessions tailored for students with prior WordPress experience.
\n\n\n\nThe official recognition of WordPress Campus Connect as an event series paves the way for further expansion, giving the series similar support and standing as WordCamps but with a student education-first goal and focus. Future plans include organizing large-scale student events, establishing WordPress clubs on college campuses, and facilitating mentorship connections for students.
\n\n\n\nTo support these ambitious goals, volunteers identified several key next steps:
\n\n\n\nThe overwhelming success of WordPress Campus Connect and the enthusiasm it has generated serve as a testament to the transformative power of passion and dedication. As WordPress Campus Connect continues to evolve and expand, it holds the promise of shaping the future of WordPress education and community engagement.
\n\n\n\nIf you’re interested in helping shape the future of education with WordPress, join us in the #campusconnect Make Slack channel today!
\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:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"18726\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}}}s:27:\"http://www.w3.org/2005/Atom\";a:1:{s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:0:\"\";s:7:\"attribs\";a:1:{s:0:\"\";a:3:{s:4:\"href\";s:32:\"https://wordpress.org/news/feed/\";s:3:\"rel\";s:4:\"self\";s:4:\"type\";s:19:\"application/rss+xml\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:44:\"http://purl.org/rss/1.0/modules/syndication/\";a:2:{s:12:\"updatePeriod\";a:1:{i:0;a:5:{s:4:\"data\";s:9:\"\n hourly \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:15:\"updateFrequency\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"\n 1 \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:4:\"site\";a:1:{i:0;a:5:{s:4:\"data\";s:8:\"14607090\";s: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:12:{s:6:\"server\";s:5:\"nginx\";s:4:\"date\";s:29:\"Mon, 11 Aug 2025 21:45:24 GMT\";s:12:\"content-type\";s:34:\"application/rss+xml; charset=UTF-8\";s:4:\"vary\";s:37:\"Accept-Encoding, accept, content-type\";s:25:\"strict-transport-security\";s:12:\"max-age=3600\";s:6:\"x-olaf\";s:3:\"⛄\";s:13:\"last-modified\";s:29:\"Thu, 07 Aug 2025 18:22:34 GMT\";s:4:\"link\";s:63:\"Another month has turned and it saw a great time to focus on contributing to WordPress. I was lucky enough to get time to focus thanks to sponsors, here is what I did.
\n\n\n\nMy split this month was clearly between triage, program work and feedback. In core editor there was a lot of feedback for design, for AI there was some foundation setting and organising.
\n\n\n\nOne reflection I had was giving myself time this month to give the feedback, have the planning and discovery conversations as 6.9 formed. This was a little different from the push to ship of past months, but it forms the base for focused work the next few months.
\n\n\n\nLast month I spent quite some time writing as I explored, so I wanted to also share those.
\n\n\n\nAugust is going to close out by my attendance at WordCamp US, where I am giving a talk on ‘The system is the Strategy’. I also plan to attend the contribution day. Apart from that my focus will be:
\n\n\n\nI now have these sponsors: BigScoots, Greyd, Kinsta, ServMask, Aaron Jorbin, Tim Nash, Jeffrey Paul and Scot Rumery. To everyone who sponsored me and helped me secure sponsorship, thank you.
\n\n\n\nWant to sponsor me? You can through GitHub.
\n\n\n\nThere is always sponsorship, of course, that is volunteered, and I’ll do as much as possible whilst still keeping things flowing – let’s get contributing!
\nHi there!
\n\n\n\nWith the updates of the last few weeks, there appears to be some increased excitement ahead of the next major WordPress release on December 2, 2025. The planning has been done. The announcement of the release squad is imminent.
\n\n\n\nDid you get a chance to read through the Roadmap to 6.9 post? It’s challenging to pick the most exciting features and updates, be it the DataViews or the Site Editor improvements or better template handling… What is it that you are most excited about?
\n\n\n\nICYMI: WordCamp US has published the schedule for the four-day event. Check it out!. Ray Morey has more details.
\n\n\n\nHave a splendid weekend ahead, until the next time.
Yours,
Birgit
Gutenberg 21.4 RC1 is available for testing. It seems the team is almost back to last year’s numbers of PRs merged per release.
\n\n\n\nA brief look at the changelog, and it’s brimming with DataViews updates.
The latest episode is Gutenberg Changelog 119—WordPress 6.8.2 and 6.9, Gutenberg 21.1, 21.2, and 21.3 Releases with Tammie Lister.
If you are listening via Spotify, please leave a comment. If you listen via other podcast apps, please leave a review. It’ll help with the distribution.
\nJohn Blackbourn announced the Maintenance Releases for WordPress branches 4.7 to 6.7 and wrote: “Following on from the WordPress 6.8.2 maintenance release last month, the included update to the root security certificate bundle has been backported to all branches back to 4.7. This ensures that when your site performs server-side HTTP requests, the most up-to-date information about trusted security certificates is used.”
\n\n\n\nAn interesting discussion is happening among contributors regarding which new blocks should be added to the editors if any. For a long time there was strong hesitation to add more blocks beyond the basic ones already available, and users were pointed to the many plugin options. There appears to be a some movement now.
\n\n\n\nYou can read more in this Gutenberg issue, published by Matias Ventura, lead architect of the Gutenberg projects. New block additions for the Block Library. After being discussed also in this week’s Core Dev Chat on Slack, you’ll find a plethora of opinions in the comments. There are quite a few aspects to consider before contributors move ahead. Well, we all need sliders, tabs , accordions, icons, breadcrumbs, and mega menus to create awesome themes and sites. We might be ok pushing the MathML, marquee, time to read, pop-up dialog and stretchy text into the plugin space. What do you think? Let your ideas be known and comment.
\n\n\n\nIn his post Migrating Legacy WordPress Content to the Block Editor: A Real-World Case Study, Elliot Richmond shares his experience, from planning to pitfalls. The post is a practical look at what it takes to bring old content into the modern editor. Richmond demonstrates the technical implementation for transforming 15+ widget types, managing edge cases, and processing 200+ property listings with galleries while maintaining functionality and performance. He describes his content analysis and mapping, the pattern-based architecture with placeholder replacement, batch processing techniques, and handling complex metadata transformations.
\n\n\n\nNagir Seghir published a Developer Advisory: Changes to session management and cron jobs in WooCommerce 10.1. Review your plugins if
\n\n\n\nwoocommerce_persistent_cart
from user data, or Test with WooCommerce 10.1 before the August 11 launch. Check status logs for session warnings. Update code since logged-in user session storage is changing from usermeta to session table only.
\n\n\n\nEventKoi, the new event management plugin on the block mentioned in the previous newsletter editions, just announced the release of a free version. You can download it from the pricing section.
\n\n\n\nIn his latest tutorial, Carlo Daniele, at Kinsta, explains how to hack Gutenberg blocks with style variations and block variations. He demonstrates creating an animated Polaroid effect for the Image block, covering the differences between these features : Style Variations change appearance with CSS, while Block Variations create preconfigured block versions. The tutorial includes setting up a development environment, building a complete “Image Hacker” plugin, and addressing compatibility issues with WordPress’s lightbox feature. It’s a great tutorial to level up your block customization skills.
\n\n\n\nIf you need a shorter version of how to create block styles, Ryan Welcher shows you How to make a custom block style in minutes! on YouTube.
\n\n\n\nIf you are eager to learn more ways to add block style variations to your theme or plugin you can read through the complete developer guide. “Mastering Custom Block Styles in WordPress: 6 Methods for Theme and Plugin Developers” by yours truly.
\n\n\n \n\n\nRonald Huereca has written a detailed guide on How to Generate a Block Manifest to Improve Block Performance. You’ll learn what they are and how to effectively use them in your block plugin. In this comprehensive resource, Huereca not only explains the technical aspects of block manifests but also shares best practices for implementation, ensuring that you can optimize your plugins for better performance.
\n\n\n\nJuliette Reinders Folmer released v3.2 of the WordPress Coding Standards, PHP_CodeSniffer rules (sniffs) to enforce WordPress coding conventions. This release adds stricter meta usage checks, new sniffs for heredoc, better PHP 8.1+ callable support, expanded deprecated feature detection to WP 6.8.1, improved documentation, higher PHPCS requirements, and various optimizations. These help developers ensure cleaner, more up-to-date, and future-proof code.
\n\n\n\nIn his latest live stream, Ryan Welcher took a Deep Dive in explaining WordPress Interactivity API Router. He looked at the WordPress Interactivity API and how its routing system works. He walked through the @wordpress/interactivity-router package and showed how to use its front-end routing features. This is useful if you’re working on custom blocks or interactive themes. He covered how the Interactivity API functions, what the routing package does, and how you can apply it in your own WordPress projects.
\n\n\n \n\n\nIn his latest livestream, JuanMa Garrido explored how to test WordPress PHP code with PHPUnit. You can follow along as he spun up the Docker-powered wp-env test stack, created WordPress-standards-compliant unit tests, used TDD for clean architecture, and wired everything into CI pipelines—so your plugins and themes stay stable, refactor-ready, and bug-free.
\n\n\n\nQuestions? Suggestions? Ideas?
Don’t hesitate to send them via email or
send me a message on WordPress Slack or Twitter @bph.
For questions to be answered on the Gutenberg Changelog,
send them to changelog@gutenbergtimes.com
We’re excited to announce that the full schedule for WordCamp US 2025 has been published! From August 26–29 in Portland, Oregon, join web creators, innovators, and community leaders for four days of learning, collaboration, and inspiration. This year’s lineup brings together sessions on everything from cutting-edge AI to hands-on workshops, performance, accessibility, design, and the future of WordPress.
\n\n\n\nCheck out the full schedule and start planning your WordCamp experience.
\n\n\n\n \n\n\n\nKicking off the week on Tuesday, August 26 is Contributor Day, it is your chance to roll up your sleeves and make a direct impact on WordPress. Whether you’re a seasoned developer, creative designer, translator, marketer, or simply passionate about open source, there’s a place for you to get involved. Join WordPress teams working on real projects, share your skills, and connect with people across the global community. Contributor Day is also a fantastic place for hiring managers or business owners to meet emerging talent and see contributors in action. Lunch is provided, and both in-person and select remote participation options are available. If you’ve ever wanted to help shape the future of WordPress, this is your moment!
Read more: Start planning your Contributor Day activities >>
\n\n\n\nShowcase Day on Wednesday, August 27, shines a spotlight on what’s possible with WordPress. Get inspired by live demos, case studies, and actionable presentations from experts and innovators using WordPress in creative and impactful ways. You’ll see how changemakers, nonprofits, publishers, and agencies use WordPress to solve real-world problems, build new products, and drive the web forward. Highlights include hands-on workshops, technical talks, and practical sessions covering everything from design systems to modern AI. It’s a full day dedicated to celebrating the talent, creativity, and innovation of the WordPress community.
\n\n\n\nRead more: See where these inspirational showcases take you >>
\n\n\n\nThe main event days for Thursday and Friday, August 28-29, feature a robust mix of technical deep-dives, product masterclasses, and sessions designed for all experience levels. Whether you’re a developer, designer, business owner, or just starting out, you’ll find plenty to explore—from future-focused discussions on AI and performance to hands-on workshops and networking events that bring the community together.
\n\n\n\nKeynote Highlights:
\n\n\n\nWith dozens of sessions across multiple tracks, plus workshops and networking opportunities, WordCamp US is set to be an unforgettable experience. Don’t miss your chance to connect, share ideas, and help shape the future of the web.
\n\n\n\nCheck out the full schedule and start planning your WordCamp experience.
\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:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 06 Aug 2025 20:03:43 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s: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:5;a:6:{s:4:\"data\";s:17:\"\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:1:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:26:\"HeroPress: New Continents!\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:29:\"https://heropress.com/?p=8130\";s: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:95:\"https://heropress.com/new-continents/#utm_source=rss&utm_medium=rss&utm_campaign=new-continents\";s: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:1997:\"When I made the Continents taxonomy I didn’t think it through very well. For example, I made an Oceania continent, which isn’t really real. Also, most of the terms in the taxonomy are countries, which I think is more interesting, but I don’t really surface them anywhere. More on that someday.
\n\n\n\nOne of the struggles I had was how to sort essays from Central America and the Middle East. Did you know the Middle East is on three different continents?
\n\n\n\nSo I simply gave up on cartographically and geographically correct and decided to sort countries the way people do. So now there are two new continents, Central America and the Middle East.
\n\n\n\nHere are what countries I’m considering in those areas:
\n\n\n\nThank you for your support.
\nThe post New Continents! appeared first on HeroPress.
\";s: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, 06 Aug 2025 16:52:30 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:6;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:57:\"WPTavern: #180 – Karla Campos on organising WordCamp US\";s: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=198673\";s: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:71:\"https://wptavern.com/podcast/180-karla-campos-on-organising-wordcamp-us\";s: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:48213:\"[00:00:19] Nathan Wrigley: Welcome to the Jukebox Podcast from WP Tavern. My name is Nathan Wrigley.
\n\n\n\nJukebox is a podcast which is dedicated to all things WordPress, the people, the events, the plugins, the blocks, the themes, and in this case, what goes into organizing a flagship WordCamp.
\n\n\n\nIf you’d like to subscribe to the podcast, you can do that by searching for WP Tavern in your podcast player of choice, or by going to wptavern.com/feed/podcast, and you can copy that URL into most podcast players.
\n\n\n\nIf you have a topic that you’d like us to feature on the podcast, I’m keen to hear from you and hopefully get you, or your idea, featured on the show. Head to wptavern.com/contact/jukebox, and use the form there.
\n\n\n\nSo on the podcast today we have Karla Campos. Karla has been involved in the WordPress community for over 10 years. Starting out in Miami, and taking part in meetups and word camps before stepping into larger organizational roles. With a background in media and marketing, Karla brings plenty of experience in both web and events to the world of WordPress.
\n\n\n\nKarla joins us today as a lead organizer for the upcoming WordCamp US 2025, which will take place in Portland at the end of August. Remarkably, this is her first flagship WordCamp, and she’s organizing before ever attending.
\n\n\n\nWe discuss what motivated Karla to take on this major responsibility, how she balances the volunteer work with her professional life, and the challenges, expected and unexpected, along the way.
\n\n\n\nWe discuss the organization of such a huge event from working with a professional production company to handling the logistics, communications, accessibility requests, visas, and more, for a thousand plus attendees. Karla shares how the community side of the event is managed, the late night worries, and what it really takes, both in time and personal commitment, to make a WordCamp US happen, especially as a volunteer.
\n\n\n\nShe also highlights some of the initiatives for this year’s event, renewed efforts to welcome students and first time attendees, including student ticket pricing and the WP Trail Buddies Program to help newcomers feel at home. She also teases the introduction of a hackathon style contributor today, and new remote collaboration options.
\n\n\n\nIf you’ve ever wondered what goes on behind the scenes of a WordCamp US, how it’s organized, how volunteers are supported, and what motivates people like Karla to invest their own time and resources, this episode is for you.
\n\n\n\nIf you’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’ll find all the other episodes as well.
\n\n\n\nAnd so without further delay, I bring you Karla Campos.
\n\n\n\nI am joined on the podcast by Karla Campos. Hello, Karla.
\n\n\n\n[00:03:21] Karla Campos: Hello. How are you, Nathan?
\n\n\n\n[00:03:23] Nathan Wrigley: Yeah, good thank you. Very nice for you to join us today. I really appreciate it. Karla’s here today, we’re going to talk about WordCamp US, which is happening in Portland. Actually, I was going to say later this month, almost later this month. We’re recording it right at the very, very end July, 2025. It’s taking place toward the end of August, 2025. So it’s pretty soon.
\n\n\n\nBut before we get into that, Karla, will you just give us your little potted bio. Tell us who you are, what you do in the WordPress space, and maybe very quickly just tell us how the heck you came to be organising a WordCamp, one of these flagship WordCamps.
\n\n\n\n[00:03:56] Karla Campos: I always like to say that my involvement in projects sometimes comes about serendipitously. Just kind of like, hey, look, I saw that on the internet, it looked interesting, and I decided to join.
\n\n\n\nI actually have about more than 10 years with the WordPress community in Miami. When I first moved to Florida, I started going to meetup groups and then I met the WordPress Miami organisers and started really getting involved with them.
\n\n\n\nMy ex-colleague and coworker, her name was Jackie Jimenez, she unfortunately passed away, but we had a lot of great moments building things together in the WordPress Miami community. And when I saw the announcement online, I said, you know, she would’ve loved to do this with me. Let me check it out. And then that’s how I kind of just decided to join the organizer group.
\n\n\n\nSo I’ve been with WordPress for over 10 years. I’ve been working in marketing. I used to work for Telemundo here in the Florida area. I used to work for iHeartRadio. So I have a lot of the media marketing background as well as the working on websites and copy. So I’ve been around for a while, just I’m more of like a quiet, in the background type of person.
\n\n\n\n[00:05:09] Nathan Wrigley: And have you attended any of these flagship, so the flagship ones are obviously WordCamp Asia, WordCamp Europe, WordCamp US. Have you attended any of those flagship ones in the past?
\n\n\n\n[00:05:18] Karla Campos: Is it odd that this is my first flagship and I’m organising it?
\n\n\n\n[00:05:21] Nathan Wrigley: I think it’s great.
\n\n\n\n[00:05:22] Karla Campos: It feels almost surreal.
\n\n\n\n[00:05:23] Nathan Wrigley: So just before we hit record, you said that, I don’t know, something like a month ago, you caught wind of the fact that WordCamp US still needed some volunteers. Have I got that about right? It’s about a month ago that you became involved in the organisation of the upcoming event.
\n\n\n\n[00:05:38] Karla Campos: I would say May, I think May. You know, the dates are all come together. We don’t even know what month it is. Because we’re working on it so much in the backend. So I would say around May, when I first saw the, or when I got pulled into the organiser group.
\n\n\n\n[00:05:53] Nathan Wrigley: Since then, has it kind of taken over your life? I don’t mean that to sort of sound disparaging, but has it kind of crept in into all the different parts of your life? So you’ve basically got no free time left anymore.
\n\n\n\n[00:06:04] Karla Campos: It has because you’d think, okay, you know, even because we do have a production team that’s helping organise the event to make sure it’s properly handled for all the attendees, because we do expect around a thousand, it’s always been that amount for a flagship.
\n\n\n\nSo we have a production company working on the backend helping us with the production to make sure everything is smooth. But still, with that going on, I still feel like at 2:00 AM I’m thinking WordCamp US, WordCamp US. I know there’s something I have to do. So yeah.
\n\n\n\n[00:06:34] Nathan Wrigley: Let’s split out what the production company do first of all. So I genuinely don’t know what that even means. So, a production company, I’m guessing you offload something, all the tasks that you can to them. I’m guessing they’re a commercial entity and they get paid to fulfill whatever contractual obligations that you’ve got. What is it that they handle? And then we’ll get into what the community side of things, the team of community, volunteers, and so on are doing.
\n\n\n\n[00:06:59] Karla Campos: So the production team is making sure that the venue and everything that happens at the venue is organised. So from some of the room logistics, so more on the venue side, that they’re handling that part to make sure that we can handle everything else that comes with organising, including all the planning around contributor day, showcase day, the photographers. So that’s our side, and then their side, the production team, is more of venue logistics.
\n\n\n\n[00:07:27] Nathan Wrigley: And so do they handle things like, oh, I don’t know, the building of the sponsor booths and things like that? Because when you attend these events, there’s a very, very professional feel to them. So it’s not like you just show up and, you know, it’s kind of thrown together at the last minute. It really does feel, when you actually stop and think about it, you have a great sense of, gosh, there’s months, possibly years of organising that’s gone on in the background. Is it that kind of thing? You know, making sure that essentially when you walk in, everything looks right, everything that you can see, they do.
\n\n\n\n[00:07:57] Karla Campos: Yes. And then Megan Marcel, which is my co-lead organiser, she’s heading that part. So she’s managing that production company to make sure the venue and all the booths are on point, that they look like what they cost. Because, you know, those booths and everything that the sponsors spend, it’s not cheap things. They’re very luxurious. Sometimes more than others. But yeah, so she’s making sure that that’s covered with the production team. That it looks a hundred percent what the sponsors expect.
\n\n\n\n[00:08:25] Nathan Wrigley: And, okay then, let’s flip to the more community side. So everything that is not part of the production team’s remit. What are some of the tasks that you are finding yourself worrying about at 2:00 AM in the morning?
\n\n\n\n[00:08:36] Karla Campos: Actually just making sure the communications, and all the attendees are getting service. So I am the lead organiser in charge of communications and marketing, and I have other team leaders under me, like Caroline Harrison, who is the team lead for the attendee communications. So we’re getting a lot of requests when it comes to accessibility, food that they have allergies or that they need visas.
\n\n\n\nA lot of traffic, of course, right now, I told you we had about 730 attendees already registered, so that email traffic is coming into our teams. So I’m just like, I saw an email and I know my team handled it, and I know they’re prompt but, you know, I wake up at 2:00 AM. Did I answer that email? Was that a nightmare? Did I miss something?
\n\n\n\nThat’s how it’s been in my life, you know, like I’m having these nightmares that I didn’t do something, but I did, because I’m a very responsible individual. But it just feels like that. It’s become so intertwined in my life that I’m having nightmares that I didn’t do a task.
\n\n\n\n[00:09:33] Nathan Wrigley: When you get involved in the WordPress community, there’s obviously so many bits and pieces that you can get involved in, but very many of them don’t really, at the beginning, at least anyway of community involvement, don’t necessarily have crunch points in time. Obviously, as you get more into the community, there might be moments. You might be, I don’t know, a release lead or something like that, in which case there will be a date in the calendar where things have got to be all tied off.
\n\n\n\nBut mostly, there’s never that calendar moment where everything’s got to be finished. But you very, very much are faced with a ticking clock, aren’t you? Because come the date that the first people are arriving, the attendees are arriving, and presumably, before that the production team need to get in, and set up all the sponsor booths and make sure all of that’s taken care of and what have you.
\n\n\n\nThat’s a curious thing. So the stress, I guess, does pile up a little bit. And it would behoove all of us who attend events like this, just to pause for a moment and remember that it is done by a bunch of volunteers who have this ticking time bomb, if you know what I mean, in the back, where everything’s got to be finished by a certain date. And so I would just like to express my gratitude for the fact that you’ve stepped up basically and tried to fulfill that role. Appreciate it.
\n\n\n\n[00:10:40] Karla Campos: Thank you. I appreciate the nice kind words, because it’s been a little bit hectic and, you know, it’s good to hear that people appreciate your work.
\n\n\n\n[00:10:48] Nathan Wrigley: Have you actually had a chance to go around the building yet? I know we discussed this prior to hitting record, but is this more of a kind of, you’ll be showing up the first time in the same way that everybody else will, or have you managed to sort of walk the floorboards as it were?
\n\n\n\n[00:11:00] Karla Campos: Like I mentioned earlier, but we weren’t live, I’ve seen personally the venue in virtual tours and et cetera, but I’m coming to the Oregon area a week before. So I’ll be there earlier to see the venue. Go through the walkthroughs and do what the team does earlier, so that everything’s on point. But from what I’ve seen, everything’s going great.
\n\n\n\n[00:11:22] Nathan Wrigley: Do you get any sort of remuneration for any of the work that you do? So by remuneration, I’m specifically talking about finance. Does anything get offset? So for example, if you are based in Florida, presumably you’re going to be hopping on a plane, and there’ll be the food that you’ve got to eat during the time that you’re there, and the accommodation, the hotels and so on. Does somebody at the level of volunteering that you have nominated yourself for, does any of that get offset, or is this completely voluntary, where you’ve got to dig into your pocket for every single expense?
\n\n\n\n[00:11:50] Karla Campos: This is voluntary. So yeah, I’m just putting in from my end to support the community. So if ever you are planning on joining something like the WordCamp organisation groups, it usually is a volunteer thing. There are some scholarships but that’s, you have to apply for and it’s very competitive. So I don’t think everyone gets one. But yeah, no, everything that I’m putting in personally is through my own finances.
\n\n\n\n[00:12:16] Nathan Wrigley: Yeah, again, obviously I gave you some thanks a moment ago and I’m about to do it again. Thank you for that commitment as well, because it’s not nothing. You know, going to Portland on an airplane from where you are, you know, it’s all the way across the country. It’s not a cheap place to reside in. Accommodation in and around the venue is probably at a premium, you know, it’s summertime, everything’s quite expensive around there. So it’s not inconsiderable, and there is an impact to that. So again, once again, thank you for taking the time, and also allocating the funds to make that possible. Obviously, events like this cannot happen without people like you doing it.
\n\n\n\n[00:12:51] Karla Campos: Yes. And I think they must be done. You know, sometimes we have to make sacrifices to bring together something that brings people together around WordPress, which powers people’s businesses, their livelihoods. So, you know, I don’t mind putting in when I know that I make an impact in a community and helping those people with their livelihoods.
\n\n\n\n[00:13:12] Nathan Wrigley: Now you said that this all began for you in May, and we could get into what it was that exactly prompted you to do that. It sounds like somebody kind of sent something in your direction, which you responded to. So what have we had May, June, July, basically, you’ve been into this for a couple of months.
\n\n\n\nAny intuitions now of regret? That’s probably not something that we want to get into too much, but do you know what I mean? If you could rewind the clock to, let’s say April during 2025, did you get into this with your eyes wide open, or has it ended up being much more of a task than you imagined? What I’m basically trying to ask is, are there any bits of this that you think, gosh, I didn’t really anticipate that was going to be involved? This is way more than I was imagining biting off.
\n\n\n\n[00:13:54] Karla Campos: Yeah, the time required to do all the work that needs to be done, and I’m a confident person, so I went in this, I have experience organising events for Telemundo, big concerts of 50,000 people plus. So I went in confident thinking, I got this. But as I got more into it, I just started to notice, okay, well, this is taking a lot of my time that I wasn’t prepared for.
\n\n\n\nBut I’ve adapted and I’m good now. It’s been a rollercoaster ride, but it’s fun for me because I’m that type of person who enjoys the challenge.
\n\n\n\nYeah, it’s been fun, it’s been unexpected for sure. So we’ve had ups and downs, but we’re getting through it, you know, and that’s the fun of a rollercoaster ride, so yeah.
\n\n\n\n[00:14:31] Nathan Wrigley: What are some of the things that you didn’t anticipate? Obviously, you said it’s ended up being more time, so yeah, more time has been required of you. But what beyond that? What are some of the things that you didn’t anticipate that you would need to do, that you have in fact ended up doing?
\n\n\n\n[00:14:44] Karla Campos: I think all the time spent talking to people, it’s been really crazy. So I think I just didn’t anticipate the timing. So I think I originally volunteered for about 10 hours per week. Leading up to the event I think, a week before the event we’re supposed, or a month before the event, we’re supposed to be putting more in time, but this feels like a full-time job.
\n\n\n\nOh my gosh, you know, like I just didn’t anticipate for that. So it’s been kind of, like we talked about before, merging with my normal life where I’m just like, oh wait, my to-do list for my regular projects, and my family and everything is now part of WordCamp, if that makes sense.
\n\n\n\n[00:15:19] Nathan Wrigley: So during the onboarding process that you’ve had over the last couple of months, how have you learnt what you needed to know? Because this event, I mean, it can’t have been thrown together in the last couple of months. Presumably you came along and joined at some point where many things had been set in motion. But how did you acquire the knowledge that you needed to do the work that you are now doing? Who taught you all of this and so on?
\n\n\n\n[00:15:43] Karla Campos: Well, we do get the last year’s folder with all the information. So it came about from a lot of reading, asking past team members. So we do have some people who were part of the organizing team last year. Gail Wallace, one of our co-leads, she’s doing contributor day, she’s doing photography, she’s also helping with the lead organising. So she was very helpful in just kind of letting us know about the previous year.
\n\n\n\nWe have mentors like Kevin Christiano and Aaron Campbell from hosting.com, who also worked with WordCamps in the past. And there are mentors who we can always contact on Slack. So we do a lot of work on Slack, and we can always message them back and forth with any information any, hey, we need help with this. They’re always there to just say, hey, this would be a better practice from our experience last year. So we do have mentors there that help us, and that’s been a big relief.
\n\n\n\n[00:16:37] Nathan Wrigley: How much time do you imagine, if I was to ask you on a, let’s go for a weekly basis. At the moment, so we’re three-ish weeks away from the event, something like that, how much time are you spending during the previous week? So the last seven days, how many hours do you think you’ve clocked up working towards this event?
\n\n\n\n[00:16:53] Karla Campos: At least, I would say 30 hours.
\n\n\n\n[00:16:55] Nathan Wrigley: Wow, okay. And so that then presumably has had a material impact upon the regular work that you do. Now, either you are just superhuman and can add 30 hours into your working week with no perceived, you know, there’s just, that’s fine. I can just add 30 hours in. Most of us, including myself, could not do that. I would have to kind of offset one thing with the other. Have you done that? Has it had an impact on the business, the work that you normally do? Have you had to sort of downgrade the amount of time you’ve been spending recently on that kind of work?
\n\n\n\n[00:17:22] Karla Campos: Not on my business, more on my free time, so I’m not getting out this summer to the pool as I would have last year. But luckily, we’re having a super heat wave in Florida, so it’s too hot outside anyway.
\n\n\n\n[00:17:33] Nathan Wrigley: It’s like it’s been planned, yeah.
\n\n\n\n[00:17:35] Karla Campos: It’s been planned. The universe is putting a heat wave out there, so now I can’t outside in the pool, but I would probably still take my devices out there.
\n\n\n\n[00:17:42] Nathan Wrigley: Has the team had any concerns around attendee numbers? Because I remember I went to this event last year, and I actually don’t know what the numbers are, but I’m going to guess it was in the region of, I don’t know, 1,300 to 1,500, something like that, attendees.
\n\n\n\nThere’s obviously been a lot of controversy in the WordPress space since that event. I wondered if there has been some anxiety? I have a recollection that the event, the planning of the event probably would’ve been happening earlier than it did for this event.
\n\n\n\nSo I’m just wondering if you could speak to that, whether or not the team itself are happy with the numbers that you’ve got so far? And whether or not things are kind of late in the planning, let’s put it that way. Do you feel that it’s all being put together in a rushed way?
\n\n\n\n[00:18:23] Karla Campos: No, I think we’re on track. I mean, we expected the event to be smaller this year because there have been discussions around different things that are happening in just the space, like traveling restrictions, people being scared to fly to the US, different things that we knew it was going to make the numbers less.
\n\n\n\nBut right now we’re up to 730 registered attendees. So we are planning for a thousand attendees. That’s our goal. Hopefully more. But yeah, we expected that it was going to be a little bit less than last year for the various reasons, including the travel restrictions and things that people do not want to come to the US for.
\n\n\n\nBut, Portland is ultimately a very friendly place and I think our concern is that everyone is safe and happy at the event. So I think we’re doing a very good job with that right now.
\n\n\n\n[00:19:11] Nathan Wrigley: I guess also there’s maybe, the fact that an event like this has happened in the previous year at the exact same venue. There’s maybe a little bit that would be squandered there, if you know what I mean?
\n\n\n\nSo the idea that you’d get a similar number of the exact same people, plus others, coming back to the same venue. I know for me at least anyway, it is quite nice to have the opportunity to go to different places. I’m going to be in attendance, so it hasn’t put me off. I’m still going to be there. But I think some people do like the fact that, you know, it’s in Portland one year and it’s in, I don’t know, Texas or California or whatever it may be in different years.
\n\n\n\nSo maybe that kind of speaks into it a little bit as well. But yeah, the whole thing around traveling to the US, plus the obvious problems that we’ve had in the WordPress space around the community and so on. And then maybe this third piece of it being in the same venue and in the same location, maybe all of those conspire to not make it as big as last year. But still, a thousand, which seems to be the target number, is pretty credible.
\n\n\n\nDo you anticipate getting to a thousand? Is the trajectory at the moment, if you were to map that forward, do you think you’ll actually manage that? Despite the fact that it’s an aspirational target? Are you fairly confident you’ll get there?
\n\n\n\n[00:20:14] Karla Campos: Yeah, I’m confident. But I told you earlier, I’m a confident person, I’m always thinking positive. And we do have a lot of student initiatives, because we want to bring more people into the WordPress community, more students that perhaps haven’t even had the opportunity to experience WordPress, and the community, and how that can help them build their career.
\n\n\n\nSo, our topic is sort of like the future of WordPress. And we’re doing a lot of student initiatives so that, you know, everybody gets a little bit of that WordPress community feel and that would, there’s a lot of students very interested, so I think we can reach the number.
\n\n\n\n[00:20:48] Nathan Wrigley: I certainly hope so. I mean, when you say students, I’m presuming from that, that you mean younger people by that as well. So not just people that are in education, but really aiming that target at young people in education.
\n\n\n\nIt always struck me when you go to these events that the demographic definitely skews older. I don’t mean, you know, particularly old, but you don’t tend to find a bunch of 18 to 20 year olds wandering around in large proportion.
\n\n\n\nIt seems to me, it’s definitely in the late twenties, early thirties, forties, fifties and and upwards. So that’s been a definite charge that you’ve had then has it, to try and get younger people? Have I got that right? When you said student, did you mean younger people?
\n\n\n\n[00:21:29] Karla Campos: Well, we are working with colleges because they’re very interested in how AI and WordPress are evolving, and everything that’s going around that. And through our event, the teachers that work at the colleges are very excited to connect the students with the future of the web and whatever’s happening with web development and AI.
\n\n\n\nThey’re really interested in sending the students there because even though they’re educators, they’re not the innovators. So they want to come to WordCamp to connect with those innovators, including Google. Google’s liaison of search, Danny Sullivan, that was amazing to the students. They wanted to meet people in charge of the tech industry and connect there. So I’m talking about those students, yeah, the students that are in the tech industry that want to connect with the industry leaders.
\n\n\n\n[00:22:17] Nathan Wrigley: I think things work slightly differently over here in the UK, but I know that in the US there’s this sort of concept of college credits, where you do a certain thing and it can count towards part of your educational program. You know, you can tick some boxes and it will get you to jump over some hurdles.
\n\n\n\nDo you know if an event like WordCamp, in this case WordCamp US, do you know if an event like that can count? And does that in some way then kind of make it slightly easier to sell a WordPress event into that student marketplace, if you like?
\n\n\n\n[00:22:47] Karla Campos: It can, depending on the teachers. Some of the universities and colleges already have their structured standards on how credits work. But if we’re working with the teachers, sometimes they have summer school projects that they get extra credit, that helps their grades. So we can tie that in with that.
\n\n\n\nWe’re welcome to working with any teacher who wants to help their students grow their career and willing to give them extra credit and opportunities. So it depends on the college and the teacher and what already they have established.
\n\n\n\n[00:23:17] Nathan Wrigley: Yeah, like I said, we don’t kind of operate that system, certainly for WordCamp US, I don’t think that would particularly count. But I know that those kind of systems exist.
\n\n\n\nJust pivoting to you a little bit and the work that you did in the past. Obviously it sounds like you’ve got a heritage in being involved in sizable events, credible events in the tech space, and perhaps other spaces as well.
\n\n\n\nWhat do you make of this event? How do you sort of see it? Do you see it as a sort of professional tech event, something that you may have attended on behalf of organisations that you were working for before? Or is this much more of a kind of community event?
\n\n\n\nI can’t really sum up the exact target of what I’m trying to say there, but I’m just really after a feel of what you make of the event in terms of whether it’s more, I don’t know, more friendly, a little bit less business orientated, and perhaps skewing more to community, that kind of thing.
\n\n\n\n[00:24:05] Karla Campos: I think it’s a little bit of both. It is a friendlier atmosphere from the different tech events that I’ve been involved in that feel more serious. Because when you go to a WordCamp, you automatically feel that it’s a little friendlier, a little bit less corporate.
\n\n\n\nYes, everyone is very skilled. They’re very like awesome in their profession, but they’re also very down to earth and just willing to, hey, share a tidbit here, a tip here. I’ve even seen people help other people with their websites live at the events. Hey, look, I’m having a problem with my website. It’s not doing something on mobile. It’s not responding the way I want it to. It’s not responsive. Can you help me? And someone will stop and say, yeah, let’s sit down here in this corner. Let’s go to that room, and let me look at it and help you a little bit. And it’s something that I don’t see at other conferences where people have this community feel. So I’ve always admired that about WordCamps.
\n\n\n\n[00:24:56] Nathan Wrigley: Yeah, it’s really hard to encapsulate, isn’t it? What that thing is. But that thing is a thing. And what I mean by that is there is some quality of community spirit that definitely hasn’t existed at any event that I’ve been to outside of the WordPress space. It feels a little bit more like, heads down, you’re there for work, you must concentrate entirely on work, and maybe you’ll attend some kind of, I don’t know, after party or something like that. But again, the entire purpose of that will be business, business as usual.
\n\n\n\nAnd there is much more of sense of camaraderie. And really, I suppose if somebody is listening to this and is kind of on the fence about these events, definitely I would draw your attention to that fact. And although if you are perhaps slightly more on the introverted side, it doesn’t necessarily make it a hundred percent easier to attend, and this feeling that you’ll just suddenly be embraced by everybody in the hallway, it probably won’t work that way. But there is definitely a more friendly atmosphere. There’s a different, and dare I say it, vibe going on, which I have always really appreciated. It definitely feels less corporate, more friendly. There’s more of an opportunity to make friendships, for want of a better way of describing it.
\n\n\n\n[00:26:07] Karla Campos: Yes. And also, I’m sure you know Michelle Frechette.
\n\n\n\n[00:26:10] Nathan Wrigley: Oh, yeah.
\n\n\n\n[00:26:11] Karla Campos: I think everyone knows Michelle. She’s organising something called WP Trail Buddies. So she’s actually connecting veteran WordCamp attendees with new attendees, so that they can have like a friend, a buddy at the WordCamp that they can do things with, so they don’t feel alone and they feel welcome.
\n\n\n\nSo that’s a new thing, and that sounds, you know, if a person is coming to WordCamp for the first time, they can go that route, you know, they can actually have somebody there with them.
\n\n\n\n[00:26:37] Nathan Wrigley: I would draw everybody’s attention, if you’ve never been to one of these flagship WordPress events before, there is something particularly good about this Portland one. And the thing that I enjoyed so much last year, I enjoyed the event, but the venue itself was so brilliant, so enormous. There was never this hint of falling over people. There was quite literally acres of space to mill around.
\n\n\n\nAnd so the hallway track felt very much, you know, you could take five minutes out and go and sit in the corner over there and get on with your own stuff, what have you. But this would be a really good one to attend. So I would definitely advise people, if you’re on the fence and you kind of think, I maybe should go, I’m not entirely sure. Everything is geared up. We know what that place is like, the conference center is absolutely magnificent. So I would definitely urge people who are wavering, who aren’t entirely sure to give it a go.
\n\n\n\nAnd I will put a link into the show notes for the initiative that Michelle Frechette is leading, the WP Trail Buddies. And if you’ve got concerns about showing up and just hanging out and feeling a little bit isolated, then Michelle will be able to introduce you to somebody who has been there, done that, for want of a better word. Again, another reason to have a little look.
\n\n\n\nAnd the tickets are really inexpensive. It’s not nothing, but at the moment, I don’t think there’s going to be any change in this. But it’s a flat hundred bucks. And, in all honesty, you’ll probably eat more than a hundred dollars worth of food in the time that you’re there. So the ticket price is just absurdly low.
\n\n\n\n[00:28:02] Karla Campos: Yes, and we do also have a student pricing of $25, if the students show ID, or proof that they’re enrolled in school. So that’s also like an amazing deal.
\n\n\n\n[00:28:12] Nathan Wrigley: Now, the events often have a bit of a formula to them. There’ll be presentations, and they will run over a couple of days. So you’ll pick various tracks and you can go and see this person, and then come out into the hallway and hang out in the hallway.
\n\n\n\nBut then also there’s this idea of contributor day. And in contributor day, typically you would select a table, that table will be aligned to some core part of the project. So it could be photography, it could be Core, it could be, I don’t know, polyglots, something like that. And you would allocate your time and decide to work on that for the day.
\n\n\n\nI have a feeling that you are doing something a little bit different on contributor day this time around. Do you know about that? Do you want to speak about that?
\n\n\n\n[00:28:51] Karla Campos: We are, but it’s a secret.
\n\n\n\n[00:28:53] Nathan Wrigley: Is it? Okay.
\n\n\n\n[00:28:54] Karla Campos: No, it’s a hackathon, but Gail Wallace is going to speak more about that in the coming weeks. So we’re just waiting for her to share all the information about what she’s been working on with that.
\n\n\n\nBut there is something new, which is collaborating remotely for the Testing Team. So that’s fun. That hasn’t been done before.
\n\n\n\n[00:29:14] Nathan Wrigley: So the Testing Team will be open to kind of like a, more of like a Zoom approach. So it won’t just be people that are attending in the room. They’ll be able to offer the opportunity for people to join live, but remotely. Yeah, that’s really nice. That’s a really nice idea.
\n\n\n\nThe hackathon, I was lucky enough to go to a hackathon earlier this year. I attended CloudFest in Germany, in Rust in Germany. Obviously you are not able to reveal whether you know or otherwise what that will involve. For the people listening to this, I’ll just give you some indication of what that might involve.
\n\n\n\nAnd a hackathon, rather than just showing up and deciding on the spur of the moment what it is that you’re going to be involved with. A hackathon is more of a kind of project based thing, where you come to the hackathon with a project that you would like to see finished in a certain way. So you might come and say, during the next day, we’re going to try and do this thing, so we’re going to move from here to here.
\n\n\n\nAnd in that way, everybody coalesces on the exact same purpose, and tries to push that thing over the line. And in the hackathons that I’ve been to, again, there’s this sort of slightly tongue in cheek, fun, competitive edge as well, where at the end of the day, different people from the different teams sort of stand up and say exactly what they did and how they did.
\n\n\n\nAnd then there’s kind of like a voting, there’s a panel of people who decide who the, and I’m doing air quotes, who the winner is. So, again, obviously I’m not going to try and get you to reveal any details, but that kind of component, if it is anything like that, that really does bring something new and a bit of fun, I think.
\n\n\n\n[00:30:40] Karla Campos: Yeah, I think people enjoy, when it’s friendly competition on something that they’re passionate about building, I think they enjoy that, like sports. So it’s exciting.
\n\n\n\n[00:30:49] Nathan Wrigley: Yeah, that’s a good way of describing it, sporty, competitive edge kind of thing, isn’t it? Just sort of rehashing a bit of a question I asked a minute ago though. Obviously, like I said, you’ve been involved in these kind of events before in different spheres. Is there anything that you think, if you were to rerun your time, and maybe you’ll be involved in next year’s WordCamp US, I don’t know. Is there anything where you think, do you know what, I think we could try this, or we should jettison that? Obviously nobody’s implying that you are going to be the decision maker in any of this, but are there any bits and pieces that you think, well, we should definitely try that, or we should definitely maybe lose that?
\n\n\n\n[00:31:23] Karla Campos: I think we’ve had so many ideas, and we were all just kind of thrown together as a new team. And there were so many ideas flying around that we just couldn’t get to. So we’re doing the best ones that we thought about, but like there were so many others that we could’ve included.
\n\n\n\nSo I’m not sure if I’m going to be joining next year or not, I haven’t planned that out yet. But I think we’re going to at least have a discussion with the organisers about just kind of like looking back, hey, what did we like. Let’s leave little notes for the next year’s organising team so that they can, you know, they can know what to expect.
\n\n\n\nBut now we have a roadmap together as a team. So I think it’s fun. And we’ll be way more prepared next year and add more fun stuff that we just didn’t have time for. But we’re all very creative, so you know how those discussions go when everybody’s creative, throwing ideas. And it’s like, all right, we have to pick just three because all of these are great but, you know, we’re on a time constraint, so we just execute these.
\n\n\n\nSo I think it’s been fun all around. But yeah, just kind of getting all the ideas that we had together and executing them next year.
\n\n\n\n[00:32:23] Nathan Wrigley: I think it’s kind of an important moment for these kind of events because they’ve been running largely on the same format for a really long time. And there’s definitely, in events outside of the WordPress space, there definitely are some of these fun ideas kind of creeping in, making it a little bit more entertainment, if you know what I mean, at the same time as being educational and informative. And I think it would be interesting to sound some of those different organisations out. Maybe go to the different events like DrupalCon and things like that, and see how they do things differently. See how sponsorship works and so on and so forth.
\n\n\n\nNow, one question, which I think probably will be rounding off the episode, if that’s all right with you, would be to ask you, when does your involvement with this end? And I don’t mean, you know, that you might get involved next year. Because obviously I’m going to attend, and the minute the whole thing is finished, it’s kind of more or less over for me. I may go back to the hotel or spend a few days in Portland having a look around or what have you. But for me, the event has kind of finished at that moment. For you, I’m guessing that’s not the case. Do you have any anticipation of what it will involve in terms of collapsing the event down? At what point it will be considered to be finished by the team?
\n\n\n\n[00:33:28] Karla Campos: Well, physically we have to be out by a certain date and everything cleaned out. So I am planning to stay there a little bit longer to handle that with the rest of the team. But I think we should be done by the 31st. Everything should be cleared out, physically.
\n\n\n\nBut then of course we’re going to reunite and just kind of have a meeting and talk about the experience. And like we were talking about, what can we do better next year? And I think maybe, I think we’re still going to be in talks at least two weeks after the event is over to kind of close that out as a team.
\n\n\n\n[00:33:59] Nathan Wrigley: Yeah. So it definitely doesn’t end on the day that it’s going to end for me. So, yeah, there’s another example of the amount that people like you are doing.
\n\n\n\nI would just draw attention to the fact that clearly this is not an event which is being organised entirely by you. There’s obviously a huge team of people going on in the background. And it would be remiss of us not to thank all of them. Can’t mention them all by name, but if you go to the website, I’m sure there’ll be places where you can go and find out who is involved in the team.
\n\n\n\nDon’t forget that if you want to get tickets and you’re a student, you can pay just $25 for a, basically three day event. I mean, that’s nuts. Or if you are not a student and you want to attend, then $100. And there are still, I think, some additional options that you can explore, perhaps sponsorship options and things like that, above and beyond that as well.
\n\n\n\nSo, Karla, that’s all the questions I’ve got. Is there anything that I’ve missed? Is there anything prior to recording to this you thought, ah, I must remember to say that, but didn’t get a chance to say it?
\n\n\n\n[00:34:57] Karla Campos: I just want to say thank you everyone for even thinking of attending. It’s going to be a great event. We have amazing speakers all about the future of WordPress and AI. How everything in technology is changing, what that means for your business now. Or if you have plans for a new business, what it means for you in your career. It’s going to be just a great place to network with people in the field, and I’m extremely excited. So I hope you’re excited just like I am. And I hope to see you guys at the WordCamp US 2025.
\n\n\n\n[00:35:26] Nathan Wrigley: So I should probably at this point mention that the links to anything that we’ve mentioned so far will be in the show notes. But if you do wish to find out more about it, head to us.wordcamp.org/2025. And as is usually the case, there’s a whole bunch of links at the top of that website.
\n\n\n\nSo for example, you can look at the schedule, so see who’s speaking. You can look and dig into the location and about it. And obviously buying the tickets as well, that’s all going to be there. So us.wordcamp.org/2025, the numbers.
\n\n\n\nThere we go. Thank you very much for chatting to me today, Karla Campos. Really, really appreciate it. And very, very best of luck with the event. I hope to see you there.
\n\n\n\n[00:36:07] Karla Campos: Thank you, Nathan.
\nOn the podcast today we have Karla Campos.
\n\n\n\nKarla has been involved in the WordPress community for over 10 years, starting out in Miami and taking part in meetups and WordCamps before stepping into larger organisational roles. With a background in media and marketing, Karla brings plenty of experience in both web and events to the world of WordPress.
\n\n\n\nKarla joins us today as a lead organiser for the upcoming WordCamp US 2025, which will take place in Portland at the end of August. Remarkably, this is her first flagship WordCamp, she’s organising before ever attending.
\n\n\n\nWe discuss what motivated Karla to take on this major responsibility, how she balances the volunteer work with her professional life, and the challenges, expected and unexpected, along the way.
\n\n\n\nWe discuss the organisation of such a huge event, from working with a professional production company to handling the logistics, communications, accessibility requests, visas, and more for a thousand-plus attendees. Karla shares how the community side of the event is managed, the late-night worries, and what it really takes, both in time and personal commitment, to make WordCamp US happen, especially as a volunteer.
\n\n\n\nShe also highlights some new initiatives for this year’s event, renewed efforts to welcome students and first-time attendees, including student ticket pricing and the WP Trail Buddy’s program to help newcomers feel at home. She also teases the introduction of a hackathon-style Contributor Day and new remote collaboration options.
\n\n\n\nIf you’ve ever wondered what goes on behind the scenes of WordCamp US, how it’s organised, how volunteers are supported, and what motivates people like Karla to invest their own time and resources, this episode is for you.
\n\n\n\nLast July 25, 2025, WordPress Campus Connect finally made its mark in Southeast Asia by holding its first-ever event in the region in the City of Golden Friendship, Cagayan de Oro (CDO) City, Philippines.
Pictured: The WordPress CDO and Iloilo teams, speakers, and the PHINMA-COC students who attended the event.
\n\n\n\nThe event was held at PHINMA-Cagayan de Oro College. Over 100 students and school staff warmly welcomed the Philippines WordPress chapters that organized the event.
\n\n\n\nThe WordPress CDO chapter, with help from its sister organizations in WordPress Iloilo and WordPress Iligan, conceptualized this initiative as a bridge between traditional, controlled classroom learning and real-world practices and insights practiced by full-time WordPress practitioners. The event is also in line with the group’s commitment to upholding WordPress’s original mission of being a platform for “everyone”.
\n\n\n\nMost of the day’s presentations were centered around possible career paths that the student attendees might consider exploring after graduation.
\n\n\n\nAfter the opening address by Mr. RJ Cainglet, SBO Adviser of College of Information Technology, Mr. John Tañedo, a 15-year web designer and brand strategist, started the presentations with a talk that was simply entitled “Careers in WordPress”. His talk was straight-laced in its assessment of the current realities facing job seekers in the real world, particularly in freelancing and working as a part of a small-business operation.
\n\n\n\nWhile Mr. Tañedo was effusive in WordPress’s capabilities of giving just about anyone a leg up in starting careers in the digital space, he emphasized the need for students to be aware of the responsibilities that are actually needed for their careers, particularly if they are aiming to be either developers, designers, or marketers.
\n\n\n\nMr. Kim Isaiah Valencia, a full-time WordPress developer and a core member of WordPress Iloilo, continued the afternoon by holding a quick workshop on WordPress installation, themes, plugins, and hosting.
\n\n\n\nMr. Valencia and Mr. Hao guiding the student participants in installing WordPress on their laptops.
\n\n\n\nIn a room packed with students starting on their WordPress journeys, Mr. Valencia took the time to track each row’s progress on installing WordPress on the devices they have with them.
\n\n\n\nMr. Kyne Hao, a UI/UX designer and advocate, continued the pace with his talk on Design Thinking. He argued for the need for human-centered design, as design itself is observable in everyday things like appliances and furniture, as opposed to being just applied digitally.
\n\n\n\nMr. Hao laid out how students can practice simple design thinking frameworks by focusing on the tenets of Empathizing, Defining, Ideating, Prototyping, and Testing. Even in settings where a QA Tester is present, he emphasized the need for getting into the mind of the “target user”.
\n\n\n\nThe final talk of the afternoon was on Career Growth, Challenges, and Insights. Mr. Glenn Palacio, a creative with a remarkable 13-year career in Photography, tempered the anxieties of everyone in the room who might be thinking of how new technologies like Generative AI might affect their careers in the near future.
\n\n\n\nMr. Palacio laid out that even with the disruption and ethical challenges brought about by Gen-AI, the need for one’s creativity, adaptability, and critical thinking should always be at the forefront. He proceeded to illustrate real-world examples of businesses using AI to enhance their processes and business services.
\n\n\n\nMs. Harcy Joy Dela Cruz, WordPress CDO lead organizer, gifting a WordCamp-branded swag to a lucky student.
\n\n\n\nDespite the afternoon heat, the event was lively all throughout, with the students’ enthusiasm rubbing off even on the presenters and organizers.
\n\n\n\nWith the event ending on a high note, the likelihood is very high that other WordPress Campus Connects will spread to other neighboring cities in the region.
\n\n\n\nFrom L-R: Mr. Ian Malhin, PHINMA-CDO Engagement Associate of the Employer Engagement office; Mr. Kim Isaiah Valencia; Mr. Kyne Hao; Mr. John Tañedo; Mr. Glenn Palacio; and Mr. Riel Jun Estologa Cainglet, SBO Adviser.
\n\n\n\nFor those who want to be a part of our next events in the Philippines, you can follow us at either of the pages below if you’re near these cities:
\n\n\n\nThe WordPress Campus Connect in CDO would not have been possible without the support of the following sponsors:
\n\n\n\nSpecial thanks to Pooja Derashri and Anand Upadhyay, two incredibly passionate individuals who have been instrumental in bringing WordPress Campus Connect to life.
\n\n\n\nPooja, your mentorship kept us grounded, and Anand, thank you for continuously pushing and inspiring us to take this initiative forward. Your support means a lot to our growing community in the Philippines.
\";s: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, 06 Aug 2025 12:24:56 +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:\"Harcy Joy Dela Cruz\";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:8;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:74:\"WordPress.org blog: Maintenance Releases for WordPress branches 4.7 to 6.7\";s: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=18997\";s: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:90:\"https://wordpress.org/news/2025/08/maintenance-releases-for-wordpress-branches-4-7-to-6-7/\";s: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:2117:\"Following on from the WordPress 6.8.2 maintenance release last month, the included update to the root security certificate bundle has been backported to all branches back to 4.7. This ensures that when your site performs server-side HTTP requests, the most up-to-date information about trusted security certificates is used. Further information can be found on the Core Trac ticket.
\n\n\n\nA new maintenance release for each branch from 4.7 to 6.7 is now available. If you have sites on these branches and they support automatic background updates, the update process will begin automatically.
\n\n\n\nThe latest and only supported version of WordPress remains as 6.8.2. This is being done as a courtesy for sites still running older versions of WordPress. You can download WordPress 6.8.2 from WordPress.org, or visit your WordPress Dashboard, click “Updates”, and then click “Update Now”.
\n\n\n\nSpecial thanks to @desrosj, @ocean90, @davidbaumwald, @peterwilsoncc, @jorbin, @estelaris, and @johnbillion for backporting and releasing this update.
\";s: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, 05 Aug 2025 19:11:05 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:15:\"John Blackbourn\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:9;a:6:{s:4:\"data\";s:21:\"\n \n \n \n \n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:96:\"Open Channels FM: The Real Impact of Sponsored Contributors on WordPress Progress and Innovation\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:33:\"https://openchannels.fm/?p=105241\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:103:\"https://openchannels.fm/the-real-impact-of-sponsored-contributors-on-wordpress-progress-and-innovation/\";s: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:177:\"In this episode, Adam talks to Miriam and Amy about contributing to WordPress, sharing insights on how companies and individuals can support the open-source project effectively.\";s: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, 05 Aug 2025 09:09:59 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:10;a:6:{s:4:\"data\";s:21:\"\n \n \n \n \n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:87:\"Open Channels FM: How to Handle Customer Support as a Growing WordPress Plugin Business\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:33:\"https://openchannels.fm/?p=103843\";s: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://openchannels.fm/how-to-handle-customer-support-as-a-growing-wordpress-plugin-business/\";s: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:159:\"To succeed in a WordPress plugin biz, focus on customer support. Start solo for real feedback, then scale with docs and AI, but don’t forget the human touch.\";s: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, 04 Aug 2025 07:21:17 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:11;a:6:{s:4:\"data\";s:21:\"\n \n \n \n \n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:102:\"Gutenberg Times: Roadmap for WordPress 6.9, Block Bindings, Mega Menus, and More—Weekend Edition 336\";s: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=41023\";s: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:108:\"https://gutenbergtimes.com/roadmap-for-wordpress-6-9-block-bindings-mega-menus-and-more-weekend-edition-336/\";s: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:23414:\"Hi there,
\n\n\n\nI found a new AI tool, and I like it very much: Claude Code. For $20 per month you get a fabulous buddy to co-create plugins and themes for WordPress or scripts and modules for other purposes. It works right there in your terminal window.
\n\n\n\nIt helped me a great deal writing a plugin for the Gutenberg Changelog podcast so I can build a great podcast landing page. I needed additional social link icons and created block bindings for episode meta and podcast options data. Block variations will help me add the blocks to the inserter, and I don’t have to write block markup. Then I created a podcast archive template that I registered directly from the plugin. I am not yet done testing, but if you want to look at the code it’s on GitHub with some additional details. My plugin augments the Seriously Simple Podcasting plugin I have been using since 2015 and makes it more blocky.
\n\n\n\nWhat AI adventure did you pursue this week? Hit reply or share in the comments. I’d love to hear from you.
\n\n\n\nHave a splendid weekend.
\n\n\n\nYours,
Birgit
Aki Hamano released What’s new in Gutenberg 21.3? (30 July) In his release post he highlighted:
\n\n\n\n The latest episode is Gutenberg Changelog 119—WordPress 6.8.2 and 6.9, Gutenberg 21.1, 21.2, and 21.3 Releases with Tammie Lister.
If you are listening via Spotify, please leave a comment. If you listen via other podcast apps, please leave a review. It’ll help with the distribution.
\nAnne McCarthy published Roadmap to 6.9, the list of features contributors are working on to get ready for the release on December 2, 2025. It’s quite aspirational and starts with a few features where WordPress 6.8 left off. Here are the chapter headings.
\n\n\n\nRae Morey reported about it on The Repository: WordPress 6.9 Roadmap: Block Comments, Site Editor Updates, and an Admin Redesign.
\n\n\n\nMuhibul Haque, training team rep, just announced the Training Team Cohort: “WordPress Block Editor Basics”. “This hands-on learning experience will guide you through the essential tools, tips, and features of the Block Editor, helping you gain confidence and practical skills. ” he wrote. The post offers a form to indicate your interest.
\n\n\n\nThe host of the WPLift’s Cosmos podcast, Julia Colomb, invited members of the WordPress AI Team, James LePage, Jeff Paul, and Pascal Birchler to chat with her on episode 5, WordPress AI Team on Future of WP, and Human Side of AI at Cosmos by WPLift ,of the new show. They covered the core building blocks of AI features. They aim to boost multilingual features and make developer workflows smoother. They also touched on privacy and bias in AI.
\n\n\n\nTroy Chaplin recently launched version 2.0 of his Block Accessibility Checks plugin, enabling developers to add custom validation checks for their blocks. This version features a new Developer API that works with any block, whether it’s from your own plugin, a third-party source, or for a client project.
\n\n\n\nWhile initially aimed at identifying accessibility issues, the API also allows for various feedback types, such as content length checks and required fields, as long as it’s written in JavaScript.
\n\n\n\nChaplin aims to integrate accessibility and quality checks seamlessly into the editing workflow.
\n\n\n\nStephanie Pi, developer advocate at Woo has an update for WooCommerce site builders: WooCommerce Block Theme: An update on our strategy. In short, WooCommerce decided not to release its new “Purple” block theme as a separate product because it overlapped with other WordPress themes. Instead, they’ll add new design patterns and templates directly into WooCommerce, so all users benefit from updates, regardless of which theme they use.
\n\n\n\nRae Morey, The Repository, has more: Woo Withdraws Block Theme Submission, Reconsiders Successor to Storefront
\n\n\n\nA new event management plugin entered the stage: Lesley Sim and Ahmed Fouad launched EventKoi, built for classic or blocks theme. The first version comes wiht a 50% launch discount. On the roadmap are a free version as well as updates for Elementor, Beaver Builder, or Bricks, and a ton of features.
\n\n\n\nJustin Tadlock has a great tutorial for those of us who are bit shy in using the full theme.json to style blocks. In You don’t need theme.json for block theme styles you learn about block stylesheets and how to wp-enqueue your styles for block related styling. Tadlock also says, “It’s not one or the other”.
\n\n\n\nIf you are interested in the developer blog, Justin Tadlock and Mary Baum spoke with Abha Thakor on the OpenChannels show OpenMakers. In Learn, Share and Grow with the WordPress Developer Blog Community, they explored how this powerful resource helps developers at every stage. From sharing code breakthroughs and real-world case studies to offering guidance on writing, editing, and contributing, Justin and Mary unpack the collaborative spirit that fuels the blog and the broader WordPress community.
\n\n\n \n\n\nJamie Marsland has tested a new Menu Designer plugin by Mike McAlister and put it all in a video for us: WordPress Is About to Get a Whole Lot Better (Exclusive Preview).
\n\n\n \n\n\nThere is prior art, which I mentioned here a while ago.
\n\n\n\nMike McAlister seems to take the task to the next level with the Menu Designer. Stay tuned.
\n\n\n\nOn OpenChannels, Designing for Clients Using Figma Systems and WordPress Block Themes, Ash Shaw, founder of Lightspeed, joined Derek Hanson on the Publishing Flow show. Shaw shared how adopting Figma has revolutionized their design-to-development handoff, enabled more efficient client workflows, and strengthened alignment with WordPress’s core block themes.
\n\n\n \n\n\nAsh Shaw’s talk at WordCamp Europe is available on WordPressTV: Bridging Design and Development: Figma Design Systems for WordPress Success
\n\n\n \n\n\nThe team at Codeable, the freelance platform for WordPress developers, published What is React Used For? Popular Implementation Examples for developers starting to consider adding ReactJS to their toolbox.
In his latest video, AI Assistance, Right in Your Browser!, Jonathan Bossenger explored Google Chrome’s built-in Gemini support for the Developer Tools. He wanted to find out if it’s any good at helping him fix warnings and errors in my code.
\n\n\n \n\n\nTom Rankin published on the WPMayor site the 10 Top WordPress Web Development AI Tools for 2025 (By Use Case). He wrote, “The right AI tool will reduce your development time and improve both your code quality and creative output. I want to share 13 tools that could make the biggest impact on your WordPress workflow.” He tested them all.
\n\n\n\nRyan Welcher continues his Block Developer Cookbook series on YouTube with The WordPress Developer’s Guide to Mastering Custom Block Bindings. He takes you along when he creates a custom block binding source to connect a block variation to the post excerpt. You’ll learn how to bind dynamic data to your blocks for a seamless editing experience.
\n\n\n \n\n \n\n\nQuestions? Suggestions? Ideas?
Don’t hesitate to send them via email or
send me a message on WordPress Slack or Twitter @bph.
For questions to be answered on the Gutenberg Changelog,
send them to changelog@gutenbergtimes.com
To announce and celebrate the incredible engineering achievement of the Beeper team launching local bridges and their premium model we hosted a fun event in Automattic’s space in NYC. The app side of Automattic does some amazing work, and the applications themselves are pretty well known and reviewed, but many don’t know they’re part of Automattic, so it was a good opportunity to tell that side of our story a bit. Here’s the video from the event:
\n\n\n\nAnd if you’ve ever wanted to get better control over your instant messages, regardless of what network they may be on, definitely check out Beeper. I find it especially useful on desktop, like a Superhuman for messaging.
\";s: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, 31 Jul 2025 02:20: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: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:14;a:6:{s:4:\"data\";s:21:\"\n \n \n \n \n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:80:\"WPTavern: #179 – Mariya Moeva on the Impact of Google’s SiteKit on 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:48:\"https://wptavern.com/?post_type=podcast&p=197933\";s: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:91:\"https://wptavern.com/podcast/179-mariya-moeva-on-the-impact-of-googles-sitekit-on-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:43544:\"[00:00:19] Nathan Wrigley: Welcome to the Jukebox Podcast from WP Tavern. My name is Nathan Wrigley.
\n\n\n\nJukebox is a podcast which is dedicated to all things WordPress, the people, the events, the plugins, the blocks, the themes, and in this case, how the Google Site Kit plugin is attempting to simplify their product offering, right inside of WordPress.
\n\n\n\nIf you’d like to subscribe to the podcast, you can do that by searching for WP Tavern in your podcast player of choice, or by going to wptavern.com/feed/podcast, and you can copy that URL into most podcast players.
\n\n\n\nIf you have a topic that you’d like us to feature on the podcast, I’m keen to hear from you and hopefully get you, or your idea. Featured on the show. Head to wptavern.com/contact/jukebox, and use the form there.
\n\n\n\nSo on the podcast today we have Mariya Moeva. Mariya has more than 15 years of experience in tech across search quality, developer advocacy, community building and outreach, and product management. Currently, she’s the product lead for Site Kit, Google’s official WordPress plugin.
\n\n\n\nShe’s presented at Word Camp Europe in Basel this year and joins us to talk about the journey from studying classical Japanese literature to fighting web spam at Google, and eventually shaping open source tools for the web.
\n\n\n\nMariya talks about her passion for the open web, and how years of direct feedback from site owners shaped the vision for Site Kit. Making complex analytics accessible and actionable for everyone, from solo bloggers to agencies and hosting providers.
\n\n\n\nSite Kit has had impressive growth for a WordPress plugin, currently there are 5 million active installs and a monthly user base of 700,000.
\n\n\n\nWe learn how Site Kit bundles core Google products like Search Console, Analytics, Page Speed Insights, AdSense into a simpler, curated WordPress dashboard, giving actionable insights without the need to trawl through multiple complex interfaces.
\n\n\n\nMariya explains how the plugin is intentionally beginner friendly with features like role-based dashboard sharing, integration with WordPress’ author and category systems, and some newer additions like Reader Revenue Manager to help site owners become more sustainable.
\n\n\n\nShe shares Google’s motivations for investing so much in WordPress and the open web, and how her team is committed to active support, trying to respond rapidly on forums and listening closely to feedback.
\n\n\n\nWe discussed Site Kit’s roadmap, from benchmarking and reporting features, to smarter, more personalized recommendations in the future.
\n\n\n\nIf you’ve ever felt overwhelmed by analytics dashboards, or are looking for ways to make data more practical and valuable inside WordPress, this episode is for you.
\n\n\n\nIf you’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’ll find all the other episodes as well.
\n\n\n\nAnd so without further delay, I bring you Mariya Moeva.
\n\n\n\nI’m joined on the podcast by Mariya Moeva. Hello, Mariya. Nice to meet you.
\n\n\n\n[00:03:35] Mariya Moeva: Nice to be here.
\n\n\n\n[00:03:36] Nathan Wrigley: Mariya is doing a presentation at WordCamp Europe. That’s where we are at the moment, and we’re going to be talking about the bits and the pieces that she does around Site Kit, the work that she does for Google. Given that you are a Googler, and that we’re going to be talking about a product that you have, will you just give us your bio? I’ve got it written here, you obviously put one on the WordCamp Europe website. But just roughly what is your place in WordPress and Google and Site Kit and all of that?
\n\n\n\n[00:04:05] Mariya Moeva: Yeah. I mean, I’ve had a very meandering path. When you would look back to what I studied, which was, you know, classical Japanese literature, all these poems about the moon and the cherry blossoms, who would’ve thought at that time that I would end up building open source plugins? But I did have a meandering path and I ended up here because, mostly because of passion for the open web, and for all kinds of weird websites that exist out there. I really love stumbling upon something great.
\n\n\n\nI started Google on the web spam team, actually looking into the Japanese spam market, because of this classical Japanese literature degree and the Japanese skills. And then after a couple years or so, I basically despaired of humanity because all you look at is spam every day. Bad sites, hacked sites, malicious pages. And I just wanted to do something that makes the web better rather than removing all the bad stuff.
\n\n\n\nAnd so I switched over to an advocacy role, and in that role I essentially was traveling, maybe attending 20, 30 conferences every year, talking to a lot of people about their needs, what they have to complain about Google, what requests they have. And I would collect all of this feedback, and then I would go back to the product teams and I would say, hey, this and this is something that people really want. And they would say, thank you for your feedback.
\n\n\n\nEssentially at one point I said, okay, we’re going to build this thing, and that’s why I switched into product role. And I was able to take all the feedback over the years, that we’ve gotten from developers and site owners, and to try to build something that makes sense for them. So that’s how I ended up in the product role for building Site Kit.
\n\n\n\nAnd the idea from the very beginning was to make it beginner friendly and to make it from their perspective to match that feedback, rather than doing something that is like, here’s your stuff from analytics, here’s your stuff from Search Console, figure it out. That’s how we ended up building this and it’s been now five years. And it actually just a month ago entered the top 10 plugins. So clearly people find some value in it.
\n\n\n\nWe have 700,000 people that use it every month. And overall it’s currently at 5 million active installs, meaning that these sites are kind of pinging WordPress so they’re alive and kicking. It’s been very encouraging to see that what we’re doing is helpful to people and we will keep going. There’s a lot to do.
\n\n\n\n[00:06:29] Nathan Wrigley: I think it’s kind of amazing because in the WordPress space, there are some of the, let’s call them the heavy hitters. You know, the big plugins that we’ve all heard of, the Yoasts of this world that kind of thing. Jetpack, all those kind of things. This, honestly has gone under the radar a bit for me, and yet those numbers are truly huge. Four and a half to 5 million people over a span of five years is really rather incredible.
\n\n\n\n[00:06:54] Mariya Moeva: It grew very fast, yeah.
\n\n\n\n[00:06:55] Nathan Wrigley: Yeah. And yet it’s not one that, well, I guess most people are reaching out to plugins to solve a problem, often a business problem. So, you know, there’s this idea of, I install this and there’s an ROI on that. This is not really that, not really ROI, it’s more site improvement. Okay, here’s a site that needs things fixing on it. Here’s some data about what can be fixed. And so maybe for that reason and that reason alone, it’s flown under the radar for me because it doesn’t have that commercial component to it.
\n\n\n\n[00:07:24] Mariya Moeva: Yeah, for sure. It’s for free and it’s not something that, yeah, sells features or has like a premium model and we don’t market it so much. But I run a little survey in the product where people tell us where they heard from it, and a lot of the responses are either YouTube video, or like blog posts or word of mouth. So it seems to be spreading more that way.
\n\n\n\n[00:07:46] Nathan Wrigley: Yeah, no kidding. I’ll just say the URL out loud in case you’re at a computer when you’re listening to this. It’s SiteKit, as one word, dot withgoogle.com. I don’t know if that’s the canonical URL, but that’s where I ended up when I did a quick search for it. So sitekit.withgoogle.com. And over there you’ll be able to download well, as it labels itself, Google’s official WordPress plugin.
\n\n\n\nThe first thing that surprises me is, a, Google’s interest in WordPress. That is fascinating to me. I mean, obviously we all know, Google is this giant, this leviathan. Maybe you’ve got interest in other CMSs, maybe not. I don’t really know. But I think that’s curious. But obviously 43% of the web, kind of makes sense to partner with WordPress, doesn’t it? To improve websites.
\n\n\n\n[00:08:31] Mariya Moeva: Yeah. I work with plenty of CMSs. I work with Wix, with Squarespace, and we essentially what I try to do and what my team tries to do, we are called the Ecosystem Team. So we want to bring the things that we think would be useful to site owners and businesses directly to where they are.
\n\n\n\nSo if you are in your Wix dashboard, you should be able to see the things from Google that are useful. And same if you are in WordPress. And obviously WordPress is, orders of magnitude, a bigger footprint than any of the others. And also it has this special structure where everything is decentralised and people kind of mix and match. So that’s why we went with the plugin model. And using the public APIs, we want to show what’s possible.
\n\n\n\nBecause all the data that we use is public data. There’s no special Google feature that only the Google product gets, right? We are just combining it in interesting ways because I’ve spent so much time talking to people, like what they need. And so we just curate and combine in ways that are actually helping people to make decisions and to kind of clear the clutter.
\n\n\n\nBecause when you go to analytics, it’s like 50 reports and so many menus and it’s like, where do I start? So we try to give a starting point in Site Kit. And we also try to help with other things like make people sustainable. One thing that we recently launched just a month ago is called Reader Revenue Manager. So you can put a little prompt on your site, which asks people to give you like $2 or whatever currency you are in, or even put like a subscription.
\n\n\n\nAnd so the idea is you don’t have to have massive traffic in order to generate revenue from your content. If you have your hundred thousand loyal readers, they can help you be more sustainable. So we’re looking at these kind of features, like what can we launch that is more for small and medium sites and would be helpful? And how can we make it as simple as possible? So that people don’t kind of drop off during the setup because it’s too complicated.
\n\n\n\n[00:10:33] Nathan Wrigley: Would it be fair to summarise the plugin’s initial purpose as kind of binding a bunch of Google products, which otherwise you would have to go and navigate to elsewhere? So for example, I’m looking at the website now, Search Console, Analytics, Page Speed Insights, AdSense, Google Ads, and all of those kind of things. Typically we’d have to go and, you know, set up an account. I guess we’d have to do that with Site Kit anyway. But we’d have to go to the different URLs and do all of that.
\n\n\n\nThe intention of this then is to bind that inside of the WordPress UI, so it’s not just the person who’s the admin of that account. You can open it up so that people who have the right permissions inside of WordPress, they can see, for example, Google Analytics data. And it gets presented on the backend of WordPress rather than having to go to these other URLs. Is that how it all began as a way of sort of surfacing Google product data inside the UI of WordPress?
\n\n\n\n[00:11:21] Mariya Moeva: Yeah, we wanted to bring the most important things directly to where people are, so they don’t have to bother going to 15 places. And we wanted to drastically decrease and curate the information so that it’s easy to understand, because when you have 15 dashboards in Analytics and 15 dashboards in Search Console, and then you have to figure out what to download and in which spreadsheet to merge and how to compare, then this is. Maybe if you have an agency taken care of, they can help you. But if you don’t, which 70% of our users say that they’re one person operation, so they’re taking care of their business, and on top of that, the website. We wanted to make it simpler to understand how you’re doing, and what you should do next with Google data.
\n\n\n\n[00:12:02] Nathan Wrigley: So it’s a curated interface. So it’s not, I mean, maybe you can pull in every single thing if you so wish. But the idea is you give a, I don’t know, an easier to understand interface to, for example, Google Analytics.
\n\n\n\nThat was always the thing for me in Google Analytics. I’m sure that if you have the time and the expertise, like you’re an agency that deals with all of that, then all of that data is probably useful and credible. But for me, I just want to know some top level items. I don’t need to dig into the weeds of everything.
\n\n\n\nAnd there was menus within menus, within menus, and I would get lost very quickly, and dispirited and essentially give up. So I guess this is an endeavor to get you what you need quickly inside the WordPress admin, so you don’t have to be an expert.
\n\n\n\n[00:12:43] Mariya Moeva: Yeah. And then it gets more powerful when you are able to combine data from different products. So, for example, we have a feature called Search Funnel in the dashboard, which lets you, it combines data from Search Console on search impressions and search clicks, and then it combines data from Analytics on visitors on the site and conversions. So it kind of helps you map out the entire path, versus having to go over here, having to go over there, having to combine everything yourself. So when you combine things, then it gets also more powerful.
\n\n\n\nWe have another feature which lets you combine data from AdSense and Analytics. So if you have AdSense on your site, you can then see which pages earn you the most revenue. So when you have that, suddenly you can see, okay, so I have now these pages here, what queries are they ranking for? How much time people spend on them? Can I expand my content in that direction? It helps you to be more focused in kind of the strategy that you have for your site.
\n\n\n\n[00:13:45] Nathan Wrigley: Is it just making, I mean, I say just, is it making API calls backwards and forwards to Google’s Analytics, Search Console, whatever, and then displaying that information, or is it kind of keeping it inside the WordPress database?
\n\n\n\n[00:13:58] Mariya Moeva: We don’t store anything, well, almost anything. Yeah, we wanted to keep the data as secure as possible, so we created this proxy service, which kind of helps to exchange the credentials. So the person can authenticate with their Google account, and then from there, the data is pulled via API, and we cache the dashboard for one hour. After that we refreshed authentication token. From the data itself, nothing is stored.
\n\n\n\n[00:14:23] Nathan Wrigley: So it’s just authentication information really that’s stored. Well, that’s kind of a given, I suppose. Otherwise you’ll be logging in every two minutes.
\n\n\n\n[00:14:29] Mariya Moeva: Right. So that’s the model that we have because we really wanted people to be able to access this data, but also to keep it secure. And because of how the WordPress database is, we didn’t feel like we could save it there.
\n\n\n\n[00:14:41] Nathan Wrigley: It sounds from what you’ve just said, it’s as if it’s combining things from a variety of different services, kind of linking them up in a structured way so that somebody who’s not particularly experienced can make connections between, I don’t know, ads and analytics. The spend on the ads and the analytics, you know, the ROI if you like.
\n\n\n\nDoes it do things uniquely? Is there something you can get inside of Site Kit which you could not get out of the individual products if you went there? Or is it just more of a, well, we’ve done the hard work for you, we’ve mapped these things together so you don’t have to think about it?
\n\n\n\n[00:15:10] Mariya Moeva: The one thing that it does that I’m super excited about, and we’ll build on that, but we have the fundamental of it now, is it actually creates data for you. Because in contrast to Search Console or Analytics or all these other, which are kind of Google hosted, they can only tell you like a long help center article, go there on your site, then click this, then paste this code, right? They cannot help you with this, whereas Site Kit is on the website.
\n\n\n\nSo if you agree, which we don’t install anything without people’s consent, like they have to activate the feature, but if you agree, then we can do things on your behalf. So for example, we can track every time someone clicks the signup button and we can generate an analytics event for you, even if that plugin normally doesn’t send analytics events. And that way, suddenly you have your conversion data available.
\n\n\n\nSo very often people look to the top of the funnel, like how many people came to my site? But they don’t look to what these people did beyond kind of, oh, they stayed two minutes. So what does this mean? You want to see, did they buy the thing? Did they sign up for the thing, or subscribe or whatever it is? And we help create this data because we have this unique access to the source code of the site.
\n\n\n\nSo we create, for example, on leads generation or purchases. We also, every time that a specific page is viewed, we will generate an event about the author of the page. So then we can aggregate the data, which authors bring in the most page views. Let’s say you have like a site with five, six, whatever authors. Or which categories are bringing in the most engagement and these kind of things.
\n\n\n\n[00:16:52] Nathan Wrigley: So it really does get very WordPressy. It’s not just to do with the Google side of things. It is mapping information from Google, so categories, author profiles, that kind of thing, and mapping them into the analytics that you get. Okay, that’s interesting. So it’s a two-way process, not just a one-way process.
\n\n\n\n[00:17:09] Mariya Moeva: Yeah. It’s very much integrated with WordPress. We have also a lot of other features, like for example, that kind of stretch into other parts of the website. So this Reader Revenue Manager that I mentioned before with the prompts that you can put on your pages. You can go to the individual post and for every post there’s like a little piece of control UI that we’ve added there in the compose screen, where you can say, this is excluded from this prompt, or, you know, you can control from there.
\n\n\n\nSo we try to integrate where it makes sense, like where the person would want to take this action. And again, because it’s on the website, we can kind of spread out beyond just this one dashboard.
\n\n\n\n[00:17:48] Nathan Wrigley: And would I, as a site admin, would I be able to assign permissions to different user roles within WordPress? So for example, an editor, or a certain user profile, may be able to see a subset of data. You know, for example, I don’t know, you are involved in the spending on AdSense. But you, other user over there, you’ve got nothing to do with that. But you are into the analytics, so you can see that, and you over there you can see that. Is that possible?
\n\n\n\n[00:18:12] Mariya Moeva: We have something called dashboard sharing. So it has the same, like if you use Google Docs or anything like that, it has this little person with a plus in the corner, icon. And then from there, if you are the admin who set up this particular Google Service, who connected it to Site Kit, then you’re able to say who should be able to see it. So you essentially grant view only access to, let’s say all the editors, or all the contributors or whatever. And then you can choose which Google service’s data they can see.
\n\n\n\n[00:18:44] Nathan Wrigley: So yes is the answer to that, yeah.
\n\n\n\n[00:18:46] Mariya Moeva: Yeah, yeah. So they don’t have to set it up, I mean, they have to go through a very simplified setup, and then they basically get a kind of a screenshot. I mean it’s, you can still click on things, but you can’t change anything, so it’s kind of a view-only dashboard.
\n\n\n\n[00:18:59] Nathan Wrigley: I’m kind of curious about the market that you pitch this to. So sell is the wrong word because it’s a free plugin, but who you’re pitching it at. So obviously if you’ve got that end user, the site owner. Maybe they’ve got a site and they’ve got a small business with a team. Maybe it’s just them, so there’s the whole permissions thing there.
\n\n\n\nBut also I know that Google, there are whole agencies out there who just specialise in Google products, and analysing the data that comes out of Analytics. Can you do that as well as an agency? Could I set this up for my clients and have some, you know, I’ve got my agency dashboard and I want to give this client access to this website, and this website and this website, but not these other ones? Can it be deployed on a sort of agency basis like that?
\n\n\n\n[00:19:38] Mariya Moeva: You would still have to activate it for every individual site. So in that sense, there’s a bunch of steps that you have to go through. But once it’s activated, you can then share with any kind of client. And actually we have a lot of agencies that can install it for every site that they have.
\n\n\n\nJust today someone came and after he saw the demo, he was like, okay, I’m going to install it for all my clients. Because what we’ve heard is that it’s exactly the level of information that a client would benefit from. And this means then that they pester the agency less. So we’ve literally heard people saying, you’re saving me a lot of phone calls. So that’s why agencies really like it.
\n\n\n\nAnd the next big feature request, which we’re working on right now, is to generate like an email report out of that. So for those who don’t even want to log into WordPress to see, there will be a possibility to get this in their inbox.
\n\n\n\n[00:20:30] Nathan Wrigley: So you could get it like a weekly summary, whatever it that wish to trigger. And, okay, so that could go anywhere really. And then your clients don’t even need to phone you about that.
\n\n\n\n[00:20:41] Mariya Moeva: Yeah. So we are trying to really actively reach people where they are, even if that’s their email inbox.
\n\n\n\n[00:20:49] Nathan Wrigley: And the other question I have is around your relationship with some of the bigger players, maybe hosting companies. Do you have this pre-installed on hosting cPanels and their, you know, whatever it is that they’ve got in their back end?
\n\n\n\n[00:21:02] Mariya Moeva: Yeah, we have quite a few hosting providers that pre-install it for their WordPress customers. The reason for this is that they see better lifetime value for those customers that have a good idea of how their site is doing. And yeah, Hostinger is one of those. cPanel. Elementor pre-installs it for all of their users. And they see very good feedback because again, it’s super simple to set up and super easy to understand once you have it. So for them it’s kind of like an extra feature that they can offer, extra value to their users for free.
\n\n\n\n[00:21:32] Nathan Wrigley: We know Google’s a fabulous company, but you don’t do things for nothing. So what’s the return? How does it work in reverse? So we know that presumably there must be an exchange of data. What are we signing up for if we install Site Kit?
\n\n\n\n[00:21:47] Mariya Moeva: So, at least, I mean, Google is a huge company, right? There’s hundreds of thousands of people working. So I can’t speak for the whole of Google, but I can speak for the Ecosystem Team, which I’m part of, like the web ecosystem.
\n\n\n\nThe main investment here, or the main goal for us is that the open web continues to thrive, because if people don’t put content, interesting, relevant content on the open web, the search results are going to be very poor and that’s not a good product.
\n\n\n\nSo our idea is to support all the people who create content to make sure that they’re found, like if you’re a local business, that people can find you when they need stuff from that particular local business. And what we see is that, especially for smaller and medium sites, they really struggle, first with going online, and then with figuring out what they’re supposed to do. And so a lot of them give up because in comparison to other platforms, it’s a little bit of an upfront investment, right? Like you have to pay for hosting, you have to set up the site, you have to add content.
\n\n\n\nSo we try to help people as much as we can to see the value that the open web brings to them, so that they can continue to create for the open web. So that’s our hidden motivation. I think in that sense, we’re very much aligned with the WordPress community because here everybody cares about the open web and for all kind of small, weird websites to continue flourishing and get their like 100 or 300 or 1,000 readers that they deserve.
\n\n\n\nSo that’s the motivation. I think because it includes other things like AdSense and AdWords, like people can set up a ads campaign directly from Site Kit in a very simplified flow, and the same thing for AdSense. Obviously some money exchanges hands, but this is relatively minor compared to the benefit that we think there is for the web in general.
\n\n\n\n[00:23:35] Nathan Wrigley: Google really does seem to have a very large presence at WordPress events. I mean, I don’t know about the smaller ones, you know, the regional sort of city based events, but at the, what they call flagship events, so WordCamp Asia and WordCamp Europe and US, there’s the whole sponsor area. And it’s usual to see one of the larger booths being occupied by Google. And I wonder, is it Site Kit that you are talking about when you are here or is it other things as well?
\n\n\n\nBut also it’s curious to me that Google would be here in that presence, because those things are not cheap to maintain. So there must be somebody up in Google somewhere saying, okay, this is something we want to invest in. So is it Site Kit that you are basically at the booth talking about?
\n\n\n\n[00:24:19] Mariya Moeva: So me, yes, or people on my team. We have like a Site Kit section this year. There’s also Google Trends. There’s also some other people talking about user experience and on search. And this changes depending on which teams within Google want to reach out to the WordPress community.
\n\n\n\nBut with Site Kit, we’ve been pretty consistent for the last six years. We are always part of the booth. But the kind of whole team, like the whole Google booth content has kind of changed over the years as well depending on who’s coming.
\n\n\n\n[00:24:51] Nathan Wrigley: I know that a lot of work being done is surrounding performance and things like that, and a lot of the Google staff that are in the WordPress space seem to be focused on that kind of thing, talking about the new APIs that are shipping in the browsers and all of those kind of things.
\n\n\n\nOkay, so on the face of it, a fairly straightforward product to use. But I’m guessing the devil is in the detail. How do you go about supporting this? So for example, if I was to install it and to run into some problems, do you have like a, I don’t know, a documentation area or do you have support, or chat or anything like that? Because I know that with the best will in the world, people are going to run into problems. How do people manage that kind of thing?
\n\n\n\n[00:25:27] Mariya Moeva: Yeah, this was something that I was super, I felt really strongly about based on my previous experience in the developer advocate world. Because very often I got feedback that it’s super hard to reach Google. And it’s also understandable given the scale of some of the products.
\n\n\n\nBut when I started this project I insisted that we allocate resources for support. So we have two people full-time support. One of them is upstairs, the support lead. He knows the product inside and out. They’re always on the forum, the plugin forum, support forum. And they answer usually within 24 hours. So everybody who has a question gets their question answered.
\n\n\n\nWe’ve also created the very detailed additions. When you have Site Kit, you also get a few additions to the Site Health forum, so you can share that information with them and they see like detailed stuff about the website so they can help debug. And in many, many cases, I’ve seen people coming pretty angry, leave a one star review, then James or Adam who are support people, engage with them, and then it turns into a five star review because they feel like, okay, someone listened to me and helped me figure out what is going on.
\n\n\n\nWe have real people answering questions relatively quickly. And they don’t just go, of course they focus on the WordPress support forum, but they also check Reddit and other places where people like mentioned Site Kit, and they try to help and to direct them to the right place. So for Site Kit, we have very robust support.
\n\n\n\nNow, when it’s an issue with a product, a Google product that is connected to Site Kit, so it’s not a Site Kit problem, let’s say you got some kind of strange message from AdSense about your account status changing. Then we would have to hand over to the AdSense account manager or support team that they have, because we don’t know everything, like how AdSense makes decisions and stuff like that. But for anything Site Kit related, we are very fast to answer.
\n\n\n\n[00:27:22] Nathan Wrigley: That’s good to hear because I think you’re right. I think the perception with any giant company is that it kind of becomes a bit impersonal, and Google would be no exception. And having just a forum which never seems to get an answer, you drop something in, six months later, you go back and nobody’s done anything in there except close the thread, kind of slightly annoying. But something like this. So 24 hours, roughly speaking, is the turnaround time.
\n\n\n\n[00:27:45] Mariya Moeva: Yeah. I mean, not on the weekend, but yeah.
\n\n\n\n[00:27:46] Nathan Wrigley: Yeah. Still, that’s pretty amazing.
\n\n\n\n[00:27:47] Mariya Moeva: Yeah, yeah. We are very serious about this because, I mean, also the WordPress community is really strong, right? So you want to show that we care. We want to hear from people. A lot of bugs then also turn into feature requests and get prioritised to be developed. So, yeah, we really value when people come to complain. It’s a good thing.
\n\n\n\n[00:28:03] Nathan Wrigley: Excellent. Okay, well, we won’t open that as a goal, please send in your complaints. But nevertheless, it’s nice that you take it seriously.
\n\n\n\nSo it sounds like it’s under active development. You sound like this is basically what you’re doing over at Google. Do you have a roadmap? Do you have a sort of laundry list of things that you want to achieve over the next six months? Interesting things that we might want to hear about.
\n\n\n\n[00:28:21] Mariya Moeva: Sure, yeah. I mean, my ultimate vision, which is not the next six months, I would love to move away as much as possible from just stats. As curated and as kind of structured as it is right now, and get more into like recommendations, and like to-do list. Because what I hear from people again and again, it’s like, I have two hours this month, tell me what should I do with those two hours?
\n\n\n\nSo they’re asking a lot from us. They’re asking essentially to look, analyse everything and to prioritise their tasks, to tell them which one is the most important or most impactful. And this is like several levels of analysis further than where we are now.
\n\n\n\nSo one thing that we are looking to work on is benchmarking, because you cannot know are you growing or not, unless you know how you’re doing on average. And today, people who are a little bit more savvy can do this of course, but a lot of people don’t. And so for us to be able to tell you, not just you got 20 clicks this week, but also this is okay for you, or this is better than last year, this time, or this is better than your competitors. I think that’s a really valuable way to interpret the data and to help people understand what it means.
\n\n\n\n[00:29:38] Nathan Wrigley: Yeah. And really, Google is one of the only entities that can provide that kind of data.
\n\n\n\n[00:29:44] Mariya Moeva: Especially for search.
\n\n\n\n[00:29:45] Nathan Wrigley: Yeah, especially against competitors. That’s really interesting because analysing the data, whilst it’s fun for some people, I feel it’s not that interesting for most people. And so just having spreadsheets of data, charts of data, it’s interesting and you no doubt gain some important knowledge from it. But being told, here’s the outcomes of that data, try doing this thing and try doing that thing, that is much more profound than just demonstrating the data.
\n\n\n\nAnd I’m guessing, I could be wrong about this, and I’ve more or less said this in every interview over the last year, I’m guessing there’s an AI component to all of that. Getting AI to sort of analyse the data and give useful feedback.
\n\n\n\n[00:30:22] Mariya Moeva: I mean, we are investigating how to do all of these things. I think in the case of WordPress, it’s a little bit trickier again, because of the distributed nature, and the fact that all the site information lives on the site and then all the Google information. So we’re not like fully hosted where you can access everything and control everything, something like a Squarespace or a Wix.
\n\n\n\nBut there’s definitely, like AI is a perfect use case for this, right? Like benchmarking, you can bucket sites into relevant groups and then see, are they performing better or worse? That’s like classic machine learning case. And we will see exactly, technically, how we’re going to reach this, but that’s one of the things that we’re working on right now.
\n\n\n\nAnother thing is to expand much more the conversion reporting and to help people understand, are they achieving their goals? Because this is something that surprisingly to me, so many people pay money and invest time in the site, and they cannot articulate what the site is doing. Is it working? Is it doing its job? And they’re like, well, like I got some people visiting. And I’m like, did they buy the thing? So you have to know what to
\n\n\n\ntrack, and then also to take action after you see the metrics, like to move them in one direction or another. And so helping people like map out this full funnel is one thing that we’re working on. And the other thing is also this email report.
\n\n\n\n[00:31:40] Nathan Wrigley: Yeah, that’s amazing. So really under active development. And you sound very impassioned about it. You sound like this has become your mission, you know?
\n\n\n\n[00:31:47] Mariya Moeva: I think, nobody ever complained that something is easy, right? When you make things simple and easy for people, they appreciate, even if they’re more knowledgeable than if they can do more advanced things themselves.
\n\n\n\nAnd I personally really care, like every time that I find a random website with really strange content, but just, someone put their soul into it. I recently found something in Zurich of like tours of Zurich, walking tours, by someone who really cares about history and architecture.
\n\n\n\nAnd it’s a terrible website design wise, but the content is amazing. And I was like, okay, this person could use some help, but he’s doing, or she’s doing like a great job at the content part, and then should get the traffic that they deserve for this. So that’s what motivates me also to come here.
\n\n\n\nOne person, two or three WordCamps ago came over and was saying, everything about Google is hard except Site Kit. And I was like, yeah, that’s what we are trying to do. We really want to simplify things for you. So, yeah, being here is also super motivating. To talk to people and to hear feedback and feature requests. And again, we like when people come to complain.
\n\n\n\n[00:32:54] Nathan Wrigley: Well, I was just speaking to a few people prior to you entering the room and those few people all have Site Kit installed on their site. So you’re doing something right.
\n\n\n\n[00:33:02] Mariya Moeva: I hope it’s helpful. I hope it answers some questions and saves people some time. That’s what we are trying to do. Yeah, we are in the part of Google that has the ecosystem focus, so we know that ecosystem changes take longer. I mean, still it’s a fast growing plugin. It got to 5 million in 5 years, but still that’s 5 years. And in the context of software companies which move very fast, 5 years is a long time.
\n\n\n\nYeah, we will keep going and hopefully more people can benefit from it. But we do have, yeah, still there are many people who come by and they’re like, whoa, what is this? Show me.
\n\n\n\n[00:33:36] Nathan Wrigley: Well, that’s nice. There’s for growth as well.
\n\n\n\n[00:33:38] Mariya Moeva: Yeah, yeah. For sure. I mean, for sure there’s always, and more people create new sites. So, again, going back to that hosting provider question of like, can we bring it to them at the moment of creation so that they know this is something I can use?
\n\n\n\n[00:33:50] Nathan Wrigley: Yeah. So one more time, the URL is sitekit.withgoogle.com. I will place that into the show notes as well.
\n\n\n\nMariya, I think that’s everything that I have to ask. Thank you so much for chatting to me about Site Kit.
\n\n\n\n[00:34:01] Mariya Moeva: Yeah, thank you for the invitation. It’s been a pleasure to talk about the ecosystem. And, yeah, if people have feature requests, they can always write us either on GitHub in the Site Kit repo, or on the support forum, or if they are coming to any WordCamp where we also are, we are also super happy to hear. So we always love to know what people struggle with, so that we can build it for them and make it easy.
\n\n\n\n[00:34:23] Nathan Wrigley: Thank you very much indeed.
\nOn the podcast today we have Mariya Moeva.
\n\n\n\nMariya has more than 15 years of experience in tech across search quality, developer advocacy, community building and outreach, and product management. Currently she’s the product lead for Site Kit, Google’s official WordPress plugin. She’s presented at WordCamp Europe in Basel this year, and joins us to talk about the journey from studying classical Japanese literature to fighting web spam at Google, and eventually shaping open source tools for the web.
\n\n\n\nMariya talks about her passion for the open web and how years of direct feedback from site owners shaped the vision for Site Kit, making complex analytics accessible and actionable for everyone, from solo bloggers to agencies and hosting providers.
\n\n\n\nSite Kit has had impressive growth for a WordPress plugin, currently there are 5 million active installs and a monthly user base of 700,000.
\n\n\n\nWe learn how Site Kit bundles core Google products, like Search Console, Analytics, PageSpeed Insights, AdSense into a simpler, curated WordPress dashboard, giving actionable insights without the need to trawl through multiple complex interfaces.
\n\n\n\nMariya explains how the plugin is intentionally beginner-friendly, with features like role-based dashboard sharing, integration with WordPress’ author and category systems, and some newer additions like Reader Revenue Manager to help site owners become more sustainable.
\n\n\n\nShe shares Google’s motivations for investing so much in WordPress and the open web, and how her team is committed to active support, trying to respond rapidly on forums and listening closely to feedback.
\n\n\n\nWe discuss Site Kit’s roadmap, from benchmarking and reporting features to smarter, more personalised recommendations in the future.
\n\n\n\nIf you’ve ever felt overwhelmed by analytics dashboards, or are looking for ways to make data more practical and valuable inside WordPress, this episode is for you.
\n\n\n\nWordCamp Masaka 2025, held from July 18–19 at Equator University of Science and Technology, wrapped up with a strong sense of community, innovation, and shared purpose. The second edition of this dynamic gathering brought together 291 attendees under the theme “Connecting Communities, Inspiring Ideas.” While we were just 9 shy of our 300-participant target, the energy and engagement made the event a resounding success.
\n\n\n\nParticipants from across Uganda and beyond including speakers from South Africa, Kenya, and Ghana—engaged in the two days of insightful talks, practical workshops, and meaningful conversations about the future of WordPress and open-source collaboration.
\n\n\n\nA heartfelt thank you to our amazing sponsors for their incredible support. This event would not have been possible without your generosity.
\n\n\n\nAmong the many impactful moments was the panel discussion titled “From Barriers to Belonging: Building Diverse & Inclusive Tech Communities.” This session encouraged meaningful dialogue around representation and inclusion, prompting participants to reflect on how to build more welcoming and equitable environments in tech.
\n\n\n\nThe event also featured a vibrant Student Engagement Program, which provided high school, vocational, and university students with an opportunity to explore WordPress. Through hands-on workshops, practical presentations, and networking opportunities with industry professionals, students gained valuable exposure and insights. Notably, several high school representatives expressed strong interest in bringing hands-on WordPress workshops and training sessions to their schools. They also proposed mentorship programs to help students develop real-world projects—highlighting a growing enthusiasm for learning and community involvement.
\n\n\n\nThe swag from Jetpack was warmly appreciated by attendees, adding a thoughtful and useful touch that made the event even more memorable.
\n\n\n\nKey themes explored during the event included:
\n\n\n\nThroughout the event, networking breaks and a community photo session provided ample opportunities for attendees to connect, share ideas, and build lasting relationships.
\n\n\n\nWordCamp Masaka 2025 was a testament to the thriving WordPress community in Uganda. It served as a powerful platform for knowledge exchange, skill enhancement, and fostering a strong sense of camaraderie. The diverse range of topics, from technical deep-dives to discussions on community building and future technologies, ensured there was something for everyone.
\n\n\n\nThe enthusiasm of the speakers, the active participation of attendees, and the invaluable support from sponsors created an unforgettable experience.
\n\n\n\nDuring the event, Arthur Kasirye (Community Program Supporter), Ssebuwufu Moses (WordCamp Masaka 2025 Lead Organizer), and Thabo Tswana (Event Supporter) met with Professor Mouhamad Mpezamihigo, Vice Chancellor of Equator University of Science and Technology, to introduce the WordPress Credits Internship Program—an initiative that integrates university students into the WordPress open source community through hands-on contribution projects. Professor Mpezamihigo expressed strong interest in the program and committed to formally submitting the university’s interest form, signaling a promising collaboration to advance student engagement and practical skills development.
\n\n\n\nThe success of this event reinforces the growing potential of WordPress as a tool for digital empowerment and economic development in the region. The connections made and the knowledge shared will undoubtedly contribute to the continued growth and innovation within the Ugandan tech landscape.
\nThe community looks forward to building on the momentum generated by WordCamp Masaka 2025 by continuing to collaborate, learn, and contribute to the global WordPress project.
\n\n\n\nFollow Masaka WordPress Meetup on X and LinkedIn for updates, news, and upcoming events.
\n\n\n\n \n\n\n\nFor more information about WordCamp Masaka 2025, please visit https://masaka.wordcamp.org/2025/.
\nI never imagined I’d be writing this.
\n\n\n\nTen years. A full decade of working in tech, without pause. Of growing, stumbling, learning, and showing up — with WordPress at the center of it all.
\n\n\n\nWhen I look back, the journey feels full — full of lessons, full of change, and full of heart.
\n\n\n\nThis year marks a major milestone in my life — 10 years of professional experience in the WordPress ecosystem. As I reflect on this journey, it’s not just a work anniversary. It’s a story woven with personal growth, learning, community, and quiet resilience — a journey that began in a small city in Udaipur, Rajasthan, India, and now reaches across the globe.
\n\n\n\nI was born and raised in Udaipur — a city known for its lakes and history, but not especially for tech companies. After completing my college degree, like many fresh graduates, I faced the uncertainty of landing a job — especially with the added constraint of staying in my hometown. Thankfully, my parents were incredibly supportive. They guided me, encouraged me, and reminded me that ambition has no boundaries — not even geographical ones.
\n\n\n\nThough I had trained in software testing, I didn’t know much about WordPress back then. I stumbled into the WordPress world by joining a local startup in Udaipur. That decision would change the course of my life.
\n\n\n\nThe company, led by Puneet Sahalot, was where my real journey began. Puneet, a close friend and mentor, introduced me to WordPress — its structure, its vastness, and more importantly, its values. He had a gift for seeing potential in people and believed in exploring uncharted paths. Puneet is no longer with us today, but his wisdom and encouragement remain a cornerstone in my journey.
\n\n\n\nWith his influence, I began digging deeper into WordPress. Finding my first bug on the WordPress core was a moment of both confusion and pride. Submitting it felt like stepping into a world where I didn’t just work on projects — I became part of a global movement.
\n\n\n\n\n\n\n\n\n“That one bug wasn’t just a bug — it was a beginning.”
\n
That first bug ignited something within me. I started contributing to various areas — from core testing to translations, organizing local WordCamps, and even speaking at events. It felt empowering to give back to something that gave me so much.
\n\n\n\nMarriage brought a new chapter — I moved to a metro city and joined Brainstorm Force, where I worked on a suite of powerful WordPress products, including the very popular Astra theme.
\n\n\n\nFrom a small local team to a larger product-driven organization, the shift was both challenging and fulfilling. I moved from being a tester to becoming a Product Manager, learning to balance leadership, quality assurance, user experience, and team collaboration. I found myself not just testing products — but shaping them.
\n\n\n\n\n\n\n\n\nI was also incredibly grateful to have a life partner who encouraged me to aim higher and supported my ambitions every step of the way.
\n
One of the proudest moments in my journey was being selected to lead the test team for the WordPress 5.6 and 5.7 releases. It was surreal. The appreciation and recognition I received from the global community made me realize how far I had come — from finding my first bug to helping others make WordPress better.
\n\n\n\nLife shifted gears again when I joined Caseproof (MemberPress) — a fully remote role that brought with it the flexibility I needed at a very important time in my life.
\n\n\n\nWorking remotely was a new experience but quickly became a blessing. When I became a mother, I embraced both worlds with open arms. I continued to work with the same dedication, sometimes holding my daughter in one arm while debugging with the other. My work never stopped, and my love for WordPress only deepened.
\n\n\n\nThese moments, though challenging, became proof that passion, purpose, and parenthood can co-exist beautifully. Each bug fixed, each feature tested, each call attended — became part of a rhythm that blended professional focus with maternal joy.
\n\n\n\n\n\n\n\n\n“I didn’t take big leaps. I took small steps. But I took them every day. That’s how I got here.”
\n
Some days were messy. Some were magical. But all of them were mine.
\n\n\n\nOutside of my professional life, I’m a passionate foodie and an avid traveler. Exploring new places and trying different cuisines fills me with joy and curiosity. So far, I’ve had the privilege of visiting 30 countries — each one offering a unique flavor, story, and lesson.
\n\n\n\nRecently, my family and I began a new chapter by relocating to Dubai. It’s a city that’s fast-paced, full of opportunity, and incredibly vibrant — and we’re absolutely loving it so far. This new environment continues to inspire both my personal and professional sides in unexpected ways.
\n\n\n\nEven after 10 years, I still feel like a student. The tech world evolves fast, and I try to keep pace. Recently, I’ve been diving into modern testing tools like Playwright and Cypress, and experimenting with AI-based automation — which is not just fascinating but necessary in today’s evolving digital landscape.
\n\n\n\nI’m excited to explore new contribution opportunities in WordPress — mentoring, accessibility testing, performance initiatives, and more. There’s always more to give back, and more to learn.
\n\n\n\nThis journey wasn’t built on dramatic turns or overnight success. It was made up of steady progress, genuine passion, and a strong belief in community and consistency.
\n\n\n\n\n\n\n\n\nTo those starting out, unsure of their path — your story is waiting. Take that first step.
\n
“You can build a global impact even from a small city. WordPress doesn’t ask where you’re from — it only asks, what will you contribute?”
\n\n\n\nIf I’ve learned anything over these ten years, it’s this:
\n\n\n\nIf you ever want to talk about testing, WordPress contributions, remote work, motherhood, or just career growth, feel free to reach out. I’d love to help, share, and learn with you.
\n\n\n\n\nThe post A Decade with WordPress: My Journey of Growth, Contribution, and Courage appeared first on HeroPress.
\";s: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, 30 Jul 2025 04: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:10:\"Monika Rao\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:18;a:6:{s:4:\"data\";s:21:\"\n \n \n \n \n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:86:\"Open Channels FM: Designing for Clients Using Figma Systems and WordPress Block Themes\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:33:\"https://openchannels.fm/?p=104272\";s: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:93:\"https://openchannels.fm/designing-for-clients-using-figma-systems-and-wordpress-block-themes/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:217:\"In the first episode of Publishing Flow, host Derek and Ash Shaw talk about how Figma transformed their WordPress workflow, enhancing design collaboration, client workflows, and even open-sourcing their design system.\";s: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, 29 Jul 2025 12:22:11 +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:19;a:6:{s:4:\"data\";s:21:\"\n \n \n \n \n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:53:\"Carlos Bravo: Enable xdebug on wordpress-develop repo\";s: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://carlosbravo.blog/?p=1222\";s: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:76:\"https://carlosbravo.blog/2025/07/28/enable-xdebug-on-wordpress-develop-repo/\";s: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:1492:\"Just adding this for my future self’s health. First, update the PHP config file.
\n\n\n\n// Enable xdebug.\n\n...\nxdebug.mode=develop,debug\n...
\n\n\n\nThe VSCode launch file:
\n\n\n\n{\n \"version\": \"0.2.0\",\n \"configurations\": [\n {\n \"name\": \"Listen for XDebug\",\n \"type\": \"php\",\n \"request\": \"launch\",\n \"port\": 9003,\n \"pathMappings\": {\n \"/var/www\": \"${workspaceFolder}\",\n },\n },\n ]\n}\n
\n\n\n\nDo not forget to update your .env
file.
...\n\n# Where to run WordPress from. Valid options are \'src\' and \'build\'.\nLOCAL_DIR=src\n\n# The PHP version to use. Valid options are \'latest\', and \'{version}-fpm\'.\nLOCAL_PHP=latest\n\n# Whether or not to enable Xdebug.\nLOCAL_PHP_XDEBUG=true\n\n...
\n\n\n\nBeware of trying to make it work with AI; you may end up with some hallucinations and tons of files!
\n\n\n\nBirgit Pauli-Haack and guest Tammie Lister discuss the latest WordPress and Gutenberg updates, including WordPress 6.8.2 and 6.9, as well as Gutenberg plugin releases 21.1, 21.2, and 21.3. They highlight the renewed excitement around shipping features, the introduction of a core AI team, and significant developments such as Data Views, advanced admin design planning, and ongoing work on collaborative editing. The episode emphasizes the importance of experimenting with new tools, building muscle memory, and encouraging feedback to help shape the evolution of WordPress and Gutenberg.
\n\n\n\n\n\n\n\nShow Notes
\n\n\n\nWordPress 6.9 Planning Proposal and Call for Volunteers
\n\n\n\nStay in Touch
\n\n\n\nTranscript
\n\n\n\nBirgit Pauli-Haack [00:00:12]: Well, welcome to our 119th episode of the Good Merck Changelog podcast. In today’s episode, we’ll talk about WordPress 6.8.2, WordPress 6.9, Gutenberg plugin releases 21.1, 2 and 3. And then we have two couple of things that are still in the works that need your feedback and discussions. I’m your host, Birgit Pauli-Haack, curator at the Gutenberg Times and WordPress developer advocate and core contributor for WordPress. Tammie is joining me today and I’m so happy to be able to catch up with my dear friend. Tammie was the design lead on the Gutenberg Project Phase one and still contributes a ton to the project. She sponsored two days a week by a range of awesome companies and individuals, and she’s also a co-founder of Guildenberg, a company focused on empowering and supporting product makers and also creates products herself. Welcome Tammie to our show. How are you today?
\n\n\n\nTammie Lister [00:01:10]: I’m great. How are you?
\n\n\n\nBirgit Pauli-Haack [00:01:12]: Oh, I’m good, I’m good. Yeah. I’m still on Vacation Brain. It’s my second week back and it’s the first episode so I don’t know if I speak Norwegian, German, English or any other language.
\n\n\n\nTammie Lister [00:01:24]: So I think you just need to hold on to that Vacation Brain. It’s important right it for a while.
\n\n\n\nBirgit Pauli-Haack [00:01:31]: Well, it’s holding on to me actually quite a bit. So when you were last on the show it was January, that’s half a year ago. So a lot has happened since. Anything that stands out for you that you’re excited about, that you’re working on.
\n\n\n\nTammie Lister [00:01:48]: And that you, yeah, tiny really not significant thing called the core AI team that been released and also just everyone focusing together for 6.9. I feel the most significant thing I think is just the force that everyone is rejuvenated with working in this in the direction of features and the excitement everyone has about shipping. I don’t know about you, but there’s generally like a, a shipping is in the air. That’s what it feels like at the moment. People want to ship things and make things and then explore the things. And I think we’re going to find as we kind of go through the change log. That’s what caught me as I was, I was reading it, people are using these features and then going oops, I need this. Oops, I need this. And that is what makes everything better as well.
\n\n\n\nBirgit Pauli-Haack [00:02:37]: Yes, I agree with you. There’s a lot of creativity in the air. There’s a lot of excitement about what’s coming next. With the AI, but also just with how to work with the Gutenberg editor. Now that’s really at a total different level. Yeah, I totally get it. Okay, so let’s get started.
\n\n\n\nWordPress 6.9 well, the good news is there will be a second major release in 2025. Since the end of May, Automattic has said they’re contributing again to the open source project. And so some of the contributors are back, but there are also new ideas in there that are coming. So the core committers met in a quarterly meeting earlier. You’re one of the core committers, so you were at the meeting, but I know Cheltenham rules there.
\n\n\n\nTammie Lister [00:03:23]: Yes.
\n\n\n\nBirgit Pauli-Haack [00:03:24]: And then out came a proposal that Jeff Paul published on the make blog with a planning proposal as well as the call for volunteers. So Beta 1 is scheduled for October 21st. If the release team that comes together kind of follows the plan and then the release candidate, which is very important for a lot of things, is November 11th, and the final release is then December 2nd in 2025. So from what I hear, and please correct me if I’m wrong or add to it what I’m missing, it’s going to be a little bit more improvements on the design tools. It’s the new admin design. At some point we will see something more in the release and there will also be maybe even just in experimental ways in Gutenberg collaborative editing. There’s some explorations, big explorations in the media library, what else.
\n\n\n\nTammie Lister [00:04:22]: So I think a lot of it’s being worked out at the moment and the roadmap post is due. So everything you say, I think it’s to be determined the boundaries of a lot of those things. But the best way that I can frame it is 6.9 will lay a lot of the groundwork for 7.0 as well. So for some of these things that we want, we have to do some infrastructure just like we had to do with Gutenberg in the phases we have to do infrastructure before. So just to suddenly go ta da, here’s an admin redesign that would be a little bit a lot for people. So how that happens in what ways, that happens in what areas, that is something that’s. It’s either I use the word sprinkles, that’s a weird word to use. But either some areas more functional could be in 6.9. I think it’s been worked out at the moment where that is the most useful. But at least friction, I think that’s the best way to. You know, it’s one of those Venn diagrams. How can we get the most feedback without causing the least issues at the same time? There’s been lots of different talks about how that could be done. Everyone will have an opinion and I think that’s just going to shape up over the next kind of few weeks and then we will see from there.
\n\n\n\nBirgit Pauli-Haack [00:05:31]: Yeah, yeah, I, I like that. You know, the, the. All those expirations and aspirations in the air. We’ll see where that all lands and. Yeah. Will you hear it?
\n\n\n\nTammie Lister [00:05:40]: You.
\n\n\n\nBirgit Pauli-Haack [00:05:40]: You will hear it at the Gutenberg Changelog first, because a lot of things will happen in the Gutenberg plugins in the following releases. If my calculations are correct, I think 21.8 will be the plugin release that will make all the features into the 6.9 release. Could be also release candidate 20.9 or something like that. But yeah, something like that. So there are a few. We are at three now, so there are five more Gutenberg releases and we will find out what will make it and what will be still in experiments or just the underlying infrastructure. You mentioned it before. AI is in the air. Around WordCamp Europe there was a new core team announced and we talked about it a month ago with Annabella and Anne McCarthy. Vacation Brain.
\n\n\n\nSo this week James LePage, one of the team reps, published a post called AI Building Blocks for WordPress. And he outlines first that it’s not going to be primarily in core. It’s more like everything is built as a canonical plugin, like a feature plugin, and to void kind of early login into a space that’s highly not settled and still exploratory, all the standards or something like that. So there are four plugins. One is the PHP AI client SDK. SDK stands for Software Development Kit. So for any that any developer who wants to include AI features can build an appliance for that. Then the Abilities API, you might have heard about it under the name Feature API. That has changed. It’s now Abilities API and that is that you can register features from your plugin that NNI can react on or act on. And then the MCP adapter, that’s Model Content protocol adapter for WordPress. And then the last one is the AI Experiments plugin, which is actually a showcase plugin to reel it all in. Yeah, so that’s kind of that what the post outlines.
\n\n\n\nTammie Lister [00:07:57]: Yeah, and I think the Experiments plugin is, as you say, it’s where everyone’s going to come together and use these things and also show people how to use these things and how they could implement them. We’ve had experiments in Gutenberg, we’ve kind of tucked away. We’ve also had experiments in design, we’ve had experiments in theme and I really love this because everyone is trying to work out how on earth they do AI, how on earth they do things where they can be useful in these projects. And one of these things can be maybe you do not know how to very few people do how to do PhPSD or MCP, all these kind of things but you really want to start learning that then being involved in the experiments plugin gives you an opportunity to kind of ride along and start to learn and discover with these teams that are already at that edge and exploring and it’s more on product kind of work in those kind of pieces.
\n\n\n\nBirgit Pauli-Haack [00:08:56]: Yeah, for sure. So if you also want to kind of Follow along Experience WordPress developers I know that Jon Bossenger has a live stream on Twitch where he kind of explores the new things and figures out a way to actually implement something. So he has used the Abilities API to create courses in Sensei via an AI client. So if you want to see how that’s going to work, go to the YouTube channel of Jon Bossenger. I definitely will share the link in the show notes about that. I also know that Ryan Welcher on his Twitch streams did quite a few experimentations with that lately. He’s doing his block development cookbook but afterwards he’s going to jump into AI again. But the previous editions definitely had some MCP and abilities API explorations there. That might be interesting for you because when you see an experienced developer kind of explore things and kind of also go detours. Yeah. You get a better way of thinking for yourself and your head around things that work.
\n\n\n\nTammie Lister [00:09:59]: Many, many of them are also exploring it like it’s a new thing for everybody even if you are an experienced developer. So being able to sit there and as someone who’s talking through and working through it really helps you kind of feel it’s not just you that maybe.
\n\n\n\nBirgit Pauli-Haack [00:10:14]: Doesn’t understand.
\n\n\n\nTammie Lister [00:10:17]: We’re all trying to work out where everything goes and how this new world functions.
\n\n\n\nBirgit Pauli-Haack [00:10:22]: Yeah. You are not alone.
\n\n\n\nTammie Lister [00:10:24]: Yes. Which is what’s also exciting. And one of the things that’s also mentioned in the Roadmap is Gutenberg Phase three. A lot of the pieces in there, from the admin redesign to collaborative editing, all of and the Media Lab, which I’m so excited about. Media is one of my little pet things. But being able to have all of that work be looked at as well, is going to be very exciting.
\n\n\n\nBirgit Pauli-Haack [00:10:49]: Yeah, yeah. For sure. Absolutely. Yeah. All right.
\n\n\n\nWhat’s released? Well, just this week came out WordPress 6.8.2 maintenance release with about 15 block editor fixes as well as 20 core tickets. A full list of bugs is in the release candidate announcement. You get from the release post block editor features where some of the bigger problems with the navigation link some fixed the query loop bug that overrode the query inherit attribute. Yeah. So it’s a nice good bug fix maintenance release that makes life a little bit easier and squashes some bugs.
\n\n\n\nAnd that brings us to Gutenberg 21.1 release. There were a few enhancements in there. Do you want to take it on and kick it off?
\n\n\n\nTammie Lister [00:11:40]: Yeah, I’m going to start with the block library, which is always a good place to start. It’s been around for a while, but it still is really good to kind of refine it. And the big pieces here really. Comments pagination had some unwanted block margin. Little things like this though feel like they’re small but they’re really significant for something that you. You go to time and time again having that unwanted margin and there’s little refinements and to me it shows maturity and that little refinement coming through. And then this navigation block. I actually was part of this piece with the sub indicator. This shows sometimes a small thing can feel. So it’s where the flip submenu. So the submenu indicates whether something has a submenu or not. And it wasn’t showing it, it wasn’t visually indicating. And it seems like something would be a very easy commit. It is not because it has a lot more implications in testing. So it shows in collaboration how we should have more extensive testing helps as well.
\n\n\n\nBirgit Pauli-Haack [00:12:45]: Yeah, yeah, I can see that. And for the bottom margin, if they are unwanted kind of and removed, I can see quite a few theme developers who. Who fixes that on their theme with custom CSS. Now they need to kind of also remove the custom cms.
\n\n\n\nTammie Lister [00:13:02]: Yeah.
\n\n\n\nBirgit Pauli-Haack [00:13:02]: To fix that.
\n\n\n\nTammie Lister [00:13:03]: So which is good. But it also shows that if you are making these. So. So one of the things I always suggest is have a kind of hacks file or at least a section so you know that you’ve hacked it. So you know you’ve worked around the system, not just kind of hide it within your theme. And it’s really important to notice these releases and check back if you possibly can with and kind of the last one here in the block Library is remove screencast.com embed block variation. So again, if something isn’t getting used as much, been able to take that away.
\n\n\n\nBirgit Pauli-Haack [00:13:35]: Yeah, absolutely. And well, they also need to take away the O embed part in Core, not only in Gutenberg there. Yeah, so and then there were some updates on the interactivity API that’s certainly interesting for developers who have actually explored that already. There’s now support for new router regions where you can click on and jump to and it supports also new styles and script models on the client side navigation. And it also starts using TypeScript for some of the helpers and some of the components or things. I call them modules. So you can better test it against and make sure that your code is compliant there. So the next thing is really exciting for me because I’m always. I hear a lot of plugin developers kind of talking about extensibility and now we have one block is actually really easy to extend and allow additional block variations. That’s the social icons block.
\n\n\n\nNow you can add any other service that is not maintained by Core easily in a block variation easily. And the PR is 70261 if you want to jump on it has some nice instructions on how to do this. I also know that Justin Tadlock is working on a tutorial for the block developer for the developer blog. Not Block, blog. I’m really excited about it because I’m or it came to a good timing for myself. I’m working on a block theme for the good work times and we have the podcast there, and the podcast needs additional things in there like the podcast name and the description is one thing, but you also need additional social icons where you can subscribe to the blog and to the podcast. So I identified seven of them and of course only one of them is in Core and I need to create the other six of them. I did my first trial on it and it was fairly easy to do. It gets a little bit complicated when you have your own styling to it. But if you’re just going to push it into the Gutenberg interface and let the user style it or change color pretty much, then it’s fairly easy to implement.
\n\n\n\nTammie Lister [00:16:00]: So I guess we move on to bug fixes now and then. Bug fixes. This is one of my favorite sections really because it means we’re just kind of cleaning up a little bit. So calendar block colors do not change between global styles and theme JSON things like that we spoke about like the theme fixing things, things like that, really, really important. Quality of life changes, and then social links allow icon size to be reset and on a theme. Jason Styles. That’s 70380. That is really, really important as well. Again, a Quality of Life. And you were talking about hacks. There probably has been a hack that you had to put in to kind of work around that as well.
\n\n\n\nBirgit Pauli-Haack [00:16:39]: Yeah. For both of them for the calendar blog as well as for the social links.
\n\n\n\nTammie Lister [00:16:42]: Yeah, I can imagine there’s like a not important for the second one.
\n\n\n\nBirgit Pauli-Haack [00:16:50]: Yeah. Yeah. I also came to accustomed to study the bug fixes because sometimes you run into bugs and say is it still there and. Or is it not? And all of them. Oh, it’s not there anymore. And it’s kind of really.
\n\n\n\nTammie Lister [00:17:03]: And then you can just clean up your bug file, right?
\n\n\n\nBirgit Pauli-Haack [00:17:06]: Yeah. And you can clean up your brain with the workarounds. Not only the theme files but also the memory stuff. Yeah. And that is pretty much what I found interesting in the Gutenberg 21.1 there’s a whole changelog with tooling and documentation updates and the release post actually has all the change log in there. So you can read up about that.
\n\n\n\nAnd we’re coming to Gutenberg 21.2 and here we see already some changes to the Data Views. It introduces the per page sizes to control the available size of the items per page. So that is something that comes from the admin where you can say it’s kind of getting feature part on the WP admin view you can say okay, I want 50 things on my page. Please do this also on the new Data View. So that’s cool.
\n\n\n\nTammie Lister [00:18:04]: Yeah, I love this. This also and the kind of next release shows that Data Views is getting used by people because it shows that we need to improve it. I am someone that has been using Data Views in situations and they are great, but they are quite limiting. And it means the more potential you have, the more easily it is to use for an implement. And it also means more feedback. So that’s what’s happening and how and improvements are happening. So yeah, the more things like this, whenever you see Data Views or API, that’s what gets me very happy. I like the other fixes, but this sets us. It’s moving us forward. And I think sometimes a lot of this can feel hidden because it’s more like the infrastructure in the sense. But Data Views, data Forms and API work, it really just moves us forward.
\n\n\n\nBirgit Pauli-Haack [00:18:53]: Yeah. So can you share in what kind of situations you use the Data Views?
\n\n\n\nTammie Lister [00:18:59]: I’ve been using a lot of experimental, so one of the big things I’ve been doing is anytime I’m creating a plugin that’s pretty much what I use for my interface at the moment. I am trying to not have the normal the interface we use. I’m trying to use the Data Views from now on because it’s the way we’re going. So it feels a lot more natural to do. It’s easy to do it on the front and you can do it on the back. You can choose how much you have a little bit depending on what you want to do. You may have to do wrappers, all those kinds of different things. So. But again through a lot of it’s through experimentation but through doing experimentation you find the limitations. So there was a ticket that there’s been a few people having a conversation. The limitation on settings for example tangent to Data Views you can’t have a two column necessarily under a particular situation but if you want to do that there needs to be bug fixes. So it’s by using and by finding out we need to use them in particular situations. So again this having per pages and the one after this improving inline all of these kind of things allow you to be able to start to implement in different ways.
\n\n\n\nBirgit Pauli-Haack [00:20:11]: Yeah, yeah. And I can also see that there’s. There’s two effects in there with starting now to use the Data Views. One is you get a lot of experiments and practice in it. So experience is kind of you try to adopt it, see how you fail or the system fails and then you can improve upon it. But the muscle memory that you build that you kind of get into the new API really pushes you forward when things then land in core.
\n\n\n\nTammie Lister [00:20:39]: And I was lucky enough, I think it was back in November. Goodness me, at Core Dev Days there was an awesome workshop in it and, and that it feels a long time ago now, but it felt kind of like it wasn’t early with Data Views but it kind of felt that it was earlier and. But that version feels very far away from the version that we’re getting to play with now and the version now it’s a lot less grumpy when you implement it. So I would encourage everyone just if you, if you’re gonna make something and you just want to experiment with it, just start playing with it and see about implementing it. There’s some great stuff on the developer blog about using it which is just easy to follow. I think it’s been recently updated. Unless you would know that I think it’s been updated or recently updated.
\n\n\n\nBirgit Pauli-Haack [00:21:29]: Yeah, I think one mom did a blog post about this. Yeah, yeah, yeah. The next one is. Do you want to take the next one too?
\n\n\n\nTammie Lister [00:21:38]: Yes. So that’s a block library one. So the block library add open in app toggle. That’s like a one those like tongue twisters open in new tab toggle to navigation block sidebar. Okay, so this one, what I like about this is it shows a consistency of interface and actually it shows it even more so if you and I the nerd that I am, I like reading back into tickets and. And actually it shows that. So when it got implemented, one of the last comments is we need to roll this out places to make sure it’s consistent. So it’s adding a consistency but then it needs to be rolled out to make sure it’s consistent in other places. So the interface that we have is great. But if it’s not consistent. So yeah, that. That’s what it does. It puts it in the relevant place for where you need the information at the right time and then it’s rolling it out. So it’s. It’s a small quality of life thing. But these. That’s the type of thing we need to do with the editor interface at the moment.
\n\n\n\nBirgit Pauli-Haack [00:22:41]: Absolutely. Yes, absolutely. Because you cannot just say oh, I’m in a different context. Why is it not working like that. Yeah, yeah.
\n\n\n\nTammie Lister [00:22:49]: And. And thinking we now know where people are looking at the time. Like you can make a best guess. You can be like me kind of. But there is a language that is becoming and the language that is refining and then that means we can take some things away and we can really refine where things go.
\n\n\n\nBirgit Pauli-Haack [00:23:05]: Yeah, there was. So the next thing is what the format library that improves the inline image replacement workflow. I have not quite figured out what that does, but I’m just recently discovered the inline image. Again. I kind of was at the early on image block fan and not doing anything in line with images. But I like when you do icons in there or cannot because the whole paragraph works differently when you have an image in there and then you have to fiddle with it.
\n\n\n\nTammie Lister [00:23:37]: Yeah.
\n\n\n\nBirgit Pauli-Haack [00:23:37]: And so they. They improve the workflow. I’m not sure if that’s getting there. It’s getting there. Yeah. So if you are using inline images. Yeah. Check it out and see if it really helps you with getting around that.
\n\n\n\nTammie Lister [00:23:51]: So in the block editor. So this ticket says allow replacing the post locked modal component 70586 but if you kind of dig into this the too long don’t read is prep for collaborative editing work. So it’s basically providing a filter for that which is such an enticing kind of part of it. So in order to be able to build again like what we were talking about, we want all these things in 6.9 and 7, but we need some infrastructure. We need that extensibility and we need the foundations to be able to do that. You can’t just slap a layer on it and ta da. It just works. So we need all this infrastructure.
\n\n\n\nBirgit Pauli-Haack [00:24:29]: Yeah. And it’s also a shift in kind of approach of things. We have 20 years was only one person editing a post and now we need to get ready that multiple people adding a post. So all the lock things need to be a little bit moving from a.
\n\n\n\nTammie Lister [00:24:44]: Book to an iPad.
\n\n\n\nBirgit Pauli-Haack [00:24:49]: This was really a book to an iPad. The iPad is still one person using it.
\n\n\n\nTammie Lister [00:24:53]: Well, yeah, but it’s multiple layered.
\n\n\n\nBirgit Pauli-Haack [00:24:55]: Yeah, it definitely gets more complex. Yeah. When multiple people do things and when instead of one.
\n\n\n\nTammie Lister [00:25:02]: Yeah, that’s a tin can with a bit of string to a zoom. There you go. That’s a random analogy.
\n\n\n\nBirgit Pauli-Haack [00:25:12]: Yeah, that’s a good analogy. It’s like, it’s like from the caveman to the. Yeah, the Middle Ages. Yeah. Yeah. We have some changes in the components library and there’s now the date calendar and date range calendar components. They seem to have been missing and now they’re here. So you can use them for your interfaces when you do events, something like that, or scheduling things. So you have more components to work with and you don’t have to build them yourself.
\n\n\n\nTammie Lister [00:25:46]: But that’s also part of the design system which we need. Right. So part of it is again the first version. It’s best bet. It’s like we think we know, but it when in phase one, when we were building an editor now we needed all these components and all these pieces because we were building an editor, we were making paragraphs and headings. That’s what we were doing. And it’s not that anymore.
\n\n\n\nIt’s a kit that you can build anything you possibly can think of. So therefore it needs all the pieces of an interface kit to be able to extend so the components. And it’s now a question of that. Does it need everything? No, because that’s a lot to maintain. But it’s certainly if something is used frequently and is going to be like really required by the interface frequently, then it needs to have it. So having our own components or at least having something like native is really, really important.
\n\n\n\nBirgit Pauli-Haack [00:26:44]: Yeah. Especially now when they get to the. The whole new admin is built on components greater now.
\n\n\n\nTammie Lister [00:26:52]: And it also means that product makers can use those components a lot easier.
\n\n\n\nBirgit Pauli-Haack [00:26:56]: Lovely. Yeah. You don’t have to make decisions about interfaces anymore.
\n\n\n\nTammie Lister [00:26:59]: Yes. I was like, I need a calendar, I need it to work, I need an age.
\n\n\n\nBirgit Pauli-Haack [00:27:04]: What are the attributes?
\n\n\n\nTammie Lister [00:27:07]: Yeah. And then I think often people like is. Oh, it’s always going to look. No, you can style it into your heart’s content. It can be pink with sparkles if you really want. Maybe don’t do that. But you. But that’s the thing of a component. You are getting the bones and the structure and the muscle. You aren’t necessarily getting the makeup.
\n\n\n\nBirgit Pauli-Haack [00:27:29]: But it’s a weird analogy day. Yeah. But it’s good. Yeah. Yeah. For the Interactivity API, maybe we kind of need to think about some of the knowledge is there. But the two additional PRs that came into good 20.1 will prioritize the custom. Click event handlers for full page navigation that’s now enabled and then also Preserve media. Preserve media attributes on the initial style sheet after client side navigation. So it’s a client side navigation. It’s a full page navigation that has been more stable on the. With the interactivity API. So router feature that was started last plugin released and now it’s coming. It came in an additional feature there.
\n\n\n\nTammie Lister [00:28:21]: And moving on from that and I’m just going to kind of have a note about API. We likely are going to see more APIs because we should. Because that then shows that you can extend. There’s been talk about should menus have something like that with the templates API we’ve seen with site editor sort post types alphabetically within the add template modal. That’s 70562. Again, all of these things before maybe we would have had something that wasn’t an API. But an API is a far better way of doing this. It’s a far more modern approach of doing this and it’s the proper way to do extensibility.
\n\n\n\nBirgit Pauli-Haack [00:28:57]: Yeah. And you have to know how you build it first before you can extend this. Yeah. Right.
\n\n\n\nTammie Lister [00:29:03]: So you have to.
\n\n\n\nBirgit Pauli-Haack [00:29:04]: Yeah, you have to know what.
\n\n\n\nTammie Lister [00:29:05]: What you’re going to build. And the thing is you can’t particularly to undertake an API because there’s a maintenance burden. And I think this is always something particularly like doing work in extensibility. Yes. You could support everything, but unless you have a time machine, that’s a lot. So really being considerate, particularly once you have an API of just how useful is that? How much of a burden is that going to support is really, really important.
\n\n\n\nBirgit Pauli-Haack [00:29:35]: Yeah, absolutely. And we are in the bug fixes again. I like the first one that I want to point out that it’s the image box it preserves now the line breaks when the caption comes from the media library. So there was a disconnect. Yeah, absolutely. Where you have to do it twice. Why is this losing my. My line breaks and now I have to do it again. Yeah. So now it can do it automatically. It’s smart enough. And the same is fixed now with the RSS block. Some of the. Well, WordPress allows you to put markup into the title, but when the RSS block pulls in the title it displayed the raw coding instead of the. Yeah, now it kind of just strips it out and shows a very consistent title display in your RSS block for from other sites.
\n\n\n\nTammie Lister [00:30:33]: So this is in bug fixes, but it’s quite important. It’s enable support for showing individual block variations in style book.
\n\n\n\nBirgit Pauli-Haack [00:30:41]: Oh yeah, yeah. That’s pretty much my most favorite feature enhancement. I think it’s enhancement but it’s on a bug fix because you were trying to look to click on the style variations and it wouldn’t come so there was expectations enables it in the right.
\n\n\n\nTammie Lister [00:31:01]: Section is basically.
\n\n\n\nBirgit Pauli-Haack [00:31:06]: What happened was when you wanted to style the button block in your site in the styles, you were only able to style the default one. But when you clicked on the outline, you got back to the default one. You couldn’t style the outline. You had to use a theme JSON or some other JSON file for it or plugin for that. I don’t know how hard the fix was, but it’s there. I think that’s it.
\n\n\n\nSo we’re coming for Gutenberg 21.3. Do you want to start out again because it’s your favorite pieces.
\n\n\n\nTammie Lister [00:31:38]: So the first section is Data views under enhancement. So again this really shows the data views are getting used and that’s too long don’t read. I guess this episode is these features are getting used by people and these feature getting therefore improvements and iterations and people working on them. So there’s two particular things to call out or there’s several things at least there’s add the data field type 70657, and then add group by field support to grid layout. So this is about grouping items by fields and allows you to organize amounts of data and extend layouts such as table layout in the future. So it’s setting that groundwork and allowing grouping and it also supports the data Field type. So it’s again setting up for something that you can do now and allowing you. And also it links in with the new calendar component. So it’s that kind of link in with the new components as well.
\n\n\n\nBirgit Pauli-Haack [00:32:36]: Yes. So it had a date type field, date time field type. And now there’s also a date field type that’s just a date here. It’s kind of. You need it for the events calendar in the ticket.
\n\n\n\nTammie Lister [00:32:49]: Yeah. It says filtering and editing features will be implemented in the future.
\n\n\n\nBirgit Pauli-Haack [00:32:53]: Yes. Yeah. And then for the block library, the cover block now supports a poster image. So users with large video file or slow Internet connection see still an image in there before the video loads. That’s kind of an enhancement for slower connections. Or if you do it locally and you can’t get the video from another place. Yeah, so that’s pretty cool. And then the post content block has now an add name selector, a tag name selector. That’s kind of the part where you identify semantic ways for the. For the cost. Post content. Is it a main content? It’s a section content. It’s an article kind of semantic thing. Missing words here. Tags, tags. HTML. Semantic HTML tags. I think the. The technical term for that is.
\n\n\n\nTammie Lister [00:33:44]: Yeah, there was one we haven’t called out, but I’d like to mention about layout. Adding max limit to row span and column in grid, which is a quality life, which I think is really important as well.
\n\n\n\nBirgit Pauli-Haack [00:33:55]: Excellent. Yeah. Oh yeah, here I see it. Yes, it’s absolutely. Yeah. And that also shows that there’s a work to be done on the Grid blog. And that might. Might be. It might not come to 6.9, but it’s definitely coming. It’s better. It’s back on people’s task list. Yeah. Under the bug fixing there was nothing really stand out for me.
\n\n\n\nTammie Lister [00:34:18]: It just looks like a lot of quality of life and.
\n\n\n\nBirgit Pauli-Haack [00:34:20]: Yeah, well, some blocks good bug.
\n\n\n\nTammie Lister [00:34:22]: Fixing to me, which is. There’s been a lot of activity in this release which is really good and there’s a big section of quality and documentation, which always makes me happy.
\n\n\n\nBirgit Pauli-Haack [00:34:33]: Absolutely. So that was it. There was one. Oh, that’s what I was looking for. Yeah. There’s one that says remove public APIs for getting images. That has to do with the list view. That there are images in the. In the list view to identify some of the blocks. When you have a cover block that you see the image of that there was an implementation for that, but that is still experimental and there was a shift in how experiments are actually implemented in Gutenberg so people are not tempted to use experimental public APIs anymore. Yeah. So if you find that confusing. It definitely is, but it’s also for your own good, so to speak. For the good of the maintenance safety. Absolutely. For future safety. But of course, there’s an acknowledgment that there are plenty of experimental things still in Gutenberg that all have been used in production for many years. Yeah, that was it. That was the Gutenberg release.
\n\n\n\nNow we have what’s in active development or discussed. We can certainly not talk about everything, but we wanted to talk about the update experiment Settings screens to use the data forms. There’s a PR by Fabian who said, okay, so Gutenberg has an experiment screen where you can check the on or off some of the experiments, like for the collaborative editing or for the grid layout for some forms. And he said, well, if we do want other people to use the data views, we probably should rewrite that experiment settings page in a Gutenberg. So I really love that initiative. Yeah.
\n\n\n\nTammie Lister [00:36:15]: Experiment should be experimental.
\n\n\n\nBirgit Pauli-Haack [00:36:19]: Say that again.
\n\n\n\nTammie Lister [00:36:21]: The experiment should be experimental.
\n\n\n\nBirgit Pauli-Haack [00:36:23]: Absolutely, absolutely. Well, a few plugin releases before Anne went through and actually gave some section headers in there. So they were not just added to the list and not kind of clustered together.
\n\n\n\nTammie Lister [00:36:37]: And that’s where there was a. Like, under certain circumstances the two column can be worked out. So that’s how we find out the limitations.
\n\n\n\nBirgit Pauli-Haack [00:36:45]: Right.
\n\n\n\nTammie Lister [00:36:45]: Like by using this, all these features again, we have to use them. This is what we’ve learned time and time again. They’re great, they’re amazing, but we need to use them, we need to implement them. Even we can’t put them in a beta and say, oh, just do some usability testing. No, we need to build with them. We need to get our hands dirty and need to see, oh my goodness, you can’t do this. Oh, this doesn’t work with this type of data. That’s what we need to happen. So using it in the plugin makes a lot of sense in a way that doesn’t cause a negative experience. And that page isn’t going to hopefully cause a negative experience.
\n\n\n\nBirgit Pauli-Haack [00:37:25]: Well, if you want to learn how to do this, yeah, that’s a kind of an interesting page to look at the code to learn from it and kind of say, maybe you can implement it in your own one page settings page.
\n\n\n\nTammie Lister [00:37:38]: It looks so much better when you look at it. You look at and no shade. Because at the time the settings pages were amazing in WordPress. But times have changed and looking at the two columns or the new Iterations. Even the single version is night and day. It really is.
\n\n\n\nBirgit Pauli-Haack [00:37:59]: Yeah. When you see the before and after, you see. Really see the difference. Okay, I want to live there. I don’t want to live there anymore. Yes.
\n\n\n\nTammie Lister [00:38:07]: I want to be there in that world. World has white space.
\n\n\n\nBirgit Pauli-Haack [00:38:14]: Yeah, the road has white space. A couple of days ago I showed my husband, he is also a programmer, but he is a programmer from the early database days. Yeah like a clipper and ebay and all that. And then he sees some of the. And he looked at the screen and said well what’s all the white space there?
\n\n\n\nTammie Lister [00:38:43]: That was the thing like back then it costs, it cost bandwidth. Like every line was a cost. I remember when I learned you couldn’t have have large space taken up because it costs. Now it doesn’t. Now I just want all the space because it doesn’t. Well, it does cost, but it doesn’t cost as much now. It almost costs us more to not have it because it costs us like a negative user experience which is weird, wibbly, upside downy world to live in. But that’s what we have. Of course we don’t go too far to the extreme where you can actually implement it or use it because too much white space. Space is weird. But yeah, just be able to breathe in an interface.
\n\n\n\nBirgit Pauli-Haack [00:39:21]: Yeah. And. But it’s interesting that these visual DNA is still in. In some people’s minds. Right. That’s what that. What I kind of took away from it said go away, go back to your 90s, go back to your terminal.
\n\n\n\nTammie Lister [00:39:37]: Go back to your courier terminal.
\n\n\n\nBirgit Pauli-Haack [00:39:39]: No, he says why are you doing command line? Isn’t that so 80s didn’t we call go away with? Okay. So yeah, it’s interesting discussions in Pauli-Haack’s home. So we have a second thing that we wanted to talk about that’s the PR by Luigio Teschio and he is working on exploring template versioning to preserve active plugin and theme templates instead of letting it be overwritten by database. And I don’t know how that’s going to work. Have you looked at that?
\n\n\n\nTammie Lister [00:40:18]: I haven’t really looked at it yet, but I’m really curious to follow it. And I think just exploring different ways of doing things is really interesting as well.
\n\n\n\nBirgit Pauli-Haack [00:40:28]: Yeah. So I leave that link in the.
\n\n\n\nTammie Lister [00:40:31]: Call for feedback and thoughts on it, which is a really interesting perspective. I think real world use cases is something I was trying to think about and that’s the kind of feedback I would like to give and that’s what I’ll be going back to it with trying to add that type of thinking.
\n\n\n\nBirgit Pauli-Haack [00:40:48]: Excellent. Excellent. So, well, I guess we’re at the end of the show. This is it. And as always, dear listeners, thank you so much for being here. And if you want, you can leave us a review on any of your favorite podcast apps. And if you’re on Spotify, the review is you can also leave comments. So we can have a little conversation there as well, if you want to. But the show notes will be published on Gutenbergtime.com/Podcast. This is episode 119. If you have questions or suggestions or news you want to include us, send them to changelog@gutenbergtimes.com that’s changelog@gutenbergtimes.com so, Tam, is there anything that you want our listeners to take away from it that we haven’t talked about?
\n\n\n\nTammie Lister [00:41:35]: I think the big one is if you can start experimenting and exploring things like data views and data forms in your product, because now is the time to do that. And then start giving feedback, because there’s lots to come this year that you’ll be able to end early next year. So being able to, as you mentioned, start that muscle memory and start learning with it is really, really important.
\n\n\n\nBirgit Pauli-Haack [00:41:57]: Excellent. Yeah, that’s a great way to end this podcast episode. And thank you all for listening. Thank you, Tammie, for being here. And goodbye. And I’ll see you at WordCamp. Yes, thanks for having me. All right, take care.
\";s: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, 26 Jul 2025 15:23:55 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s: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:21;a:6:{s:4:\"data\";s:21:\"\n \n \n \n \n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:80:\"Gutenberg Times: WP-Admin Redesign, Block theme adoption — Weekend Edition 335\";s: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=40940\";s: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://gutenbergtimes.com/wp-admin-redesign-block-theme-adoption-weekend-edition-335/\";s: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:18505:\"Hi,
\n\n\n\nICYMI, organizers of WordCamp US (WCUS) announced Danny Sullivan, search liaison at Google, as the keynote speaker. It’s hugely relevant now that sites are dealing with decreasing clicks from search engines. The brilliant Rae Morey of The Repository has the skinny for you about what else is happening at WCUS.
\n\n\n\nI am really getting excited for WordCamp US. Are you, too? Did you get your ticket yet? I would love to meet you and catch up!
\n\n\n\nYou might have to juggle family plans and necessities, though. You might need to get kids to school or enjoy the last summer camping trip over Labor Day weekend. Or you might be apprehensive about traveling to the US in general. All good reasons. And I will miss you. We can catch up afterward.
Enjoy this week’s updates.
\n\n\n\nYours,
Birgit
First-time release lead Aki Hamano made Gutenberg 21.3 RC available for testing.
\n\n\n\nTammie Lister and I included Gutenberg 21.1, 21.2, and 21.3 in our latest Gutenberg Changelog episode recording. We also talked about WordPress 6.9, the AI Team, and more. The episode will drop on your favorite podcast app over the weekend.
\n\n\n\nLead architect of Gutenberg Matias Ventura published two issues on GitHub for broad discussion of the next iteration of the Admin Design and tied together concepts of the Command Palette with the Abilities API.
\n\n\n\nIn Admin Materials and Surfaces, Ventura outlines the next iteration of the Admin redesign with screenshots. He breaks it down into three main building blocks. You can think of it like organizing a house:
\n\n\n\nThe goal is to make WordPress’s admin area more flexible so users can customize their workspace, and plugin developers can create interfaces that fit naturally with the rest of the system. The updates need to ensure consistency, flexibility, scalability, and clarity across the entire admin and plugin experience. To learn more details, consult the GitHub post.
\n\n\n\nIn the Abilities & Workflows Overview, Ventura outlines plans to create a unified system for handling keyboard shortcuts, commands, and AI-powered workflows. This would enable creating a “smart assistant” for WordPress that can help users accomplish tasks more efficiently.
\n\n\n\nThe post aims to show how contributors can connect these three things that are currently separate and also creates a shared language to discuss these concepts.
\n\n\n\nIn short, the idea is to make it possible that you instead of manually creating a new page (going to Pages → Add New → entering title → setting up template), you could use a workflow that asks for the page title upfront, automatically creates it, and takes you straight to editing – all triggered by a single command.
\n\n\n\nIn his overview issue, Admin Redesign: A solid routing foundation, Riad Benguella shares insights from the site editor work and discusses plans to improve the admin dashboard’s structure by changing how pages load and connect. Using advancements from the performance team on speculative loading and view transitions, as well as various new libraries, should help the admin page load more quickly and smoothly and improve the developer experience for contributors as well as 3rd-party product builders.
\n\n\n\nThe challenging aspect is ensuring backward compatibility in WordPress so that thousands of plugins continue to function well while creating a new, faster foundation.
\n\n\n\nAll three GitHub issues are ready to be discussed with the larger site builder and developer community. It’s the moment to take part in the next iteration of the admin design by providing feedback and sharing use cases.
\n\n\n\nIn this week’s podcast episode, Tammie Lister makes a case to developers to work with the current iteration of DataViews and Data Form for plugins to become familiar with the approaches, develop muscle memory, and provide feedback on what doesn’t work yet to make sure it’s included in the following iterations of the Admin Design work.
\n\n\n\n The latest episode is Gutenberg Changelog 119—WordPress 6.8.2 and 6.9, Gutenberg 21.1, 21.2, and 21.3 Releases with Tammie Lister.
If you are listening via Spotify, please leave a comment. If you listen via other podcast apps, please leave a review. It’ll help with the distribution.
\nWes Theron, Automattic, published a new video to teach you how to use the Group Block. Besides adding a Group block to your canvas, he covered how you can nest multiple Group blocks and control them via the ListView. He also has tips on styling a group block, organizing your layout, and previewing it on mobile devices or locking it against accidental changes.
\n\n\n\nSimon Cooke from Human Made put out an interesting piece called Full Site Editing vs. Leading Page Builders: A Strategic Comparison. He explains why going with Full Site Editing can be a game changer—it’s built right into the WordPress core. This means it’s generally faster, more secure, and way easier to manage when things get big. On the flip side, page builders can really bog things down and cause a headache with plugins, especially for larger teams.
\n\n\n\nThe View Transitions plugin by Felix Arntz played the main character in Jamie Marsland’s video This FREE WordPress Plugin Is a Must-Have for Every Website! It makes your WordPress site to feel faster, smoother, and more like a modern app. Marsland feels that anyone’s hardly talking about it.
\n\n\n \n\n\nJoe Simpson Jr. gave a talk at WordCamp Monclair: A Journey from Page Builders to Blocks in WordPress and it now available on WordPressTV.
If you’re still hanging on to the Classic Editor or those tried-and-true theme methods, you’re not alone—and this session is right up your alley. Simpson takes a leisurely stroll through a real-world site rebuild, sharing the bumps and surprises that come with moving from classic setups or page builders to full site editing with blocks. He’ll talk through how to pick the right tools for your needs, compare the different ways to build a site these days, and help you figure out when it might finally be time to make the switch. Simpson also even looks back at how Gutenberg has evolved over the years. Whether you’re new to WordPress or just a bit slow to embrace the changes, there’s something here for you.
Cloudways’ Abdul Rehman set out to explain WordPress Hybrid Themes: What They Are, Why They Matter, and How to Build One in 2025. He found
Hybrid WordPress themes are the best of both worlds—they mix old-school classic theme structure with cool new block features. You get more design freedom without ditching your old plugins or custom code. Perfect if you want flexibility but aren’t ready for a full block theme leap.
At WordCamp Montclair, Beth Soderberg—who’s been using blocks since the early days—shared how she builds custom WordPress themes in 2025. She walked us through her current process of building a block theme. She talked about choosing base themes and explained how her tools and workflow have changed. Soderberg also broke down how she decides when to use the editor and when it’s better to dive into code, plus showed how blocks can handle page structure instead of relying on old-school templates. She wrapped up with some tips on setting up the site editor so it’s easy for anyone to manage a block-based site.
\n\n\n \n\n\nIf you found last week’s four-hour Block Development Cookbook video was a little too much to get started, Ryan Welcher began the work of slicing up the cookbook into individual recipes videos. Here is his announcement video and first recipe: Save Time With This Block Binding Trick!
\n\n\n \n\n\nQuestions? Suggestions? Ideas?
Don’t hesitate to send them via email or
send me a message on WordPress Slack or Twitter @bph.
For questions to be answered on the Gutenberg Changelog,
send them to changelog@gutenbergtimes.com
[00:00:19] Nathan Wrigley: Welcome to the Jukebox Podcast from WP Tavern. My name is Nathan Wrigley.
\n\n\n\nJukebox is a podcast which is dedicated to all things WordPress. The people, the events, the plugins, the blocks, the themes, and in this case, how new, native browser features, are transforming what’s possible on the web.
\n\n\n\nIf you’d like to subscribe to the podcast, you can do that by searching for WP Tavern in your podcast player of choice, or by going to wptavern.com/feed/podcast. And you can copy and paste that URL into most podcast players.
\n\n\n\nIf you have a topic that you’d like us to feature on the podcast, I’m keen to hear from you and hopefully get you, or your idea, featured on the show. Head to wptavern.com/contact/jukebox and use the form there.
\n\n\n\n[00:01:10] Adam Silverstein: So on the podcast today we have Adam Silverstein.
\n\n\n\nAdam is a WordPress Core committer and works to fix bugs and improve modern web capabilities. He’s also a Developer Relations Engineer on Chrome’s Web Platform team at Google, and there he focuses on making the open web better for everyone.
\n\n\n\nAdam is here to break down how the rapid evolution of browser technology can supercharge your WordPress sites. We are doing this by referencing his presentation at WordCamp Europe 2025, in which he covered multiple new features of browsers, which can be used by WordPress users to bring a variety of experiences to their websites. In many cases these are browser APIs and features, and are quietly redefining what’s possible on the web. From CSS powered popovers, and scroll driven animations, to speculative loading that speeds up your page transitions. Adam explains how these advancements are changing what’s possible for both developers and end users.
\n\n\n\nThe conversation sheds light on the collaboration between browser vendors, Chrome, Firefox, Safari, and Edge, through initiatives like Interop and Baseline, paving the way for more consistent and robust features across platforms.
\n\n\n\nAdam also talks about practical topics central to the WordPress community, like how the Popover API and native CSS carousels reduce JavaScript bloat, make sites more accessible, and deliver a better overall user experience.
\n\n\n\nHe shares exciting new frontiers, such as browser-based image processing, powered by WebAssembly, which is paving the way for universal support of modern formats like AVIF and Ultra HDR, and even running AI locally in your browser, no API key or cloud server required.
\n\n\n\nHe provides concrete examples on how these technologies can be leveraged in WordPress via Core updates, canonical plugins, and Gutenberg experiments, with a special focus on how developers can get involved and offer feedback to help shape future web standards. Prepare to look at your browser in a whole new light, truly.
\n\n\n\nWhether you’re a theme designer, plugin developer, or site owner simply curious about what’s next, this episode is for you.
\n\n\n\nIf you’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’ll find all the other episodes as well.
\n\n\n\nAnd so without further delay, I bring you Adam Silverstein.
\n\n\n\n[00:03:47] Nathan Wrigley: I am joined on the podcast by Adam Silverstein. Hello, Adam.
\n\n\n\n[00:03:51] Adam Silverstein: Hello.
\n\n\n\n[00:03:53] Nathan Wrigley: This is our second conversation. We had a conversation, I want to say four years ago, maybe more in San Diego, think. And at that point we talked about images, AVIF, WebP, those kind of things. We might get into that today.
\n\n\n\nAdam’s been working with Google for many, many years. Making the web a faster place, I think is a fair way to sum up your career. Just tell us a little bit about yourself, just so that, because this is a fairly technical topic and you are honestly going to have to teach me an awful lot as we speak. Let us know what your credentials are, why people should listen to what you have to say.
\n\n\n\n[00:04:21] Adam Silverstein: Oh, wow. Being a Googler is not good enough, huh? Well, I’ve been doing WordPress for a long, long time. I think I started, first started contributing back in 3.6. So I’m deeply involved in the Core project. I am a Core committer, which is something that I consider an honor, a privilege, and a responsibility. There’s not that many of us in the world, but I’m one of the people that actually commits code to WordPress.
\n\n\n\nAnd I used to have my own run, my own agency, tiny me agency, but building sites for clients directly. Then I wound up at 10up. Learned to build enterprise sites, and work with large teams, and do a lot of planning. And then eventually made my way to Google where I’ve been doing developer relations work. I’m trying to educate developers and bring things like all these new APIs that I talked about in this talk, so that people can learn about it.
\n\n\n\n[00:05:05] Nathan Wrigley: Have you been focused more or less entirely on WordPress, or are you in any way engaged with the Chrome team?
\n\n\n\n[00:05:11] Adam Silverstein: Yeah. So our team kind of organisationally was under Chrome, like that was kind of where we sit. We worked with other, like I’ve worked with Drupal and TYPO3. So I’ve worked with some of the other CMSs out there, especially like the open source ones. So that’s kind of been in my purview, but I would say primarily focused on WordPress. That’s where I’ve had the most experience and am most comfortable.
\n\n\n\n[00:05:32] Nathan Wrigley: It’s kind of interesting because on my computer, obviously I have a browser using Chrome, it’s kind of one of the most benign pieces of software that’s there, in that it doesn’t really have a task that’s assigned to it. I have a music editing piece of software, and I go there for that. And I have a video editing piece of software, and on it goes.
\n\n\n\n[00:05:49] Adam Silverstein: Yes. And you’re running those in your browser.
\n\n\n\n[00:05:51] Nathan Wrigley: Right. But also the browser is just this open thing, you know, you can basically do anything in it, and so incredibly powerful. And it feels like in the last few years it’s got way more powerful. But most of that is entirely hidden because I open it up and it looks broadly the same today as it did five years ago. You know, the UI may have changed a little bit.
\n\n\n\n[00:06:13] Adam Silverstein: Right. But what’s changed is what you can do with it, right? So you talked about editing video or editing audio in your browser. Like, that was not something that was possible five or 10 years ago when we had blue links and HTML. And it was basically, we were publishing newspapers on the web. That was the limit of what we could do.
\n\n\n\n[00:06:29] Nathan Wrigley: I have an app, it’s called Descript. I don’t know if you’ve come across it, but it’s a full audio, video editing suite entirely in the browser.
\n\n\n\n[00:06:37] Adam Silverstein: And famously Adobe released Photoshop. Runs in the browser. The full Photoshop. Yeah, I mean it’s like mind blowing that that’s even possible.
\n\n\n\n[00:06:45] Nathan Wrigley: So the capabilities of the browser have dramatically increased. And you’ve just done, or you’re about to do? Just done.
\n\n\n\n[00:06:54] Adam Silverstein: Yes.
\n\n\n\n[00:06:55] Nathan Wrigley: Okay. Firstly, how did It go?
\n\n\n\n[00:06:56] Adam Silverstein: It went great. Packed room. I think people got something out of it. People gave me good feedback.
\n\n\n\n[00:07:00] Nathan Wrigley: And it was called Modernising WordPress with New Web Platforms. And I’m just going to read a bit of the blurb that went with that. It says, WordPress is a powerful platform for building websites of all shapes and sizes. To truly thrive, WordPress is embracing the latest advancements in web technology. This talk will explore how developers and site owners can leverage cutting edge web platform capabilities to create next generation WordPress experiences. And then there’s a little bit more which mentions web APIs and so on and so forth. So that really is going to be the core of this discussion.
\n\n\n\nNow, caveat emptor, dear listener, I have nowhere near enough knowledge to ask you these questions. But I’m going to hope that you are going to help me through it.
\n\n\n\nSo first stop then, let’s just go through a whole laundry list of these different APIs. What are some of the fun things that a browser can do now, that it couldn’t do previously?
\n\n\n\n[00:07:53] Adam Silverstein: So in the talk, I sort of break it into three areas. There are features that help developers do things that maybe we could do, but we struggled or relied on heavy JavaScript libraries to do.
\n\n\n\nThere’s things that help users by creating better experiences on the web than we previously had the ability to do.
\n\n\n\nAnd then the third category is things that previously were just impossible. Just things that we can now do, like running Photoshop in the browser, we mentioned that we could not do before.
\n\n\n\nSo I did not explore, this is not, the talk was not like an exhaustive list of all the APIs, but it was rather sort of a selection of ones that I thought were interesting. Most of them are new. They are sometimes available only in one browser, not in all the browsers. So they’re things that are coming to the web platform. Some of them were already on the web platform.
\n\n\n\nSo let’s go through them. I’ll see if I can remember them all. I have my little slide deck here.
\n\n\n\nSo in the category of helping developers, the first one that I talked about is this thing called the Popover API. So popovers are simply like dialogues or elements that you want to hover above the rest of the page content. And in WordPress we use these extensively in the admin. Like for example, the pointers that you get when you install a new plugin. Or if you open a dialogue, or even like mobile menus use a popover.
\n\n\n\nAnd we have it in Gutenberg. And so we already have this technology, but it relies on JavaScript, and it’s actually surprisingly complicated to do a popover. You have to pay attention to always being at the highest level. And if there’s another popover, how do you handle that? And you have to make sure it’s accessible, so when the user hits the escape key, the popover closes.
\n\n\n\nAnd if it’s a pointer that’s trying to point to a new feature, say in a menu, how do you handle when the user resizes the window and that element moves? These are very complicated things. And in JavaScript that means you’ve got a heavy library that’s running just to do this simple popover thing.
\n\n\n\nSo with this new CSS based popover API, you can create a popover with just a couple of lines in your code, and the browser takes care of all of the complicated parts of actually doing the popover.
\n\n\n\n[00:09:49] Nathan Wrigley: So just pausing there for a moment. The whole power of CSS, I’m going to say three years, this has been capturing my attention. CSS seems to be able to do a load of programmatic things now that it didn’t used to be able to. So in this case it’s, I don’t know, it’s calculating the height of the viewport and figuring out is there another thing, how much further to move it down? All of this being handled natively in the browser.
\n\n\n\n[00:10:13] Adam Silverstein: Exactly. And I think like your point is very true, like CSS capabilities have grown tremendously, and the ability to do sophisticated layouts. And all of these kind of feature things that typically might require JavaScript, now we can do directly in CSS, even things like calculations.
\n\n\n\nSo CSS is a programming language just like JavaScript, right? People like to poo poo it and and so forth, but it’s quite powerful. And a lot of these features that I’m talking about are based on CSS.
\n\n\n\n[00:10:36] Nathan Wrigley: It’s kind of interesting, if the 18-year-old me was beginning again, I think CSS would be the thing that I would do first. I think I would learn that inside and out before ever looking at JavaScript. Because I you’ve got the foundation of modern CSS, and I know there’s a lot of W3C things that are still being decided and what have you, and obviously the browsers have got various different capabilities. But so much that we would’ve relied on for JavaScript is now capable with CSS, but unexplored I think by many.
\n\n\n\n[00:11:08] Adam Silverstein: Right. So this feature popover is available in all the browsers. It’s in Baseline. So Baseline is the set of features that developers should be looking at for deciding what they can use. Baseline is a somewhat new concept, so people might not be aware of it. But it is basically a way of knowing which features are available on all the major browsers. So if you see a feature that is labeled Baseline, like in the MDN docs, that means it’s available on all the browsers. You can count on it as a developer.
\n\n\n\nSo in my talk, I covered a lot of APIs that are actually not in Baseline yet. They’re still in development. They maybe are available only in Chrome, or Chrome and Edge, or maybe Chrome and Edge and Firefox, but not Safari. As developer, those are the APIs you need to be a little bit wary of, right, because you wanna build something that’s going to work for everyone.
\n\n\n\nIn many cases, the API will gracefully degrade, it just won’t work in the non-supporting browser. But in the case of like a popover, if it is supported in all the browsers, so you’re safe to use it. If it wasn’t, you would need to have that JavaScript as a fallback. So some of these APIs are, you know, new and experimental, but the browser vendors are all planning on adding support for them. So I only choose APIs that actually browser vendors have indicated their support.
\n\n\n\n[00:12:14] Nathan Wrigley: Can we just pause there a moment because I began my journey with the web, oh, Internet Explorer 5 kind of days. You probably remember the days as well as I do, and it was chaos, you know? I mean, really we had to try and fix a whole bunch of things that Internet Explorer did differently from all the other browsers. The browsers didn’t agree on almost anything. They went off in completely different directions.
\n\n\n\nThat, I’m going to say, over the last five or maybe more, maybe more like eight years, there seems to have been a real confluence of, and I don’t know if that’s done from like a senior management level, but it does seem like Mozilla is talking to Chromium, Chromium is talking to Safari, and a lot of the people seem to attend the same conferences and talk the same language. They may adopt it at different rates, but they’re all trying to get to the same point, the open web.
\n\n\n\n[00:13:00] Adam Silverstein: Yes. And in fact, they’ve developed an approach to collaborate on this, and that is called Interop. So the Interop effort is sort of a group effort by all of the browsers to agree upon a set of features that they’re going to work on for each calendar year. So there’s Interop 2025, there’ll be one for 2026, and so forth.
\n\n\n\nAnd these features are, they come from either the browser’s needs, what they want to build, or from developers. So there’s an open process where they open a GitHub repo each fall and developers can go and submit. And we’ve actually had some from WordPress that made it in and influenced what browsers do.
\n\n\n\nSo as developers are out there working, they’re finding pain points, they’re struggling to do this or struggling to do that, or it doesn’t work well in one browser. It works in one browser, but not the other. Interop is sort of the effort each year to come up with a set that the browsers agree upon working on. And those features hopefully all land in Baseline the following year.
\n\n\n\nI remember those days very well, and that’s why we have things like jQuery, right? So we had all these libraries that were built with this promise of sort of normalising the capabilities. Now, you’re absolutely right, the browsers have realised this is a problem for developers and they’ve come together to form a standard, and that is the Baseline thing that I mentioned.
\n\n\n\nSo they’re always building new APIs on their own, and some of them will never make it into all the browsers, and they may go away or they may change. But if they make it into Baseline, you can be sure that you can use them. And that’s what’s different, right? We have this set of features that we can rely on.
\n\n\n\n[00:14:21] Nathan Wrigley: I kind of feel we lost a decade somewhere of real productivity. You know, the browsers could have been capable of a whole lot more than they are now. I mean, we’re happy with where we’ve got, but it does feel like we lost, this proprietary approach to browsers really wasn’t in the best interest of anybody. But you can see how it grew out of Microsoft and all of these other organizations.
\n\n\n\nI’m guessing that Google with its Chromium browser, Chromium based browser, the fact that that became utterly dominant was probably quite a pivotal point. You know, it was in the sort of eighties and nineties percent, adopted by 80 or 90%. I guess Google was able to push things through a little bit more.
\n\n\n\n[00:14:59] Adam Silverstein: Perhaps, like they do often lead on features. I mean, I wouldn’t say they’re always the lead on features, sometimes Safari has a great idea and they want to develop it, and with Firefox as well. But they do have a huge effort going into it. And, you know, of course Microsoft famously adopted Chromium as the engine for Edge. And so Microsoft is actively contributing as well to Chromium, which is the core of Chrome.
\n\n\n\nSo yes, I think the dominance did allow them to sort of lead on features and have the other browsers sort of need to follow. If Chrome is going to ship a feature, everyone’s going to use it. But I don’t know if that’s always the case. You know, when you read these, I’ve read some of these proposals, you know, the browser vendors, they talk to each other in the open, right?
\n\n\n\nSo these aren’t like private conversations that are happening in a room somewhere. They are all into open source software. So they’re, you know, there’s a repo where like, for example, Chrome will come in and say, we’re working on this new API, we would like feedback from the teams building Mozilla and Safari about if this is a good feature, are you going to support this? And that’s like typically early in the process where they try to get that feedback so they know whether this is something that is likely to land in the platform.
\n\n\n\n[00:16:02] Nathan Wrigley: I don’t really know whether it was the best thing for one browser to sort of win out, but it certainly seems now that the dust has settled, it seems that that was a fairly good thing to happen.
\n\n\n\n[00:16:11] Adam Silverstein: Yeah, I mean, I think if we had only had one browser, that would not be good. I mean, Apple is definitely dominant on mobile in markets where iPhones are very popular.
\n\n\n\n[00:16:21] Nathan Wrigley: North America, for example.
\n\n\n\n[00:16:22] Adam Silverstein: Exactly. North America and Europe, I think as well. Although if you look at most of the world, it’s actually Android that is far more dominant. So that’s where Chrome gets a big percentage of its users because Android is the default browser there, just as Safari is the default browser on iOS devices
\n\n\n\n[00:16:35] Nathan Wrigley: I guess there was the whole Chromebook thing as well with, you know Google trying to promote this idea of a browser computer, for want of a better word.
\n\n\n\n[00:16:43] Adam Silverstein: Chrome OS.
\n\n\n\n[00:16:44] Nathan Wrigley: Yeah, Chrome OS exactly. And but the idea that, when it first came out, I remember looking at Chromebooks and thinking, yeah, it’s intriguing. It can do Google Docs, but where’s the video editing? Where’s the audio editing? I’m guessing like a modern Chromebook is a full swap out for a, it just doesn’t have the physical storage memory in some cases.
\n\n\n\n[00:17:01] Adam Silverstein: It doesn’t have any. It’s, well, I mean, it has some for caching, but basically you log in and that’s your computer. Someone else logs in, it’s their computer. It’s fully in the cloud.
\n\n\n\n[00:17:09] Nathan Wrigley: It’s pretty amazing.
\n\n\n\n[00:17:10] Adam Silverstein: Although I will say, I bought a cheap Chromebook, like 150 bucks, refurbished, but I bought it to travel with so that I didn’t have to carry around my eight pound MacBook Pro. And because I’m a developer, I figured out how to do development work on it. You can install Linux on it and run, you know, Docker and all the things that you can do on a desktop machine.
\n\n\n\nDoes take some effort, like that’s not built in. But they are actually full computers, it’s just that the way the operating system is set up is this sort of cloud-based thing.
\n\n\n\nBut it’s quite, I think they’re amazing honestly. And, like I said, very inexpensive and also like bulletproof. You never have problems with them because your whole world is basically the browser.
\n\n\n\n[00:17:47] Nathan Wrigley: And it kind of boots in half a moment, and it’s so secure.
\n\n\n\n[00:17:51] Adam Silverstein: Yeah. They’re fantastic, and especially for like schools or corporate settings because it has all that management built in. I think they’re great computers. I would definitely recommend them, especially for people who don’t want to spend all the money that it takes to get, you know, and especially like you’re saying, everything’s in the browser these days. So there’s really, you don’t need a desktop computer to do most things.
\n\n\n\n[00:18:10] Nathan Wrigley: Yeah. I think we painted a picture of the power of the browser, we’ve done well there. We got kind of hijacked a little bit. So you were talking about popovers, that was the first thing. Let’s return to that. What’s one of the other things mentioned?
\n\n\n\n[00:18:20] Adam Silverstein: Next on my list is this Scroll Animations API. So this is animations like CSS animations that are either triggered or tied to a scroll event. So you could think about, like Slider Revolution has this feature in it, or you’ve seen it on like Apple’s website where you’re scrolling and as you’re scrolling an image is fading in or something is being revealed. Or another good example is like a reading indicator that Medium has at the top of the page as you scroll down.
\n\n\n\nSo we can do these things today with JavaScript, but it involves paying attention to the user scroll position, and this kind of heavy handed approach to monitoring the user. With CSS scroll driven animations, it’s just a couple of lines of CSS and suddenly you’ve tied an animation to scrolling.
\n\n\n\n[00:19:01] Nathan Wrigley: So again, all handled by CSS, no need for a JavaScript library. Any impact in, I mean, these JavaScript libraries are famous for sort of bogging things down, tons of bloat and what have you. I’m guessing that because it’s shipping in the browser, that is minimal to say the least, almost non-existent.
\n\n\n\n[00:19:17] Adam Silverstein: Yes, and the animations are CSS animations, so they’re not happening on the main thread. JavaScript famously has one main thread, and if you have something running on that main thread, it’s going to interfere with other JavaScript. So if you can get rid of some of the JavaScript on your website, that’s freeing up that thread for the other JavaScript that you have, that you want to do to track your analytics or to, whatever else you’re trying to do on your page with JavaScript. This is one less piece of JavaScript you need on your site.
\n\n\n\n[00:19:42] Nathan Wrigley: The feature that you’ve just mentioned is something that I guess WordPress developers are going to be particularly interested in. They love all that stuff.
\n\n\n\n[00:19:48] Adam Silverstein: Yes, clients love it. They love animations. And again, this is something that’s very lightweight, right? The argument against these types of animations is they’re typically very heavy.
\n\n\n\nThe other advantages of using CSS based features versus JavaScript is accessibility. Often these features, I mean this isn’t necessarily true with scroll driven, but like with the carousels, it’s got that accessibility built in. It’s got the escaping out of the dialogue.
\n\n\n\nAgain and again we see that, when you build something in JavaScript, I’m going to talk in a minute about CSS carousels. When you build it in JavaScript, if you want to make it accessible, there’s a lot of extra work that goes into doing that well. If the browser builds the feature in as like a fundamental, almost like an HTML component, then the expectation is the browser will take care of that for you. So as a developer, you won’t even have to pay attention to it.
\n\n\n\n[00:20:36] Nathan Wrigley: I’m guessing that in the case of the one you’ve just described, that’s really easy to map onto this podcast because a WordPress user, they’re using a page builder or something like that. They’re going to have encountered these options, you know, somewhere buried in the settings for this image component is a fade in on scroll.
\n\n\n\nAnd I’m guessing that in the future in WordPress, this might be some sort of toggle in a block, an image block or something like that. You’ll just switch it on, assign some characteristics to it like, I don’t know, fade to 50% at halfway through the viewport. And that will just create the CSS, but all done inside of a panel of a block.
\n\n\n\n[00:21:11] Adam Silverstein: Yeah, I did exactly that as a pull request and have a link to that in my talk. Yeah, that’s a great example. It could be an image, it could be a header block.
\n\n\n\nI guess one question I have as a Core committer is whether that is actually Core territory. We have this long standing philosophy in WordPress that it’s kind of the 80 20 rule that a feature that we land in Core should benefit 80% of users, otherwise it belongs in plugin territory.
\n\n\n\nThat said, one of the things we’re talking about now is this idea of canonical blocks. So there’s a lot of new blocks being proposed in Gutenberg right now, and the question is like, how many blocks do you actually want to ship with the editor? There’s a zillion different things you could think of building a block for, or a feature like animation, say for images like we’re talking about. But if it’s not valuable for all users, does it really belong in Core? And does it just overload the list of blocks they have to choose from, or the list of features they have to choose from? Why not just let plugins extend it?
\n\n\n\nThe other idea, like I said is this idea of canonical blocks. So you could have a block that’s developed by the Core team, is supported by Core, and is directly installable in the admin, in a like clearly labeled way that this is a Core product. But actually not ship it with WordPress. So it’s something that you could install with one click. I mean, we actually haven’t defined exactly what a canonical block or plugin is, but this is sort of what my idea is. It’s something that’s like, you’re one step away from having it installed.
\n\n\n\n[00:22:27] Nathan Wrigley: Yeah, it feels like a canonical plugin, at least feels to me like something which has the security guarantee of Core, plus the updating guarantee of Core. Basically if you install it, it’s going to work with the latest version of WordPress, plus the all the backwards compatibility. I kind of like the idea of, like Apple ship with things like iOS, like Core animations. A plugin which just enables the animations in Core blocks.
\n\n\n\n[00:22:51] Adam Silverstein: Right. Like the capability might already be there. I mean, you know, so one of the other APIs that I talked about in another section is the Speculative Loading API. So this is a good example. And this is actually shipping in WordPress 6.8. And this is the ability for the browser to prefetch the resources for a page that a user is about to navigate to.
\n\n\n\nAnd in WordPress, we shipped it in the most conservative mode possible, which essentially is the user needs to click down on the link, and then before they let go of their mouse, so the time between the mouse down and mouse up event is when the browser is prefetching the resources for that link.
\n\n\n\nSo if the user clicks down on the link, we’re very confident that they’re actually going to navigate. Although it is possible to drag away and not navigate. 90% of users are going to follow that link or more. And so the idea is not to waste prefetching for links that users never visit.
\n\n\n\nHowever it is possible to configure this API in a more bold manner where it will, for example, prefetch links that you hover over, which is going to give you much more of a head start, but also a lower hit ratio where, you know, some people will hover over links and they never click on them. So it depends on your use case.
\n\n\n\nSo I’ve already seen, so we landed the API in WordPress at the very conservative level. There’s already a plugin out that lets users configure that API for their own site, so they can adjust the default settings.
\n\n\n\nThere’s another setting that’s even more aggressive where it actually pre-renders the page. And in that setting, it’s almost as if you’ve loaded the page you’re about to navigate to in another tab, and when you click the link, it’s like switching tabs. It’s an instantaneous transition. It’s like amazing.
\n\n\n\nHowever, you know, if you’re pre-rendering every page a user hovers over, that’s going to be a huge additional load on your server. So there is a trade off there. But maybe you have like a large call to action button on your homepage that 50% of your users are going to click on. Go ahead and prefetch that. They’re going to get a better experience. You’re going to get a better conversion rate if that page loads faster.
\n\n\n\n[00:24:45] Nathan Wrigley: if memory serves, this is a browser API, Speculation Rules API and everybody’s got it switched on in 6.8 and beyond. But it’s in conservative, and it’s prefetch not pre-render, it’s click. And honestly, the chances of you not wishing to get to that page are pretty, like you say, you could slide away. But yeah, if you were to download the speculation rules, I can’t remember what the name of the plugin is. Anyway, the plugin, the option there is to do things like pre-render, or hover. And then, yeah. You could get into a real mess with the server and, you know, just wasteful.
\n\n\n\n[00:25:23] Adam Silverstein: Yeah. If you, especially if you’re on like a light end server, but maybe you want that, like the most important. Like, let’s say you have an e-commerce store and you’re really trying to get people to add things to your cart. You know, there’s all kinds of studies that show that if your pages load faster, and it’s even buy like things like a hundred milliseconds, the conversion ratio is much higher. People are quick to abandon slow sites. I mean, there’s all kinds of data on that.
\n\n\n\nSo you may decide it’s worth investing the additional resources and dedicated hosting and caching so that you can prefetch and pre-render and get that faster navigation. This API enables that type of navigation that is, you really can’t get that without this API because it’s basically letting the browser know, it’s okay to like start loading resources before I even visit a page.
\n\n\n\n[00:26:06] Nathan Wrigley: Yeah, I keep having this thought that at some point Chrome’s going to come up with, it’s going to know a whole year in advance all pages that I wish to visit and just load them all for me.
\n\n\n\n[00:26:15] Adam Silverstein: Well, I did actually an experiment with AI to see, like ask AI which link is the user most likely to click on? And I tried it both with just literally dropping the HTML of the webpage in the AI, as well as drawing a screenshot. And I tried it on a very simple page, so like a WordPress plugin page. There’s a large blue button that says download. Probably the most likely link that users will click on. But the AI was like very good at identifying that. So in theory you could imagine that the browser could actually predict into some degree what users, based on their behavior, are going to click on, or based on the layout of the site.
\n\n\n\n[00:26:50] Nathan Wrigley: So this is a, curious new world in which we live, isn’t it? So there could be heuristics about what I’m literally doing with the mouse. So the mouse is, I don’t know, approaching a button. That’s a fairly strong indication. And also, I guess the speed.
\n\n\n\n[00:27:05] Adam Silverstein: Yeah, if it’s paused over the button.
\n\n\n\n[00:27:07] Nathan Wrigley: Right, or slowing down, the speed is sort of coming to a terminus. Yeah. This is all really interesting.
\n\n\n\nThe 6.8, the Speculative Loading in 6.8, what I really like about that is that there’s zero configuration. It just works. So it’s using this fabulous new feature of the browser, but also no technical knowledge whatsoever. Absolutely none. And it would hopefully just save you a bunch of, well, your visitors a bunch of time.
\n\n\n\n[00:27:33] Adam Silverstein: Exactly.
\n\n\n\n[00:27:34] Nathan Wrigley: Yeah. Fabulous. Okay, that’s another one. Any others?
\n\n\n\n[00:27:37] Adam Silverstein: Oh my gosh, so many. We did touch briefly on CSS carousels, but let’s just cover that again. So over half of WordPress websites load some sort of slider or JavaScript library.
\n\n\n\n[00:27:49] Nathan Wrigley: Like them or hate them, they’re there.
\n\n\n\n[00:27:49] Adam Silverstein: Yes. And even if people don’t use them, they seem to load them because I don’t know if half of sites all have sliders, but in any case, this is a very popular feature for WordPress sites. And of course there’s many plugins out there that do this, and they all rely on a JavaScript library. There are several very popular ones. They’re very full featured libraries. They do all the things that you need for a carousel.
\n\n\n\nNow we can do that with CSS, so you don’t need the JavaScript library. Now, there may be advanced features that the JavaScript libraries will be able to do that will add some functionality. But the goal of the CSS implementation is to basically be feature parity with what you can do now with JavaScript. So all kinds of carousels
\n\n\n\nwith buttons that you can click, with little indicators as to which slider, which image you’re on. You know, just all the features that you can imagine in a carousel. There’s a great demo site on the chrome.dev site of just like a zillion different carousels.
\n\n\n\n[00:28:41] Nathan Wrigley: What does the DOM look like for that?
\n\n\n\n[00:28:43] Adam Silverstein: It’s so simple. It’s like you have the images themselves, and you have a couple of pseudo elements like scroll marker, and there’s some for the scroll arrows. I don’t actually remember all the deals because I haven’t built one. But it’s all done using like CSS selectors essentially to indicate which elements are the control elements, and which elements are the target elements. And you can even do things like grouping them so that like when you hit the right arrow, it’s like a page of things moving back and forth, like several elements.
\n\n\n\nLike I said, they’ve tried to address all of the features. And again, here you would be able to do a CSS based carousel, that means no JavaScript required, right? You don’t need to load that giant JavaScript library. It’s going to be immediately available, right? So JavaScript takes some time to load. It’s going to work more quickly. And it’s also hopefully going to have accessibility built in. So you don’t have to worry about if your JavaScript library is keeping up with accessibility standards. It’s going to be a standard web component.
\n\n\n\n[00:29:36] Nathan Wrigley: Okay, okay. Of course. Yeah, if everybody’s implementing the same thing, it’s not this weirdy JavaScript thing that you downloaded from somewhere.
\n\n\n\nAnd okay, another question about, just sticking on that one for a moment. Will that be performant in the sense of, I don’t know, if I’ve got a carousel of 15 images, will the 15th one be loading at the moment.
\n\n\n\n[00:29:56] Adam Silverstein: Lazy loaded?
\n\n\n\n[00:29:57] Nathan Wrigley: Yeah, exactly.
\n\n\n\n[00:29:57] Adam Silverstein: You would hope so, yes. I mean, I think in general it will be more performant than a JavaScript implementation. Unless the JavaScript implementation is doing some magic that the browser’s not aware of, like lazy loading. I think that is, will be built in. But you, again, don’t have that JavaScript running on the main thread doing the actual animations. All the animations are CSS animations.
\n\n\n\n[00:30:16] Nathan Wrigley: It’s kind of curious because that example, I’ve always liked how they look but I’ve always been persuaded that it’s the wrong thing to implement because of the JavaScript bloat, the inaccessibility. So they kind of went into that pariah status for a while. But if done right, there’s absolutely no reason not to implement it.
\n\n\n\n[00:30:36] Adam Silverstein: Yeah. And I think, you know, like you said, clients love them, they’re very popular. I think one of the arguments that I’ve heard about them is that data shows that most users never navigate beyond like the second image. So there is sort of questionable value there, especially if you’ve got one that say has 30 images in it on your homepage. Maybe that’s not such a great idea.
\n\n\n\nBut maybe if you have three products that you want to feature at the top and you don’t know how to feature them all, a slider is a good way to have three things that the user can see all in the same space. So I think they have their uses, but I think there is the sort of resistance to using them from developers is based on solid data.
\n\n\n\n[00:31:09] Nathan Wrigley: It’s interesting as well because given, I don’t know the, bad reputation they have, it’s kind curious that that got made.
\n\n\n\n[00:31:16] Adam Silverstein: Right. So this actually brings us to a good point. Where do the browser vendors come up? Why are they building these things right? So the reason they decided to build CSS Carousel is this is an area that developers have struggled with.
\n\n\n\nLike I said, there are several libraries that are well established that have built really good sliders, but that’s taken a long time, right? And they still have accessibility challenges.
\n\n\n\nThis is something that a lot of developers want to build, their clients are demanding it, and they’ve typically struggled to actually build something quality. So this is the impetus for a lot of these features that I talked about is places that developers are struggling. And that Interop project that I mentioned earlier, that’s where developers can give their feedback to the browser vendors about which features they feel are lacking.
\n\n\n\nThat was the sort of like the last question of my talk was to developers, what are you struggling, what are you constantly using JavaScript for? What are you finding that’s still incompatible between browsers? Because I think that’s actually really important to get feedback from developers. The browser builders are in a room somewhere, they’re doing their thing. You know, they’re not out here building WordPress websites, so they’re not building Gutenberg. So we as developers have a responsibility to give feedback to the actual browser vendors so they know what we need, what we’re struggling with.
\n\n\n\n[00:32:27] Nathan Wrigley: You may not know the answer to this question, but does Chrome in a default setup where I install Chrome and then just click yes, yes, yes to everything that I’m asked. Does it provide heuristics back to Google about things like that? There’s millions of people interacting with carousels, for example.
\n\n\n\n[00:32:44] Adam Silverstein: I’m going to say, well, going to say no because they’re, Chrome does collect data, but you have to opt in. By default, you would not have that box checked.
\n\n\n\n[00:32:51] Nathan Wrigley: But it is possible.
\n\n\n\n[00:32:52] Adam Silverstein: Yes. And many people do. Many people do provide that. And most of that data is available publicly. So that data is anonymised and then made available publicly as part of the CrUX, the Chrome user experience data set. And that’s an open public data set that you can query using BigQuery. If you have a website or a product that’s very popular, you can get amazing data about how many sites are using it, about the performance of those sites, about growth over time. There’s all kinds of data out there.
\n\n\n\nOf course, again, it’s a subset of the web. It’s not every website on the web because there’s a privacy concern about this data. So the only data that’s reported is when the pages or sites have enough visitors that you couldn’t track back to individual users. So it is a limited data set. Small sites with low traffic won’t appear in it. However, it’s incredibly valuable. And if you build a popular plugin, for example, this is a great way for you to gather data about how your plugin is being used, because some of the sites that install it will be in that data set and it’s public data.
\n\n\n\n[00:33:51] Nathan Wrigley: Yeah. I’ll put a link to that in the show notes. That’s CrUX. CrUX. So that’s interesting. So there’s two routes there. There’s the heuristics provided by the browser if you opt in, but also it sounds to me like there are open channels communicating through people like you, if you’re a developer.
\n\n\n\n[00:34:04] Adam Silverstein: Like me, or like the Interop process that I mentioned earlier, where they open up a GitHub repo each year and you can just open an issue saying, here are the things that we’re struggling with. And I mentioned like Gutenberg actually did that.
\n\n\n\nFor a couple years I was posting on the WordPress blog, hey, Interop is open, let’s give feedback. We did have one, at least one year where the Gutenberg team went in and made a long list of things that where they found incompatibilities. And some of those made their way into actual interrupt tasks. So it is incredibly valuable to give that feedback. And the browsers want to know, they want to build products that developers like to use.
\n\n\n\n[00:34:36] Nathan Wrigley: Okay. next, if there is a next.
\n\n\n\n[00:34:38] Adam Silverstein: Oh yes. Okay, so now we’re getting into, I think I hopped around a little bit, but the next section was about improving user experience. So the first one is actually a really simple one that I think is really cool. It’s customisable select.
\n\n\n\n[00:34:49] Nathan Wrigley: Oh, so good.
\n\n\n\n[00:34:50] Adam Silverstein: Yes. So the select element traditionally has been rendered by the operating system. And that means, so if you have a select list, like a dropdown, you’re going to see a bunch of words and you’re going to be able to scroll through those. But if you want to make it more visual, say add some images or icons next to each word, you really couldn’t do that. If you wanted to do that, you’d reach for a JavaScript library that would render the select element graphically, but wasn’t really a select element.
\n\n\n\nSo this is the ability to actually put HTML inside your select elements. So a great example of that is icons and images in the dropdown. So, for example, I gave a lot of different examples of how we can use this in WordPress Core, but one is in the media library where we filter by media type. We can add like nice little icons. So if you’re looking for, you know, the videos, you get a nice little video icon. It just makes it easier for users to find what they’re looking for.
\n\n\n\nAnd again, this is still a semantic select element, so it’s going to be accessible just like a regular select element. If the browser doesn’t support this feature, it’s just going to fall back to a regular select element.
\n\n\n\nIt’s also going to autofill correctly, right? So another example I gave was a currency selector that adds flags for the country of the currency. A nice, helpful thing. If your browser knows that you use the Euro, it’s going to select the Euro because autofill is this great technology that helps us select things that we always select. But if it’s a JavaScript do hickey, the browser has no idea what’s going on inside there, so autofill will not work correctly. So it has some real key advantages over traditional, you know, the way we would build these before. Now we can just do full on HTML select elements.
\n\n\n\n[00:36:21] Nathan Wrigley: It’s the kind of thing that once you’ve seen it, it’s like, why.
\n\n\n\n[00:36:25] Adam Silverstein: Why didn’t that exist before?
\n\n\n\n[00:36:27] Nathan Wrigley: Because we just have the OS. It just looks like an OS selector. So on my Mac, it looks like a Mac. On my phone, it looks like Android, whatever that would be. Which leads me to that actually. So on the phone, same experience because it’s not stepping outside of the browser. if I’ve got those flags, for example, or I’ve got coloured backgrounds or rounded corners or whatever it may be, Because it’s not reaching out to the OS to create this select, it’ll work on any device.
\n\n\n\n[00:36:53] Adam Silverstein: Right.
\n\n\n\n[00:36:54] Nathan Wrigley: Nice.
\n\n\n\n[00:36:54] Adam Silverstein: And it’s CSS controlled, right? So you could do a different mobile implementation than your desktop implementation.
\n\n\n\n[00:36:59] Nathan Wrigley: Yeah. I mean, it’s profoundly brilliant when you see. I’ll put some links to some demos somewhere into the shownotes.
\n\n\n\n[00:37:06] Adam Silverstein: You know, I’ve got several pull requests open both in Core and in Gutenberg to add these features into the select elements that we already have. It’s kind of a simple enhancement. And again, like if your browser doesn’t support it, you don’t really, there’s no harm, right? You don’t benefit from the feature, but you don’t lose anything either. I love that one. You know, I’m hoping that form plugins in our ecosystem will adopt it.
\n\n\n\n[00:37:25] Nathan Wrigley: Oh, no doubt. I mean, why wouldn’t you, basically? that’s a brilliant one. Thank you. Next.
\n\n\n\n[00:37:30] Adam Silverstein: Another one that, this one actually pairs really well with the Speculative Loading API and it’s called, the View Transitions API.
\n\n\n\nAnd this one is really cool because it basically turns your static website into a, kind of a fluid app-like experience. And in the slide deck, I have this great demo video of just a classic theme, where the users just clicking through to different pages. So you’re on say, the archive list and you’ve got a list of titles. And you click on a title and it’s going to take you to the single post page. And what happens is the browser actually navigates between those two states. So you see the title that you just clicked on, grow and expand, and it winds up in the position where it will be on the page you’re navigating to.
\n\n\n\nSame thing like with the featured image. Let’s say you have featured images and those appear in a list and you click on the featured image, the image will grow to where it’s going to be in the final position. So it creates a smooth animation between the different pages of your site, or states of a single page app.
\n\n\n\nAnd these are again, CSS animation, so you can control them. It has an auto mode where it picks the animation for you, so you really can do a very, just few lines, and get this effect working, but you can also customise it. So if you want the page to say scroll left when you hit the next button and scroll to the right when you hit the back button, you can implement it that way.
\n\n\n\n[00:38:45] Nathan Wrigley: So the place I’ve seen this before really is on mobile applications.
\n\n\n\n[00:38:48] Adam Silverstein: On apps. You see it on apps, right. Because it creates this fluid experience. We are used to on the web this idea of, you click on a link and then there’s kind of like a little bit of a wait. Then boom, there’s a refresh and the next page starts loading. And this kind of bridges that gap. It’s something that changes how users perceive your website. It doesn’t really change what’s loading. It’s the same before and after states. What it’s doing is creating that transition between the two states.
\n\n\n\n[00:39:12] Nathan Wrigley: It feels more like you’re on a journey as opposed to these little stops along the way to get to the final destination. It just creates this sort of fluid, endless experience. And I believe, I think I saw one of your colleagues, Felix Arntz, I believe he’s got a plugin, like a feature plugin out.
\n\n\n\n[00:39:30] Adam Silverstein: It is. It just shipped. It’s part of the Performance Lab plugin suite. So that is basically going to add a way for themes to just opt in. So we have a feature in WordPress where you can be, add themes support. And you can say, my theme supports this feature. So if themes opt in, they can just enable this API and just, you instantly get the navigations.
\n\n\n\nWe fortunately benefit in Core from a lot of consistent naming for things. Like the class names on titles tend to be consistent among all the Core themes. And even in the ecosystem, a lot of people have stuck to those standards. And that makes it really straightforward to sort of choose the correct elements for the transitions.
\n\n\n\nBecause part of setting this up is you sort of need to tell the browser, this is the title element. On the previous page, this is the title element on the next page. I want you to navigate between those two. And fortunately, at least for the Core themes, that’s pretty standard to do. So there is a pretty straightforward way to like implement it across all the core themes.
\n\n\n\n[00:40:23] Nathan Wrigley: I just want to remind the listener that, you may have got lost, we’re not talking about WordPress per se. We’re kind of talking about what the browser enables WordPress to do. So these view transitions, of course they can be implemented by a WordPress website, but it is in effect the browser that’s doing the hard work here.
\n\n\n\nYou don’t have to be tied to WordPress, you could do this in HTML and CSS if you so wish to do it. But it’s easy to imagine that this is some clever JavaScript thing that somebody’s implemented in WordPress. And it’s just not that. This is just happening inside the browser.
\n\n\n\n[00:40:53] Adam Silverstein: No, these are all browser features and, yeah, the talk is kind of like, how do they apply to WordPress? How WordPress use them?
\n\n\n\n[00:40:59] Nathan Wrigley: I can imagine a world in the future where this feature in particular will have been massively overused. You know, people will, like scrolling animations for the, you know, this grows and this shrinks, and let’s see how that’ll settle. But the implementations that I’ve seen are just magnificent. They give you that, I don’t know, I’m on my phone, I use a music app, and I go to the next song and somehow the little icon for that song grows in this nice fluid way. Things fade in and fade out. Text becomes bigger, and it’s all happening. And It just encapsulates the screen perfectly. It gives everything the perfect place. And instead of it being a moment where it all just changes, everything slides into place. And it just feels natural, and we’ve got it coming in the browser.
\n\n\n\n[00:41:39] Adam Silverstein: It is amazing. Yeah. It’s, a pretty cool feature.
\n\n\n\n[00:41:41] Nathan Wrigley: Yeah. Okay, next.
\n\n\n\n[00:41:42] Adam Silverstein: Okay. So I did talk about what you mentioned, we talked about modern images before. So I did talk a little bit about modern image formats, just a kind of love of mine. I honed in on. HDR imagery. So we all, most of us have smartphones these days that actually take high dynamic range images, right? Previously we had standard dynamic range, but now all of our phones take multiple exposures and combine those to create an HDR image.
\n\n\n\nWe have long had the ability to save images in HDR with formats like AVIF, WebP supports it. However, the challenge comes when you upload those images to WordPress and then you try to use them on a standard definition monitor, an SDR monitor, right? So you’ve got an HDR image, but suddenly you’re displaying it on a monitor that can’t display HDR, and you have to sort of, re downsize it to that lower bit depth, and that degrades the image greatly.
\n\n\n\nSo there is a new format available that’s ISO standard, and it’s called Ultra HDR. And this is a combination of standard jpeg SDR imagery with a gain map metadata layer. So it’s a single image format that includes both the SDR data as well as the data required to render the HDR version of the image. So it’s a full HDR image when you view it on a monitor that can support it, but on a monitor that doesn’t support it, you can just use the SDR image, you don’t need to do some conversion to try to create that alternate image.
\n\n\n\n[00:43:09] Nathan Wrigley: I’ve never heard of this, so I’m going to try and parse it in real time. Let’s see how this works. So I’m imagining an image and I’m imagining like a CSS gradient over the top, There’s a bit of metadata which does something. The underlying image is unchanged, but there’s something gone over the top.
\n\n\n\n[00:43:25] Adam Silverstein: Yes, it’s called a gain map.
\n\n\n\n[00:43:27] Nathan Wrigley: Right, so gain mapping. And I can put that on, put that off. So it’s metadata transforming the image, but the image is the same.
\n\n\n\n[00:43:33] Adam Silverstein: Yes.
\n\n\n\n[00:43:35] Nathan Wrigley: Interesting.
\n\n\n\n[00:43:35] Adam Silverstein: Yes. So I am a programmer and I deeply know about how WordPress media works, but I am not a photographer. However, there have been some great contributions from photographers who really know this space well. And they’ve come in and helped us on the media team really understand the challenges of handling these types of images and publishing them to the web, right?
\n\n\n\nSo I have a link in the slide to one of those guys and his photography website. He’s a software developer and a photographer. And he’s got like those sliders you can kind of see before and after and see what the difference is between SDR and HDR imagery. And you realise, oh my God, HDR images are amazing. So the point of this feature, or the thing that I’m talking about is to try to let people actually be able to use HDR images on their WordPress websites.
\n\n\n\n[00:44:17] Nathan Wrigley: That’s fascinating. So a metadata layer living on top of an image, which visibly transforms it, but not just to add, I don’t know, to change the hue or the tint of it, to render a better image of a higher quality. Gosh that’s fascinating.
\n\n\n\n[00:44:32] Adam Silverstein: Yep. So the challenge we have in WordPress is the ability to process these images. So in WordPress, when you upload an image, it goes to the backend, to the web server, and then we process it, we convert it to various sizes for different display sizes. So you get a different image when you’re browsing the site on a mobile or a desktop or a high definition screen. We have all different sizes, and themes can add sizes.
\n\n\n\nAnd all of that image processing happens using a couple of image processing libraries. GD and Imagick are the two that we support natively. Those libraries do not support the latest format, so Ultra HDR was maybe just added to Imagick. It will take years before that library, the new version of the library is actually available to WordPress sites. So even a format like AVIF that’s been around for quite a while now, is only supported by 30% of WordPress servers. So only 30% of WordPress sites can actually upload AVIFs and get the full, you know, various sizes that they need.
\n\n\n\nSo that’s a limitation of the architecture of WordPress. And one of the next features that I talked about is something that will help us leapfrog that limitation. Browser based image processing. Exactly right. So what I’m talking about here is WebAssembly.
\n\n\n\nSo WebAssembly is the ability to run code that was written in another language like C or C++, that targeted a machine language, is meant to be run natively on the hardware. So that, for example, these image processing libraries, and also newer image processing libraries, can be run directly in the browser.
\n\n\n\nAnd what this gives us the ability to do is ship the latest version of the image library directly with WordPress. We no longer have to rely on hosts doing the messy and difficult process of upgrading servers, very challenging thing for hosts to do, to get the latest version of the Imagick library. We can just ship that library directly in the browser. And that gives us the ability to make every WordPress site support AVIF, and it also gives us the ability to do things we simply can’t do today on the backend.
\n\n\n\nA good example of that is converting gif or gifs to movies, right? This is a common performance recommendation. Gifs are very heavy. You convert them to a native video element and they behave just the same for users, but they’re much lighter because the compression is so much smarter. Can’t do that in WordPress right now. Neither of the image libraries support that ability. But there are image processing libraries that handle this, and we can run those directly in the browser.
\n\n\n\n[00:46:52] Nathan Wrigley: Let me see if I’ve got this right. So in this world of the future, it’ll be possible, let’s say in the block editor, I drag in a, I don’t know, a jpeg or something, but I could convert that on the fly to an AVIF for example.
\n\n\n\n[00:47:05] Adam Silverstein: Yes. Even if your server didn’t support AVIF.
\n\n\n\n[00:47:06] Nathan Wrigley: Even if. So it’s literally in the browser.
\n\n\n\n[00:47:09] Adam Silverstein: Yes
\n\n\n\n[00:47:09] Nathan Wrigley: Okay. First thing is that quick.
\n\n\n\n[00:47:11] Adam Silverstein: Well, okay, so it’s not quick on the backend either, right? But it is asynchronous, so you can continue working on your post while it’s happening.
\n\n\n\n[00:47:18] Nathan Wrigley: Right. So you wouldn’t necessarily see anything.
\n\n\n\n[00:47:20] Adam Silverstein: Right. You would that it was processing. And of course it would depend on how large your image is, how many subsized images you’re creating. But no, it’s not fast. It’s a slow process, but it’s a one time thing each time you upload an image.
\n\n\n\n[00:47:31] Nathan Wrigley: That was next question. It’s a one time thing. So the movie thing that you just described, where you got the gif to a movie, again, a one-time thing?
\n\n\n\n[00:47:38] Adam Silverstein: Yes.
\n\n\n\n[00:47:39] Nathan Wrigley: So we upload it. In the background, asynchronously, it’s converting it, and then at some point it gets saved, I guess as a .mov file or something like that? inside the media library?
\n\n\n\n[00:47:50] Adam Silverstein: And this is actually not some future technology you’ll be able to use someday. You can use this today by installing Pascal’s Media Experiments plugin. So my colleague Pascal has swisspidy as his handle, people know him by that. But he’s got the Media Experiments plugin, and that will let you do all these things that I’m talking about today. And it is experimental, so beta software, but, check it out because it really demonstrates what we can do.
\n\n\n\nThere’s also a PR already open in Gutenberg with a whole roadmap for landing this feature. It is already sort of an experimental feature in Gutenberg. So if you install the Gutenberg plugin and you go into experiments, you can actually enable this feature. I don’t think it has all of the things that he has in the plugin, but it has sort of the additional framework for it.
\n\n\n\n[00:48:28] Nathan Wrigley: If I were, well, I am fairly non-technical, this is the kind of stuff I expect, I think. You just drag an image from any device of any kind into the editor, whatever that editor interface is be it Gutenberg or, you know, whatever. It should just handle that. You know, there shouldn’t be a proclivity for we prefer this thing or we prefer that thing. It should just do it and whatever output I want, I want it as an AVIF, I want it as a WebP. Okay. we’ll just transform it in the background. I know there’s a ton of technological milestones to be achieved and overcome with that, but that is, I think, the expectation. The web should just work like that. Everything should convert and be easy, and drag and droppable and, yeah.
\n\n\n\n[00:49:10] Adam Silverstein: Yeah, and famously, several years ago, Apple started storing images in the HEIC format, which is a better compression than jpeg. However, it’s not a web safe format. I think Safari is the only browser that supports it. So when we upload HEICs to WordPress now, we do convert them to jpegs for users.
\n\n\n\nHowever, that only happens if your server supports HEIC images. Again, we rely on the server libraries, and that statistic is very similar to AVIF. It’s about 30% of sites. Fortunately Apple does automatically convert them if you upload them from your phone. But people do get into this problem where they wind up with HEIC images on their desktop and they’re trying to upload them to their WordPress, and then it will get rejected if your server doesn’t support it.
\n\n\n\n[00:49:50] Nathan Wrigley: Yeah, this whole thing of, I’ve got images. It’s an image. Well, it’s in the wrong format. It’s an image.
\n\n\n\n[00:49:55] Adam Silverstein: Right? Why do I have to care?
\n\n\n\n[00:49:57] Nathan Wrigley: It shouldn’t matter. Yeah, okay. That’s a perfect example. Okay, so images, anything else?
\n\n\n\n[00:50:02] Adam Silverstein: The other one that I think is really cool that maybe people don’t know about is running AI directly in your browser. So there’s a great library called Transformers.js that lets you run a whole bunch of different models, kind of, it acts as an interface.
\n\n\n\nSo just like the large language models that we have online, like Gemini and ChatGPT. You can actually run smaller versions of those directly in your browser. And some of the advantages of that are the data is private. There’s no API key required, or cost to you to use these. You can ship an AI directly with your product. So imagine you have a software, a plugin that is designed for company bulletin boards. You don’t really want that data going out to some remote API, but you’d like to give users a way to summarise the conversation from yesterday. A language model running in your browser is capable of doing that.
\n\n\n\n[00:50:49] Nathan Wrigley: Where does it live.
\n\n\n\n[00:50:50] Adam Silverstein: It runs in the memory of the browser and it gets downloaded in cache. So there is a large download when you first start using it to actually download the model. And then it’s cached, with the browser storage APIs.
\n\n\n\n[00:51:01] Nathan Wrigley: It’s persistent.
\n\n\n\n[00:51:03] Adam Silverstein: It’s persistent, yes.
\n\n\n\n[00:51:03] Nathan Wrigley: Okay. Switch the machine off, switch the machine on.
\n\n\n\n[00:51:05] Adam Silverstein: Yes. It’ll stay cached in your, browser. Browser has the ability to store files.
\n\n\n\n[00:51:08] Nathan Wrigley: I’m guessing the constraints around what it can do compared to, I don’t know, ChatGPT 4o or whatever is much more minimal.
\n\n\n\n[00:51:15] Adam Silverstein: Significant. Right. This is in the browser, you’re probably going to get the performance maybe that you got out of the models a year ago or a year and a half ago. Remember when.
\n\n\n\n[00:51:24] Nathan Wrigley: Oh not that bad then.
\n\n\n\n[00:51:25] Adam Silverstein: Yeah. Not that bad, right? And you can imagine that a year or two from now, they’re just going to get better. And there have been dramatic improvements, and even like new approaches to how they’re doing them. So they’re getting quite good. They’ll never be as good as the large language models that are running in the cloud that have abundant resources.
\n\n\n\nThere’s also hybrid models, right, where you use the local version when that’s all you have available, your offline, say, for example. Or you have a more complex query, then it can go to the cloud. There’s different ways of approaching that. But you can build a hybrid system, but the point of, the ability to run it in the browser, is to actually be able to do everything locally, and not rely necessarily on a cloud provider.
\n\n\n\n[00:52:00] Nathan Wrigley: It really feels at the minute as if Google is in a big pivot towards AI.
\n\n\n\n[00:52:06] Adam Silverstein: Absolutely.
\n\n\n\n[00:52:07] Nathan Wrigley: In fact, it kind of feels like if you were to describe it as a race, it feels like Google is kind of nudging ahead at this moment in time. I just watched some of the bits and pieces from Google IO.
\n\n\n\n[00:52:16] Adam Silverstein: Yes. Really impressive.
\n\n\n\n[00:52:16] Nathan Wrigley: It was pretty profound in many respects. But also, can you constrain that AI? So for example, could I limit it to one, well, let’s say website? It can only be used and consumed by this thing. I don’t know if there would be a need for that. I’m just wondering, is it available to all the things or can you constrain it?
\n\n\n\n[00:52:35] Adam Silverstein: I mean, so there are actually aI things being built into the browser where you’ll get AI in the browser itself. But this is not really that, this is more like it’s running inside your app. So it would be constrained. And I see this as something that we’ll start to see like plugins, shipping AI with their plugin, and it doesn’t require you to have ChatGPT or some other service provider, it just has the AI built in.
\n\n\n\nMaybe it’s identifying objects in an image. Or maybe it’s reviewing comments as to whether they’re spam. So things like that where it’s a pretty straightforward AI capability, it works really well on these smaller models. And so that’s something that I could imagine would just be built into a plugin. You would add this AI feature, but it doesn’t require that you sign up for a ChatGPT account, and get an API key and install it. You know, there’s a lot of barriers, I guess, to using the cloud models.
\n\n\n\n[00:53:23] Nathan Wrigley: Yeah. I feel like you’ve left the most interest, well, not the most interesting, but the bomb is there. My head is kind of a bit taken by that one because I can really, I mean, everybody’s fascinated by AI, the possibilities of it. But it’s always an API key. It’s always a go off somewhere else. I mean, maybe it hasn’t been for people such as yourself, but I did not know that it was possible in the browser.
\n\n\n\nAnd if it’s only a year behind, honestly, the stuff that I want to do with it is give it a corpus of information and filter that a little bit and give me a summary of it. That’s what I’m using it for. I’m imagining that all of that would be possible in the browser at no monetary cost.
\n\n\n\n[00:53:59] Adam Silverstein: Exactly. Right. Because you’re doing the computing yourself on your own platform.
\n\n\n\n[00:54:03] Nathan Wrigley: And I would imagine, like I said, Google leaning into this, that’s only going to get more investment from them.
\n\n\n\n[00:54:10] Adam Silverstein: Yeah. I mean, there is, yes, there’s a lot of investment going on in AI right now, so it’s pretty exciting. Yeah, and I did have, you know, I did talk a little bit about just how AI is going to impact all of our workflows and stuff, but that’s not really in the, it was kind of an expansion because it’s not actually a web capability, per se.
\n\n\n\n[00:54:25] Nathan Wrigley: Yeah. Well, I think maybe that’s the perfect place to end it. Unless you’ve got some cataclysmic thing which can trump that.
\n\n\n\n[00:54:30] Adam Silverstein: Nope. That was the end of talk. The last slide was really just asking for feedback from developers. So that would be my last thing to say is just, you know, try to give feedback. I’m always open. My DMs are open on WordPress Core Slack. And like I said, there’s the interop thing where you can actually open up a ticket.
\n\n\n\n[00:54:45] Nathan Wrigley: So, again, dear listener, just remember all of this, the browser is doing this. It sounds like it’s WordPress doing it, or it sounds like some other third party service. It’s not, it’s all in The browser and it’s fascinating. The browser is definitely more powerful today than it was yesterday. Adam Silverstein, thank you so much for chatting to me.
\n\n\n\n[00:55:02] Adam Silverstein: Yeah, thank you.
\nOn the podcast today we have Adam Silverstein.
\n\n\n\nAdam is a WordPress Core committer, and works to fix bugs and improve modern web capabilities. He’s also a Developer Relations Engineer on Chrome’s Web Platform team at Google, and there he focuses on making the open web better for everyone.
\n\n\n\nAdam is here to break down how the rapid evolution of browser technology can supercharge your WordPress sites. We’re doing this by referencing his presentation at WordCamp Europe 2025, in which he covered multiple new features of browsers, which can be used by WordPress users to bring a variety of experiences to their websites.
\n\n\n\nIn many cases, these are browser APIs and features, and are quietly rdefining what’s possible on the web. From CSS-powered popovers and scroll-driven animations to speculative loading that speeds up your page transitions. Adam explains how these advancements are changing what’s possible for both developers and end-users.
\n\n\n\nThe conversation sheds light on the collaboration between browser vendors, Chrome, Firefox, Safari, and Edge, through initiatives like Interop and Baseline, paving the way for more consistent and robust features across platforms.
\n\n\n\nAdam also talks about practical topics central to the WordPress community, like how the Popover API and native CSS carousels reduce JavaScript bloat, make sites more accessible, and deliver a better overall user experience.
\n\n\n\nHe shares exciting new frontiers, such as browser-based image processing powered by WebAssembly, which is paving the way for universal support of modern formats like AVIF and Ultra HDR, and even running AI locally in your browser, no API key or cloud server required.
\n\n\n\nHe provides concrete examples on how these technologies can be leveraged in WordPress via Core updates, canonical plugins, and Gutenberg experiments, with a special focus on how developers can get involved and offer feedback to help shape future web standards. Prepare to look at your browser in a whole new light, truly.
\n\n\n\nWhether you’re a theme designer, plugin developer, or site owner simply curious about what’s next, this episode is for you.
\n\n\n\nModernizing WordPress with new Web Platform Features – Adam’s presentation at WordCamp Europe 2025
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nPascal Birchler’s Media Experiments plugin
\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:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 23 Jul 2025 14:00:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Nathan Wrigley\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i: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:59:\"Weston Ruter: Instant Back/Forward Navigations 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:33:\"https://weston.ruter.net/?p=35588\";s: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:82:\"https://weston.ruter.net/2025/07/23/instant-back-forward-navigations-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:36679:\"The new No-cache BFCache plugin enables instant back/forward navigations, particularly while logged in. See demos below for the impact this has on browsing.
\n\n\n\nThe speed of page navigations in WordPress has seen a big boost in 6.8 with the introduction of Speculative Loading. When paired with the original feature plugin, site visitors can experience instant page navigations thanks to its opt-ins for prerendering and “moderate eagerness”. However, WordPress does not enable such instant navigations by default. WordPress core must take a conservative approach since prerendering may cause compatibility problems, like with analytics or ads. There is also a sustainability concern with moderate prerendering since a user may momentarily hover over a link but not intend to follow it at all; this results in an unused prerender, which can waste a user’s bandwidth (and CPU to a limited extent) as well as increase the load on the web server (which can be problematic on shared hosts without page caching). Furthermore, even when prerendering is enabled, not all visitors may be able to experience instant page loads because:
\n\n\n\nNevertheless, there is a much older web platform technology that enables “prerendering” and which is supported in all browsers: the back/forward cache (bfcache). This instant page navigation involves no network traffic and no CPU load. Previously visited pages are stored in memory as a snapshot with their entire state so that they can be restored instantly. Navigating to pages stored in bfcache is as fast as switching open browser tabs.
\n\n\n\nBack/forward history navigations are very common, as according to the web.dev article on bfcache:
\n\n\n\n\n\n\n\n\nChrome usage data shows that 1 in 10 navigations on desktop and 1 in 5 on mobile are either back or forward. With bfcache enabled, browsers could eliminate the data transfer and time spent loading for billions of web pages every single day!
\n
Also learn more via the following video:
\n\n\n\nWhile Speculative Loading enables prerendering, bfcache involves “previous-rendering”.
\n\n\n\nThe good news is that 84% of WordPress origins in HTTP Archive are already bfcache-eligible (based on this query from Gilberto Cocchi). However, the most frequent user of your site may still not be able to experience instant page navigations via bfcache: you! While browsing around the WP Admin and navigating the frontend of your site, the pages most likely aren’t eligible for bfcache due to various blocking reasons. This sluggish experience extends not only to administrators but also to users of sites which require authentication, including e-commerce (e.g. WooCommerce), social (e.g. BuddyPress), and any membership sites. The 84% metric above doesn’t take into account these types of WordPress sites since HTTP Archive exclusively crawls public URLs without authentication. Users browsing WordPress sites on shared hosts or when on a slow connection will be especially frustrated by slow back/forward navigations. Enabling instant back/forward navigations will not only make your users happier (especially you), but it can also improve your CWV passing rate in CrUX.
\n\n\n\nI’ve been on a mission to bring back bfcache (or rather to bring it forward).
\n\n\n\nBefore going further, I wanted to call out a potentially negative consequence of navigating cached pages. While instant back/forward navigations can provide a big performance boost to the user experience, they can also be a source of confusion when navigating to a cached page with stale content.
\n\n\n\nConsider the case of an e-commerce site, where a user is on the shopping cart page. From there, they click a link to a related product, and from that product page they add it to the cart dynamically (e.g. via Ajax). At this point, if they hit the back button to return to the cart page and the cart is restored from a page cache, they may not see the newly added product in the cart. A user can simply reload the page to fix this, but this can also be handled automatically.
\n\n\n\nAs described in the “Update stale or sensitive data after bfcache restore” section of the web.dev post, the pageshow
event with the persisted
property (further discussed below) indicates when a page was restored from bfcache. This event can be used to update the DOM with the latest shopping cart details. In fact, WooCommerce already implements this for its cart:
const refreshCachedCartData = ( event: PageTransitionEvent ): void => {\n if ( event?.persisted || getNavigationType() === \'back_forward\' ) {\n dispatch( cartStore ).invalidateResolutionForStore();\n }\n};\n/* ... */\nwindow.addEventListener( \'pageshow\', refreshCachedCartData );
\n\n\nSimply searching a plugin’s codebase for “pageshow” (e.g. in Woo) should indicate whether bfcache navigations are accounted for.
\n\n\n\nNote also that stale content is also an issue we’ve faced with Speculative Loading, especially when using non-conservative eagerness.
\n\n\n\nMy bfcache work began two years ago when I started collaborating on #55491 to eliminate the use of the deprecated unload
event handler in WordPress core. Not only does this event fire unreliably, but it also has the side effect of making a page ineligible for bfcache via the “unload-listener” blocking reason. I had queried HTTP Archive myself at the time, and I found it to be the second most common blocking reason. So in r56809 we eliminated all uses of unload
, including from:
However, even with the use of unload
eliminated, I was confused why I wasn’t finding pages to be eligible for bfcache in my testing. (The removal of unload
in core likely didn’t make a dent in bfcache eligibility in HTTP Archive since only 0.25% of unauthenticated pages had the Heartbeat API present.) It turns out that several weeks before I started working on this, a commit had landed which intentionally broke browser page caching (both bfcache and HTTP cache): the no-store
directive was added to the Cache-Control
response header for logged-in users. (Specifically, this was added to the wp_get_nocache_headers()
function.) This introduced the “response-cache-control-no-store” bfcache blocking reason, which was actually the most common reason for ineligibility, just above unload
in my HTTP Archive query. The reason for adding this is found in #21938 which proposed adding the no-store
directive in order to explicitly disable caching so that authenticated pages do not get stored in the browser cache. This was followed up with #61942 to also send no-store
on the frontend while a user is logged in. The rationale for this is rooted in privacy, per the commit message:
\n\n\n\n\nThe intention behind this change is to prevent sensitive data in responses for logged in users being cached and available to others, for example via the browser history after the user logs out.
\n
Consider an administrator who is logged in to WordPress on a shared computer and is working on something sensitive, like managing API keys on an admin screen. A malicious person could navigate back to that admin screen via the back button after the user had logged out. Nevertheless, the “bad guy” will need to act fast because a browser won’t store cached pages indefinitely; Chrome, for example, holds onto pages in bfcache for 10 minutes. (Tip: When using a shared computer, always exit the browser after logging out of all sites when ending work.) So while no-store
here does improve privacy, it does so at the expense of the user experience by degrading the performance of back/forward navigations. Even when pages aren’t eligible for bfcache, removing no-store
still improves back/forward navigation performance since pages can be served from the browser’s HTTP cache (although the DOM has to be re-built and scripts have to be re-executed).
Surely there must be a way to preserve privacy and promote performance together.
\n\n\n\nIt’s important to note that the no-store
directive not only prevents pages from being cached by the browser, but it also preserves privacy by preventing proxies from caching pages, per MDN:
\n\n\n\n\nThe
\nno-store
response directive indicates that any caches of any kind (private or shared) should not store this response.
Keeping authenticated pages out of page caches prevents embarrassing scenarios like serving a user the shopping cart page for another user. Nevertheless, there is a more tailored Cache-Control
mechanism for this purpose: the private
directive. Again, per MDN:
\n\n\n\n\nThe private response directive indicates that the response can be stored only in a private cache (e.g., local caches in browsers). ¶ You should add the private directive for user-personalized content, especially for responses received after login and for sessions managed via cookies. ¶ If you forget to add private to a response with personalized content, then that response can be stored in a shared cache and end up being reused for multiple users, which can cause personal information to leak.
\n
This is what was originally requested in #57627, but both private
and no-store
were added together, with the commit message reasoning:
\n\n\n\n\nThe
\nprivate
directive complements theno-store
directive by specifying that the response contains private information that should not be stored in a public cache. Some proxy caches may ignore theno-store
directive but respect theprivate
directive, thus it is included.
So how can the private
directive be retained for proxies, while removing the no-store
directive so that a user can benefit from browser caching but not at the expense of privacy?
In order to omit the no-store
directive and enable instant back/forward navigations while preserving privacy, a way is needed to evict pages from the browser cache when a user logs out. In my research, there are three mechanisms to do this, with various degrees of browser support.
Clear-Site-Data
HeaderThe most straightforward mechanism to invalidate pages from bfcache would at first seem to be the Clear-Site-Data
HTTP response header. This is supposedly Baseline 2023 Newly Available, but there is an asterisk: “Some parts of this feature may have varying levels of support.” Per MDN, this header “sends a signal to the client that it should remove all browsing data of certain types (cookies, storage, cache) associated with the requesting website.” In fact, the cache
directive for this header seems to be exactly what is needed, as it even explicitly calls out bfcache:
\n\n\n\n\nThe server signals that the client should remove locally cached data (the browser cache, see HTTP caching) for the origin of the response URL. Depending on the browser, this might also clear out things like pre-rendered pages, backwards-forwards cache, script caches, WebGL shader caches, or address bar suggestions.
\n
However, note the word “might”. In my testing, sending this header does currently evict pages from bfcache in Chrome. But, there is an open spec question for whether Clear-Site-Data should clear bfcache; it mentions dropping the cache
directive entirely, and it suggests that a different executionContexts
directive may be more appropriate (but its browser support is even worse and it may be dropped from the spec). Firefox dropped support for the cache
directive but then restored it, although in testing it seems Firefox only evicts pages from the HTTP cache and not from bfcache. Finally, Safari doesn’t seem to evict pages from either the HTTP cache or bfcache when this header is sent.
When/if browser support for this is improved, implementing eviction of pages from browser caches could be as simple as:
\n\n\nadd_action(\n \'clear_auth_cookie\',\n function () {\n header( \'Clear-Site-Data: \"cache\"\' );\n }\n);
\n\n\nUltimately, while this header seems to be tailor-made for evicting pages from browser caches, it cannot be relied on since it is clearly not widely available in Baseline, and not even “newly available” either. There is also a Chromium bug (40233601) where sending this header can greatly delay page response times, possibly causing a logout link to take half a minute to respond. The final mark against Clear-Site-Data
is that the header requires a secure context (HTTPS), so the WordPress sites still on HTTP could not evict pages from browser caches using this header (although privacy could be the last of their concerns at this point).
So to preserve privacy, another browser page cache invalidation method is currently needed.
\n\n\n\nGoing back to the aforementioned bfcache blocking reasons, one of them is “broadcastchannel-message”:
\n\n\n\n\n\n\n\n\nWhile the page was stored in back/forward cache, a BroadcastChannel connection on the page received a message to trigger a message event.
\n
I went down a rabbit hole with this one, thinking I could leverage this blocking reason as a bfcache eviction mechanism. In my discarded implementation, all authenticated pages include a script which listens to a broadcast channel such as “auth_change”. Then, to evict authenticated pages from bfcache upon a successful logout (or logging in as another user), a script can be included on the page which simply broadcasts an arbitrary message to this same “auth_change” broadcast channel. This causes the eviction of any authenticated pages in bfcache which are listening to messages from this broadcast channel.
\n\n\n\nI was seeing very promising results with this approach, where pages were being successfully evicted from bfcache in Chromium (Chrome/Edge) and Firefox. Nevertheless, eviction was not happening in Safari, which apparently has not yet implemented this blocking reason. However, this approach fell apart once I closed DevTools.
\n\n\n\nNormally when DevTools is open I have “Disable cache” checked in the Network panel. This disables the HTTP cache, but not the bfcache. What I would see then is if I navigated around the WP Admin and then logged out in a second tab, hitting the back button in the first tab would immediately take me to the login screen. This is exactly what I wanted. However, once I closed DevTools, I started seeing pages served from the browser’s HTTP cache when navigating back/forward. Because the no-store
directive is removed, this means the browser may actually serve pages from HTTP cache when navigating back/forward, even when the Cache-Control
header has no-cache
, must-revalidate
, and max-age=0
. And here, when the user logged out, they shouldn’t be served from either HTTP cache or bfcache to preserve privacy. So this was not a viable approach in the end.
Ultimately, the most reliable solution I’ve found to invalidate pages from both bfcache and the HTTP cache is to do so just-in-time with JavaScript: When a page is restored from a browser cache and it is determined to be stale, the page contents are wiped and the page is reloaded. This approach is also referenced in the aforementioned “Update stale or sensitive data after bfcache restore” section on web.dev, although I’m accounting for pages not only restored from bfcache but also the HTTP cache.
\n\n\n\nMy implementation involves the creation of a new session token when the user authenticates. This session token is served in the HTML with each authenticated page, and it is also set as a wordpress_bfcache_session_{COOKIEHASH}
cookie which can be read by JavaScript. When a user logs out, this session token cookie is cleared. Whenever a page is loaded, the session token in the HTML is compared with the current session token in the cookie. When they don’t match, then the page is invalidated. If a page is served from bfcache, then the pageshow
event (with persisted
true) is used to do this check; if a page is served from the HTTP cache, then the check is done when the script module is executed. If the user had logged out, then reloading the page will take them to the login screen which, after authenticating, will redirect them back to the page they had been on.
As this page cache invalidation mechanism depends on JavaScript, scripting must be enabled to be eligible to omit the no-store
directive from the Cache-Control
header. This JavaScript detection can be done when the user submits the login form.
This implementation has been made available in a new plugin: No-cache BFCache. It is available on WordPress.org and on GitHub. This is a feature plugin to implement #63636 in WordPress core.
\n\n\n\nIn the following demos, I have Slow 4G network emulation enabled along with CPU throttling. This is in order to better simulate what an average user may experience when navigating, such as on a mid-range device potentially with a WordPress site on a shared host.
\n\n\n\nAfter navigating from the Dashboard to the posts list table and then opening a post to edit, you can see the difference in speed navigating back and forth through the browser history:
\n\n\n\nHere you can see me draft a message in a BuddyPress activity update. Then I navigate to another URL, and then I go back and forward:
\n\n\n\nWooCommerce has been serving pages with no-store
even for unauthenticated users on its Cart, Checkout, and Account pages. This slowed down navigating a store, even though Woo already implements support for ensuring a cart is up-to-date via the pageshow
event, as mentioned above. The lack of bfcache means not only that navigating back to the cart is much slower than it needs to be, but there can also be data loss, for example an entered coupon but accidentally not applied. In PR #58445 the sending of no-store
was removed. This is slated to be part of v10.1. See before/after demo videos.
Similarly, in Jetpack certain admin screens are sending no-store
which slow down back/forward navigations. In Jetpack 14.9, PR #44322 removes this and greatly speeds up navigating to/from Jetpack admin screens, as seen in the demo videos.
Sometimes the instantaneous navigations enabled by bfcache (and prerendering in Speculative Loading) can be a bit jarring, since pages load faster than expected. So the No-cache BFCache pairs well with the View Transitions plugin which now features an Admin View Transitions opt-in. This helps smooth the overall experience.
\n\n\n\nSpecial thanks to Kinsta for sponsoring part of my time contributing to WordPress while I’ve been between full time roles. I also discussed this bfcache project in my “From Cassette Tapes to Core Commits: Weston Ruter’s WordPress Journey” interview with Roger Williams last week.
\n\n\n\nWhere I’ve shared this, if you want to boost:
\n\n\n\n \n\n\n\n\nThe post Instant Back/Forward Navigations in WordPress appeared first on 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:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 23 Jul 2025 07:51:21 +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: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:82:\"Jonathan Desrosiers: Implementing AI in Open Source Without Losing the Human Touch\";s: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:37:\"https://jonathandesrosiers.com?p=6434\";s: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:101:\"https://jonathandesrosiers.com/2025/07/implementing-ai-in-open-source-without-losing-the-human-touch/\";s: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:14023:\"AI is reshaping how we interact with technology and with each other. In large, collaborative Open Source communities like WordPress, the shift towards AI is exciting, but it brings unique challenges when applied across a global contributor base.
\n\n\n\nThere are extreme stances on both sides of the argument. On one side: “AI everything.” On the other: “AI has no place here.” I am somewhere in the middle. Watching. Listening. Experimenting.
\n\n\n\nI spend a lot of time thinking about contributor workflows and triage. This post is a reflection on how we might integrate AI into those areas in thoughtful ways, without losing the human qualities that make Open Source great.
\n\n\n\nAutomation is not new. WordPress has embraced automation in many forms over the years: build scripts, linting tools, unit testing, continuous integration workflows, and more. AI is simply another form of automation. It only does what we configure it to do. We haven’t reached any kind of singularity just yet.
\n\n\n\nBut with great power comes great responsibility. Just because we can doesn’t mean we should. Every proposed use of AI should be measured against our core values: putting the users first, backwards compatibility, democratizing publishing, and making WordPress welcoming to contributors of all skill levels.
\n\n\n\nBefore we introduce AI into the community, we need to answer one critical question: What must be human? If we first identify those things and declare them sacred, we can then begin to explore how to best surround and support them with AI-related tools.
\n\n\n\nRelated to that is another important question: What do people expect to be human? And where do those expectations align or conflict with perception, or the tasks that actually make us more productive?
\n\n\n\nFrom personal experience, I hate when I’m forced to interact with AI or a chat bot when I was instead expecting (or hoping for) a human. Rarely am I surprised in a good way. More often I’m frustrated and disappointed by limitations and rigid structure. Expectations matter.
\n\n\n\nThe right approach could be to let each contributor configure the level of AI support they want to meet their needs and expectations.
\n\n\n\nSome common-sense boundaries might include the following:
\n\n\n\nCreating a ticket in a large project takes courage. A human response is a sign of respect and gratitude. Every reporter is owed at least two human responses. That human interaction sets the tone, builds trust, and encourages continued participation. Tactfully sprinkling AI in the middle is acceptable.
\n\n\n\nVerifying a patch, helping adhere to coding standards, providing suggestions for improvement, or flagging potential issues based on past commit activity are all great opportunities to use AI. But using AI to actually make decisions becomes quite risky.
\n\n\n\nI think it’s safe to say that the overwhelming majority of contributors expect final decisions to be made by humans. However, AI could support the evaluation of ideas by identifying possible consequences, providing historical context, fact-checking, and validating rationale.
\n\n\n\nThere could also be an option to request deeper AI insight using a keyword, like needs-ai-feedback
, when necessary.
Global collaboration is a strength of Open Source, but it also introduces communication challenges. Language barriers, social norms, and tone differences can unintentionally create friction. AI has the potential to help us bridge those gaps. It can assist with translating intent, softening language, and suggesting more inclusive phrasing. By helping contributors express themselves clearly and interpret others more generously, AI can promote empathy and reduce misunderstandings.
\n\n\n\nWhile there are localized support resources for the WordPress project, it’s generally expected that when contributing you are doing so in English. But what if AI were used to automatically translate any message, allowing someone to contribute in their native tongue? How many more contributors could we activated with something like this?
\n\n\n\nWhen used thoughtfully, AI can enhance human conversations across cultures rather than replace them.
\n\n\n\nAI is great for handling beginner-leaning tasks. So how can we use AI to level up contributors that are just getting involved?
\n\n\n\nThis is also tricky because Open Source projects need contributors of all levels to ensure a healthy pipeline. We don’t want to replace them since the novice contributors of today are potentially future maintainers and leaders. Instead, we should focus on how to support and empower them.
\n\n\n\nAI could assist new contributors in a number of ways: explaining the history behind a change, suggesting further reading, answering questions, and setting expectations by describing what usually happens next for similar tickets.
\n\n\n\nThe number one thing I hear from new contributors is that it’s too hard to find something to do. That’s ironic, given how much work there is. Unfortunately, most of it just isn’t easy to find.
\n\n\n\nWith the right prompts, AI could help new contributors by doing things like:
\n\n\n\nThese types of interaction could help people get started and build confidence more quickly.
\n\n\n\nAnother fun idea: What if we trained AI bots in the style of long-time contributors? That kind of tool could preserve institutional knowledge while making expert guidance more accessible.
\n\n\n\nMany have joked before: “If only we could clone Sergey.” Maybe AI makes the kind of mentorship our most prolific contributors provide more scalable. With well-documented public contributions, we could build agents trained on a contributor’s feedback patterns (with clear disclaimers that they are approximations, not endorsements, of course).
\n\n\n\nIt could also be component-specific. Perhaps there’s a Jonathan bot that responds to feedback requests on Build/Test Tool tickets. Or perhaps a Jorbin bot that offers a clever pun before sharing deep historical context. These bots wouldn’t replace the people behind them; they could help scale their impact and preserve bandwidth. Of course, we’d need community agreement, ethical safeguards, and consent before simulating the voice of any individual contributor.
\n\n\n\nCross-team collaboration and documentation could benefit greatly from AI. But AI is only as good as the data it’s trained on. That makes clear, consistent documentation essential, not just helpful.
\n\n\n\nFor AI to be successfully implemented, our processes, workflows, and expectations all need to be clearly documented. Now is the time to take stock of our processes, standards, and documentation gaps. This includes teams like Performance, Accessibility, Internationalization, Design, and AI itself.
\n\n\n\nThere are already areas where automation could be introduced thoughtfully. Trac, for example, uses a set of action and status keywords that are excellent candidates for AI-assisted workflows. A keyword like fixed-major
could automatically trigger a pull request backport. Similarly, AI could suggest keywords, help verify whether a keyword is appropriate, or identify when something has been overlooked. But the documentation around these keywords is basic at best.
Another promising area is summarizing complex or repetitive concepts. AI excels at distilling large volumes of discussion and activity into summaries, tutorials, or templates. This could be especially useful for the Learn team, where AI might monitor contributor activity and auto-draft course outlines or video scripts for tasks that are frequently repeated.
\n\n\n\nCreating this content can take a considerable amount of time, and contributors who perform these tasks often don’t have the bandwidth to document them as well.
\n\n\n\nAI holds enormous potential to make Open Source more welcoming, efficient, and inclusive. But that’s only possible if we use it with intention. We should approach AI the same way we approach any other major change to the project. It should be evaluated like everything else: carefully, collaboratively, and with the long-term health of the community in mind.
\n\n\n\nHow do we avoid creating more work for our future selves?
\n\n\n\nLet’s not just ask what AI can do. Let’s ask what it should do, what it should never replace, and how we can answer those questions together as humans.
\n\n\n\nFeatured image credit: CC0 licensed photo by Jennifer Bourn from the WordPress Photo Directory.
\nThe post Implementing AI in Open Source Without Losing the Human Touch appeared first on 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:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 22 Jul 2025 18:05:39 +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: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:56:\"Tammie Lister: Optimizing triage with AI starting points\";s: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=2398\";s: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:69:\"https://binatethoughts.com/optimizing-triage-with-ai-starting-points/\";s: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:7860:\"Back in June, I wrote about how triage and reviews in WordPress could be optimized with the help of AI. Since then, discussions have taken place, and last week, James LePage released the Trac MCP Server, which is now capable of interacting with Claude and ChatGPT. A demo of the MCP server is available here. With this in mind, I would like to share my perspective on how this can be applied now.
\n\n\n\nBefore I dive in, it’s worth noting that this isn’t a problem that can be solved by one person or one view. It also doesn’t just solve looking at one tool or Trac, GitHub alone. It happens during discussions, when multiple people think about this and then explorations take place. It does, however, need to start, and we can do that without disrupting our existing flows. AI can empower us, and tools like this can improve and boost our flows today.
\n\n\n\n\n\n\n\n\nMCP Servers: Lightweight programs that each expose specific capabilities through the standardized Model Context Protocol
\n\n\n\n\n
WordPress has thousands of open tickets spanning many years. Humans are not as good at pattern matching as AI. We do, however, pattern match, and we work well when they are brought to our attention. Whilst closing all tickets via automation would be a friction point, using AI to support, guide and surface what should be worked on makes a lot of sense. Traditional triage is manual, often even though we can use the best reports, which are not as scalable as we would like.
\n\n\n\nThe current reporting tools in Trac are limited to the interface. They are bound by query construction and are not often created using natural language, so their formation is disjointed and frequently problematic for many to access.
\n\n\n\nThis is where tools like the Trac MCP Server can be beneficial. For example, Claude allows you to prompt to get an output. If we think of these as ‘reports’ in the loose term, they can be tested in triage sessions.
\n\n\n\nThe Trac MCP Server unlocks the data and could, through Claude or ChatGPT, even surface the project’s health. A key point, though, is not to use it to replicate the tasks that reports do today. It can do more and should do.
\n\n\n\nBuilding up fidelity like this is a process we are all familiar with in engineering. You algorithmic work out something, then you build it, then you automate it. If you utilise AI, you can achieve better results, and we all know this. It’s just tempting to skip to the good part of letting AI hallucinate a prompt sometimes.
\n\n\n\nThrough this MCP server, access is available to all WordPress development history in Trac. Every bug, enhancement, discussion and decision. This goes beyond triage, so worth noting. Imagine you want, for example, context on decisions. You can do that by querying a ticket. I decided to go on a little journey.
\n\n\n\nFor example, consider the following prompt: “What is happening in WordPress development right now?”
\n\n\n\nPerhaps you’d like to delve a bit deeper into: “What types of tickets are sitting open vs. getting fixed?”
\n\n\n\nI then went a little more into things: “Can I predict which tickets need attention?”. I began thinking about a severity classification framework in collaboration with Claude; by doing this, I could create a report that queried. This would give me an action list to compare against the predictions. This is how to level up this type of data.
\n\n\n\nThe key issue to resolve here is figuring out which classification framework to use and how an agreement is reached. It’s all well and suitable for each of us to use a different one that we vibe with, but there needs to be a standard for the project. This is achievable, though, and it starts with using all we know and use daily in triage. Once we have that, we can have a standard to measure by.
\n\n\n\nThis can be used in a variety of applications, from triage to product management and writing posts to providing context for yourself. Having this type of easy, natural access unlocks the hidden history of WordPress development.
\n\n\n\nIf the reports are consistently surfacing correct results, we should add even proposed closings. We only do that once the reports are consistent. An MCP server delivers data, allowing AI to access it, and that’s where the power comes in.
\n\n\n\nThis may not require an interface. At some point, perhaps, but right now, exploring what can be unlocked by prompting is where the true power lies. You can pipe it in and generate something. You can vibe a dashboard (I did for a timebox fun), but that’s a nice-to-have tool, or at least distracts from how useful this can be if the prompting can be refined and data dug into. The more personally I use tools like this, the less I want an interface beyond a prompt, at least to start. I want to work out how they will be helpful.
\n\n\n\nAs with anything freshly baked like this, there are considerations and caveats. Trac is just one place where things happen; GitHub is the other, so we do need a way to see a holistic picture to know the entire state. Other things we likely need are an easier way to query based on users, although the reports in Trac are well-suited for that purpose. We need to be continuously mindful that this is not to replicate or replace those, but go beyond and give us something they don’t, not be bound by the reporting tool’s interface.
\n\n\n\nAccess to this meant I used my Claude account, and while many have this, we need to be considerate that not everyone has access to these tools yet at the paid tiers. That was why seeing ChatGPT support added was great. Overall, though, the barrier to entry is low, and I encourage people to explore and see what they can create.
\n\n\n\nThe future of open source development isn’t just about better code; it’s about better intelligence on how we build that code. We need that access where we work. One pattern I have noticed with this MCP server is how useful it is to have it exist for me. Simply knowing I can prompt like this means I do. There is a strong case to be made for no interface, but reusable prompting at least while we work out agentic approaches to triage.
\n\n\n\nI find myself exploring this data because it is accessible to me. I say that as someone who can create reports in Trac. But, there is something much more human about the way we create prompts. This is also the first week of the Trac MCP server. Let’s see what the next iterations bring and where others take this.
\";s: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, 22 Jul 2025 11:22: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: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: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:80:\"Open Channels FM: The Indonesia WordPress Community Gets Ready for WordCamp Asia\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:33:\"https://openchannels.fm/?p=103551\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:87:\"https://openchannels.fm/the-indonesia-wordpress-community-gets-ready-for-wordcamp-asia/\";s: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:206:\"In the final WordPress Event Talk, the Indonesian community discussed Indonesia\'s readiness to host WordCamp Asia, emphasizing local strengths, challenges, and the need for a phased approach to preparation.\";s: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, 22 Jul 2025 05:56: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: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:87:\"Open Channels FM: The Power (and Profits) of Being a Generalist in WordPress Consulting\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:33:\"https://openchannels.fm/?p=101221\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:92:\"https://openchannels.fm/the-power-and-profits-of-being-a-generalist-in-wordpress-consulting/\";s: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:217:\"Three WordPress veterans argue that generalists are valuable in tech, emphasizing adaptability, effective communication, and problem-solving abilities over narrow specialization for achieving higher consultancy rates.\";s: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, 21 Jul 2025 12:12:53 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:29;a:6:{s:4:\"data\";s:21:\"\n \n \n \n \n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:120:\"Gutenberg Times: AI Building Blocks, WordCamp US, WordPress 6.9 Planning, Block Developer Cookbook—Weekend Edition 334\";s: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=40875\";s: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:126:\"https://gutenbergtimes.com/ai-building-blocks-wordcamp-us-wordpress-6-9-planning-block-developer-cookbook-weekend-edition-334/\";s: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:23102:\"Hi there,
\n\n\n\nIt’s good to be back from vacation! Norway is a great country with a rich history, excellent food, great culture, and huge prices. It is absolutely worth it, though.
\n\n\n\nWhile I was away, some great educational programs came online. I am glad Destiny Kanno published How to Talk About and Support the New WordPress Education Initiatives to catch me and you up on all the fabulous opportunities to help young folks get acquainted with WordPress and learn some life skills, too.
\n\n\n\nFor the first time in three years, I will be back at WordCamp US in Portland, OR, August 26 to 29, 2025. Will you be there? I would love to see you again in person. It’s been too long! Get your ticket now. The organizer started announcing speakers.
\n\n\n\nAnd now back to regular programming. Enjoy the newsletter.
\n\n\n\nYours,
Birgit
WordPress 6.8.2 Maintenance Release came out this week. Release lead Jean Baptist Audras mentioned in his release post that 20 core and 15 block editor fixes were included in this minor release. Update now to benefit from these bug fixes.
\n\n\n\nCore committer Jeffrey Paul posted the WordPress 6.9 Planning Proposal and Call for Volunteers. The deadline to apply for the release squad is July 25th, 2025. Beta 1 is scheduled for October 21, RC 1 for November 11, and the final release date is December 2, 2025.
\n\n\n\nJust doing some quick calculations here: It looks like the upcoming release is going to pack in all the goodies from Gutenberg versions 20.5 to 21.9, assuming we keep up that two-week release schedule.
\n\n\n\nJustin Tadlock published What’s new for Developer (July 2025) and lists phased plugin updates, custom social icons, and more in this summer edition of the monthly WordPress developer roundup.
\n\n\n\nSpeaking of the WordPress Developer Blog, Mary Baum put out a call for writers! If you like writing technical tutorials and sharing your learnings or research with WordPress developers, get the skinny from her post: The Developer Blog needs you!
\n\n\n\nHector Prieto just managed the release of Gutenberg 21.2. It brings further refinements to the interface , Dataviews and continued progress on toolspanel implementation. You can read the full release post with details on what’s new in Gutenberg 21.2? (16 July)
\n\n\n\nJames LePage gives you a run down of the AI Building Blocks for WordPress. Each building block is listed with a brief description and a more detailed overview article linked for further reading.
\n\n\n\nThe plugins will be worked on as canonical/feature plugins to avoid early lock-in in a space that moves really, really fast at the moment. LePage also gives context to how this work overlaps with the initiatives of Gutenberg Phase 3: new admin design, collaborative editing, and the work on revamping the Media Library.
\n\n\n\nIn this week’s live stream, JuanMa Garrido covered each of the building blocks. You can watch the recording on YouTube: Core projects for AI in WordPress
\n\n\n\n\n\n The latest episode is Gutenberg Changelog 119—WordPress 6.8.2 and 6.9, Gutenberg 21.1, 21.2, and 21.3 Releases with Tammie Lister.
If you are listening via Spotify, please leave a comment. If you listen via other podcast apps, please leave a review. It’ll help with the distribution.
\nIn his latest video, Designing with the Columns block, Wes Theron guides you through how to use the columns block to build various layouts to build sites. He covers how to structure and organize your content. He’ll show you how to add, customize, and design layouts with multiple columns—ideal for displaying text, images, and other blocks side by side.
\n\n\n \n\n\nBrian Coords, developer advocate at Woo, announced “WooCommerce 10.0 is here!
\n\n\n\nThe release notes have all the details including screenshots and links.
\n\n\n\nRemote Data Blocks is a WordPress plugin by Automattic’s WordPressVIP team. It lets you fetch and display remote data in Gutenberg using customizable blocks. It’s ideal for flat, consistent data sources like APIs or Google Sheets. You map data to layouts, and the plugin handles fetching, caching, and rendering inside the block editor. Documentation is available on this site. You can test it with Playground.
\n\n\n\nStephen Edde blogged about it: Bring Your Content to Life With Remote Data Blocks. He also invites you to the webinar Launched: The Newest Product Solutions from WordPress VIP on August 21, 2025, at 18:00 UTC
Nathan Wrigley and Dan Maby have just rolled out the beta version of their awesome new Podcaster Plus plugin! It makes building podcast websites easy without any coding. It pulls your RSS feed automatically to show episodes and offers customizable blocks and a responsive player which works well on any device. It’s designed for podcasters and agencies managing multiple shows, focusing on quick setup and flexible layouts within WordPress. Or so the promise. You can sign up for the beta version with your email address.
\n\n\n\nLesley Sim and Ahmed Fouad are the awesome duo behind Newsletter Glue, and guess what? They just sold it! Now, they’ve rolled out their new project, EventKoi, which is a super cool events calendar plugin for WordPress fans. Want to know more about what they’re up to? Check out the sneak peek video and hop on that waitlist!
Marco Almeida from Naked Cat Plugins just published a free plugin called Language Attribute for Container Blocks. Once you install it, you can easily add an lang
HTML attribute to your Group, Columns, and Cover blocks on your site. It helps accessibility tools and browsers figure out the language of different sections on your page. The readme file mentions that it came to pass as a community collaboration out of WordCamp Europe.
Paul Halfpenny announced PersonalizeWP Pro Is Now Completely Free: Choose Your Perfect Personalization Solution. “WordPress personalization just became accessible to everyone.” It also meant as a contribution to help WordPress stay competitive with other platforms that offer personalization out of the box. Halfpenny explains about the two version, PersonalizeWP Lite and Pro, for different use cases. The plugin helps site owners to provide different content depending on user behavior or make it visible under different conditions, depending on user types. while keeping within privacy guidelines.
\n\n\n\nSagar Sharma, from Lubus, just dropped a post titled Embracing What We Preach: Our Journey Migrating to WordPress Block Editor & Full Site Editing. It’s all about their journey moving the agency’s website from the old-school WordPress setup to the new block editor and block theme. Why? To get more flexibility, speed things up, cut down on plugins, and keep the design consistent. You’ll get the scoop on their rebranding, how they rolled out the FSE migration step by step, and how they’re fine-tuning things along the way. Sharma also shares how they empowered non-tech folks to handle content and how this switch seriously leveled up user experience and SEO scores.
\n\n\n\nWhile Lubus works with middle and large clients, Patricia Brun Torre tells a similar story on why she loves the WP block editor, site editor, and the Gutenberg project. She raves about how the WordPress block editor and site editor are super fast, easy to use, work without extra plugins and make teaching clients a breeze. She loves how everything is intuitive, copy-paste just works, and you can design full sites—including headers, footers, and layouts—without touching code.
\n\n\n\nAt WordCamp Krakow, a panel discussion was held around Page Builders. Magdalena Pjoreck, former freelancer and now developer at a hosting company; Raitis Sevelis, owner of WPBakery; and Robert Windisch, owner of Syde, an enterprise agency, all come to the discussion from different angles. The conversation was recorded and is available on WordPressTV.
\n\n\n\nBud Kraus published a new tutorial on how to apply custom styling for WordPress block themes using a child theme. He explains that child themes remain essential for customizing WordPress block themes, allowing safe style overrides and customizations without altering parent theme files. Kraus details how, despite the flexibility of block themes and theme.json, child themes are still crucial for advanced customization in WordPress. He demonstrates creating a child theme for the Twenty Twenty-Five theme, using its own style.css and functions.php to safely override styles, define custom block styles, and set up style variations, ensuring control without modifying parent theme files.
\n\n\n \n\n\nRyan Welcher has been working on his Block Developer Cookbook for a few years. Hundreds of developers worked through examples at workshops at WordCamp Asia and WordCamp Europe. Now he brought it all to YouTube in one big livestream session. The Block Developer Cookbook: Live Stream Edition. You can use it to learn how to build custom WordPress blocks or freshen up on certain aspects of it. The video is full of real-world block development techniques , including custom blocks, variations, transforms, interactivity, and more.
\n\n\n\n\n\nIn this week’s stream, Jonathan Bossenger covered Feature API updates & building a block with Claude Code. He wrote, “This week, I reviewed the latest update to the Feature API and tested it against my course creation flow. After that, I wanted to see how easy it would be to build a block based on existing HTML/CSS and JS, but only using Claude Code in PhpStorm. The results were pretty impressive, but not perfect, so I decided to try coding it myself. However, I soon discovered that it had been so long since I built a block that I’d forgotten how to do it.”
\n\n\n \n\n \n\n\nQuestions? Suggestions? Ideas?
Don’t hesitate to send them via email or
send me a message on WordPress Slack or Twitter @bph.
For questions to be answered on the Gutenberg Changelog,
send them to changelog@gutenbergtimes.com
In my last post, I shared 10 lessons from 10 years of contributing to WordPress Core. If you’re new to open source, I encourage you to review those insights. But today, I want to talk about something different: Even though you hopefully contribute out of passion and goodwill, giving back to an open source project can also give something significant back to you. Some of it my previous post may hint at, but in this post I’d like to look at it more broadly.
\n\n\n\nAs I mentioned in my previous post, contributing to WordPress Core has changed my career, and indirectly even many other aspects of my life, for the better in so many ways. And while my experience is rooted in WordPress Core, the benefits that OSS contributions can have for your professional development largely apply to almost any sizable open source project.
\n\n\n\n\n\n\n\nOne of the most profound advantages of contributing to a popular open source project is the unparalleled experience of working on software with a massive and diverse user base. Imagine a project used by hundreds of thousands, or in WordPress’s case, millions of sites globally. This kind of scale exposes you to a multitude of edge cases, performance considerations, and accessibility challenges that are rarely encountered in smaller, internal projects. Outside of open source projects, this hands-on experience is often only accessible through roles at large tech corporations or highly successful startups with popular products, with complex eligibility requirements. That barrier of entry is wildly different for open source: Established project contributors are typically more welcoming to contributors, as support is almost always needed and appreciated.
\n\n\n\nAn open source project doesn’t demand five years of professional experience, a specific degree, or a list of impressive previous projects. You can simply show up and demonstrate your capabilities through initiative, passion, dedication, understanding, and persistence. As long as you are interested in supporting the project and maintain a curious and kind mindset, you can learn and grow simply by contributing to the project itself.
\n\n\n\nThe experience you gain from working on something large that impacts countless people globally, while distinct from a corporate product, can be immensely beneficial for your general professional development. This experience can even be a significant asset in landing a job at one of those larger tech companies, if that’s something you’re interested in.
\n\n\n\nThe more involved you become in an open source project, especially one relevant to the broader tech industry, the more you start to build a reputation. This reputation could be for being a reliable, efficient, nuanced, or benevolent contributor, or a combination of these traits. You’ll find people who appreciate your work, potentially even individuals you’ve long looked up to. While there might occasionally be disagreements or condescending voices, the positive feedback and support will almost certainly be the majority.
\n\n\n\nAs you consistently show up to contribute and do the work, it can also significantly help you build relationships with peers from whom you can learn, and perhaps even forge lasting friendships. For contractors, it can lead to more interesting gigs, and in some cases, companies might even reach out to you directly rather than you having to pursue them. And, with time, dedication, and a bit of luck, even those bigger job opportunities may find you.
\n\n\n\nLet me share a bit of my own story and how contributing to WordPress has shaped my career. When I first started contributing to WordPress Core in 2015, I battled a strong case of imposter syndrome. It took several months for me to truly grasp that I, too, could make substantial contributions, just like others, all while continuing to learn – after all, everyone has their unique strengths. Eventually, I found myself leading the development of new features that would land directly in WordPress Core, something I couldn’t have imagined when I started. A special shoutout goes to Jeremy Felt, who welcomed me into the WordPress Multisite team and empowered me as a contributor. I also want to thank Sven Wagener for trusting me early on with exciting open source freelancing work.
\n\n\n\nThe contributions I made, coupled with actively participating in community events like WordCamps, meeting new people, and nurturing my curiosity are a huge part of where I am today. Sometimes, I want to say that being a little bold also helped – but then again, as I’m writing this I wonder whether I only thought of some of my actions as bold because I was feeling like an imposter, and maybe those were just little moments where I overcame it.
\n\n\n\nDuring my time as a freelancer, I saw a significant increase in interesting contracts as my reputation as a contributor grew and I became more recognized within the WordPress community. I ended up contracting for some of the largest companies in the ecosystem, and often, these collaborations simply arose from casual conversations at events.
\n\n\n\nI always loved being a freelancer. Something that only some friends know about me is that I used to say, “I’m never going to quit freelancing, except maybe for Google.” To be clear, I mostly said that to emphasize how much I enjoyed freelancing. While I always thought working for Google would be incredible, I never in my wildest dreams believed it would become a realistic option for me.
\n\n\n\nHowever, what transpired in 2018 completely blew me away. At that time, I had read a blog post by a Googler named Alberto Medina, announcing that Google was hiring for a new team focused on the WordPress ecosystem. Even though I had already achieved certain things as a contributor that made me proud, I found myself battling imposter syndrome again. “Sure, things are going well, but Google? Don’t these companies hire the most talented engineers in the world? That’s not me.” This was early 2018. Fast forward to WordCamp Europe 2018, I was exploring the Google booth when my friend Weston Ruter introduced me to Alberto Medina – yes, the same Alberto who worked at Google and wrote the post I mentioned earlier. One of the first things that emerged in our conversation was that Alberto already knew who I was. OMG! I kept my cool externally, but I was completely taken aback! Over the course of the WordCamp, we continued our conversations about the opportunity at Google. Eventually, I applied for a role on the new team. With Alberto’s continued support throughout the application process and a lot of preparation on my part, I went through the interviews and ultimately received a job offer. And to make the deal even sweeter, I learned I would be working alongside a few other WordPress folks whom I already considered friends. This is how I started working for Google, and I’m still here today.
\n\n\n\nPlease forgive the detour, but this is my personal prime example of how contributing to open source, specifically WordPress, significantly propelled my professional career. Selfishly, I also love to reminisce about this exciting time – it completely turned my life upside down, in so many positive ways.
\n\n\n\nContributing to open source can be a huge lever for your career. If you haven’t yet worked on the massively impactful projects that many job openings seem to demand, or if you’re fresh out of college, I strongly encourage you to explore open source. Heck, take some time to look into it even if you’re in college. For me, that was a time where I had less financial responsibility, which allowed me to put in several hours contributing to WordPress Core each week, alongside the freelancing I was doing at the same time.
\n\n\n\nBut at the end of the day, don’t contribute to OSS solely for professional gain, but do it for your passion. Find an open source project that genuinely interests you and that you can get excited about. That could be any relatively popular open source project – or it could be WordPress. I would certainly love to welcome you as a WordPress Core contributor.
\nThe post How Open Source Contributions Elevate Your Professional Journey appeared first on felix-arntz.me.
\";s: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, 17 Jul 2025 16:27:03 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"Felix\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i: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:66:\"Open Channels FM: Democratizing Publishing Beyond Business Content\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:33:\"https://openchannels.fm/?p=100681\";s: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:73:\"https://openchannels.fm/democratizing-publishing-beyond-business-content/\";s: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:183:\"The future of online publishing is all about personal expression, not just business stuff. WordPress needs to embrace short videos and everyday moments to stay relevant and inclusive.\";s: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, 17 Jul 2025 11:13:03 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"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:69:\"Akismet: Version 5.5 of the Akismet WordPress plugin is available now\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:28:\"http://akismet.com/?p=284578\";s: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:37:\"https://akismet.com/blog/akismet-5-5/\";s: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:1133:\"Version 5.5 of the Akismet plugin for WordPress is now available. This update contains the following improvements:
\n\n\nTo upgrade, visit the Updates page of your WordPress dashboard and follow the instructions. If you need to download the plugin zip file directly, links to all versions are available in the WordPress plugins directory.
\";s: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, 16 Jul 2025 18:25: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:17:\"Christopher Finke\";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:78:\"WPTavern: #177 – Charlotte Bax on Reducing Your Website’s Carbon Footprint\";s: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=197651\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:89:\"https://wptavern.com/podcast/177-charlotte-bax-on-reducing-your-websites-carbon-footprint\";s: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:46635:\"[00:00:19] Nathan Wrigley: Welcome to the Jukebox Podcast from WP Tavern. My name is Nathan Wrigley.
\n\n\n\nJukebox is a podcast which is dedicated to all things WordPress, the people, the events, the plugins, the blocks, the themes, and in this case, reducing your WordPress website’s carbon footprint.
\n\n\n\nIf you’d like to subscribe to the podcast, you can do that by searching for WP Tavern in your podcast player of choice, or by going to wptavern.com/feed/podcast. And you can copy that URL into most podcast players.
\n\n\n\nIf you have a topic that you’d like us to feature on the podcast, I’m keen to hear from you and hopefully get you, or your idea, featured on the show. Head to wptavern.com/contact/jukebox, and use the form there.
\n\n\n\nSo on the podcast today we have Charlotte Bax. Charlotte is a sustainable web designer with a background in both environmentally conscious living and technology. Beginning her journey as a sustainable lifestyle blogger, she soon merged her passion for sustainability with her skills in web design, rebranding herself as Digihobbit.
\n\n\n\nFor several years now, Charlotte has been focused on building websites that prioritize low carbon footprints, and she is also the founder of the climate tech startup ENNOR Toolbox for Online Sustainability, which helps measure the CO2 emissions of websites and web applications.
\n\n\n\nWhen we made this recording, Charlotte had just finished presenting at WordCamp Europe on the topic of how to make your website more sustainable, and her presentation is the topic of the podcast today.
\n\n\n\nWe talk about digital environmental impact, the hidden pollution our websites create through their energy use and infrastructure. Charlotte explains some striking facts about the carbon footprint of ICT, noting that if the internet were a country, it would be the seventh largest polluter globally.
\n\n\n\nShe shares a wide array of practical steps for web professionals to reduce the environmental impact of their sites. You’ll hear about the benefits of green web hosting, using modern image formats like WebP and AVIF, optimizing architecture and UX to minimize unnecessary page loads, the crucial role of caching, as well as some new innovations like grid aware websites, which adapt themselves based on the renewable energy mix available to users in real time.
\n\n\n\nThe conversation also touches on Charlotte’s involvement in WordPress sustainability initiatives. The importance of multiplying small improvements across high traffic sites, and the moral imperative web creators have to help shape a greener internet.
\n\n\n\nIf you’ve ever wondered how digital choices impact the planet, and what steps you can take to help, this episode is for you.
\n\n\n\nIf you’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’ll find all the other episodes as well.
\n\n\n\nAnd so. Without further delay, I bring you Charlotte Bax.
\n\n\n\nI am joined on the podcast by Charlotte Bax. Hello Charlotte.
\n\n\n\n[00:03:29] Charlotte Bax: Hello Nathan, and thank you for having me.
\n\n\n\n[00:03:31] Nathan Wrigley: You are very welcome. Charlotte and I are having a conversation at WordCamp Europe. We’re in Basel, and we’re going to be talking today about the environmental impact of your website, whether that be WordPress, or any other platform that you might be using.
\n\n\n\nIn order to establish your credential, Charlotte, would you just for maybe a minute or something like that, just tell us a little bit about you, your relationship with technology. And I guess if you lean into your sustainability credentials, what you’ve been doing in the past, that would be helpful too.
\n\n\n\n[00:03:59] Charlotte Bax: Yes. Well, I started out as a sustainable lifestyle blogger, really, like in 2000 and something. And I didn’t really feel like I was at the right place in my work at that time. I was doing a job at the service center for ICT. It was really overwhelming. So I decided to make my hobby into my work and I chose the web design side. And after only a year, I think I stumbled upon a sustainable website challenge by some Dutch guys, that I got to know them. And that was the missing link between my sustainable lifestyle and my work as a web designer.
\n\n\n\nSo I really went down that digital sustainability rabbit hole, and I sort of rebranded myself as a sustainable web designer in the name of Digihobbit. Well, so I’m building sustainable websites for quite some years now.
\n\n\n\nTwo years ago, I really wanted a tool to make estimating the CO2 emissions of websites easier because, for example, Website Carbon by Whole Grain Digital, I love that tool. And there’s also some other tools I really loved, but you have to copy paste every single page of a website in there.
\n\n\n\nSo I wanted a tool to do that in bulk. So I asked a friend to build me a tool to do that really easily, and he did. And that sort of escalated into a full blown startup. So since August, 2024, I also have a climate tech startup called ENNOR Toolbox for Online Sustainability, in which we build software to measure the CO2 emissions of websites and web applications.
\n\n\n\n[00:05:37] Nathan Wrigley: Wow, that’s fascinating. You’re the first person that I’ve spoken to who’s actually finished their talk at WordCamp Europe. Your presentation was, I’m sure you know, how to make your website more sustainable. So very quickly, how did it go?
\n\n\n\n[00:05:49] Charlotte Bax: It was amazing. Like the room was so full. It was such an amazing experience, and it went so good. And yeah, I’m just still riding that high.
\n\n\n\n[00:05:59] Nathan Wrigley: Do you feel, I mean, obviously there’s tons of topics on here and there’s many, many tracks, and the fact that you filled yours up, do you sense that sustainability is a thing which web developers are latching onto, that they find important, that they’re curious about?
\n\n\n\n[00:06:14] Charlotte Bax: Yes, I think so. Especially the curiosity part. I’ve done presentations in the Netherlands also for some government entities, and there were some senior developers. They talked to me afterwards and they said like, I have never thought of this before. Just, yeah, like spreading that awareness, planting those seeds. I think really nice to do that.
\n\n\n\n[00:06:34] Nathan Wrigley: Yeah, I think that it’s a topic which many people will not even have given any thought to. Because, we were talking just before we hit record about how clean and sterile our technology feels in our lives. You know, I’m staring at a laptop, and I’ve got a microphone in my hand, I’ve got a phone over to my side here, and none of it emits anything by itself.
\n\n\n\nYou know, it’s clean. If I hold it in my hand, I’m not going to breathe any toxic fumes in from it. And yet all of the technology that we’re surrounded by in some way, shape, or form will have been produced, there’ll be some pollution that’s associated with that. But also particularly around ICT, the mere fact that it’s switched on and is consuming electricity, well, that electricity has to be generated in some way.
\n\n\n\nAnd you put a really interesting statistic on the blurb for your presentation, which says that 8 to 10% of all energy, and I think I’m saying that right, yeah, all energy that’s produced globally, 8 to 10% is related to ICT. I would never have suspected it because it’s completely divorced. I switch my computer on, there’s no pollution in my house because of that. It’s happening elsewhere.
\n\n\n\nSo how does ICT rate? If it’s 8 to 10%, where does it sort of slot into all the other industries?
\n\n\n\n[00:07:57] Charlotte Bax: Well, it’s more than aviation. There’s this book, Sustainable Web Design by Tom Greenwood. There is this graph somewhere, quite in the beginning, that puts the internet, if it were a country, it would be the seventh biggest polluter in the world. So that’s really, really big. And you don’t see it because all the pollution happens elsewhere. Like, you don’t have a data center, or an energy plant, in your backyard. It’s all hidden away. Or there’s those big boxes next to the highway, you know? You don’t see it. And in Dutch we call it far from your bed show. And that is a really nice comparison I think.
\n\n\n\n[00:08:36] Nathan Wrigley: Yeah, I think if I was to ask you to stand behind my car and I rev the engine, so I use the car, you are going to be really reluctant to stand behind my car because you know that out of the back of the car is coming a lot of terrible gases that you don’t wish to consume. And yet my computer, in a remote destination that I am not standing anywhere near, is doing basically the same thing.
\n\n\n\n[00:09:05] Charlotte Bax: More or less.
\n\n\n\n[00:09:06] Nathan Wrigley: Yeah, I mean it may not be the same gases or what have you, but there is a pollution component to that.
\n\n\n\n[00:09:10] Charlotte Bax: Yes, there’s a pollution component indeed.
\n\n\n\n[00:09:11] Nathan Wrigley: But every bit of technology that I own, I sense none of that. And so that’s a really interesting disconnect. And I guess that promotes us, well, not promotes us, I guess it allows us to ignore the problem because we do not see it.
\n\n\n\n[00:09:28] Charlotte Bax: Yes. That is exactly the right wording for that. It allows us to ignore it because we do not see it. It’s not just like there’s this energy usage, for example, data centers and routers and your own devices, of course. But there’s also so much more. There’s this embodied carbon from producing all that hardware. And that’s not just the machines that we see around us, your laptop, my laptop, your phone. It’s also like the data centres, the servers, the wifi box, the routers, satellites, et cetera, cables.
\n\n\n\nProducing electronics is really dirty. It takes up a lot of resources and energy. Data centers, they use up a lot of water for cooling. And at the end of the day, most of those things, they become e-waste, because electronics don’t get recycled that much yet.
\n\n\n\n[00:10:21] Nathan Wrigley: Yeah, I guess given the nature of this podcast, we probably won’t focus on all of the different bits and pieces that are involved in all of that. You know, we can’t talk so much about how a phone ought to be recycled. Well, we could, but we are going to talk about websites.
\n\n\n\nAnd again, the disconnect is so profound. I go to a website, any website, there is no connection in my head between browsing that website and the consequences to the environment. Essentially, in my head, and probably the heads of many people listening to this podcast, it’s entirely benign. I’m doing no harm whatsoever. Of course, on some level, intellectually, if I apply thought to it, of course I know that I am, but it’s way easier for me to ignore that.
\n\n\n\nSo then that leads to the question, what on earth can people like you, like me, like the people listening to this podcast who create websites, what on earth can they do? What are the little things that they can pick out that they can change about their website in order to make them less polluting, more sustainable, whichever term you’d like to use?
\n\n\n\n[00:11:26] Charlotte Bax: Oh boy. I don’t think we have enough time in this podcast to touch on all of that. But in my talk I sort of, yeah, I had a list of certain areas where you could make sustainable choices, and they also arrange really widely. For example, your web hosting, choose a green web host. It makes such a difference. Renewable energy. Not all web hosts are hosting on green energy. And there is this really nice organisation, the Green Web Foundation, they have this database of web hosting providers that are using renewable energy.
\n\n\n\nAnd they have a tool, you can put in your website and see if your website runs on renewables. And if you are a web hosting provider, you can send evidence to the Green Web Foundation that your data centers are running on renewables, so they can add you to that database, which is also very good for your reputation as a web host.
\n\n\n\n[00:12:23] Nathan Wrigley: Right, okay. So as you say the things that you mentioned in your talk, I’ll throw them back at you just so that we’re absolutely certain what we’re talking about.
\n\n\n\nSo every website obviously, well, most of them need some kind of hosting environment. And what you’re saying is go out and be proactive. Look for this badge, this Green Web Foundation badge. They’ve done the hard work, if you like. You can be certain that if there’s a Green Web Foundation sticker on there, there has been an exchange, to and fro, between the host and the Green Web Foundation, and they classify that as sustainable. What does that mean? Does it mean that, like, is it 80% of their energy consumption is renewable or a hundred percent or do you know?
\n\n\n\n[00:12:59] Charlotte Bax: I don’t know that exactly. You should ask Chris Adams. But they’re also, yeah, I learned that also from that book from Tom Greenwood. You can make a difference between certain ways of using renewable energy, such as like actually producing your own renewable energy by having solar panels on the data center, for example.
\n\n\n\nYou can invest in green energy. You can buy it from a green energy supplier.
\n\n\n\nAnd there’s a fourth thing, and it is that you buy certificates from other countries and that, yeah, I think that’s greenwashing.
\n\n\n\nBut as far as I know, they don’t show that yet in the Green Web Foundation database. I have contacted them like months, maybe more than a year ago about it, whether they would do that. And they were open to the idea. I think someone was even working on it. But it just takes a long time because they are not a commercial party of course. They also just run on subsidies and they have just so many resources.
\n\n\n\n[00:14:02] Nathan Wrigley: Okay, so there’s the first piece. There’s one thing that you can do. That’s a really easy concrete thing to do. We all need the hosting. So when you go, go and look and have some trust in the Green Web Foundation’s badge, if you like. You trust that they’ve done the due diligence and that that is in some way superior, in the way that that energy is captured or what have you.
\n\n\n\n[00:14:24] Charlotte Bax: Yes, yes. But I have a little disclaimer. Not all green web hosting providers are in the database yet, and not all of them show the badge. But it’s really easy just to check your own website through the tool on their home page.
\n\n\n\n[00:14:39] Nathan Wrigley: Okay. Thank you. Okay, what was next? What did you have next on your list?
\n\n\n\n[00:14:43] Charlotte Bax: Well, you can make sustainable choices in your architecture and your UX design. Just make it very easy for your visitors to find things on your website, so they don’t have to go here and there to search for stuff and produce lots of unnecessary page views. Because that’s all data traffic and that’s all CO2 emissions. That’s a thing you can do. Just think really good about that website architecture.
\n\n\n\n[00:15:12] Nathan Wrigley: So the idea there is that every time we produce a page, the server at some point is having to do some work. That work requires electricity. If we can cut 10 visits down to 5 visits, there’s an, obviously a 50% reduction in the amount of pages that are loaded. And again, it’s so hard in my head to encapsulate what that is doing because it just, I’m just thinking, okay, i’ve saved time. But obviously, you know, now that we’re having this chat, I’m now beginning to think more, okay, not only am I saving time, I’m actually saving electricity and therefore it’s more sustainable.
\n\n\n\nSo that has a knock on consequence of course, in that nobody wants to go to 10 pages if you could go to five pages anyway. So figuring all that stuff out from the start is a good idea. Okay, lovely. Next one.
\n\n\n\n[00:15:58] Charlotte Bax: Next one is design and content creation. Yeah, what your website looks like. There’s lots of sustainable choices you can make in the assets that are shown on the front end, such as images, video, audio, the fonts that you use, the CSS styling, et cetera. We could do a whole podcast on that alone. So things I talked about previously this morning is scaling your images. Be very picky in your images.
\n\n\n\nAlso sometimes I see websites that have so many pictures on it. I think people are afraid to be boring or something. But use the images that are actually valuable to your content, to tell a story instead of just putting a thousand pictures on there just because. Because images, they tell more than a thousand words, but also images are very, very heavy compared to just plain text.
\n\n\n\n[00:16:52] Nathan Wrigley: So I guess it’s, couple of things there. The first thing is use images when necessary. So that there’s not unnecessary images being loaded. But also I’m imagining that we’re probably trying to lean into newer image formats. So not only reducing the scale of the image so that it’s the correct dimensions and it’s not, you know, this giant image which is being shrunk in the browser, needlessly downloading a four megabyte image that really is like 150 kilobytes.
\n\n\n\n[00:17:19] Charlotte Bax: I saw this like on a government website that I tested and there was this, a really small icon, it was like 36 pixels wide or something. And there was an image like 6,000 by 8,000 pixels loaded for that. And I was, my heart bleeded.
\n\n\n\n[00:17:36] Nathan Wrigley: Yeah, this should have been about 3K and it was probably more in the sort of four or five megabyte territory.
\n\n\n\n[00:17:41] Charlotte Bax: Yes, yes. I don’t know the exact numbers, but terrible.
\n\n\n\n[00:17:44] Nathan Wrigley: But image formats are changing as well, aren’t they? You know, in the past we were, everybody familiar with PNGs and JPEGs and things like that. And now we’ve got things like WebP and AVIF images as well. My understanding is that they are significantly reduced in their scale, with no measurable difference in the way that you can see them. They look basically identical.
\n\n\n\n[00:18:06] Charlotte Bax: Yes, yes. That’s really nice. WebP and AVIF, they are web friendly formats for your images and they are really lightweight. They also, they support transparent background and animation, so they are also really good alternatives to PNG and GIF, not only to JPEG.
\n\n\n\nAnd what I also like is that you can change the image quality when exporting to that format. Just like with JPEG, you can say, I want quality of 90, or image quality of 80% or even less. And when you’re choosing something between 80 and 90%, usually you don’t really see the difference. You can just play around with that on your computer. But it’s significantly reduces the file size.
\n\n\n\n[00:18:53] Nathan Wrigley: Yeah, I was playing around with something the other day and I was converting a JPEG image to a WebP image. And I went to a service, which enabled me to do that, and at 80% I genuinely couldn’t see any, I was really staring hard and I could not see a single pixel that was different.
\n\n\n\nI think, you know, maybe if it was some incredibly detailed picture of some medical procedure or something like that, maybe. But in most cases it’s not necessary. But also if it’s going to represent a tiny icon on the website, upload an image which is a tiny icon in size. Don’t upload the big one and the browser handle that.
\n\n\n\n[00:19:28] Charlotte Bax: Yeah, but also for icons, you can much better choose like a vector image, like SVG, because vector images when done right, I have seen it done wrong, which is terrible, but when done right, they are really lightweight and they are scalable without limits and without any loss of quality. And that’s really suitable for logos, for icons, for certain illustration styles. You can also use SVG really well.
\n\n\n\n[00:19:56] Nathan Wrigley: Yeah, so that’s a really good point. So for what you might call like a bitmap image, you’ve got AVIF and WebP, they seem to be the ones that are out in the front at the moment. And then for things like logos, then some kind of vector based image, like an SVG where essentially it’s data, you know, it’s bezier curves and things like that. So it can really scale up, and it will still look just as good if it’s gigantic.
\n\n\n\nSo definitely listener, if you’re hearing this, go and explore those, it’s well worth it. I would say that WordPress, by default won’t allow you to upload an SVG image. You might need to get a plugin to help you out with that.
\n\n\n\n[00:20:28] Charlotte Bax: My favorite for that is Safe SVG. I just put it on there as soon as I start a new website and then just put all the SVGs on there.
\n\n\n\n[00:20:36] Nathan Wrigley: Yeah, it’s curious. It’s because it’s not truly an image. It’s kind of like a file format and so it potentially could contain some code which might be harmful to your website. But those plugins strip out all of that. That’s my understanding anyway.
\n\n\n\n[00:20:47] Charlotte Bax: Yes. So indeed, if you use plugins like that, you are at less risk of malfunctioning code, not malfunction, maleficent code.
\n\n\n\n[00:20:56] Nathan Wrigley: Yeah, like malware. You know, security problems, things like that.
\n\n\n\n[00:20:59] Charlotte Bax: Yeah, but if you make your SVGs yourself, well, then you have control over that. You know there’s no malware in that, unless you put it there yourself.
\n\n\n\n[00:21:06] Nathan Wrigley: I don’t know if you have an answer to this, but obviously video is really important on the web. You know, certain types of things that people are doing online, maybe not quite so much websites but, you know, things like Instagram and TikTok and things like that, it’s really, really popular.
\n\n\n\nDo you know if there’s any similar thing happening like WebP and AVIF with movie formats? Is there anybody trying to compress those in a way that WebP and AVIF have been?
\n\n\n\n[00:21:29] Charlotte Bax: I haven’t dived into that that much, but I know there is WebM I think. But also, MPEG and or MP4. They are really good compression techniques and as lightweight as you can make it.
\n\n\n\n[00:21:45] Nathan Wrigley: I guess the same rules apply for images as for video though. You don’t needlessly put video on the website. And certainly it’s possible to deploy video in a way that it’s not as environmentally profound. You know, for example, auto play switched off.
\n\n\n\n[00:22:00] Charlotte Bax: I really hate those websites with this automatically playing background video. I must admit, when I started out as a web designer, some of my first clients, they really wanted that, so I did it. But I had an opinion on that and I explained, I didn’t know anything about the sustainability part yet by then, but I explained that it is a big file that gets loaded automatically. It really slows down your website also, so it’s a bad user experience. So I recommend that they didn’t do it, but they really wanted to.
\n\n\n\nBut I really hate how some websites shove like an enormous amount of megabytes down your throat as a visitor by those autoplay background videos.
\n\n\n\n[00:22:43] Nathan Wrigley: Yeah, and also I think there’s a move to make it so that, and I don’t know if the block editor, the video block automatically does this, I could be wrong about that. The idea of having an image placeholder instead of the video itself, because the mere putting the iframe onto the page, there’s some communication between, let’s say YouTube, if you’re embedding something from YouTube. Whereas really, you don’t need to engage YouTube until somebody’s actually clicked the play button. So having some placeholder there, click the button, click the image, and then the video begins to load. I guess there’s something there. That’s a good idea.
\n\n\n\n[00:23:18] Charlotte Bax: I have a trick for that. When you embed a YouTube video or a Vimeo, they do the preload is none thing really good, which is nice, so you don’t shove that many megabytes through someone’s throat. But what YouTube does, and Vimeo also but less, is they put a lot of tracking scripts in that embed.
\n\n\n\nSo what I like to do is, so something I did for one of my latest websites for the Rotterdam Metal Band, Ann My Dice, they have this show reel of their newest songs on top of their homepage. And I put an image thumbnail there. And when you click that, it opens a modal. So the video and all those tracking scripts, they are loaded only when you click on a thumbnail to open the modal. That’s a nice little trick to work around that.
\n\n\n\n[00:24:04] Nathan Wrigley: Yeah, so video and images, that’s a really easy win. There’s loads of things that you can do.
\n\n\n\nThere’s lots of services out there, both on your computer, but online where you can compress the images. And obviously we’ve talked about the different formats and not necessarily loading video.
\n\n\n\nOkay, should we move on? Is there anything else on there?
\n\n\n\n[00:24:21] Charlotte Bax: Yeah, yeah. There is caching of course, which can make a huge difference. WordPress is based on a database. So in theory, every time someone visits a page on your website, the server has to calculate the webpage and then send it over to your visitor.
\n\n\n\nBut if you use, for example, server side caching, you can do that once and send the generated page to all your visitors. So that saves a lot of computing energy server side. But there’s also browser caching, which means that certain assets that you can reuse, for example, your CSS style sheets, and your fonts, you can retain in a browser. So they don’t need to get loaded on every page your visitor goes to.
\n\n\n\n[00:25:06] Nathan Wrigley: There’s so many different ways of tackling this, isn’t there? Whether that’s through your web host or a collection of plugins that you might use. But yeah, caching, the idea being that it’s stored somewhere, kind of ready to go. It’s already been created. Somebody just comes along and if you like, just picks it up.
\n\n\n\nWhereas in the typical WordPress way, there’s this whole crunching of data. There’s all this PHP being rendered in the background. And the database is being called to construct the page. And really, if the page isn’t being changed from minute to minute, there’s no need for all of that. You can just have a cached version. And increasingly, you know, you don’t even have to make that cached version travel across the globe, because you can put it at the edge in different countries and so on and so forth. So there’s a whole load of interesting stuff. But caching enforce that where possible.
\n\n\n\n[00:25:54] Charlotte Bax: If you have a, I always recommend people to look at their target audience for choosing their hosting. For example, I live in the Netherlands and my target audience is mostly Dutch companies and Dutch governments. So it makes sense for me to host my website in the Netherlands. But if your target audience is all over the world, I really recommend using a CDN to distribute all your cached web pages. It makes it more sustainable and it also makes it a lot quicker.
\n\n\n\n[00:26:23] Nathan Wrigley: It’s curious that one, isn’t it? Because in many ways, using a CDN, you are creating a bigger footprint because there’s more, you know, instead of it being cached in one place, it’s now cached in multiple places. So there’s more caching happening. But the people who are absorbing that cache, using that cache, there’s a net benefit there because they have to travel less distance.
\n\n\n\nSo for example, if there’s a cache data center in Sydney, and some Australian user is using that, it doesn’t have to come all the way, for example, to London and then back again. So even though you are storing multiple versions of the cache around the world, the traffic that’s going backwards and forwards from that cache often will make up for that.
\n\n\n\n[00:27:01] Charlotte Bax: Yeah, it’s really dependent on the situation and the size of your target audience because obviously if you only have like one visitor from Australia every month, it’s not worth it. So it’s also sort of, look at your own situation and make choices based on that.
\n\n\n\nI always think about, like sustainability is not something like what you can and cannot do, but I like to view it as more as inspiring people and giving them the tools to actually make conscious choices instead of just doing what the masses do and what is easy.
\n\n\n\n[00:27:37] Nathan Wrigley: Yeah, there’s no destination, is there, probably? It’s more of a journey. You’re kind of trying to do little bits, and chisel away the bits that you can. Okay, so caching is a whole other topic. You can no doubt go down that rabbit hole and spend the rest of your life there.
\n\n\n\n[00:27:49] Charlotte Bax: Yes, yes. If you want to know more about caching, I think Ramon Fincken from Halvar knows more about that.
\n\n\n\n[00:27:56] Nathan Wrigley: Okay, thank you. Okay, so there’s another one we’ve ticked off. Anything else on your list?
\n\n\n\n[00:28:00] Charlotte Bax: Yes. There’s visitor management, because obviously the page weight is not the only factor of a website, but also you have to multiply that with all the page visits to get your total CO2 emissions over time.
\n\n\n\nSo if you have a lot of visitors, and that’s not only the human visitors, but also the bots of course, then that’s a lot of CO2 emissions. And that can be up to hundreds of times more than you actually realise.
\n\n\n\nJoost de Valk had a really great talk about that a few years ago, 2022 at WordCamp Netherlands. I wasn’t there myself, but I have seen a YouTube video and I really, really recommend people checking that out because he can explain that really well.
\n\n\n\n[00:28:44] Nathan Wrigley: So this is to do with the amount of traffic that you are getting.
\n\n\n\n[00:28:47] Charlotte Bax: Yes, yes. The amount of traffic. So page weight times traffic is CO2 emissions basically.
\n\n\n\n[00:28:53] Nathan Wrigley: Okay, interesting.
\n\n\n\n[00:28:54] Charlotte Bax: Yes.
\n\n\n\n[00:28:54] Nathan Wrigley: Okay. Next one.
\n\n\n\n[00:28:56] Charlotte Bax: That’s the last one in my list. And that is sort of the cherry on top. And that is to make your website grid aware. I don’t know if you’re familiar with Fershad Irani. No. He is one of the pioneers in website sustainability. He does a lot of projects for the Green Web Foundation. And currently he is working on grid aware websites toolkits to make your website responsive to the energy mix on the local energy grid from your visitor. And he does that with Cloudflare CDN workers. I hope I explained that right because that’s an area that I’m less familiar with.
\n\n\n\nBut what it does, for example, if your website visitor is in an area where the energy grid is mostly running on fossil fuel energy, then it shows a more minimal experience of your website to the visitor. And when they are in an area where the grid is a big percentage renewable energy, then it shows a more rich experience of your website.
\n\n\n\n[00:30:01] Nathan Wrigley: Gosh, that’s fascinating. So it’s like progressive enhancement, but for sustainability.
\n\n\n\n[00:30:07] Charlotte Bax: Yes.
\n\n\n\n[00:30:07] Nathan Wrigley: So I might see an entirely different page with, let’s say, I don’t know, a greater number of images on it or something like that, given the awareness that the website has of where I’m viewing it, or where it is being hosted? I wasn’t sure about that bit. Is it more about the visitor or more about the location of the hosting of that?
\n\n\n\n[00:30:26] Charlotte Bax: It’s about the visitor in this case, yeah. And I think he does that in a really, really smart way. There’s also sort of a version of the toolkit that does it browser based. I don’t know enough about that to explain that right I think.
\n\n\n\n[00:30:39] Nathan Wrigley: Genuinely, that’s fascinating. That really feels like he’s pushing the boundaries. What I’ll do is I’ll try to find a link to something.
\n\n\n\n[00:30:46] Charlotte Bax: There is a page on the website of the Green Web Foundation, and if you contact Fershad through LinkedIn or Mastodon, or I’m happy to link you with him. He is currently working on it and he is looking for people and websites to experiment with it. I think it’s a really nice experiment to see how much effect this can have. I’m really curious.
\n\n\n\n[00:31:07] Nathan Wrigley: It kind feels like a technology which is going to be very difficult to pull off, but very profound if it is pulled off. You can imagine high traffic websites, and I’m thinking of news organisations, for example, the BBC or something like that, that just have millions of views every few minutes, I would’ve thought, and could really benefit from something like that. You know, showing a different website. I’d never heard of that. That’s fascinating.
\n\n\n\n[00:31:29] Charlotte Bax: Yeah, it’s a really new project. He’s still developing the toolkit right now. I think it’s a really amazing project and that could be really impactful for, yeah, those really high traffic websites. I have seen, earlier this week I had a video call with Fershad, and he showed me a demo version on, oh, I don’t know the name, I can’t recall it, but it was like an online magazine.
\n\n\n\nThere was this menu, there was just this dropdown in the menu bar with four items, live low, medium, and high. So you could choose the settings yourself, or you just could go with the live thing, based on your own energy grid where you were localised.
\n\n\n\n[00:32:08] Nathan Wrigley: So like a demo, and you can pick how you would like to see it in four different versions. Okay.
\n\n\n\n[00:32:12] Charlotte Bax: Yeah, yeah. The live version is like how it is shown based on your energy grid. But as a visitor, you can also choose your own way if you want to see the more rich version or the more minimised version. And the information on the website, it just stays the same of course, but it shows less images and that kind of stuff. But if you view it in the, like the minimalist version, you can still opt to see images if you want to by just clicking on it. It’s a really smart way he does that.
\n\n\n\n[00:32:43] Nathan Wrigley: Yeah, it’s fascinating. So in my email client, for example, I have it set up, the default is do not show me images, and I just click a button, display images, and they all come in. I can’t pick which images, they all just come. But there’s a decision there, you know, it is like I’ve decided not to see all the images off the bat. Click a button and in they come.
\n\n\n\nThat is really interesting. So I presume the text would stay the same, because that’s the core of what the website is probably offering, text. But, you know, do you want a heavy experience in terms of data? Well, there it is. There’s all the images and the videos. Yeah, okay, I will follow that up. That sounds fascinating.
\n\n\n\nSo we’re at we WordCamp EU. This is all about WordPress. How do you feel WordPress, by default, so ignoring any plugins, if I just chuck a default version of WordPress, a vanilla version of WordPress out there, how does it do in terms of sustainability compared to other things in the environment?
\n\n\n\n[00:33:33] Charlotte Bax: Oh, that’s really funny because I haven’t really done any research into that. What I have done is I made, it’s some time ago, but I checked some of the WordPress vanilla themes against some of my favorite themes, just making a staging website with only lorem ipsum paragraph, and just the vanilla theme, and then checking how much page weight it is, and how much CO2 emissions on first load. But that’s ages ago. And I, maybe you just sort of started a new project in my head.
\n\n\n\n[00:34:05] Nathan Wrigley: Ah, nice.
\n\n\n\n[00:34:07] Charlotte Bax: Measure the CO2 emissions of WordPress themes and vanilla WordPress. I think that’s a good idea.
\n\n\n\n[00:34:12] Nathan Wrigley: Yeah, because it feels to me, especially if you’re using a WordPress default theme, they do seem to be quite light, you know, there’s a lot of text and very, I mean, some of the themes that we’ve had in the past, I can’t remember, I’m just trying to conjure it up, it might have been 2021 or something like that. It was basically all text. And I just wondered if WordPress itself could be proud of its sustainability over time, or whether it was something that, you know, compared to other CMSs but, you know, if you don’t have that data, that’s okay.
\n\n\n\n[00:34:40] Charlotte Bax: I don’t have the data, but I do think that maybe WordPress could be more of a front runner in terms of sustainability. For example, I learned that Drupal already has like a sustainability policy and they’re doing certain things on that. But unfortunately, our own sustainability team got canceled.
\n\n\n\nBut yesterday, during Contributor Day, there were like 10 people or something, they really wanted to do a sustainability table, so we just impromptu did that. The table cards, they were there. So we just did it and we formed a new team. Still unofficial. I have no idea how it happened, but apparently I’m a team rep now. There are some of the old sustainability team members that also want to continue their work. So we sort of started an impromptu petition to get the sustainability team their official status back, so it can become a core value of WordPress.
\n\n\n\nAnd I think that it would really help WordPress to be a front runner, especially in Europe where sustainability is, as far as I know, sustainability is a bigger thing in Europe than in America or Asia. That’s how I feel it. And I think if we don’t jump on that sustainability bandwagon, we could really lose market share.
\n\n\n\n[00:35:58] Nathan Wrigley: Yeah, I think you’re right. I’m curious about the sustainability team. So you are talking about Contrib Day yesterday?
\n\n\n\n[00:36:03] Charlotte Bax: Yes.
\n\n\n\n[00:36:05] Nathan Wrigley: An impromptu sustainability team sort of set itself up and just carried on as if nothing had happened. So that’s interesting.
\n\n\n\n[00:36:11] Charlotte Bax: Yes. Not really as if nothing had happened. Most of the time we spent on like strategising how to get this back on the road again, and how to continue because the previous team, they did really great work and I just latched on a few weeks before they got closed down and I think it’s really sad.
\n\n\n\n[00:36:29] Nathan Wrigley: Well, you’ve given us loads of really interesting tips. Hopefully the listeners to this have gathered some useful information. Realised that it’s a profoundly important and moral topic to be involved in.
\n\n\n\nShould anybody wish to contact you and get into a conversation about how they could become involved, or just some tips or what have you, where do we find you, Charlotte?
\n\n\n\n[00:36:48] Charlotte Bax: You can find me on LinkedIn. You can find Digihobbit on LinkedIn, and you can also find Digihobbit on Mastodon. I’m not really on like the regular social media channels, but that’s a whole different topic to discuss. I also have a personal LinkedIn profile, but if you want to link with me personally, just add a message to it so I sort of know the context.
\n\n\n\n[00:37:08] Nathan Wrigley: Okay. So dear listener, I will put everything that we’ve talked about today, all of the Green Web Foundation’s, and other varied links into the show notes. Head to wptavern.com and search for the episode with Charlotte Bax.
\n\n\n\nSo Charlotte Bax, thank you very much for chatting to me today. I really appreciate it.
\n\n\n\n[00:37:22] Charlotte Bax: Thank you very much, Nathan, for having me.
\n\n\n\n[00:37:24] Nathan Wrigley: You’re most welcome.
\nOn the podcast today we have Charlotte Bax.
\n\n\n\nCharlotte is a sustainable web designer with a background in both environmentally conscious living and technology. Beginning her journey as a sustainable lifestyle blogger, she soon merged her passion for sustainability with her skills in web design, rebranding herself as Digihobbit. For several years now, Charlotte has been focused on building websites that prioritise low carbon footprints, and she is also the founder of the climate tech startup ENNOR Toolbox for Online Sustainability, which helps measure the CO2 emissions of websites and web applications.
\n\n\n\nWhen we made this recording, Charlotte had just finished presenting at WordCamp Europe on the topic of how to make your website more sustainable, and her presentation is the topic of the podcast today.
\n\n\n\nWe talk about digital environmental impact, the hidden pollution our websites create through their energy use and infrastructure. Charlotte explains some striking facts about the carbon footprint of ICT, noting that if the internet were a country, it would be the seventh largest polluter globally.
\n\n\n\nShe shares a wide array of practical steps for web professionals to reduce the environmental impact of their sites. You’ll hear about the benefits of green web hosting, using modern image formats like WebP and AVIF, optimising architecture and UX to minimise unnecessary page loads, the crucial role of caching, as well as some new innovations like grid-aware websites which adapt themselves based on the renewable energy mix available to users in real time.
\n\n\n\nThe conversation also touches on Charlotte’s involvement in WordPress sustainability initiatives, the importance of multiplying small improvements across high-traffic sites, and the moral imperative web creators have to help shape a greener internet.
\n\n\n\nIf you’ve ever wondered how digital choices impact the planet, and what steps you can take today to help, this episode is for you.
\n\n\n\nCharlotte’s Digihobbit website
\n\n\n\n\n\n\n\n\n\n\n\nWebsite Carbon calculator by Whole Grain Digital
\n\n\n\nENNOR Toolbox for Online Sustainability
\n\n\n\nSustainable Web Design by Tom Greenwood
\n\n\n\n\n\n\n\n\n\n\n\nCharlotte’s website for the band Ann My Dice
\n\n\n\nRamon Fincken on LinkedIn
\n\n\n\nImprove the environment. Start with your website! Joost de Valk’s talk at WordCamp Nederland 2022
\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:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 16 Jul 2025 14:00:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Nathan Wrigley\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i: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:78:\"Open Channels FM: Fresh Series, New Names, and the Power of Repurposed Content\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:33:\"https://openchannels.fm/?p=102900\";s: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:83:\"https://openchannels.fm/fresh-series-new-names-and-the-power-of-repurposed-content/\";s: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:181:\"BobWP shares insights on the podcast’s rebrand, focusing on evolving content, elevating community voices, and repurposing past episodes, plus series changes aimed at storytelling.\";s: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, 16 Jul 2025 10:19: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: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: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:73:\"Open Channels FM: Open Source Projects Can Benefit From Cross-pollination\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:33:\"https://openchannels.fm/?p=100598\";s: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:80:\"https://openchannels.fm/open-source-projects-can-benefit-from-cross-pollination/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:354:\"In open source communities, it’s easy to focus on just one platform. Whether you’re deep into WordPress, Drupal, or another CMS, it’s tempting to stay within your comfort zone. But stepping outside your usual ecosystem can offer valuable insights not just about other tools but about your own. One theme that emerged in a conversation […]\";s: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, 16 Jul 2025 09:00:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i: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:38:\"HeroPress: The Journey Of Pratik Bhatt\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:56:\"https://heropress.com/?post_type=heropress-essays&p=8064\";s: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:128:\"https://heropress.com/essays/the-journey-of-pratik-bhatt/#utm_source=rss&utm_medium=rss&utm_campaign=the-journey-of-pratik-bhatt\";s: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:10481:\"Hello! I’m Pratik Bhatt — a WordPress developer, community contributor, a small-town dreamer, an open-heart surgery survivor, a gamer and someone who found meaning in life through code, community, and courage. My journey is one of resilience, gratitude and purpose — and I hope it inspires even one person who reads it.
\n\n\n\nI was born in a humble neighborhood of Bhavnagar, a small but vibrant coastal town in Gujarat. Life gave me my first challenge almost immediately. At the age of 3.5 years, I underwent open-heart surgery — a life-saving procedure that left its mark not only on my chest but on my soul. Even before I could understand what pain meant I had survived it.
\n\n\n\n\n\n\n\n\nJust two years later, I lost my father. I was only five.
\n
That loss could have broken me, but instead it introduced me to a hero — my mother. She worked tirelessly, day and night, playing both roles with fierce love and unimaginable strength. Her sacrifices were quiet, constant and invisible to the world, but they were the scaffolding on which my entire future was built. I owe everything I am today to her.
\n\n\n\nIn my teens, I gravitated toward strategy games and problem-solving — perhaps a subconscious expression of navigating a complex life so early. I participated in Open Bhavnagar chess tournaments, developing a love for logic and structured thinking. That same mindset later translated perfectly into coding.
\n\n\n\nComputers were rare, internet slower than a whisper and resources limited. Yet, I spent hours in cyber cafés, exploring the world behind the screen. Each click was a step toward a new identity — not as a survivor but as a builder.
\n\n\n\nI went on to pursue my Bachelor of Engineering at Pacific University in Udaipur, where I found more than just an education — I found my voice and versatility.
\n\n\n\nI earned a strong reputation in quiz contests, debates, and elocution competitions. I enjoyed the thrill of standing on stage, thinking fast and expressing clearly — a skill that would later shape my professional communication and leadership.
\n\n\n\nI was also a dedicated gamer and proudly won a Need for Speed: Most Wanted tournament during college. That rush of speed and control mirrored how I wanted to approach life — with confidence and calculated risk. I also ranked 3rd in the college chess championship, keeping my connection to strategic thinking alive.
\n\n\n\nAs I entered the professional world, I was introduced to WordPress — and everything changed.
\n\n\n\nI still remember the moment I activated my first theme. The way an idea turned into a visual reality — with structure, responsiveness and purpose — was nothing sort of magic to me. That moment, I knew: this is what I want to do for the rest of my life.
\n\n\n\nOver the time, WordPress became my bread and butter — quite literally. It provided me with the skills, opportunities and financial independence to build a life I never thought possible.
\n\n\n\n\n\n\n\n\nBut more than money, WordPress showed me the path to life.
\n
It empowered me to give businesses a voice, bring local shops online, connect NGOs to donors and allow countless creators to share their passion. Every site I built wasn’t just a project; it was a platform for someone’s dream.
\n\n\n\nToday, with over 12 years of experience in the WordPress ecosystem, I have worked with global clients, built plugins and custom themes, contributed to enterprise sites and created solutions that matter. I have helped startups launch, helped NGOs amplify their causes, and empowered entrepreneurs from Tier-2 and Tier-3 cities to reach the world.
\n\n\n\nWhether I’m architecting a complex WooCommerce store, writing a custom plugin, improving performance, or debugging client pain points, my goal is simple: to build things that are fast, reliable, and human-focused.
\n\n\n\nWhile code gave me a career, it was the WordPress community that gave me connection, energy, and growth. I love attending local meetups and WordCamps, where ideas flow freely, support is abundant, and friendships are formed over coffee and code.
\n\n\n\nIn 2023, I was honored to be part of the organizing team for WordCamp Ahmedabad, one of the biggest community events in India.
\n\n\n\n\n\n\n\n\nSeeing hundreds of attendees come together to learn and celebrate open-source was a proud and emotional moment for me — especially knowing how far I had come from Bhavnagar to that stage.
\n
I also had the privilege of being a volunteer at WordCamp Asia, the flagship WordPress event for the entire continent. It was humbling to support an event of such magnitude, and heartening to see how diverse and inclusive the global WordPress family truly is. Being part of such efforts is not just service — it’s gratitude in action.
\n\n\n\nFor me, meetups and WordCamps aren’t just events — they’re where I recharge my soul, share my knowledge, and feel deeply connected to a global family.
\n\n\n\nWhen I’m not writing code, I embrace life through small joys and soulful moments.
\n\n\n\nI’m a nature lover and plant enthusiast. Gardening gives me peace, patience, and a quiet form of discipline.
\n\n\n\nI’m a cricket fan — I love playing as much as watching, especially when Team India is in action. The game reflects my life: unpredictable, strategic, and driven by passion.
\n\n\n\nI enjoy driving — especially night drives when the roads are empty and music flows freely.
\n\n\n\nI’m also someone who loves being around animals. I find their presence grounding and healing. At home, I have a pet rabbit, who is more than a companion — he’s a part of my family and a source of daily joy.
\n\n\n\nSpeaking of joy, music is my biggest hobby. Whether I’m coding or relaxing, there’s always a soundtrack playing in the background. Songs help me express what words can’t.
\n\n\n\nHaving come from a small town with limited resources, I’m deeply passionate about helping others rise. I actively mentor young developers, especially those from underprivileged or non-metro backgrounds. I want them to know that success is possible — regardless of where you start.
\n\n\n\nMy dream is to one day launch a tech training program in Bhavnagar — to teach local youth about WordPress, freelancing and digital skills.
\n\n\n\n\n\n\n\n\nIf WordPress could change my life, it can certainly change theirs.
\n
I also regularly contribute to forums, help organize events, speak at community meetups and make time to guide freshers through their first steps in this amazing ecosystem.
\n\n\n\nHere are some core beliefs that guide me every day:
\n\n\n\nHeartbeats are precious — I don’t take a single one for granted.
\n\n\n\nStruggle isn’t a setback — it’s a setup for something greater.
\n\n\n\nCommunity is strength — whether in a family, a WordCamp or a GitHub issue thread.
\n\n\n\nYou can come from anywhere — what matters is where you’re going and how many you uplift on the way.
\n\n\n\nTechnology can heal, empower and connect — if used with empathy.
\n\n\n\nI’m excited about the future of WordPress — especially AI, full-site editing, headless architecture and performance innovations. I aim to stay at the forefront of these changes, continuing to build solutions that empower users and delight clients.
\n\n\n\nI also plan to write a book one day — part memoir, part manual — about how open source, open hearts and open minds can transform even the most limited beginnings.
\n\n\n\nIf I could go back and speak to the younger version of myself — lying on a hospital bed at 3.5 years old or watching my mother’s struggle silently or feeling like the world was too big for a boy from Bhavnagar — I’d say:
\n\n\n\n“You’re going to make it. You’re going to build not just websites but a life that helps others build theirs too.”
\n\n\n\nI don’t just develop WordPress sites.
\n\n\n\nI develop opportunities, relationships and meaningful digital footprints.
\n\n\n\nAnd every time I hit “Activate Theme” or push a release, I think of the journey it took to get here — and the journey still ahead.
\n\n\n\nIf you’re someone who believes in purpose, people and potential — let’s connect. Let’s build. Let’s inspire
\nThe post The Journey Of Pratik Bhatt appeared first on HeroPress.
\";s: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, 16 Jul 2025 03: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:12:\"Pratik Bhatt\";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:55:\"WordPress.org blog: WordPress 6.8.2 Maintenance Release\";s: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=18903\";s: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:71:\"https://wordpress.org/news/2025/07/wordpress-6-8-2-maintenance-release/\";s: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:10703:\"This minor release includes fixes for 20 Core tickets and 15 Block Editor issues. For a full list of bug fixes, please refer to the release candidate announcement.
\n\n\n\nWordPress 6.8.2 is a short-cycle maintenance release. More maintenance releases may be made available throughout 2025.
\n\n\n\nIf you have sites that support automatic background updates, the update process will begin automatically.
\n\n\n\nYou can download WordPress 6.8.2 from WordPress.org, or visit your WordPress Dashboard, click “Updates”, and then click “Update Now”. For more information on this release, please visit the HelpHub version page.
\n\n\n\nThis is not directly related to the 6.8.2 maintenance release, but branches 4.1 to 4.6 had their final release today. These branches won’t receive any security update anymore.
\n\n\n\nWordPress 6.8.2 was led by Jb Audras, Estela Rueda and Zunaid Amin.
\n\n\n\nSpecial thanks to @davidbaumwald, @sergeybiryukov, @mamaduka, @wildworks and @jorbin for their help on specific release tasks.
\n\n\n\nWordPress 6.8.2 would not have been possible without the contributions of the following 96 people. Their asynchronous coordination to deliver maintenance fixes into a stable release is a testament to the power and capability of the WordPress community.
\n\n\n\nAaron Jorbin, Adam Silverstein, Adam Zieliński, Aki Hamano, Alex Stine, Anatol Broder, Andrea Fercia, Andrew Nacin, Ankit Kumar Shah, annezazu, Azhar Deraiya, Benjamin Gosset, Brandon Hubbard, Brandon Kraft, brhodes, Carolina Nymark, Chris Zarate, Courtney Robertson, Daniel Richards, Darshit Rajyaguru, David Baumwald, Dennis Snell, Dhruvang21, Dilip Bheda, Dion Hulse, divinenephron, dustintechsmith, Eric Andrew Lewis, Eshaan Dabasiya, Estela Rueda, Evan Herman, Fabian Kägy, Faisal Ahammad, Felix Arntz, Gary Pendergast, Gaurang Dabhi, George Mamadashvili, gernberg, Greg Ziółkowski, Harsh Gajipara, HelgaTheViking, Himanshu Pathak, Jb Audras, Jeffrey Paul, Jenny Dupuy, Jessica Lyschik, Jigar Panchal, Joe Dolson, Joe McGill, John Blackbourn, John Parris, Jon Surrell, Jonathan Desrosiers, Jonny Harris, Kausar Alam, Kishan Jasani, Marin Atanasov, Matt Mullenweg, Matthias Pfefferle, megane9988, Moses Cursor Ssebunya, Mukesh Panchal, mwillman1991, Nazar Hotsa, nidhidhandhukiya, Nikunj Hatkar, oferlaor, Olga Gleckler, Pascal Birchler, paulstanos, Peter Wilson, puggan, Ravi Gadhiya, Riad Benguella, Rolly Bueno, room34, Sainath Poojary, Sajjad Hossain Sagor, sam_a, Sandeep Dahiya, Sergey Biryukov, Shane Muirhead, siliconforks, SirLouen, Stephen Bernhardt, Sukhendu Sekhar Guria, Tammie Lister, Tobias Bäthge, Travis Smith, Ugyen Dorji, uxl, Weston Ruter, whaze, Yash B, Yogesh Bhutkar, and Zunaid Amin
\n\n\n\nTo get involved in WordPress core development, head over to Trac, pick a ticket, and join the conversation on Slack, in the #core and #6-8-release-leads channels. Need help? Check out the Core Contributor Handbook.
\n\n\n\nThanks to @estelaris and @zunaid321 for proofreading.
\";s: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, 15 Jul 2025 15:41:50 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:9:\"Jb Audras\";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:76:\"Open Channels FM: Rethinking Global Remote Work Opportunities in Open Source\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:33:\"https://openchannels.fm/?p=100594\";s: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:83:\"https://openchannels.fm/rethinking-global-remote-work-opportunities-in-open-source/\";s: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:383:\"Remote work has been a defining feature of tech culture for years, but it has become especially prominent in open source communities. As more professionals build careers within globally distributed teams, the conversation around cross-border employment has grown more relevant than ever. One insight that stands out is the potential for developers and digital professionals […]\";s: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, 15 Jul 2025 09:48:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:39;a:6:{s:4:\"data\";s:21:\"\n \n \n \n \n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:91:\"WordPress.org blog: Celebrating Kim Parsell: 2025 WordCamp US Scholarship Applications 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:35:\"https://wordpress.org/news/?p=18911\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:87:\"https://wordpress.org/news/2025/07/kim-parsell-2025-wcus-scholarship-applications-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:4936:\"The WordPress Foundation is pleased to announce the return of the Kim Parsell Memorial Scholarship for WordCamp US 2025. Applications are being accepted until July 25, 2025.
\n\n\n\nKim Parsell was a dedicated contributor and a beloved member of the WordPress community. Her passion for open source and her welcoming spirit inspired many, both online and in person. Each year at WordCamp US, the WordPress Foundation celebrates Kim’s legacy by supporting contributors who share her commitment and enthusiasm. The Kim Parsell Memorial Scholarship aims to make it easier for deserving community members to attend WordCamp US, reflecting Kim’s belief in making WordPress accessible and inclusive for all.
\nIf you’re unfamiliar with Kim’s story or her invaluable role in the community, we encourage you to read these heartfelt tributes collected from friends and colleagues.
\nThis year, a single scholarship will be awarded. To qualify, applicants must:
\n\n\n\nIf you meet these qualifications, we invite you to apply before the July 25 deadline. All applicants will be notified of the decision by August 7, 2025.
\n\n\n\nFor additional information, visit the Kim Parsell Memorial Scholarship page hosted by the WordPress Foundation.
\n\n\n\nReady to Apply?
\n\n\n\n\n\n\n\n \n\n\n\n\nHelp us spread the word about this opportunity and make WordCamp US 2025 even more special.
\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:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 14 Jul 2025 18:57:47 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s: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: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:99:\"Open Channels FM: What Investors Really Want: Funding Insights for Digital and Open Source Founders\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:33:\"https://openchannels.fm/?p=100588\";s: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:105:\"https://openchannels.fm/what-investors-really-want-funding-insights-for-digital-and-open-source-founders/\";s: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:234:\"In the evolving digital commerce landscape, successful funding requires strong founder-investor relationships, clear problem-solving focus, and ethical considerations, emphasizing collaborative growth and effective product strategies.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 14 Jul 2025 09:38: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: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:68:\"Gravatar: What is Federated Identity Management and How Does it 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:32:\"http://blog.gravatar.com/?p=3371\";s: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:67:\"https://blog.gravatar.com/2025/07/11/federated-identity-management/\";s: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:15494:\"You know that moment when you breeze into a new app by clicking “Sign in with Google”? That’s not magic. It’s federated identity management (FIM).
\n\n\n\nIt lets you hop between apps and services using just one login, no password juggling required.
\n\n\n\nYou’ve likely got usernames and passwords scattered across what feels like half the internet. It’s a mess for users, and an even bigger migraine for developers trying to build secure login systems from scratch.
\n\n\n\nFIM solves this core problem of digital identity management by creating trusted links between different platforms. So instead of managing dozens of accounts, you just maintain one primary identity that does the heavy lifting across multiple services.
\n\n\n\nIn this article, we’ll unpack:
\n\n\n\nSo, let’s dig into how federated identity is rewriting the rules of online access.
\n\n\n\nFederated identity management lets users log into multiple services with just one set of credentials – even if those services belong to entirely different organizations or live in separate security realms.
\n\n\n\nIn short: One login, many doors.
\n\n\n\nThe clever part? While users enjoy the simplicity of a single sign-in, each organization still keeps tight control over its own systems and data. Everyone wins – convenience for users, boundaries for businesses.
\n\n\n\nAt its heart, FIM solves a very modern dilemma: Too many passwords, not enough patience. By reducing login clutter whilst safeguarding security, it keeps systems streamlined and users sane.
\n\n\n\nFor example:
\n\n\n\nThis all works thanks to behind-the-scenes handshake deals called federated identity agreements. The university acts as the identity provider, backing the student’s identity. Services like Google Workspace act as service providers, trusting that endorsement and granting access accordingly.
\n\n\n\nIt all works through carefully coordinated authentication protocols working behind the scenes. These standards let systems talk to each other securely. Only the essentials get shared, passwords never stray from their home base, and users keep control of their data.
\n\n\n\nNow, let’s dig into how those protocols do their thing.
\n\n\n\nFederated identity might sound like something dreamt up in a sci-fi novel, but it’s really just about helping different services trust each other enough to vouch for you.
\n\n\n\nThat way, you’re not logging in twelve times before breakfast. Instead, a handful of protocols quietly do the work to keep things smooth, secure, and repeat-login free.
\n\n\n\nHere are the big three making that happen:
\n\n\n\nSAML is basically the corporate go-to when it comes to easy sign-ins. It’s what lets employees hop between internal tools (HR systems, dashboards, intranets etc.) without juggling five passwords and a daily identity crisis.
\n\n\n\nHere’s the gist:
\n\n\n\nIt’s especially handy in enterprise and B2B settings, where you need airtight security and rich user data. If you’re into technical deep dives, the OASIS SAML Technical Committee has the specs.
\n\n\n\nOAuth isn’t really about proving who you are; it’s about saying what an app can do on your behalf.
\n\n\n\nThat moment when you “Sign in with Google”, OAuth is just passing a temporary access token that tells the app, “This person’s cool with you looking at their calendar (but hands off their emails).” It’s identity permission management, not identity confirmation.
\n\n\n\nIt’s like handing out a key that only opens one room in the house, and only for a short time. You can learn more about it on the OAuth 2.0 site.
\n\n\n\nOpenID Connect builds on OAuth 2.0 by enabling proper ID verification. It’s what makes one-click logins like “Sign in with Apple” or “Sign in with Google” actually log you in, not just hand out permissions.
\n\n\n\nIt works by adding an identity token that securely shares who you are with the service. So now, it’s not just “this person said yes,” it’s “this person is Alice, email verified, and here’s the proof.”
\n\n\n\nWant to build with it? The OpenID Connect specs are the go-to guide for implementation.
\n\n\n\nIn federated identity management (FIM), two main players run the show: The identity provider (IdP) and the service provider (SP). Knowing what each does is key to understanding how FIM works.
\n\n\n\nIdentity providers handle the login. They verify who you are; whether that’s Google, Microsoft, your university, or your company’s system. The IdP stores your credentials and confirms your identity to other services.
\n\n\n\nService providers are the apps and platforms you want to access using that login, like Zoom, Dropbox, or academic databases.
\n\n\n\nHere’s what happens when you click “Sign in with Google”:
\n\n\n\nThis split keeps things secure. Your passwords stay with trusted IdPs, so you’re not juggling new logins for every service. And if a service provider is breached, your credentials are still safe.
\n\n\n\nFor organizations, it simplifies access control. IT teams can grant or revoke access from the IdP side, managing all connected services in one go when people join or leave.
\n\n\n\nSingle sign-on (SSO) is the big crowd-pleaser: One login, and you’re in. Email, HR tools, task boards, wiki rabbit holes – it’s all yours, no repeated password dance required.
\n\n\n\nThe catch is it all lives within the borders of your organization. Handy, yes. But fenced in.
\n\n\n\nFederated identity management (FIM) takes things a step further. Same single login magic, but this time the credentials can travel. Across platforms. Across orgs. Across ecosystems. It’s SSO with a passport.
\n\n\n\nHere’s how that plays out:
\n\n\n\nBoth SSO and FIM save you from juggling five logins and twenty browser tabs. Both boost security by keeping authentication centralised. The difference? FIM doesn’t stop at the edge of your organization, it builds trust between systems that aren’t under the same roof.
\n\n\n\nTo make this work, FIM needs a little extra backend choreography. To work smoothly across domains, it relies on protocols like SAML, OAuth, or OpenID Connect (the same ones we unpacked earlier).
\n\n\n\nSSO inside a single org skips the extra tech since everything’s already playing on the same team.
\n\n\n\nSo: SSO keeps things simple within your four walls. FIM gets you past the gates.
\n\n\n\nGravatar makes federated identity feel less like an enterprise buzzword and more like something regular people can actually use. It takes the big, often baffling ideas behind FIM and packages them into something simple, familiar, and weirdly elegant.
\n\n\n\nLet’s start with the magic trick: Update once, sync everywhere.
\n\n\n\nChange your photo or bio on Gravatar and – ta-da – it updates across every platform that supports it, from WordPress comment sections to your GitHub commits. No faff. No repeat uploads. Just instant consistency, quietly flexing the whole “federated identity” concept in real life.
\n\n\n\nWhat really makes it click, though, is how Gravatar ties your identity to your email address instead of your name. That lets you switch gears effortlessly:
\n\n\n\nEach one becomes its own lightweight identity provider. And because Gravatar plays nicely with WordPress, GitHub, Slack, OpenAI (and plenty more), your profile travels with you like a loyal companion.
\n\n\n\nGravatar skips the corporate complexity in favor of something far more accessible, especially for solo operators and smaller teams.
\n\n\n\nBest of all? It’s free. And since it’s backed by Automattic, Gravatar takes ideas that used to live inside enterprise IT departments and hands them over to the rest of us.
\n\n\n\nIf you’re a developer staring down the barrel of yet another user profile system, take a breath. Gravatar’s got your back. Our API is basically a plug-and-play shortcut to “profiles-as-a-service,” and integrating it is almost suspiciously easy.
\n\n\n\nInstead of wrestling with databases, uploads, and custom logic, you can hook into Gravatar’s infrastructure with just a few lines of code. Here’s what you get:
\n\n\n\nIt’s a clean fix for the mess of cross-domain identity. One Gravatar profile works across every platform that supports the API. No more begging users to upload the same photo (again). No more duplicated effort.
\n\n\n\nAnd here’s what makes things even better: the docs are actually helpful. Whether you’re calling our REST API or grabbing an SDK, our Gravatar tutorials walk you through everything from basic avatar fetching to pulling in full profiles.
\n\n\n\nBuilding your own profile system could eat up weeks or months. With Gravatar, you’ll be done before your coffee goes cold. Plus, you skip the long-term headaches: Maintenance, security patches, user complaints – all gone.
\n\n\n\nIf you’re working on a comment thread, a full-blown app, or anything in between, Gravatar delivers a clean, federated identity solution minus the enterprise bloat.
\n\n\n\nGravatar makes federated identity simple and available to everyone, whether you’re a solo creator or a full-stack developer.
\n\n\n\nOne profile, thousands of platforms: WordPress, GitHub, Slack, OpenAI… all covered.
\n\n\n\nYou simply update your profile once, and it syncs everywhere. No more hunting down forgotten logins just to swap out a profile pic or tweak a bio.
\n\n\n\nFor developers, it’s a breeze: Just a few lines of code, and your users get a polished, cross-platform experience without the headache of building your own identity infrastructure.
\n\n\n\nGravatar’s been trusted by millions for over a decade, and it’s backed by Automattic, the same folks behind WordPress.com and a whole suite of web heavyweights.
\n\n\n\nIt’s free, privacy-conscious, and puts you firmly in control.
\n\n\n\nReady to streamline your online presence? Set up your free Gravatar and make profile chaos a thing of the past.
\n\n\n\nI’m so glad Tammie was (partially) inspired to reflect on the beginning of her contribution journey after reading my 12 year first contribution anniversary post. I love reading these stories! They really ignite a meditative mindset.
\n\n\n\nI’m currently up in the White Mountains on a family vacation. I read her post with my morning coffee before my wife and I set out to hike Mount Willard as part of our attempt to tackle the 52 With A View. I know, I should be better about disconnecting, but her reflections had me thinking on the trail.
\n\n\n\nIt’s interesting how the contributors you looked up to when getting started that you assumed were well established were actually still finding their way.
\n\n\n\nTammie is a great example of this. I remember looking at comments she made and thinking they were insightful and based on lots of experience. They were and still are, but her experience was not what I had assumed. Her experience at the time was just not yet from contributing to WordPress. She too was wandering around looking for the path that looked just right at the same time as me.
\n\n\n\n“Figuring it out” also means something different to everyone. And “it” can also change over time. The best path today will likely not be a good fit in 10 years, 5 years, or even 6 months.
\n\n\n\n\n\n\n\n\n“A simple code review or “great job” can be the difference between a one-time contributor and a future maintainer. You never know what someone needs to hear, so be generous with feedback.”
\n
This is something I included in my essay for the Maintaine.rs book. In Tammie’s post, she interestingly had a sentence that struck me as the exact opposite of that statement.
\n\n\n\n\n\n\n\n\n“Our projects are full of the ghosts of contributors we never activated, and that fuels me to see potential in every person who gives up their time.”
\n
What happens when we don’t put our best forward, if it wasn’t enough, or wasn’t what someone needed to hear? Obviously we can’t (and shouldn’t) attract or keep everyone who passes by the communities we care for to join in our efforts. But what about those who were good fits but just weren’t engaged with in the right way?
\n\n\n\nMaybe documentation was lacking. Maybe expectations were unclear. Or maybe they sensed a maintainer was being territorial towards an area of the project they look after. This excerpt from Producing Open Source Software is relevant here:
\n\n\n\n\n\n\n\n\nWatch out for participants who try to stake out exclusive ownership of certain areas of the project, and who seem to want to do all the work in those areas, to the extent of aggressively taking over work that others start. Such behavior may even seem healthy at first. After all, on the surface it looks like the person is taking on more responsibility, and showing increased activity within a given area. But in the long run, it is destructive. When people sense a “no trespassing” sign, they stay away. This results in reduced review in that area, and greater fragility, because the lone developer becomes a single point of failure. Worse, it fractures the cooperative, egalitarian spirit of the project.
\n\n\n\nKarl Fogel. Producing Open Source Software. Chapter 8: Preventing Territoriality
\n
Sometimes letting people find their way means not engaging at all. Not every contributor requires an eager welcome or hand-holding. Over-engaging can also be a bad thing. Knowing how to gauge the appropriate level of interaction is a skill that comes with time.
\n\n\n\nOn our hike, I noticed that the route my wife took was almost never the same as the one I took on the same exact path. I wasn’t intentionally avoiding her footprints, I was just subconsciously choosing what looked best to me.
\n\n\n\nThe same is true in a large community. Instead of rigid groupings with strict criteria that must be met, establish decision-making frameworks that encourage flexibility guided in foundational principles.
\n\n\n\nI sometimes observe new contributors trying to make sense of activity by forcing everything into specific categories, paths, or types. While it makes a lot of sense as a first step, that can quickly lead to frustration and burn out because it just doesn’t work like that at scale.
\n\n\n\nPaths also manifest to individuals differently. Sometimes they’re rocky and sometimes not. Sometimes it’s rocky but one giant smooth rock instead of many little ones, and occasionally the surface is just a little slippery. Everyone proceeds at their own pace. If you believe in the mission and have purpose, continue on despite the form the path takes in front of you.
\n\n\n\nTwo Summers ago while also in New Hampshire, we took the Mount Washington Auto Road to the top of the 6,288 foot highest point in New England. When we reached the summit, the weather was drastically different (30-40MPH gusts, cloudy, and 35°F) than at the base (high 80°s F, calm, clear and sunny).
\n\n\n\nBesides the weather, something else stood out. There was a line ~100 people long waiting for a chance to take a photo in front of the summit sign.
\n\n\n\nWhen everyone crowds toward the “top,” we risk losing the balance and continuity that healthy communities need. It’s not about reaching the summit. Rather, it’s about ensuring the entire path is well-traveled, well-marked, and connected.
\n\n\n\nWe never truly make it to the “top” because it’s not a static thing. This is especially true in technology where everything is constantly changing and evolving. Thus, “getting to the top” is the wrong goal. Instead, our goal should be to connect with as many people as we can at the many points paths intersect along the way. Put differently, we should be building connections between as many paths as possible.
\n\n\n\nThere was a very old stone wall covered in moss on the hike and I found myself thinking: how many others had used the same path before me? How many people lived on this mountain before the trail existed? There’s no true way to know, especially if everyone is respecting the carry in, carry out mindset. Instead, the signs will be very subtle and require an astute eye.
\n\n\n\nFootprints, paths worn down from traffic, and in more obvious cases, others actually passing you on your way. While each path is unique, where your path takes you is rarely untraveled. Learn to spot the differences and adjust accordingly.
\n\n\n\nWhen you drink from the fire hose of a large Open Source project like WordPress, it’s easy to lose sight of the cumulative efforts that are required to create such a strong and steady flow. But like basins and streams, it takes many small trickles to fill them.
\n\n\n\nOur work isn’t measured only by the splash of large contributions, but by the steady trickle of small acts that feed a thriving ecosystem. If we want future contributors to drink from the same basin, we need to show them how every small drop matters.
\n\n\n\nAs we got close to the end of the hike, we started hearing cars on the highway again. The trail we took was an out and back loop. In this situation, it meant we were in the right place. But when we started the hike, the opposite was true.
\n\n\n\nWhen participating in a community, the level of “noise” can be used to gauge whether your work is on target.
\n\n\n\nWhen beginning to work on a foundational task that only a few people can advise on, that often means you’re in the right space. But once you’ve shared that idea with the wider community, silence could mean you’ve missed the mark.
\n\n\n\nStill, silence isn’t always failure. Sometimes it’s just the sound of others listening, considering, and preparing to walk their own part of the trail that you’ve created.
\n\n\n\nFeatured image credit: CC0 licensed photo by soycelycruz from the WordPress Photo Directory.
\nThe post The Ghosts of Unactivated Contributors appeared first on 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:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 11 Jul 2025 01:55:36 +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: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:112:\"WordPress.org blog: Introducing WordPress Credits: A New Contribution Internship Program for University Students\";s: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=18913\";s: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:127:\"https://wordpress.org/news/2025/07/introducing-wordpress-credits-a-new-contribution-internship-program-for-university-students/\";s: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:4768:\"The WordPress Foundation is proud to launch WordPress Credits, a contribution-focused internship program that brings university students into the heart of the WordPress open source project. While WordPress thrives on contributions from a global volunteer community, many students and newcomers face barriers to entry, such as a lack of structured guidance or real-world experience in open source projects. This new program is designed to bridge that gap, nurturing future contributors and ensuring WordPress remains innovative, inclusive, and sustainable for years to come.
\n\n\n\nThe pilot program, developed in partnership with the University of Pisa, was announced on stage at WordCamp Europe 2025 by Matt Mullenweg and Mary Hubbard. Since then, it has attracted interest from students across various fields of study, including humanities, computer science, and communication. Companies in the WordPress ecosystem have also expressed support and interest in contributing to the project. In response to the growing interest from both community members and academic institutions, we are now inviting more universities to join the initiative.
\n\n\n\nOpen to students from all fields of study, the program blends structured onboarding with a personalized contribution project. Activities are adapted to each student’s degree program and familiarity with WordPress, aiming to develop transferable skills, academic-related competencies, and active participation in the WordPress community. Internship durations may vary depending on the university or educational institution. Some may align with academic semesters (typically 3–4 months), while others, like the University of Pisa, allow students to sign up year-round with a requirement to complete a set number of contribution hours (e.g. 150 hours). Flexible arrangements can be discussed to meet the specific requirements of each institution.
\n\n\n\nFoundational Training includes:
\n\n\n\nEach student will choose a contribution area and design their own personal project within that area. Examples of possible projects include:
\n\n\n\nInterns are guided by an experienced mentor specific to their chosen area and supported by a dedicated WordPress Foundation contact person throughout the program. All student contributions, whether code, translations, documentation, or educational materials, will be publicly visible and integrated into official WordPress projects and resources, directly benefiting the wider community.
\n\n\n\nInterested universities and educational institutions interested in participating can reach out by filling the interest form.
\n\n\n\nWe also invite companies in the WordPress ecosystem to support this initiative by sponsoring mentors who will guide and empower the next generation of contributors, or by providing tools and resources that help students succeed in their contribution journey.
\n\n\n\nIf your company is interested in getting involved, please visit the Company Guide to learn more and fill out the form to join the program.
\n\n\n\nBy welcoming students, mentors, sponsors, and volunteers into this initiative, we are building a stronger and more connected WordPress community. Each person who takes part, whether they guide a student, share their experiences, provide sponsorship, or simply help spread the word, helps ensure that open source remains vibrant and accessible for all. Together, we are not just supporting individual contributors; we are shaping the future of WordPress and open source itself.
\";s: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, 10 Jul 2025 16:56:52 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:12:\"Isotta Peira\";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:77:\"Open Channels FM: Generalists, Pricing Advice, and AI’s Role in 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:33:\"https://openchannels.fm/?p=101131\";s: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://openchannels.fm/beyond-hosting-generalists-pricing-advice-and-ais-role-in-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:197:\"In this episode of Dev Pulse, hosts chat with Jason Cosper about the challenges and humor in infrastructure, consulting rates, communication, and the evolving role of AI in tech work and workflows.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 10 Jul 2025 10:54: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:52:\"Tammie Lister: First props and contribution journeys\";s: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=2374\";s: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://binatethoughts.com/first-props-and-contribution-journeys/\";s: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:7370:\"This post was inspired by the awesome posts from Jonathan Desrosiers and Felix Arntz, who celebrated their contribution anniversaries with reflection. It made me muse on how critical those first points, the initial steps in a contribution journey, are. I began reflecting on my own ‘firsts’ and the people who helped me achieve them.
\n\n\n\nI am never one to celebrate anniversaries in general, and as a result, I admit I let my slide, both personally and professionally. That isn’t a pattern I suggest anyone should follow, though; it’s essential to acknowledge where you have been and who helped you get there.
\n\n\n\nIn open source, those who have been involved in the project for a longer time may have always known what they are doing. This is far from the truth. Those who enabled my first props also had their own. Often, though, the first prop isn’t the first entrance into the project. It can be an incredible moment that empowers someone, though, by recognising their work. Often, props can come after a few stages in a contribution journey, and we might forget that. That path was one I followed, taking time to explore adjacent spaces before even finding my way around the space.
\n\n\n\nI admit I don’t recall ever looking up my first props before and I found mine this time but it took a bit. It was a nice moment that aligned with my contribution story to see my props split across core and BuddyPress. It also reflected how I took time before props to get settled in.
\n\n\n\nMy first appearance in this space was in core, and then I rapidly ended up in adjacent areas, such as the theme review team and BuddyPress. On reflection, this could have been a different story. It could have been one of the contributor who pivoted out, never finding their space. So, I am grateful for finding a space and to those contributors who caught me.
\n\n\n\nMy first BuddyPress props was by Paul Gibbs, and it was on 11/12/2010. My first core props came a few years later, and it was by Helen Hou-Sandi on 03/01/2013. By each of these props, I was already settled into those spaces as a contributor. Props might come later because you’re working on other things or the role you’re contributing.
\n\n\n\nI had the pleasure of being asked to share my thoughts on contributing to maintaine.rs, along with other open source contributors, including the ever-awesome Jonathan Desrosiers. This is an incredible project telling stories across open source, and I encourage checking it out. In it, I was asked about welcoming contributors and how to see value.
\n\n\n\n\n\n\n\n\nIf you want contributions, be sure to show how and where they are wanted. It’s one thing to say ‘all contributions are welcome’, but that’s open-source theatre because honestly, it’s likely not all are in every area as welcome as others. There are always more areas needed than some. Highlight these and make sure someone gets off to a contribution success from the start.
\n
My journey could have been very different if I hadn’t found a place to contribute. Empowered by those people, I was led to the props and supported in my first tickets. Our projects are full of the ghosts of contributors we never activated, and that fuels me to see potential in every person who gives up their time.
\n\n\n\nWhen I arrived at the project, I wasn’t sponsored; I was giving my own time because this project was providing me with a blog and client work. My journey in open source began before WordPress, starting with Linux. When I joined the project, I already understood the concept of contribution and came to it with that in mind, looking to find a way to balance what I was gaining.
\n\n\n\nI wasn’t aware of all the options to contribute to the project; there were fewer than there are today. I had to be shown my options, where I could be helpful. My path was one so many have followed. I ended up staying here for so long because of the people who caught up with me along the way and helped empower me as a contributor, so thank you.
\n\n\n\nWhilst these are ‘first’, they are just the public ones. There are so many firsts in a contribution journey. I was in these projects before my props. My first experience with core was that it was too overwhelming, which is why my first props is in BuddyPress. My first solo theme review was also pivotal to my journey 14 years ago.
\n\n\n\nEvery conversation, particularly in the first few stages, was pivotal to my journey as it set the tone for where I ended up adventuring. They could also have been points that led me to leave the project because I couldn’t find a way to contribute. I hold onto this point when interacting with others, as each contribution is so significant. You never know what someone will do in a project if they are given the opportunity, and it starts with them knowing they can do things. It’s essential always to acknowledge and recognise everyone who contributed. You never know whose first props those might be and what impact each of us might have on someone’s journey of contribution.
\n\n\n\nSomeone might also travel this project and never get props, because perhaps of the contribution area they are in or the work they are doing. That’s a key thing to consider, and actually, my own journey has public and non-public recognition due to different roles. As a project, WordPress needs to be better at recognising and measuring all types of contributions so the pride we all feel in props can be given to anyone contributing significantly.
\n\n\n\nIf open source contribution works, it’s a journey. This point is demonstrated by the adventures I have travelled and those of others within these projects. We have grown up, changed jobs, and moved locations, but we stayed with the project and our contributions. You do that because you want to, because you are getting something from doing it, as contribution has to be a two-way street to become a part of someone’s life. Props and other recognition are a boost to help you on that journey. It works because it acknowledges the work being done, and in its simplest form, it is a way of saying thank you.
\";s: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, 10 Jul 2025 09:14: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: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:112:\"Open Channels FM: The Future of WordPress and AI: Open Protocols, Agentic Workflows, and Industry Transformation\";s: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=99251\";s: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:116:\"https://openchannels.fm/the-future-of-wordpress-and-ai-open-protocols-agentic-workflows-and-industry-transformation/\";s: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:220:\"As AI advances, WordPress must choose between cloud-based tools or local agent workflows. Emerging protocols allow dynamic communication, influencing automation, privacy, and the future control of web content management.\";s: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, 10 Jul 2025 09:01: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: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:40:\"HeroPress: The Remote Team Who Raised Me\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:56:\"https://heropress.com/?post_type=heropress-essays&p=8032\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:132:\"https://heropress.com/essays/the-remote-team-who-raised-me/#utm_source=rss&utm_medium=rss&utm_campaign=the-remote-team-who-raised-me\";s: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:11486:\"In 2004, I was at home with one baby, having just left a career that I loved. Being at home with a baby full-time was shriveling up my brain. Before WordPress I tried gardening, sewing, painting, preserving and cooking. I was desperate to fill the void left by my career.
\n\n\n\nMy husband at the time, was a tech genius and had heard of a new get rich quick scheme: “blogging”.
\n\n\n\nI didn’t know what that meant – I had to research what the internet was! But I was desperate and the evening news was featuring these “mommy bloggers” who were making small fortunes!
\n\n\n\n“If they can do it”, I thought, “So can I!”
\n\n\n\n\n\n\n\n\nI made a whole $0.82 that year.
\n
I am not easily dissuaded though. I decided that a new theme would get me more revenue.
\n\n\n\nTo build themes circa 2007, you had to learn the template system, the file structure, and the hooks baked into WordPress.
\n\n\n\nIt was like a giant puzzle and I was so excited to be using my brain – I jumped in.
\n\n\n\nI read every single page in the WordPress.org docs. I spent 10–20 hours a week in the support forums, mostly asking for help – not giving much!
\n\n\n\nI learned to code by fixing real problems – it was challenging and the internet was full of quality resources.
\n\n\n\nI made big mistakes – I crashed countless sites! And in doing so, I learned what not to do.
\n\n\n\nI was in heaven.
\n\n\n\nExcept for those all-nighters trying to fix something that I broke on a client’s site.
\n\n\n\nI learned from the best in the community – because back then, they were in the forums with me. I learned from friends and other bloggers. I learned from online articles (pre-YouTube days).
\n\n\n\nAlong the way, I met a fellow mommy blogger who had a side business called Desperately Seeking WordPress. (Her blog was Desperately Seeking Sanity and she has the best sense of humour!) She needed help. I was available.
\n\n\n\n\n\n\n\n\nAt the time, our offer was simple: we would install WordPress, a theme, and a few plugins – and make it look nice – for $20.
\n
Eventually, she stepped back, and I got to take the reins.
\n\n\n\nThat’s when I realized I hadn’t the foggiest idea how to run a real business. I started reading books like *E-Myth*, *Duct Tape Marketing*, and *Purple Cow*. I had no MBA, no startup capital. Just the desire to help other mommy bloggers not get ripped off by tech ‘gurus’.
\n\n\n\nI’ve struggled with depression for my entire adult life. By 2006, I had three young children. By 2012, I was divorced. The work that had been a fun puzzle, now had to pay the bills.
\n\n\n\nI couldn’t disappear on bad days – my fledgling company had to be reliable! The clients needed stuff. So I hired my first contractor. She made more than I did most months.
\n\n\n\n\n\n\n\n\nBut I needed to know someone would be there for my clients when I couldn’t be. That was the first step toward building a team that would be better than any of us could have imagined.
\n
The behind-the-scenes work we do stays the same whether it is for celebrities or tiny fledgeling bloggers. And when we were kind, didn’t talk down to them, and were honestly helpful, they talked about us. And we became 100% referral-based.
\n\n\n\nSo how do YOU get referrals?
\n\n\n\nI can’t tell you that – but – I know what works for us: radical honesty (even when it hurts our bottom line), genuine kindness and respect, and being the best at what we do. I believe with all my heart that our clients are in good hands.
\n\n\n\nAnd that honesty requires owning my mistakes. I wish I could say I don’t make them anymore but… radical honesty!
\n\n\n\nWe always do what’s in the client’s best interest, even when it costs us money.
\n\n\n\nAfter about seven years, I made an intentional decision to hire women. I grew up in West Africa, and I’ve seen firsthand how empowering women lifts entire families and communities.
\n\n\n\nSo we began funding microloans for women entrepreneurs in developing countries. The research shows that supporting women has a multiplier effect – and I’ve always had a soft spot for hard-working entrepreneurial free spirits.
\n\n\n\n\n\n\n\n\nFrom the very beginning, we were a remote team. I’ve never been on my own – being reliable is a non-negotiable – I need the team.
\n
One of those teammates is Diane. I met her 14 years ago, just after she got married. She’s quiet, steady, avoids the spotlight – and she’s been one of the most important people in my life. We’ve built a business together through births, illness, life transitions – and I trust her completely.
\n\n\n\nThat trust, that stability, is part of what we offer our clients. And it’s rooted in one simple idea: be kind. Treat everyone with dignity. Respect whatever expertise they bring, even if it’s not technical. Our job is to help their business succeed – not to impress them with ours.
\n\n\n\nIn 2014, I burned out — hard. I had thrown myself into social media marketing. I spent $1000’s on courses and really tried to implement the suggestions. Guest post twice a month? Check. Two hours connecting on Facebook every day? Check. Write three posts a week? Check.
\n\n\n\nI did all the things. ‘Cause they told me to.
\n\n\n\nI think it only took me three months to crash and burn. I got so sick, my body was done. I spent two full weeks in bed.
\n\n\n\nThat’s when I learned my limits. And it’s when I learned to stay focused.
\n\n\n\nToday, all decisions go through a, “What does this do to the bottom line?” framework. And by bottom line – I mean money, of course, but without sacrificing service, honesty or the trust of our clients.
\n\n\n\n\n\n\n\n\nPart of our growth meant making pricing decisions that felt terrifying.
\n
We raised prices from $20/setup to $40/hour. We lost 20% of our clients — and I expected to lose more. But the ones who stayed? They valued us. They paid happily. They referred us to others.
\n\n\n\nLater, we raised it again — to $75/hour. I braced for another drop. It never came.
\n\n\n\nInstead, I got emails thanking me! Clients said they were glad we were finally charging what we were worth! I’m still shocked about it. Who knew I’d have warm fuzzy stories on the day we raised our prices?
\n\n\n\nEventually, we raised it to $89/hour. Still below the $110–$120 that custom coders charge. Because we’re not “true coders.” We’re *practical coders.* We solve real problems, fast, for people who trust us.
\n\n\n\nAnd that trust is priceless.
\n\n\n\nThrough all of this – the growth, the pivots, the grief and healing – this little WordPress agency has offered me survival.
\n\n\n\nThe ability to work from home. To be present for my kids. To build something real while living with depression. To build a team based on trust, not hustle.
\n\n\n\nI can only recommend something that I truly believe is the best option for my clients. That’s why WordPress matters to me. It’s extensible, open-source, secure, supported, owned and portable. Currently it is the best option for my clients. And I can stand behind that.
\n\n\n\n\n\n\n\n\nA sign sits on my desk. It reads: “Who can I serve today?”
\n
That’s the constant. That’s the compass.
\n\n\n\nToday, I volunteer in the WordPress support forums – the same ones I learned from. I volunteer in the community to give back. I’m sharing my story, not to teach anyone how to succeed, but to say: it’s okay to build slow. To price based on value, not hype. To grow into leadership without chasing fortune.
\n\n\n\nThere are still chapters unfolding in my story. Some endings haven’t revealed themselves yet. But I know this much:
\n\n\n\nI stayed.
\n\n\n\nAnd through WordPress, I learned that staying — quietly, kindly, steadily — can be its own kind of success.
\n\n\n \n\nThe post The Remote Team Who Raised Me appeared first on HeroPress.
\";s: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, 09 Jul 2025 15: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:\"Cathy Mitchell\";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:98:\"WPTavern: #176 – Héctor de Prada on the Power of Local WordPress Meetups in Community Building\";s: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=197433\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:110:\"https://wptavern.com/podcast/176-hector-de-prada-on-the-power-of-local-wordpress-meetups-in-community-building\";s: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:45483:\"[00:00:19] Nathan Wrigley: Welcome to the Jukebox Podcast from WP Tavern. My name is Nathan Wrigley.
\n\n\n\nJukebox is a podcast which is dedicated to all things WordPress. The people, the events, the plugins, the blocks, the themes, and in this case the power of local WordPress Meetups in community building in Spain.
\n\n\n\nIf you’d like to subscribe to the podcast, you can do that by searching for WP Tavern in your podcast player of choice, or by going to wptavern.com/feed/podcast, and you can copy that URL into most podcast players.
\n\n\n\nIf you have a topic that you’d like us to feature on the podcast, I’m keen to hear from you and hopefully get you, or your idea, featured on the show. Head to wptavern.com/contact/jukebox, and use the form there.
\n\n\n\nSo on the podcast today we have Héctor de Prada.
\n\n\n\nHéctor is one of the founders of Modular DS, a tool for managing multiple WordPress websites. But his contributions to the WordPress community go far beyond his day job. Based in Spain, he’s been involved in creating and developing websites for years, and has immersed himself in the WordPress community, attending numerous WordCamps and Meetups in various cities.
\n\n\n\nMore recently, he’s been co-organizing the WordPress Meetup in Leon, a city in northern Spain, which has seen impressive growth and engagement since its revival after the pandemic.
\n\n\n\nHéctor shares why he volunteers his free time to organize these community events, and the impact Meetups can have, not only for individual learning, but for revitalizing local tech ecosystems.
\n\n\n\nWe discuss what makes a successful Meetup, how his team approaches event planning, rotating roles so nobody feels the pressure to attend every time, and how sponsors and local venues help make it all happen.
\n\n\n\nHéctor explains how their Meetup group draws diverse attendees, from students and marketeers, to business owners and agencies. And how they’ve experimented with differing formats and topics to keep things fresh and inclusive. Whether it’s inviting guest speakers from digital businesses, running panel forums, or focusing on networking opportunities for job seekers and entrepreneurs, he highlights the power of community in building connections that exist beyond WordPress.
\n\n\n\nWe cover everything from the practicalities of finding venues and sponsors, to managing team workflows and keeping the events welcoming and approachable.
\n\n\n\nIf you ever thought about starting a WordPress Meetup in your city, or want to bring new energy to an existing group, this episode is for you.
\n\n\n\nIf you’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’ll find all the other episodes as well.
\n\n\n\nAnd so without further delay, I bring you Héctor de Prada.
\n\n\n\nI am joined on the podcast by Héctor de Prada. Hello, Héctor.
\n\n\n\n[00:03:20] Héctor de Prada: Hello, Nathan. A pleasure to be here.
\n\n\n\n[00:03:22] Nathan Wrigley: We’re at WordCamp EU. It is in Basel. We are on the contributor day. And you are going to be giving a presentation about an experience that you have, I guess, on a monthly basis running an event. Let’s get into that in a moment. First of all, just introduce yourself, who you work for, what you do in the WordPress community outside of Meetups.
\n\n\n\n[00:03:41] Héctor de Prada: Okay, so I am Héctor de Prada. I am one of the founders of Modular DS, which is a tool to manage multiple WordPress websites. So that’s like my main occupation. But thanks to that, and also since way before, I have been involved with WordPress, creating websites, developing websites.
\n\n\n\nAnd for the past couple of years, or three years I could say, I have been also involved in the community. I’ve been in many WordCamps in Spain because as you know, in Spain, we have a lot of WordCamps. I’ve also been in many Meetups in different cities. I try to stay as much connected as I can to the community.
\n\n\n\nI also write a newsletter about the WordPress ecosystem in Spanish. And since a year and a half ago, I am also one of the co-organisers of the Meetup, and that’s what I’m going to talk about, well, Saturday in the WordCamp Europe in the talk I have.
\n\n\n\n[00:04:39] Nathan Wrigley: This is going to seem like a strange question because you know, on a very visceral level, you really understand why you do it, but I’m kind of keen to explain that to the audience. Why do you use up your free time organising WordPress events on a sort of voluntary basis? You know, you’ve given up lots of your free time, there’s no financial gain, you’re just doing it. Why do you do that?
\n\n\n\n[00:05:02] Héctor de Prada: Okay, well, I was thinking a lot about this question before and I came up with two different answers.
\n\n\n\nThe first one is that since, like I said, I have been kind of part of the community for a few years, and I have been in many events outside of my city. I saw how the WordPress communities, how it feels, all the good things that come out of it. And then one of the main things I was always thinking when I was going to these events was like, why can’t we have this in our city for the people in our city to experience this, to have this type of connections, inspiration, learning, and so on? So that’s one of the first things.
\n\n\n\nAnd then it was also mixed with, I come from a small city in the north of Spain, and one of the things, many people say inside the city and outside of the city is that we don’t have many things anymore, okay. So it’s hard to explain, but like there is not much to do, a lot of young people leaves the city. So it’s kind of like depressing mood a little bit.
\n\n\n\nSo it was also like, why don’t we try to do something in our city to try to start creating an ecosystem? And WordPress gave us the perfect excuse to also do that. Try to get people together, people in the tech world, which is what we do, talking about me and my partner, my friends, we are always talking about websites, technology, design. So it kind of all got together and we said, okay, let’s start doing the WordPress Meetups. And it’s been great so far.
\n\n\n\n[00:06:31] Nathan Wrigley: How long have you been actually involved in the one that you’re doing now?
\n\n\n\n[00:06:34] Héctor de Prada: The meet up in our city, we have been doing it for around year and a half now. So after the summer, we’ll do two years.
\n\n\n\n[00:06:40] Nathan Wrigley: I should probably say to the listeners that a Meetup, if you’ve never attended one, WordPress has a whole community outside of the software, who help create the software, but they also show up for social events and things like that. And the ones that you may have heard of are WordCamps, and they’re the big ones. That’s where we’re at right now. So they tend to be an annual thing, perhaps in a city or, we are at WordCamp Europe, which is an annual thing, which moves around Europe.
\n\n\n\nBut the Meetups, which is what we’re talking about, that’s usually bound to a city or a town or something like that, and it’s much more regular and it’s probably happening in an evening. It’s not a whole day. It’s maybe, I don’t know, six o’clock till nine o’clock, something along those lines. And presumably using local talent, using the people in the community that you’ve got, drawing them in and trying to get them to do the presentations and all of the bits and pieces.
\n\n\n\nSo if you don’t know anything about that dear listener, now you do. If there’s something close to you, if you actually log into your WordPress dashboard, there will be an area in the dashboard, if you put all of the panels on, if you turn them on, you’ll be able to see, hopefully it will geographically locate you and give you some intel as to that.
\n\n\n\nSo tell us a little bit about the one that you’ve been doing. You said it’s been going for 18 months, or at least you have been involved for 18 months.
\n\n\n\n[00:07:53] Héctor de Prada: Actually it was already working before Covid, so for a couple of years before Covid. Then it was shut down. I wasn’t involved before Covid. I didn’t even know the WordPress community before Covid. And then it was like three years stopped. Yeah, like 18 months ago, we kind of restarted the Meetup.
\n\n\n\n[00:08:13] Nathan Wrigley: So how many people typically would attend your Meetup? Because yours is quite a big one. The one that we are at at the moment is ridiculously big. You know, it’s going to have several thousand. Nobody can expect those kind of attendance numbers. That would be extraordinary. What are the kind of numbers that you are seeing on a monthly basis?
\n\n\n\n[00:08:28] Héctor de Prada: Yes, so I was checking this for the presentation I’m giving on Saturday, and we have, in this 18 months, we don’t do it every month, okay, it is more like every couple of months, because we don’t do it in the summer or during Christmas, for example, in December. So it’s kind of like six, eight, a year. And we have an average attendance of 60 people.
\n\n\n\nI know it’s pretty big because like I said, I’ve been in many other places where having like 25 people, 30 people, is already like a huge success. And that’s what we were trying to accomplish at the beginning. Like, okay, let’s try to get 20 people here, 25 people, get together. And since the beginning it’s been like, yeah, like sometimes it’s 50 people, sometimes it’s like 75 people. And for us it’s like, sometimes we don’t even know, how is it possible? But sure, it’s very fulfilling and we’re very happy about it of course.
\n\n\n\n[00:09:16] Nathan Wrigley: And how do you sort of account for that? Do you email people? Do you have like a system? So for example, a lot of the Meetups will use a platform, which is called Meetup. You can go to meetup.com, and figure all of that out. But do you use a system like that to keep in touch with people and notify them that there’s a new one coming in June or July or whatever it may be?
\n\n\n\n[00:09:35] Héctor de Prada: Yeah, we use meetup.com to create the events and send the email communications to all the people that is subscribed to the group, or has been in one of the previous Meetups. And also, we always try to get people to follow us on social media because it is where, we have like a Twitter and Instagram account. It’s where we try to advance the new Meetups and give all the information and stuff.
\n\n\n\nAnd then we try different things also to get more people to come in. For example, we go kind of old school and we print some big flyers, okay, to put it on the walls. And we put it, for example, in the university, in the buildings the city hall has for technology companies. So we put them over there just for people, when they go to work or students, when they go to the university, they will just check it out. And maybe they will feel like going. So that’s also something we do.
\n\n\n\n[00:10:25] Nathan Wrigley: And where do you actually do it? Do you have the same venue every single time, or do you tend to move around?
\n\n\n\n[00:10:30] Héctor de Prada: No, we move around. This is very important because it, I think it’s one of the most important things when you are organising any kind of event, the venue where you’re actually doing it. And we are very lucky because, even when I was telling you that in our city it seems like not many things are being done. When you actually try to do something, everybody tries to help you.
\n\n\n\nSo we have been offered many different venues from City Hall, from the university, from private companies, from the government, public buildings they have. So what we have tried to do is to do the Meetup in different places. So in case, at some point, we can do it in one of them, we will always be able to go to any of the other ones. And that has worked very well for us.
\n\n\n\n[00:11:12] Nathan Wrigley: Oh, nice, yeah. I think that’s not typical. I think usually it’s done in kind of the same venue and what have you.
\n\n\n\nMy understanding also, and I could be wrong about this, but my understanding is that the Spanish WordPress community is actually one of the healthier ones, for want of a better word. It seems to be kind of thriving. I don’t know if I’ve just heard a story and that’s not true, but is that true?
\n\n\n\n[00:11:33] Héctor de Prada: No, I think it is. I think it is definitely, well, I was talking with somebody that is organising here at WordCamp Europe, and we were accounting for WordCamps made in Spain last year. And I think it was like 12 WordCamps in one year, only in Spain, which I could say is what the rest of Europe has in one year.
\n\n\n\nSo it’s like pretty crazy. I think, we Spanish people, we just like to gather a lot and just meet each other. But also I think there are many Meetup groups in Spain that are doing a great job and have great numbers and do a lot of Meetups with really great speakers. So yeah, I would say in Spain there is a lot of community movement.
\n\n\n\n[00:12:14] Nathan Wrigley: I’m quite jealous. The part of the world where I live in the UK, Covid really had a profound impact. The Meetups kind of disappeared, and in some cases came back, but in most cases they didn’t. I think maybe the year 2025 was a bit of a watershed. There’s a few I think that maybe are on the cusp of returning.
\n\n\n\nSo it can’t just be you. I’m presuming that there’s a whole bunch of people, a team, if you like. And how does that work? How many people regularly are helping you out, and do you have, I don’t know, different roles that you perform? Like, you’re in charge of the emails, you’re in charge of the venue, you’re in charge of the snacks and whatever it may be. How many people on the team and how do you manage all that?
\n\n\n\n[00:12:49] Héctor de Prada: We are six people currently, and what we tried since the beginning was to find other people that could be complimentary to us. And like you said, we try to split responsibilities. So one of us, who is very good with social media, is the one taking charge of posting everything in social media so everybody sees what we are doing.
\n\n\n\nOther person is always in charge of the networking we do afterwards to get the catering, even the venue we have to change somewhere, because it’s somebody who has a lot of contacts in that space.
\n\n\n\nAlso somebody’s in charge of sponsors. Somebody’s in charge of creating the Meetups. Somebody’s in charge of the design.
\n\n\n\nOkay, so we try to split the responsibilities, but at the same time, and this is not so obvious, I think what we have also found very important is that, even when each one has a responsibility, we also try to rotate every once in a while. So, for example, when we started, everybody thought or supposed I was always going to be the one presenting, because I’m kind of more used to speaking in public. One of the first things we decide is that every day one of us was going to present the Meetup. So in case I’m missing or anybody else is missing, the Meetup will work exactly the same.
\n\n\n\nBecause we don’t want this to feel like an obligation, like every member of the team has to be every single Meetup no matter what, because it’s not a job. You said it. This is like a volunteer thing. We do it for the community. So if at some point something happens with life, you have to take your kids to school or anything, well, the rest of the team will be able to take charge.
\n\n\n\n[00:14:27] Nathan Wrigley: So everybody kind of rotates things around so that if somebody’s, I don’t know, unwell during that day, somebody can slot in. Yeah, that’s kind of an interesting approach.
\n\n\n\n[00:14:35] Héctor de Prada: Exactly. Yeah, the same with like organising the networking and the catering afterwards, taking charge of cleaning everything up afterwards. We try to rotate everything.
\n\n\n\n[00:14:44] Nathan Wrigley: There’s so much that goes into these events. So let’s just go through the little laundry list of things that you have to achieve. Now, you may do some of these, you may not. But I guess it’s things like booking the venue has to be done. Maybe there’s a payment that needs to be involved with that. You have to presumably have an email list. You’ve got social media accounts. You’ve got ordering the food, tidying up at the end.
\n\n\n\n[00:15:03] Héctor de Prada: You need to talk with the sponsors as well to get any merchandise they might send to you to give to the attendees. Also, you have to select the speakers and then prepare it with the speakers.
\n\n\n\n[00:15:14] Nathan Wrigley: So do you work with the speakers as well? Because my experience is that often speakers can be, if they’re new to it, they can be a little bit nervous. And so having some sort of, coaching is maybe the wrong word, but some intuition as to, yeah, you’re on the right lines. That, I think, is what our audience will like.
\n\n\n\n[00:15:27] Héctor de Prada: It depends a lot on the speaker, because it’s true that there are some speakers that are very, I’m not going to say professional, but they’re like very used to, they are experts in something and they’re very used to give talks about it. So you basically can’t tell them anything because they already know more than you do, okay, about how to do it right.
\n\n\n\nBut it’s true that one thing that we like to do a lot is that we don’t only try to do like the normal talks you might see in a WordCamp, where somebody is an expert on a field, and they just give you a talk trying to allow you to learn something. But we also like to do more experience stuff like trying to look for inspiration instead of learning.
\n\n\n\nSo for example, like you do with the podcast, nowadays I think podcasts are a trend because we like to listen and understand the stories behind people, how they are doing something, or how did they come to this? So for those kind of talks, it’s true that we kind of give them a guide. So, we would like you to talk about this.
\n\n\n\nOr sometimes if we do, the last meeting we did, it was like a forum with three different businesses, and we wanted to just talk about their experience. And what we did is try to get like the main questions we wanted them to answer. And we gave them to them previously so they could kind of prepare a little bit of what we wanted to talk about. Because they didn’t have any presentation or anything, it was just like a normal conversation, like an interview more. So in those cases, it takes much more work than if it’s just somebody with a presentation and they do their thing.
\n\n\n\n[00:16:58] Nathan Wrigley: Yeah, i’ve been to Meetups where they’ve done a whole variety of different things, not all at the same evening. So for example, they might do two presentations of, I don’t know, 45 minutes each, and then have a bit of networking in the middle.
\n\n\n\nSome places do social things where it’s just, maybe there’ll be an hour where you just do the networking and hang out. I’ve been to Meetups where they do prize giveaways and quizzes and things like that.
\n\n\n\nSo there isn’t just one model. You can sort of mix it around a little bit and offer things which the audience, I don’t know, it’s a bit more entertainment, if you like.
\n\n\n\n[00:17:29] Héctor de Prada: Of course. I think it’s very nice to try different formats, different things. Because also people, when we have a lot of, I guess like many Meetups, we have many regular people, they go to almost every Meetup, so I think it’s also good for them to try different things so it’s more like, a little bit unexpected. You get a surprise of what you are getting out of it, and it’s not always the same thing.
\n\n\n\n[00:17:51] Nathan Wrigley: Have you had things which you’ve tried maybe recently in the last six months or something that you just thought, oh, let’s give that a go. And if so, maybe you could share that.
\n\n\n\n[00:17:59] Héctor de Prada: Well, the last one we did, at the beginning it was a little, it wasn’t so much about the format because we had already tried that because it was like, yeah, like four people from three different businesses talking about how they achieved what they have done. But the crazy thing is it was the topic about it. Because it was three different gastronomic business, which at the first time you could say, okay, so what does this have to do with WordPress?
\n\n\n\nBut it was very interesting because those three businesses, it was a social media influencer only talking about restaurants, a food influencer. Then it was a restaurant that has digitalised all the experience inside the restaurant. So you get to the restaurant and you order the food with your phone, everything, so no people around you or anything.
\n\n\n\nAnd then the other one was an e-commerce site made with WooCommerce of one of the biggest meat sellers in Spain. It’s a big restaurant just to eat meat. The type of meat, like you pay a lot for that. And they are really crushing it, like with their e-commerce made with WooCommerce.
\n\n\n\nSo it was all very digital, but at the same time, the topic was like gastronomic and at the beginning people was like, doesn’t feel like a WordPress Meetup. It was amazing. People loved it.
\n\n\n\n[00:19:08] Nathan Wrigley: It worked.
\n\n\n\n[00:19:08] Héctor de Prada: Yes, yes. Because their stories were so interesting and how they kind of mixed with the technology and how it started, the pains they had at the beginning, trying to introduce that technology and how it has now changed their business. It was super interesting.
\n\n\n\n[00:19:23] Nathan Wrigley: How did you come up with the idea of that particular one? Because that’s so curious. Because usually it is, there’s a strong WordPress focus to the ones that I’ve been, you know, there’s a presentation, it’s WordPress, there’s a Lightning Talk, it’s WordPress, there’s another presentation, it’s WordPress.
\n\n\n\nBut that one, there’s a thread running through it, which is technology. Sounds like the audience really liked it. And there was obviously that WooCommerce bit at the end that you mentioned. How did you even conceive of that topic?
\n\n\n\n[00:19:47] Héctor de Prada: Yeah. Well, it wasn’t only that WooCommerce, like the three of them had started somehow the business with some WordPress, a WordPress website, a WordPress blog, a WooCommerce, okay. It wasn’t the main focus of the talk, but they all had something to do. And that wasn’t intentional, like it just came out because I guess WordPress, you want it or not, it is behind most of the worldwide web. So it was very nice.
\n\n\n\nBut one thing talk about in the presentation here at WordCamp Europe is that I think that WordPress is what unites us, but I don’t think it should be what separates us. So I think, thanks to WordPress powering like 40 something percent of the worldwide web, it allows us to talk about almost everything related to the digital world. It will always be somehow related to WordPress.
\n\n\n\nSo it’s true that we don’t go too deep into the technical WordPress part. It’s always somehow related, but we feel like our audience is not like WordPress experts, to say it like that. We have a lot of students, marketing students, marketing agencies, entrepreneurs. And then we talk more about like the digital business part, the online marketing. It’s always somehow related to WordPress, but it has worked for us very well to kind of get a broader view and not go so specific, to get also like more attendees coming, and they all feel like they understand, that they can apply that to themselves.
\n\n\n\nOf course we always talk a lot about WordPress. It’s a WordPress Meetup. But I think that’s also important because even us that we are so deep in the community, I feel like WordPress is like my main thought like 24/7 almost. But for most people outside the community, it is not like that. And I think one important thing in WordPress is that we try to get as many people to the community as possible, and they don’t have to be such experts.
\n\n\n\n[00:21:36] Nathan Wrigley: Yeah, it’s kind of interesting because if you show up and you did two presentations back to back and it was all about, I don’t know, WP-CLI, followed by some other very technical thing, it may be that half of the audience, maybe more, maybe 70% of the audience would think, I don’t really understand that. And managing that is quite difficult.
\n\n\n\nSo mixing it up a little bit and making sure it’s not too technical for one of the evenings. Maybe you have a technical one now and again, but you’ve got to think a lot about the audience and what they are prepared to consume.
\n\n\n\nSo, pivoting slightly, I guess this cannot be entirely free. So I know that you give your labour for nothing. But presumably there is a cost somewhere along the line, whether that’s for snacks or whether it’s for hiring of the venue. How do you finance your Meetup? How does that work?
\n\n\n\n[00:22:22] Héctor de Prada: Yeah, we have sponsors that help us with the cost. We basically, our costs are only the flyers, which is like almost nothing because we don’t do that many, and then the food and drinks for the networking. So we always try to have two sponsors. One, it’s always a local company, and then one is a workers community company.
\n\n\n\nI think in Spain at least, because I don’t know outside of Spain, but there are many companies, mostly hosting companies that really want to sponsor these kind of events. And since the beginning, we have had a lot of offers of companies trying to sponsor. I guess it’s also important that we have good attendee numbers and stuff. But I think they sponsor most of the Meetups in Spain. That’s what we use to cover the cost.
\n\n\n\n[00:23:08] Nathan Wrigley: How does the sponsorship actually work? Because obviously they couldn’t realistically be paying you directly and then you then move the money to buying the snacks and the pizzas or whatever it may be. How does that sponsorship actually work? Who is the person that’s receiving the money and distributing it and so on?
\n\n\n\n[00:23:23] Héctor de Prada: Well, normally what we do is that, since our costs are very located in, I would say 90% or maybe 95% of the budget goes to the food and drinks for the catering, which we have also tried different companies and different stuff. So they give us a bill and then we’ll send it to the sponsors so they pay the bill. I know it’s not the easiest way. Sometimes because of the company requirements of the food, we have to give the money first and then ask the sponsor to give us the money.
\n\n\n\nWell, I guess as long as you are, for example, us of course, in the team, as long as you are completely transparent and you show where all the money goes and what is being spent. At least for us, I’m sure for you guys in London, for example, it has to be way different because it’s another city, other kind of prices and everything. But for us, the money sums are really, really small. Even when we have a 60 person Meetup, the money is really small. It just gives you for that, for like the food and that. We are still waiting to try to do some T-shirts for the team, but we haven’t still gotten the money for that.
\n\n\n\n[00:24:27] Nathan Wrigley: So you tend to get a sponsor on board to sponsor a thing, a component of the Meetup. So it might be that this week hosting company X is sponsoring the food. Or such and such a company is sponsoring the venue. It’s like in one door out the other. Somebody on your team will pay for the food, but then send the receipt, the bill if you like, to the sponsor, who will then reimburse them for all of that.
\n\n\n\n[00:24:50] Héctor de Prada: Yeah, could be. For example, we have never paid for the venue. We have always had agreements, it’s always free for us so far. Yeah, it’s basically always the food. And the sponsor, even the local company has changed a few times.
\n\n\n\nBut for example, I would say the WordPress community company, that for us is a hosting company, that also sponsors many WordCamps in Spain, we have always had the same one because since the beginning they told us, we want to sponsor, and as long as you keep doing it, we will send you the money or give us the bills.
\n\n\n\nAnd also the sponsors we’ve had, they always give us gifts or merchandise for the attendees or maybe to give something like a raffle and then somebody can win a prize or something better. Or they even give us gifts for the speakers as well. So they always treat us very good.
\n\n\n\n[00:25:37] Nathan Wrigley: So is there like a magic number that makes the event work? So you said that sometimes 70, sometimes 55, something like that. I mean, they seem like pretty good numbers. If you stand in front of that many people, that can be quite intimidating, you know, that’s a lot. Obviously other places will have smaller numbers. Maybe some places will have bigger numbers.
\n\n\n\nIs there some feeling in your head about, if the numbers dipped down to 20, it’s not worth doing it anymore or anything like that? Do you have any of those thoughts? Because I know that a lot of people who’ve put these events on before, they get quite demoralized because they begin it, three people show up and they do it again, and then two people show up and maybe five people show up. And it kind of seems like a lot of effort. There’s not much interest. I’m trying my hardest, I’m doing all the things which I think are the right things to do. Any thoughts on that?
\n\n\n\n[00:26:22] Héctor de Prada: Yeah, well, I think it’s definitely challenging because I’ve seen, like you said, many cities where this is the case. It’s really hard for them to get people to attend. I think the main focus for us, when we got all the team together, we always try to think about new things to bring new people in. Maybe talking with the teachers at the university, or maybe going to a business group to present them the Meetup, or maybe get a collaboration with a social media influencer in the city, so he can talk about the Meetups, even be a speaker and then post it on socials. So it is definitely, I think it’s the most important thing.
\n\n\n\nIn my experience, i’ve been in many Meetups and when you are more than 20 people, I could say, it already feels pretty good. Because more than 20 people, it’s already a good number of people to network, to talk, to give a presentation in front of. So more than 20 people, I think it’s already a good number. When you go below 20, below 10, I guess it’s pretty hard.
\n\n\n\n[00:27:19] Nathan Wrigley: You sort of feel that it’s a lot of work and, you know, it’s difficult to justify that work if the interest is not there.
\n\n\n\nSo speaking of that then, is there a support, like a wider WordPress Meetup support network? So where you can go and dip in for ideas, advice. Obviously if you’re listening to this podcast, that’s one avenue you might get it. But is there a place that you can go, like a Slack channel or a wordpress.org forum or something like that where you could go and gain advice, or some leadership from people like you who’ve been doing this before?
\n\n\n\n[00:27:48] Héctor de Prada: Yeah, well, there are different places. In the day to day, we have the Slack channel, for example, in the Spanish community inside the WordPress Slack, we have a channel for the Spanish Meetups. So every time we have a problem, we had one a few weeks ago with the Meetup platform, for example, or things like that. We always go there and there is always somebody from the community team replying, and telling you, and helping you, whatever you need.
\n\n\n\nAlso I think it’s very important. It was huge for us at the beginning, before we started doing the Meetup of our city, again, when we started now 18 months ago, it was very helpful to go to WordCamps and in the Contributor Day, like today, go to the community tables and talk with the people that has experience organising Meetups. And they were the ones, for example, when we started it was like super easy because people like Rocío Valdivia, Juan Hernando, who are very deep into the community team for many years, they have been there. They just help us do all the process, all we needed to know. They gave us all the basic advice to know, screwed up at the beginning.
\n\n\n\nSo I would say, if somebody’s looking to organise a Meetup, the first thing they should do is to go to a WordCamp event, or maybe a Meetup in a different city, and talk with people that is organising a Meetup to just get some of the real experience, because I think that’s invaluable.
\n\n\n\n[00:29:08] Nathan Wrigley: How do your team actually meet up then? Do you have like a regular weekly gathering, like a session where you all gather on zoom or something like that?
\n\n\n\n[00:29:16] Héctor de Prada: It’s more like on a monthly basis. So since we do Meetups every two months, let’s say on average. So one month we do the Meetup, and then the next month we got all together. It may be all together on the same place, because since it’s a small city, we are all kind of close to each other, or it might be on Zoom. And then we do like the feedback of the previous Meetup to talk about what went well, what could be improved, and at the same time to prepare the next Meetup.
\n\n\n\nSo it’s kind of one month, Meetup, one month, all get together to talk about it. Next month, Meetup, next month, get together to talk about it.
\n\n\n\nIn one hour we can talk about the previous Meetup and organise the next one. And I’m not talking about organise everything, I’m talking about kind of like divide the responsibilities and say, okay, so I’m going to do this, you’re going to do this. And then on a WhatsApp group, we are just letting each other know like, okay, I already booked the venue. Okay, I already talked with the speaker, and he said, okay. Okay, I already designed the flyer or the image and we are good to go, and things like that.
\n\n\n\n[00:30:14] Nathan Wrigley: From what you’re saying, it sounds like it’s kind of got a homely, family sort of vibe to it.
\n\n\n\n[00:30:20] Héctor de Prada: Yes. We try to have that casual vibe, like friendship vibe. Like, even in the Meetups, when people come at the beginning when other people on the team was speaking at the beginning, like presenting the Meetup, and talking a little bit about what is the WordPress community, or what do we do here, what type of events are in the WordPress community and everything. They were a little bit nervous about it because they haven’t done it before or seen it as many times as I have seen it.
\n\n\n\nAnd I would always tell them, this is like a friend group. If you say something wrong, you just say naturally, okay, this is my mistake. I should have said that this way and not that way, okay. And just do it in a casual vibe. Like, most of the people, like I said, since they’re regular people, we kind of know everybody. We all know each other because we do, if we do like one hour talk, then we always have like one hour, or hour and a half, of networking. So almost everybody knows each other.
\n\n\n\nSo it’s kind of more like, yeah, like friendship, not family, but friendship. We try to do that also so everybody who comes feels comfortable and not afraid to speak with anybody or even to ask something during the Meetup or anything. Because it feels really like it’s just a group of friends and you are part of those friends and everybody’s welcome.
\n\n\n\n[00:31:35] Nathan Wrigley: Yeah, that feels really nice. The Meetup that I attend, we also have this idea of kind of networking and that seems to be quite a powerful thing as well. So people don’t just show up to make friends, which is nice. They don’t just show up to watch the presentations. Again, it’s nice, but they also show up, and there’s an opportunity to share stories about, I’m looking for work, I’ve got a job that I need to be filled.
\n\n\n\nAnd just the other month we had a story about somebody who, you know, started a new job because of a conversation that had happened at that event. Just wondered if that kind of thing was something that you have noticed happens with yours as well?
\n\n\n\n[00:32:09] Héctor de Prada: Definitely, definitely. One of the first things I was telling, for example, in the first Meetup we have, I think a few students came from the university. And I was like, this is where you have to be because you’re studying for marketing, and here there are like, I don’t know, like seven or eight agency owners that are going to be looking for the next people to work on their marketing team. So this is the perfect place. You are not going to meet them any other place. You’re not going to go on the street and just cross them all. So you have a marketing agency. I want to work on a marketing agency. No, it’s not going to happen.
\n\n\n\nBut here you just come here for free, you learn something, and also you can talk to these people directly. You can tell them about your life. They can tell you about theirs. Maybe there is a match. So yeah, I hope, I know a couple of stories that have worked, but I hope, I really hope it will be like the best thing for the Meetup that a lot of good things, it’ll either be collaborations, hirings, partnerships, anything come out of the Meetup. Because that would be great for the ecosystem, for the people in our city, for the people attending the Meetups. So that would make us so, so happy.
\n\n\n\n[00:33:11] Nathan Wrigley: It’s one of those things that I think many people might find it a little bit nervous to go for the first time. You know, just the idea of sitting in a room full of strangers. You can do just that. You can sit at the back and you don’t have to contribute. You don’t have to put your hand up and say anything. So the idea of just showing up, lurking maybe a few times, just seeing what the whole situation is like. And you never know, something completely revolutionary might happen.
\n\n\n\n[00:33:33] Héctor de Prada: Yeah. There is always, sometimes when you go to the networking part, and you don’t know anybody, the normal thing is that you probably go to a corner just by yourself, okay. Or just close to a wall and just stay there. But the normal thing in this type of events, or I would say almost any event, is that you’re going to find other people next to the wall, next to you, because they also don’t know anybody.
\n\n\n\nAnd those are the first people you’re going to meet. And you’re going to create that relationship. And from that you’re going to start moving to other groups. Somebody’s going to come that knows one of you. And that’s how it starts. So it might feel intimidating at the beginning, but then once you get into it, also, this is especially in the WordPress community, it’s very easy to start to know people.
\n\n\n\n[00:34:17] Nathan Wrigley: Yeah. It’s just occurred to me, Héctor, that we’re sort of 40 minutes in and I haven’t said, where is it? Where is your Meetup?
\n\n\n\n[00:34:24] Héctor de Prada: Okay, yeah, true. Well, it’s in the city of León, which is in the north of Spain. It’s a small city in the north of Spain.
\n\n\n\n[00:34:31] Nathan Wrigley: And I will make sure, when I put the show notes together for this episode, if you go to wptavern.com and search for the episode with Héctor in it, I’ll make sure to link any resources that you put in my way. I’ll make sure to link so that if you are in that neck of the woods, you can check it out, but also I’ll make sure to link to other more wider resources.
\n\n\n\n[00:34:50] Héctor de Prada: If somebody that listens to this at any point thinks that me or anybody on our Meetup group can help them, if they are trying to create a Meetup, or doing a Meetup and trying to change something, please reach out to us and of course we’ll be happy to talk with anybody, if our experience can help in any way.
\n\n\n\n[00:35:10] Nathan Wrigley: That’s perfect. I will make sure to put some links to your bio as well. That’s absolutely wonderful. Héctor de Prada, thank you so much for chatting me today.
\n\n\n\n[00:35:17] Héctor de Prada: Thank you, Nathan.
\nOn the podcast today we have Héctor de Prada.
\n\n\n\nHéctor is one of the founders of Modular DS, a tool for managing multiple WordPress websites, but his contributions to the WordPress community go far beyond his day job. Based in Spain, he’s been involved in creating and developing websites for years, and has immersed himself in the WordPress community, attending numerous WordCamps and Meetups in various cities. More recently, he’s been co-organising the WordPress Meetup in León, a city in the north of Spain, which has seen impressive growth and engagement since its revival after the pandemic.
\n\n\n\nHéctor shares why he volunteers his free time to organise these community events, and the impact Meetups can have, not only for individual learning, but for revitalising local tech ecosystems.
\n\n\n\nWe discuss what makes a successful Meetup, how his team approaches event planning, rotating roles so nobody feels the pressure to attend every time, and how sponsors and local venues help make it all happen.
\n\n\n\nHéctor explains how their Meetup group draws diverse attendees, from students and marketers to business owners and agencies, and how they’ve experimented with differing formats and topics to keep things fresh and inclusive. Whether it’s inviting guest speakers from digital businesses, running panel forums, or focusing on networking opportunities for job seekers and entrepreneurs, he highlights the power of community in building connections that extend beyond WordPress.
\n\n\n\nWe cover everything from the practicalities of finding venues and sponsors, to managing team workflows and keeping the events welcoming and approachable.
\n\n\n\nIf you’ve ever thought about starting a WordPress Meetup in your city, or want to bring new energy to an existing group, this episode is for you.
\n\n\n\nHéctor’s presentation at WordCamp Europe 2025: Tips for hosting a successful WP meetup in your city
\n\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:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 09 Jul 2025 14:00:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Nathan Wrigley\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i: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:49:\"Open Channels FM: What Is Fractional Sponsorship?\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:32:\"https://openchannels.fm/?p=99195\";s: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/what-is-fractional-sponsorship/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:386:\"As described by longtime contributor Tammie Lister in a recent episode of Open Talk on Open Channels, fractional sponsorship is when a contributor is sponsored part-time by multiple organizations (or individuals). Rather than being fully funded by one company or acting as a purely unpaid volunteer, fractional contributors assemble support from several interested parties. As […]\";s: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, 09 Jul 2025 10:46: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:\"\";}}}}}}}}}}}}}}}}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:\"Mon, 11 Aug 2025 21:45:25 GMT\";s:12:\"content-type\";s:8:\"text/xml\";s:13:\"last-modified\";s:29:\"Mon, 11 Aug 2025 21:30:19 GMT\";s:4:\"vary\";s:15:\"Accept-Encoding\";s:15:\"x-frame-options\";s:10:\"SAMEORIGIN\";s:16:\"content-encoding\";s:2:\"br\";s:7:\"alt-svc\";s:19:\"h3=\":443\"; ma=86400\";s:4:\"x-nc\";s:9:\"HIT ord 2\";}}s:5:\"build\";i:1754506515;s:21:\"cache_expiration_time\";i:1754991925;s:23:\"__cache_expiration_time\";i:1754991925;}','off'), +(185,'_transient_timeout_feed_mod_d117b5738fbd35bd8c0391cda1f2b5d9','1754991925','off'), +(186,'_transient_feed_mod_d117b5738fbd35bd8c0391cda1f2b5d9','1754948725','off'), +(187,'_transient_timeout_dash_v2_88ae138922fe95674369b1cb3d215a2b','1754991925','off'), +(188,'_transient_dash_v2_88ae138922fe95674369b1cb3d215a2b',' ','off'), +(189,'_site_transient_timeout_available_translations','1754959550','off'), +(190,'_site_transient_available_translations','a:131:{s:2:\"af\";a:8:{s:8:\"language\";s:2:\"af\";s:7:\"version\";s:8:\"5.8-beta\";s:7:\"updated\";s:19:\"2021-05-13 15:59:22\";s:12:\"english_name\";s:9:\"Afrikaans\";s:11:\"native_name\";s:9:\"Afrikaans\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/5.8-beta/af.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"af\";i:2;s:3:\"afr\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:10:\"Gaan voort\";}}s:2:\"am\";a:8:{s:8:\"language\";s:2:\"am\";s:7:\"version\";s:6:\"6.0.10\";s:7:\"updated\";s:19:\"2022-09-29 20:43:49\";s:12:\"english_name\";s:7:\"Amharic\";s:11:\"native_name\";s:12:\"አማርኛ\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.0.10/am.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"am\";i:2;s:3:\"amh\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:9:\"ቀጥል\";}}s:3:\"arg\";a:8:{s:8:\"language\";s:3:\"arg\";s:7:\"version\";s:8:\"6.2-beta\";s:7:\"updated\";s:19:\"2022-09-22 16:46:56\";s:12:\"english_name\";s:9:\"Aragonese\";s:11:\"native_name\";s:9:\"Aragonés\";s:7:\"package\";s:65:\"https://downloads.wordpress.org/translation/core/6.2-beta/arg.zip\";s:3:\"iso\";a:3:{i:1;s:2:\"an\";i:2;s:3:\"arg\";i:3;s:3:\"arg\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:8:\"Continar\";}}s:2:\"ar\";a:8:{s:8:\"language\";s:2:\"ar\";s:7:\"version\";s:5:\"6.4.6\";s:7:\"updated\";s:19:\"2024-02-13 12:49:38\";s:12:\"english_name\";s:6:\"Arabic\";s:11:\"native_name\";s:14:\"العربية\";s:7:\"package\";s:61:\"https://downloads.wordpress.org/translation/core/6.4.6/ar.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"ar\";i:2;s:3:\"ara\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:12:\"متابعة\";}}s:3:\"ary\";a:8:{s:8:\"language\";s:3:\"ary\";s:7:\"version\";s:6:\"4.8.26\";s:7:\"updated\";s:19:\"2017-01-26 15:42:35\";s:12:\"english_name\";s:15:\"Moroccan Arabic\";s:11:\"native_name\";s:31:\"العربية المغربية\";s:7:\"package\";s:63:\"https://downloads.wordpress.org/translation/core/4.8.26/ary.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"ar\";i:3;s:3:\"ary\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:16:\"المتابعة\";}}s:2:\"as\";a:8:{s:8:\"language\";s:2:\"as\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-07-10 08:09:09\";s:12:\"english_name\";s:8:\"Assamese\";s:11:\"native_name\";s:21:\"অসমীয়া\";s:7:\"package\";s:61:\"https://downloads.wordpress.org/translation/core/6.8.2/as.zip\";s:3:\"iso\";a:3:{i:1;s:2:\"as\";i:2;s:3:\"asm\";i:3;s:3:\"asm\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:8:\"Continue\";}}s:3:\"azb\";a:8:{s:8:\"language\";s:3:\"azb\";s:7:\"version\";s:5:\"6.4.6\";s:7:\"updated\";s:19:\"2024-01-19 08:58:31\";s:12:\"english_name\";s:17:\"South Azerbaijani\";s:11:\"native_name\";s:29:\"گؤنئی آذربایجان\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.4.6/azb.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"az\";i:3;s:3:\"azb\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:8:\"Continue\";}}s:2:\"az\";a:8:{s:8:\"language\";s:2:\"az\";s:7:\"version\";s:5:\"4.7.2\";s:7:\"updated\";s:19:\"2016-11-06 00:09:27\";s:12:\"english_name\";s:11:\"Azerbaijani\";s:11:\"native_name\";s:16:\"Azərbaycan dili\";s:7:\"package\";s:61:\"https://downloads.wordpress.org/translation/core/4.7.2/az.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"az\";i:2;s:3:\"aze\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:5:\"Davam\";}}s:3:\"bel\";a:8:{s:8:\"language\";s:3:\"bel\";s:7:\"version\";s:6:\"4.9.27\";s:7:\"updated\";s:19:\"2024-12-26 00:37:42\";s:12:\"english_name\";s:10:\"Belarusian\";s:11:\"native_name\";s:29:\"Беларуская мова\";s:7:\"package\";s:63:\"https://downloads.wordpress.org/translation/core/4.9.27/bel.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"be\";i:2;s:3:\"bel\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:20:\"Працягнуць\";}}s:5:\"bg_BG\";a:8:{s:8:\"language\";s:5:\"bg_BG\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-06-26 09:35:39\";s:12:\"english_name\";s:9:\"Bulgarian\";s:11:\"native_name\";s:18:\"Български\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.8.2/bg_BG.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"bg\";i:2;s:3:\"bul\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:12:\"Напред\";}}s:5:\"bn_BD\";a:8:{s:8:\"language\";s:5:\"bn_BD\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-07-01 14:03:28\";s:12:\"english_name\";s:20:\"Bengali (Bangladesh)\";s:11:\"native_name\";s:15:\"বাংলা\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.8.2/bn_BD.zip\";s:3:\"iso\";a:1:{i:1;s:2:\"bn\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:28:\"চালিয়ে যান\";}}s:2:\"bo\";a:8:{s:8:\"language\";s:2:\"bo\";s:7:\"version\";s:8:\"5.8-beta\";s:7:\"updated\";s:19:\"2020-10-30 03:24:38\";s:12:\"english_name\";s:7:\"Tibetan\";s:11:\"native_name\";s:21:\"བོད་ཡིག\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/5.8-beta/bo.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"bo\";i:2;s:3:\"tib\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:33:\"མུ་མཐུད་དུ།\";}}s:5:\"bs_BA\";a:8:{s:8:\"language\";s:5:\"bs_BA\";s:7:\"version\";s:5:\"6.2.7\";s:7:\"updated\";s:19:\"2023-02-22 20:45:53\";s:12:\"english_name\";s:7:\"Bosnian\";s:11:\"native_name\";s:8:\"Bosanski\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.2.7/bs_BA.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"bs\";i:2;s:3:\"bos\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:7:\"Nastavi\";}}s:2:\"ca\";a:8:{s:8:\"language\";s:2:\"ca\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-07-10 13:56:56\";s:12:\"english_name\";s:7:\"Catalan\";s:11:\"native_name\";s:7:\"Català\";s:7:\"package\";s:61:\"https://downloads.wordpress.org/translation/core/6.8.2/ca.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"ca\";i:2;s:3:\"cat\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:8:\"Continua\";}}s:3:\"ceb\";a:8:{s:8:\"language\";s:3:\"ceb\";s:7:\"version\";s:5:\"4.7.2\";s:7:\"updated\";s:19:\"2016-03-02 17:25:51\";s:12:\"english_name\";s:7:\"Cebuano\";s:11:\"native_name\";s:7:\"Cebuano\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/4.7.2/ceb.zip\";s:3:\"iso\";a:2:{i:2;s:3:\"ceb\";i:3;s:3:\"ceb\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:7:\"Padayun\";}}s:5:\"cs_CZ\";a:8:{s:8:\"language\";s:5:\"cs_CZ\";s:7:\"version\";s:5:\"6.7.3\";s:7:\"updated\";s:19:\"2025-05-15 15:31:31\";s:12:\"english_name\";s:5:\"Czech\";s:11:\"native_name\";s:9:\"Čeština\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.7.3/cs_CZ.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"cs\";i:2;s:3:\"ces\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:11:\"Pokračovat\";}}s:2:\"cy\";a:8:{s:8:\"language\";s:2:\"cy\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-07-11 16:48:51\";s:12:\"english_name\";s:5:\"Welsh\";s:11:\"native_name\";s:7:\"Cymraeg\";s:7:\"package\";s:61:\"https://downloads.wordpress.org/translation/core/6.8.2/cy.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"cy\";i:2;s:3:\"cym\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:6:\"Parhau\";}}s:5:\"da_DK\";a:8:{s:8:\"language\";s:5:\"da_DK\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-07-10 07:10:07\";s:12:\"english_name\";s:6:\"Danish\";s:11:\"native_name\";s:5:\"Dansk\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.8.2/da_DK.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"da\";i:2;s:3:\"dan\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:8:\"Fortsæt\";}}s:5:\"de_AT\";a:8:{s:8:\"language\";s:5:\"de_AT\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-06-05 10:10:20\";s:12:\"english_name\";s:16:\"German (Austria)\";s:11:\"native_name\";s:21:\"Deutsch (Österreich)\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.8.2/de_AT.zip\";s:3:\"iso\";a:1:{i:1;s:2:\"de\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:6:\"Weiter\";}}s:5:\"de_CH\";a:8:{s:8:\"language\";s:5:\"de_CH\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-07-28 10:25:03\";s:12:\"english_name\";s:20:\"German (Switzerland)\";s:11:\"native_name\";s:17:\"Deutsch (Schweiz)\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.8.2/de_CH.zip\";s:3:\"iso\";a:1:{i:1;s:2:\"de\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:6:\"Weiter\";}}s:14:\"de_CH_informal\";a:8:{s:8:\"language\";s:14:\"de_CH_informal\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-07-28 10:25:24\";s:12:\"english_name\";s:30:\"German (Switzerland, Informal)\";s:11:\"native_name\";s:21:\"Deutsch (Schweiz, Du)\";s:7:\"package\";s:73:\"https://downloads.wordpress.org/translation/core/6.8.2/de_CH_informal.zip\";s:3:\"iso\";a:1:{i:1;s:2:\"de\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:6:\"Weiter\";}}s:5:\"de_DE\";a:8:{s:8:\"language\";s:5:\"de_DE\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-08-10 19:49:06\";s:12:\"english_name\";s:6:\"German\";s:11:\"native_name\";s:7:\"Deutsch\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.8.2/de_DE.zip\";s:3:\"iso\";a:1:{i:1;s:2:\"de\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:6:\"Weiter\";}}s:12:\"de_DE_formal\";a:8:{s:8:\"language\";s:12:\"de_DE_formal\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-08-10 19:52:52\";s:12:\"english_name\";s:15:\"German (Formal)\";s:11:\"native_name\";s:13:\"Deutsch (Sie)\";s:7:\"package\";s:71:\"https://downloads.wordpress.org/translation/core/6.8.2/de_DE_formal.zip\";s:3:\"iso\";a:1:{i:1;s:2:\"de\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:6:\"Weiter\";}}s:3:\"dsb\";a:8:{s:8:\"language\";s:3:\"dsb\";s:7:\"version\";s:5:\"6.2.7\";s:7:\"updated\";s:19:\"2022-07-16 12:13:09\";s:12:\"english_name\";s:13:\"Lower Sorbian\";s:11:\"native_name\";s:16:\"Dolnoserbšćina\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.2.7/dsb.zip\";s:3:\"iso\";a:2:{i:2;s:3:\"dsb\";i:3;s:3:\"dsb\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:5:\"Dalej\";}}s:3:\"dzo\";a:8:{s:8:\"language\";s:3:\"dzo\";s:7:\"version\";s:5:\"4.7.2\";s:7:\"updated\";s:19:\"2016-06-29 08:59:03\";s:12:\"english_name\";s:8:\"Dzongkha\";s:11:\"native_name\";s:18:\"རྫོང་ཁ\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/4.7.2/dzo.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"dz\";i:2;s:3:\"dzo\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:8:\"Continue\";}}s:2:\"el\";a:8:{s:8:\"language\";s:2:\"el\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-07-21 14:54:13\";s:12:\"english_name\";s:5:\"Greek\";s:11:\"native_name\";s:16:\"Ελληνικά\";s:7:\"package\";s:61:\"https://downloads.wordpress.org/translation/core/6.8.2/el.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"el\";i:2;s:3:\"ell\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:16:\"Συνέχεια\";}}s:5:\"en_AU\";a:8:{s:8:\"language\";s:5:\"en_AU\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-05-22 08:43:39\";s:12:\"english_name\";s:19:\"English (Australia)\";s:11:\"native_name\";s:19:\"English (Australia)\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.8.2/en_AU.zip\";s:3:\"iso\";a:3:{i:1;s:2:\"en\";i:2;s:3:\"eng\";i:3;s:3:\"eng\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:8:\"Continue\";}}s:5:\"en_GB\";a:8:{s:8:\"language\";s:5:\"en_GB\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-05-25 12:26:44\";s:12:\"english_name\";s:12:\"English (UK)\";s:11:\"native_name\";s:12:\"English (UK)\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.8.2/en_GB.zip\";s:3:\"iso\";a:3:{i:1;s:2:\"en\";i:2;s:3:\"eng\";i:3;s:3:\"eng\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:8:\"Continue\";}}s:5:\"en_ZA\";a:8:{s:8:\"language\";s:5:\"en_ZA\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-07-29 13:22:09\";s:12:\"english_name\";s:22:\"English (South Africa)\";s:11:\"native_name\";s:22:\"English (South Africa)\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.8.2/en_ZA.zip\";s:3:\"iso\";a:3:{i:1;s:2:\"en\";i:2;s:3:\"eng\";i:3;s:3:\"eng\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:8:\"Continue\";}}s:5:\"en_CA\";a:8:{s:8:\"language\";s:5:\"en_CA\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-07-30 21:52:12\";s:12:\"english_name\";s:16:\"English (Canada)\";s:11:\"native_name\";s:16:\"English (Canada)\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.8.2/en_CA.zip\";s:3:\"iso\";a:3:{i:1;s:2:\"en\";i:2;s:3:\"eng\";i:3;s:3:\"eng\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:8:\"Continue\";}}s:5:\"en_NZ\";a:8:{s:8:\"language\";s:5:\"en_NZ\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-05-22 11:56:25\";s:12:\"english_name\";s:21:\"English (New Zealand)\";s:11:\"native_name\";s:21:\"English (New Zealand)\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.8.2/en_NZ.zip\";s:3:\"iso\";a:3:{i:1;s:2:\"en\";i:2;s:3:\"eng\";i:3;s:3:\"eng\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:8:\"Continue\";}}s:2:\"eo\";a:8:{s:8:\"language\";s:2:\"eo\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-06-11 09:05:01\";s:12:\"english_name\";s:9:\"Esperanto\";s:11:\"native_name\";s:9:\"Esperanto\";s:7:\"package\";s:61:\"https://downloads.wordpress.org/translation/core/6.8.2/eo.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"eo\";i:2;s:3:\"epo\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:8:\"Daŭrigi\";}}s:5:\"es_CR\";a:8:{s:8:\"language\";s:5:\"es_CR\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-05-26 16:45:13\";s:12:\"english_name\";s:20:\"Spanish (Costa Rica)\";s:11:\"native_name\";s:22:\"Español de Costa Rica\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.8.2/es_CR.zip\";s:3:\"iso\";a:3:{i:1;s:2:\"es\";i:2;s:3:\"spa\";i:3;s:3:\"spa\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:9:\"Continuar\";}}s:5:\"es_PE\";a:8:{s:8:\"language\";s:5:\"es_PE\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2024-10-16 21:04:12\";s:12:\"english_name\";s:14:\"Spanish (Peru)\";s:11:\"native_name\";s:17:\"Español de Perú\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.8.2/es_PE.zip\";s:3:\"iso\";a:3:{i:1;s:2:\"es\";i:2;s:3:\"spa\";i:3;s:3:\"spa\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:9:\"Continuar\";}}s:5:\"es_MX\";a:8:{s:8:\"language\";s:5:\"es_MX\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-06-05 19:07:27\";s:12:\"english_name\";s:16:\"Spanish (Mexico)\";s:11:\"native_name\";s:19:\"Español de México\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.8.2/es_MX.zip\";s:3:\"iso\";a:3:{i:1;s:2:\"es\";i:2;s:3:\"spa\";i:3;s:3:\"spa\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:9:\"Continuar\";}}s:5:\"es_VE\";a:8:{s:8:\"language\";s:5:\"es_VE\";s:7:\"version\";s:5:\"6.4.6\";s:7:\"updated\";s:19:\"2023-10-16 16:00:04\";s:12:\"english_name\";s:19:\"Spanish (Venezuela)\";s:11:\"native_name\";s:21:\"Español de Venezuela\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.4.6/es_VE.zip\";s:3:\"iso\";a:3:{i:1;s:2:\"es\";i:2;s:3:\"spa\";i:3;s:3:\"spa\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:9:\"Continuar\";}}s:5:\"es_EC\";a:8:{s:8:\"language\";s:5:\"es_EC\";s:7:\"version\";s:5:\"6.2.7\";s:7:\"updated\";s:19:\"2023-04-21 13:32:10\";s:12:\"english_name\";s:17:\"Spanish (Ecuador)\";s:11:\"native_name\";s:19:\"Español de Ecuador\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.2.7/es_EC.zip\";s:3:\"iso\";a:3:{i:1;s:2:\"es\";i:2;s:3:\"spa\";i:3;s:3:\"spa\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:9:\"Continuar\";}}s:5:\"es_DO\";a:8:{s:8:\"language\";s:5:\"es_DO\";s:7:\"version\";s:6:\"5.8.11\";s:7:\"updated\";s:19:\"2021-10-08 14:32:50\";s:12:\"english_name\";s:28:\"Spanish (Dominican Republic)\";s:11:\"native_name\";s:33:\"Español de República Dominicana\";s:7:\"package\";s:65:\"https://downloads.wordpress.org/translation/core/5.8.11/es_DO.zip\";s:3:\"iso\";a:3:{i:1;s:2:\"es\";i:2;s:3:\"spa\";i:3;s:3:\"spa\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:9:\"Continuar\";}}s:5:\"es_UY\";a:8:{s:8:\"language\";s:5:\"es_UY\";s:7:\"version\";s:8:\"5.8-beta\";s:7:\"updated\";s:19:\"2021-03-31 18:33:26\";s:12:\"english_name\";s:17:\"Spanish (Uruguay)\";s:11:\"native_name\";s:19:\"Español de Uruguay\";s:7:\"package\";s:67:\"https://downloads.wordpress.org/translation/core/5.8-beta/es_UY.zip\";s:3:\"iso\";a:3:{i:1;s:2:\"es\";i:2;s:3:\"spa\";i:3;s:3:\"spa\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:9:\"Continuar\";}}s:5:\"es_PR\";a:8:{s:8:\"language\";s:5:\"es_PR\";s:7:\"version\";s:6:\"5.4.17\";s:7:\"updated\";s:19:\"2020-04-29 15:36:59\";s:12:\"english_name\";s:21:\"Spanish (Puerto Rico)\";s:11:\"native_name\";s:23:\"Español de Puerto Rico\";s:7:\"package\";s:65:\"https://downloads.wordpress.org/translation/core/5.4.17/es_PR.zip\";s:3:\"iso\";a:3:{i:1;s:2:\"es\";i:2;s:3:\"spa\";i:3;s:3:\"spa\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:9:\"Continuar\";}}s:5:\"es_GT\";a:8:{s:8:\"language\";s:5:\"es_GT\";s:7:\"version\";s:6:\"5.2.22\";s:7:\"updated\";s:19:\"2019-03-02 06:35:01\";s:12:\"english_name\";s:19:\"Spanish (Guatemala)\";s:11:\"native_name\";s:21:\"Español de Guatemala\";s:7:\"package\";s:65:\"https://downloads.wordpress.org/translation/core/5.2.22/es_GT.zip\";s:3:\"iso\";a:3:{i:1;s:2:\"es\";i:2;s:3:\"spa\";i:3;s:3:\"spa\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:9:\"Continuar\";}}s:5:\"es_CL\";a:8:{s:8:\"language\";s:5:\"es_CL\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-05-27 00:56:11\";s:12:\"english_name\";s:15:\"Spanish (Chile)\";s:11:\"native_name\";s:17:\"Español de Chile\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.8.2/es_CL.zip\";s:3:\"iso\";a:3:{i:1;s:2:\"es\";i:2;s:3:\"spa\";i:3;s:3:\"spa\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:9:\"Continuar\";}}s:5:\"es_AR\";a:8:{s:8:\"language\";s:5:\"es_AR\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-07-14 15:46:25\";s:12:\"english_name\";s:19:\"Spanish (Argentina)\";s:11:\"native_name\";s:21:\"Español de Argentina\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.8.2/es_AR.zip\";s:3:\"iso\";a:3:{i:1;s:2:\"es\";i:2;s:3:\"spa\";i:3;s:3:\"spa\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:9:\"Continuar\";}}s:5:\"es_CO\";a:8:{s:8:\"language\";s:5:\"es_CO\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-07-11 05:24:36\";s:12:\"english_name\";s:18:\"Spanish (Colombia)\";s:11:\"native_name\";s:20:\"Español de Colombia\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.8.2/es_CO.zip\";s:3:\"iso\";a:3:{i:1;s:2:\"es\";i:2;s:3:\"spa\";i:3;s:3:\"spa\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:9:\"Continuar\";}}s:5:\"es_ES\";a:8:{s:8:\"language\";s:5:\"es_ES\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-07-09 10:04:44\";s:12:\"english_name\";s:15:\"Spanish (Spain)\";s:11:\"native_name\";s:8:\"Español\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.8.2/es_ES.zip\";s:3:\"iso\";a:3:{i:1;s:2:\"es\";i:2;s:3:\"spa\";i:3;s:3:\"spa\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:9:\"Continuar\";}}s:2:\"et\";a:8:{s:8:\"language\";s:2:\"et\";s:7:\"version\";s:5:\"6.5.5\";s:7:\"updated\";s:19:\"2024-06-06 09:50:37\";s:12:\"english_name\";s:8:\"Estonian\";s:11:\"native_name\";s:5:\"Eesti\";s:7:\"package\";s:61:\"https://downloads.wordpress.org/translation/core/6.5.5/et.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"et\";i:2;s:3:\"est\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:6:\"Jätka\";}}s:2:\"eu\";a:8:{s:8:\"language\";s:2:\"eu\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-07-05 12:26:55\";s:12:\"english_name\";s:6:\"Basque\";s:11:\"native_name\";s:7:\"Euskara\";s:7:\"package\";s:61:\"https://downloads.wordpress.org/translation/core/6.8.2/eu.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"eu\";i:2;s:3:\"eus\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:8:\"Jarraitu\";}}s:5:\"fa_AF\";a:8:{s:8:\"language\";s:5:\"fa_AF\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-02-14 17:29:08\";s:12:\"english_name\";s:21:\"Persian (Afghanistan)\";s:11:\"native_name\";s:31:\"(فارسی (افغانستان\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.8.2/fa_AF.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"fa\";i:2;s:3:\"fas\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:10:\"ادامه\";}}s:5:\"fa_IR\";a:8:{s:8:\"language\";s:5:\"fa_IR\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-08-03 12:49:52\";s:12:\"english_name\";s:7:\"Persian\";s:11:\"native_name\";s:10:\"فارسی\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.8.2/fa_IR.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"fa\";i:2;s:3:\"fas\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:10:\"ادامه\";}}s:2:\"fi\";a:8:{s:8:\"language\";s:2:\"fi\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-05-12 09:41:09\";s:12:\"english_name\";s:7:\"Finnish\";s:11:\"native_name\";s:5:\"Suomi\";s:7:\"package\";s:61:\"https://downloads.wordpress.org/translation/core/6.8.2/fi.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"fi\";i:2;s:3:\"fin\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:5:\"Jatka\";}}s:5:\"fr_CA\";a:8:{s:8:\"language\";s:5:\"fr_CA\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-04-29 15:18:18\";s:12:\"english_name\";s:15:\"French (Canada)\";s:11:\"native_name\";s:19:\"Français du Canada\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.8.2/fr_CA.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"fr\";i:2;s:3:\"fra\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:9:\"Continuer\";}}s:5:\"fr_BE\";a:8:{s:8:\"language\";s:5:\"fr_BE\";s:7:\"version\";s:5:\"6.5.6\";s:7:\"updated\";s:19:\"2024-02-01 23:56:53\";s:12:\"english_name\";s:16:\"French (Belgium)\";s:11:\"native_name\";s:21:\"Français de Belgique\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.5.6/fr_BE.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"fr\";i:2;s:3:\"fra\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:9:\"Continuer\";}}s:5:\"fr_FR\";a:8:{s:8:\"language\";s:5:\"fr_FR\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-07-22 21:56:43\";s:12:\"english_name\";s:15:\"French (France)\";s:11:\"native_name\";s:9:\"Français\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.8.2/fr_FR.zip\";s:3:\"iso\";a:1:{i:1;s:2:\"fr\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:9:\"Continuer\";}}s:3:\"fur\";a:8:{s:8:\"language\";s:3:\"fur\";s:7:\"version\";s:6:\"4.8.26\";s:7:\"updated\";s:19:\"2023-04-30 13:56:46\";s:12:\"english_name\";s:8:\"Friulian\";s:11:\"native_name\";s:8:\"Friulian\";s:7:\"package\";s:63:\"https://downloads.wordpress.org/translation/core/4.8.26/fur.zip\";s:3:\"iso\";a:2:{i:2;s:3:\"fur\";i:3;s:3:\"fur\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:8:\"Continue\";}}s:2:\"fy\";a:8:{s:8:\"language\";s:2:\"fy\";s:7:\"version\";s:5:\"6.2.7\";s:7:\"updated\";s:19:\"2022-12-25 12:53:23\";s:12:\"english_name\";s:7:\"Frisian\";s:11:\"native_name\";s:5:\"Frysk\";s:7:\"package\";s:61:\"https://downloads.wordpress.org/translation/core/6.2.7/fy.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"fy\";i:2;s:3:\"fry\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:9:\"Trochgean\";}}s:2:\"gd\";a:8:{s:8:\"language\";s:2:\"gd\";s:7:\"version\";s:5:\"4.7.2\";s:7:\"updated\";s:19:\"2016-08-23 17:41:37\";s:12:\"english_name\";s:15:\"Scottish Gaelic\";s:11:\"native_name\";s:9:\"Gàidhlig\";s:7:\"package\";s:61:\"https://downloads.wordpress.org/translation/core/4.7.2/gd.zip\";s:3:\"iso\";a:3:{i:1;s:2:\"gd\";i:2;s:3:\"gla\";i:3;s:3:\"gla\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:15:\"Lean air adhart\";}}s:5:\"gl_ES\";a:8:{s:8:\"language\";s:5:\"gl_ES\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-07-16 11:10:04\";s:12:\"english_name\";s:8:\"Galician\";s:11:\"native_name\";s:6:\"Galego\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.8.2/gl_ES.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"gl\";i:2;s:3:\"glg\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:9:\"Continuar\";}}s:2:\"gu\";a:8:{s:8:\"language\";s:2:\"gu\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-07-26 05:16:08\";s:12:\"english_name\";s:8:\"Gujarati\";s:11:\"native_name\";s:21:\"ગુજરાતી\";s:7:\"package\";s:61:\"https://downloads.wordpress.org/translation/core/6.8.2/gu.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"gu\";i:2;s:3:\"guj\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:25:\"ચાલુ રાખો\";}}s:3:\"haz\";a:8:{s:8:\"language\";s:3:\"haz\";s:7:\"version\";s:6:\"4.4.34\";s:7:\"updated\";s:19:\"2015-12-05 00:59:09\";s:12:\"english_name\";s:8:\"Hazaragi\";s:11:\"native_name\";s:15:\"هزاره گی\";s:7:\"package\";s:63:\"https://downloads.wordpress.org/translation/core/4.4.34/haz.zip\";s:3:\"iso\";a:1:{i:3;s:3:\"haz\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:10:\"ادامه\";}}s:5:\"he_IL\";a:8:{s:8:\"language\";s:5:\"he_IL\";s:7:\"version\";s:5:\"6.2.7\";s:7:\"updated\";s:19:\"2024-05-04 18:39:24\";s:12:\"english_name\";s:6:\"Hebrew\";s:11:\"native_name\";s:16:\"עִבְרִית\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.2.7/he_IL.zip\";s:3:\"iso\";a:1:{i:1;s:2:\"he\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:8:\"המשך\";}}s:5:\"hi_IN\";a:8:{s:8:\"language\";s:5:\"hi_IN\";s:7:\"version\";s:5:\"6.4.6\";s:7:\"updated\";s:19:\"2025-02-06 05:17:11\";s:12:\"english_name\";s:5:\"Hindi\";s:11:\"native_name\";s:18:\"हिन्दी\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.4.6/hi_IN.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"hi\";i:2;s:3:\"hin\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:25:\"जारी रखें\";}}s:2:\"hr\";a:8:{s:8:\"language\";s:2:\"hr\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-08-05 13:10:57\";s:12:\"english_name\";s:8:\"Croatian\";s:11:\"native_name\";s:8:\"Hrvatski\";s:7:\"package\";s:61:\"https://downloads.wordpress.org/translation/core/6.8.2/hr.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"hr\";i:2;s:3:\"hrv\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:7:\"Nastavi\";}}s:3:\"hsb\";a:8:{s:8:\"language\";s:3:\"hsb\";s:7:\"version\";s:5:\"6.2.7\";s:7:\"updated\";s:19:\"2023-02-22 17:37:32\";s:12:\"english_name\";s:13:\"Upper Sorbian\";s:11:\"native_name\";s:17:\"Hornjoserbšćina\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.2.7/hsb.zip\";s:3:\"iso\";a:2:{i:2;s:3:\"hsb\";i:3;s:3:\"hsb\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:4:\"Dale\";}}s:5:\"hu_HU\";a:8:{s:8:\"language\";s:5:\"hu_HU\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-06-09 13:56:03\";s:12:\"english_name\";s:9:\"Hungarian\";s:11:\"native_name\";s:6:\"Magyar\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.8.2/hu_HU.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"hu\";i:2;s:3:\"hun\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:10:\"Folytatás\";}}s:2:\"hy\";a:8:{s:8:\"language\";s:2:\"hy\";s:7:\"version\";s:5:\"4.7.2\";s:7:\"updated\";s:19:\"2016-12-03 16:21:10\";s:12:\"english_name\";s:8:\"Armenian\";s:11:\"native_name\";s:14:\"Հայերեն\";s:7:\"package\";s:61:\"https://downloads.wordpress.org/translation/core/4.7.2/hy.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"hy\";i:2;s:3:\"hye\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:20:\"Շարունակել\";}}s:5:\"id_ID\";a:8:{s:8:\"language\";s:5:\"id_ID\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-07-15 02:43:12\";s:12:\"english_name\";s:10:\"Indonesian\";s:11:\"native_name\";s:16:\"Bahasa Indonesia\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.8.2/id_ID.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"id\";i:2;s:3:\"ind\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:9:\"Lanjutkan\";}}s:5:\"is_IS\";a:8:{s:8:\"language\";s:5:\"is_IS\";s:7:\"version\";s:6:\"4.9.27\";s:7:\"updated\";s:19:\"2018-12-11 10:40:02\";s:12:\"english_name\";s:9:\"Icelandic\";s:11:\"native_name\";s:9:\"Íslenska\";s:7:\"package\";s:65:\"https://downloads.wordpress.org/translation/core/4.9.27/is_IS.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"is\";i:2;s:3:\"isl\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:6:\"Áfram\";}}s:5:\"it_IT\";a:8:{s:8:\"language\";s:5:\"it_IT\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-07-11 21:28:29\";s:12:\"english_name\";s:7:\"Italian\";s:11:\"native_name\";s:8:\"Italiano\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.8.2/it_IT.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"it\";i:2;s:3:\"ita\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:8:\"Continua\";}}s:2:\"ja\";a:8:{s:8:\"language\";s:2:\"ja\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-07-11 12:59:20\";s:12:\"english_name\";s:8:\"Japanese\";s:11:\"native_name\";s:9:\"日本語\";s:7:\"package\";s:61:\"https://downloads.wordpress.org/translation/core/6.8.2/ja.zip\";s:3:\"iso\";a:1:{i:1;s:2:\"ja\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:6:\"次へ\";}}s:5:\"jv_ID\";a:8:{s:8:\"language\";s:5:\"jv_ID\";s:7:\"version\";s:6:\"4.9.27\";s:7:\"updated\";s:19:\"2019-02-16 23:58:56\";s:12:\"english_name\";s:8:\"Javanese\";s:11:\"native_name\";s:9:\"Basa Jawa\";s:7:\"package\";s:65:\"https://downloads.wordpress.org/translation/core/4.9.27/jv_ID.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"jv\";i:2;s:3:\"jav\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:9:\"Nerusaké\";}}s:5:\"ka_GE\";a:8:{s:8:\"language\";s:5:\"ka_GE\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-04-14 08:02:58\";s:12:\"english_name\";s:8:\"Georgian\";s:11:\"native_name\";s:21:\"ქართული\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.8.2/ka_GE.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"ka\";i:2;s:3:\"kat\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:30:\"გაგრძელება\";}}s:3:\"kab\";a:8:{s:8:\"language\";s:3:\"kab\";s:7:\"version\";s:5:\"6.2.7\";s:7:\"updated\";s:19:\"2023-07-05 11:40:39\";s:12:\"english_name\";s:6:\"Kabyle\";s:11:\"native_name\";s:9:\"Taqbaylit\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.2.7/kab.zip\";s:3:\"iso\";a:2:{i:2;s:3:\"kab\";i:3;s:3:\"kab\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:6:\"Kemmel\";}}s:2:\"kk\";a:8:{s:8:\"language\";s:2:\"kk\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2024-07-18 02:49:24\";s:12:\"english_name\";s:6:\"Kazakh\";s:11:\"native_name\";s:19:\"Қазақ тілі\";s:7:\"package\";s:61:\"https://downloads.wordpress.org/translation/core/6.8.2/kk.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"kk\";i:2;s:3:\"kaz\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:20:\"Жалғастыру\";}}s:2:\"km\";a:8:{s:8:\"language\";s:2:\"km\";s:7:\"version\";s:6:\"5.2.22\";s:7:\"updated\";s:19:\"2019-06-10 16:18:28\";s:12:\"english_name\";s:5:\"Khmer\";s:11:\"native_name\";s:27:\"ភាសាខ្មែរ\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/5.2.22/km.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"km\";i:2;s:3:\"khm\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:12:\"បន្ត\";}}s:2:\"kn\";a:8:{s:8:\"language\";s:2:\"kn\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-07-22 16:17:50\";s:12:\"english_name\";s:7:\"Kannada\";s:11:\"native_name\";s:15:\"ಕನ್ನಡ\";s:7:\"package\";s:61:\"https://downloads.wordpress.org/translation/core/6.8.2/kn.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"kn\";i:2;s:3:\"kan\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:30:\"ಮುಂದುವರಿಸು\";}}s:5:\"ko_KR\";a:8:{s:8:\"language\";s:5:\"ko_KR\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-07-18 05:34:36\";s:12:\"english_name\";s:6:\"Korean\";s:11:\"native_name\";s:9:\"한국어\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.8.2/ko_KR.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"ko\";i:2;s:3:\"kor\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:6:\"계속\";}}s:3:\"ckb\";a:8:{s:8:\"language\";s:3:\"ckb\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-08-05 20:50:47\";s:12:\"english_name\";s:16:\"Kurdish (Sorani)\";s:11:\"native_name\";s:13:\"كوردی\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.8.2/ckb.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"ku\";i:3;s:3:\"ckb\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:30:\"بهردهوام به\";}}s:3:\"kir\";a:8:{s:8:\"language\";s:3:\"kir\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-07-17 05:00:42\";s:12:\"english_name\";s:6:\"Kyrgyz\";s:11:\"native_name\";s:16:\"Кыргызча\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.8.2/kir.zip\";s:3:\"iso\";a:3:{i:1;s:2:\"ky\";i:2;s:3:\"kir\";i:3;s:3:\"kir\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:14:\"Улантуу\";}}s:2:\"lo\";a:8:{s:8:\"language\";s:2:\"lo\";s:7:\"version\";s:5:\"4.7.2\";s:7:\"updated\";s:19:\"2016-11-12 09:59:23\";s:12:\"english_name\";s:3:\"Lao\";s:11:\"native_name\";s:21:\"ພາສາລາວ\";s:7:\"package\";s:61:\"https://downloads.wordpress.org/translation/core/4.7.2/lo.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"lo\";i:2;s:3:\"lao\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:18:\"ຕໍ່ໄປ\";}}s:5:\"lt_LT\";a:8:{s:8:\"language\";s:5:\"lt_LT\";s:7:\"version\";s:5:\"6.5.6\";s:7:\"updated\";s:19:\"2024-06-13 13:11:03\";s:12:\"english_name\";s:10:\"Lithuanian\";s:11:\"native_name\";s:15:\"Lietuvių kalba\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.5.6/lt_LT.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"lt\";i:2;s:3:\"lit\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:6:\"Tęsti\";}}s:2:\"lv\";a:8:{s:8:\"language\";s:2:\"lv\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-07-15 19:11:43\";s:12:\"english_name\";s:7:\"Latvian\";s:11:\"native_name\";s:16:\"Latviešu valoda\";s:7:\"package\";s:61:\"https://downloads.wordpress.org/translation/core/6.8.2/lv.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"lv\";i:2;s:3:\"lav\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:9:\"Turpināt\";}}s:5:\"mk_MK\";a:8:{s:8:\"language\";s:5:\"mk_MK\";s:7:\"version\";s:6:\"6.0.10\";s:7:\"updated\";s:19:\"2022-10-01 09:23:52\";s:12:\"english_name\";s:10:\"Macedonian\";s:11:\"native_name\";s:31:\"Македонски јазик\";s:7:\"package\";s:65:\"https://downloads.wordpress.org/translation/core/6.0.10/mk_MK.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"mk\";i:2;s:3:\"mkd\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:16:\"Продолжи\";}}s:5:\"ml_IN\";a:8:{s:8:\"language\";s:5:\"ml_IN\";s:7:\"version\";s:5:\"6.7.3\";s:7:\"updated\";s:19:\"2025-03-20 16:41:38\";s:12:\"english_name\";s:9:\"Malayalam\";s:11:\"native_name\";s:18:\"മലയാളം\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.7.3/ml_IN.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"ml\";i:2;s:3:\"mal\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:18:\"തുടരുക\";}}s:2:\"mn\";a:8:{s:8:\"language\";s:2:\"mn\";s:7:\"version\";s:5:\"6.5.6\";s:7:\"updated\";s:19:\"2024-06-20 17:22:06\";s:12:\"english_name\";s:9:\"Mongolian\";s:11:\"native_name\";s:12:\"Монгол\";s:7:\"package\";s:61:\"https://downloads.wordpress.org/translation/core/6.5.6/mn.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"mn\";i:2;s:3:\"mon\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:8:\"Continue\";}}s:2:\"mr\";a:8:{s:8:\"language\";s:2:\"mr\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-06-19 11:39:21\";s:12:\"english_name\";s:7:\"Marathi\";s:11:\"native_name\";s:15:\"मराठी\";s:7:\"package\";s:61:\"https://downloads.wordpress.org/translation/core/6.8.2/mr.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"mr\";i:2;s:3:\"mar\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:25:\"सुरु ठेवा\";}}s:5:\"ms_MY\";a:8:{s:8:\"language\";s:5:\"ms_MY\";s:7:\"version\";s:6:\"5.5.16\";s:7:\"updated\";s:19:\"2022-03-11 13:52:22\";s:12:\"english_name\";s:5:\"Malay\";s:11:\"native_name\";s:13:\"Bahasa Melayu\";s:7:\"package\";s:65:\"https://downloads.wordpress.org/translation/core/5.5.16/ms_MY.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"ms\";i:2;s:3:\"msa\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:8:\"Teruskan\";}}s:5:\"my_MM\";a:8:{s:8:\"language\";s:5:\"my_MM\";s:7:\"version\";s:6:\"4.2.39\";s:7:\"updated\";s:19:\"2017-12-26 11:57:10\";s:12:\"english_name\";s:17:\"Myanmar (Burmese)\";s:11:\"native_name\";s:15:\"ဗမာစာ\";s:7:\"package\";s:65:\"https://downloads.wordpress.org/translation/core/4.2.39/my_MM.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"my\";i:2;s:3:\"mya\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:54:\"ဆက်လက်လုပ်ဆောင်ပါ။\";}}s:5:\"nb_NO\";a:8:{s:8:\"language\";s:5:\"nb_NO\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-07-11 03:23:53\";s:12:\"english_name\";s:19:\"Norwegian (Bokmål)\";s:11:\"native_name\";s:13:\"Norsk bokmål\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.8.2/nb_NO.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"nb\";i:2;s:3:\"nob\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:8:\"Fortsett\";}}s:5:\"ne_NP\";a:8:{s:8:\"language\";s:5:\"ne_NP\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-07-23 09:31:59\";s:12:\"english_name\";s:6:\"Nepali\";s:11:\"native_name\";s:18:\"नेपाली\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.8.2/ne_NP.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"ne\";i:2;s:3:\"nep\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:43:\"जारी राख्नुहोस्\";}}s:12:\"nl_NL_formal\";a:8:{s:8:\"language\";s:12:\"nl_NL_formal\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-06-14 10:43:29\";s:12:\"english_name\";s:14:\"Dutch (Formal)\";s:11:\"native_name\";s:20:\"Nederlands (Formeel)\";s:7:\"package\";s:71:\"https://downloads.wordpress.org/translation/core/6.8.2/nl_NL_formal.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"nl\";i:2;s:3:\"nld\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:8:\"Doorgaan\";}}s:5:\"nl_BE\";a:8:{s:8:\"language\";s:5:\"nl_BE\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-07-30 17:05:07\";s:12:\"english_name\";s:15:\"Dutch (Belgium)\";s:11:\"native_name\";s:20:\"Nederlands (België)\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.8.2/nl_BE.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"nl\";i:2;s:3:\"nld\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:8:\"Doorgaan\";}}s:5:\"nl_NL\";a:8:{s:8:\"language\";s:5:\"nl_NL\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-08-10 07:27:05\";s:12:\"english_name\";s:5:\"Dutch\";s:11:\"native_name\";s:10:\"Nederlands\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.8.2/nl_NL.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"nl\";i:2;s:3:\"nld\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:8:\"Doorgaan\";}}s:5:\"nn_NO\";a:8:{s:8:\"language\";s:5:\"nn_NO\";s:7:\"version\";s:8:\"5.8-beta\";s:7:\"updated\";s:19:\"2021-03-18 10:59:16\";s:12:\"english_name\";s:19:\"Norwegian (Nynorsk)\";s:11:\"native_name\";s:13:\"Norsk nynorsk\";s:7:\"package\";s:67:\"https://downloads.wordpress.org/translation/core/5.8-beta/nn_NO.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"nn\";i:2;s:3:\"nno\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:9:\"Hald fram\";}}s:3:\"oci\";a:8:{s:8:\"language\";s:3:\"oci\";s:7:\"version\";s:6:\"4.8.26\";s:7:\"updated\";s:19:\"2017-08-25 10:03:08\";s:12:\"english_name\";s:7:\"Occitan\";s:11:\"native_name\";s:7:\"Occitan\";s:7:\"package\";s:63:\"https://downloads.wordpress.org/translation/core/4.8.26/oci.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"oc\";i:2;s:3:\"oci\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:9:\"Contunhar\";}}s:5:\"pa_IN\";a:8:{s:8:\"language\";s:5:\"pa_IN\";s:7:\"version\";s:5:\"4.7.2\";s:7:\"updated\";s:19:\"2017-01-16 05:19:43\";s:12:\"english_name\";s:15:\"Panjabi (India)\";s:11:\"native_name\";s:18:\"ਪੰਜਾਬੀ\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/4.7.2/pa_IN.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"pa\";i:2;s:3:\"pan\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:25:\"ਜਾਰੀ ਰੱਖੋ\";}}s:5:\"pl_PL\";a:8:{s:8:\"language\";s:5:\"pl_PL\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-07-15 10:57:19\";s:12:\"english_name\";s:6:\"Polish\";s:11:\"native_name\";s:6:\"Polski\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.8.2/pl_PL.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"pl\";i:2;s:3:\"pol\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:9:\"Kontynuuj\";}}s:2:\"ps\";a:8:{s:8:\"language\";s:2:\"ps\";s:7:\"version\";s:6:\"4.3.35\";s:7:\"updated\";s:19:\"2015-12-02 21:41:29\";s:12:\"english_name\";s:6:\"Pashto\";s:11:\"native_name\";s:8:\"پښتو\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/4.3.35/ps.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"ps\";i:2;s:3:\"pus\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:19:\"دوام ورکړه\";}}s:5:\"pt_BR\";a:8:{s:8:\"language\";s:5:\"pt_BR\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-05-05 11:53:58\";s:12:\"english_name\";s:19:\"Portuguese (Brazil)\";s:11:\"native_name\";s:20:\"Português do Brasil\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.8.2/pt_BR.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"pt\";i:2;s:3:\"por\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:9:\"Continuar\";}}s:5:\"pt_PT\";a:8:{s:8:\"language\";s:5:\"pt_PT\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-07-27 23:38:30\";s:12:\"english_name\";s:21:\"Portuguese (Portugal)\";s:11:\"native_name\";s:10:\"Português\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.8.2/pt_PT.zip\";s:3:\"iso\";a:1:{i:1;s:2:\"pt\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:9:\"Continuar\";}}s:10:\"pt_PT_ao90\";a:8:{s:8:\"language\";s:10:\"pt_PT_ao90\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-07-27 23:48:59\";s:12:\"english_name\";s:27:\"Portuguese (Portugal, AO90)\";s:11:\"native_name\";s:17:\"Português (AO90)\";s:7:\"package\";s:69:\"https://downloads.wordpress.org/translation/core/6.8.2/pt_PT_ao90.zip\";s:3:\"iso\";a:1:{i:1;s:2:\"pt\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:9:\"Continuar\";}}s:5:\"pt_AO\";a:8:{s:8:\"language\";s:5:\"pt_AO\";s:7:\"version\";s:5:\"6.4.6\";s:7:\"updated\";s:19:\"2023-08-21 12:15:00\";s:12:\"english_name\";s:19:\"Portuguese (Angola)\";s:11:\"native_name\";s:20:\"Português de Angola\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.4.6/pt_AO.zip\";s:3:\"iso\";a:1:{i:1;s:2:\"pt\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:9:\"Continuar\";}}s:3:\"rhg\";a:8:{s:8:\"language\";s:3:\"rhg\";s:7:\"version\";s:5:\"4.7.2\";s:7:\"updated\";s:19:\"2016-03-16 13:03:18\";s:12:\"english_name\";s:8:\"Rohingya\";s:11:\"native_name\";s:8:\"Ruáinga\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/4.7.2/rhg.zip\";s:3:\"iso\";a:1:{i:3;s:3:\"rhg\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:8:\"Continue\";}}s:5:\"ro_RO\";a:8:{s:8:\"language\";s:5:\"ro_RO\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-08-11 14:40:37\";s:12:\"english_name\";s:8:\"Romanian\";s:11:\"native_name\";s:8:\"Română\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.8.2/ro_RO.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"ro\";i:2;s:3:\"ron\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:9:\"Continuă\";}}s:5:\"ru_RU\";a:8:{s:8:\"language\";s:5:\"ru_RU\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-08-05 20:51:52\";s:12:\"english_name\";s:7:\"Russian\";s:11:\"native_name\";s:14:\"Русский\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.8.2/ru_RU.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"ru\";i:2;s:3:\"rus\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:20:\"Продолжить\";}}s:3:\"sah\";a:8:{s:8:\"language\";s:3:\"sah\";s:7:\"version\";s:5:\"4.7.2\";s:7:\"updated\";s:19:\"2017-01-21 02:06:41\";s:12:\"english_name\";s:5:\"Sakha\";s:11:\"native_name\";s:14:\"Сахалыы\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/4.7.2/sah.zip\";s:3:\"iso\";a:2:{i:2;s:3:\"sah\";i:3;s:3:\"sah\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:12:\"Салҕаа\";}}s:3:\"snd\";a:8:{s:8:\"language\";s:3:\"snd\";s:7:\"version\";s:6:\"5.4.17\";s:7:\"updated\";s:19:\"2020-07-07 01:53:37\";s:12:\"english_name\";s:6:\"Sindhi\";s:11:\"native_name\";s:8:\"سنڌي\";s:7:\"package\";s:63:\"https://downloads.wordpress.org/translation/core/5.4.17/snd.zip\";s:3:\"iso\";a:3:{i:1;s:2:\"sd\";i:2;s:3:\"snd\";i:3;s:3:\"snd\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:15:\"اڳتي هلو\";}}s:5:\"si_LK\";a:8:{s:8:\"language\";s:5:\"si_LK\";s:7:\"version\";s:5:\"4.7.2\";s:7:\"updated\";s:19:\"2016-11-12 06:00:52\";s:12:\"english_name\";s:7:\"Sinhala\";s:11:\"native_name\";s:15:\"සිංහල\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/4.7.2/si_LK.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"si\";i:2;s:3:\"sin\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:44:\"දිගටම කරගෙන යන්න\";}}s:5:\"sk_SK\";a:8:{s:8:\"language\";s:5:\"sk_SK\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-07-30 06:25:52\";s:12:\"english_name\";s:6:\"Slovak\";s:11:\"native_name\";s:11:\"Slovenčina\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.8.2/sk_SK.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"sk\";i:2;s:3:\"slk\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:12:\"Pokračovať\";}}s:3:\"skr\";a:8:{s:8:\"language\";s:3:\"skr\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-04-24 16:58:02\";s:12:\"english_name\";s:7:\"Saraiki\";s:11:\"native_name\";s:14:\"سرائیکی\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.8.2/skr.zip\";s:3:\"iso\";a:1:{i:3;s:3:\"skr\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:17:\"جاری رکھو\";}}s:5:\"sl_SI\";a:8:{s:8:\"language\";s:5:\"sl_SI\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-07-15 06:12:29\";s:12:\"english_name\";s:9:\"Slovenian\";s:11:\"native_name\";s:13:\"Slovenščina\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.8.2/sl_SI.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"sl\";i:2;s:3:\"slv\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:8:\"Nadaljuj\";}}s:2:\"sq\";a:8:{s:8:\"language\";s:2:\"sq\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-04-18 09:38:51\";s:12:\"english_name\";s:8:\"Albanian\";s:11:\"native_name\";s:5:\"Shqip\";s:7:\"package\";s:61:\"https://downloads.wordpress.org/translation/core/6.8.2/sq.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"sq\";i:2;s:3:\"sqi\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:6:\"Vazhdo\";}}s:5:\"sr_RS\";a:8:{s:8:\"language\";s:5:\"sr_RS\";s:7:\"version\";s:5:\"6.7.3\";s:7:\"updated\";s:19:\"2024-09-20 22:15:56\";s:12:\"english_name\";s:7:\"Serbian\";s:11:\"native_name\";s:23:\"Српски језик\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.7.3/sr_RS.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"sr\";i:2;s:3:\"srp\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:14:\"Настави\";}}s:5:\"sv_SE\";a:8:{s:8:\"language\";s:5:\"sv_SE\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-08-10 20:44:58\";s:12:\"english_name\";s:7:\"Swedish\";s:11:\"native_name\";s:7:\"Svenska\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.8.2/sv_SE.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"sv\";i:2;s:3:\"swe\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:9:\"Fortsätt\";}}s:2:\"sw\";a:8:{s:8:\"language\";s:2:\"sw\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-06-28 12:50:48\";s:12:\"english_name\";s:7:\"Swahili\";s:11:\"native_name\";s:9:\"Kiswahili\";s:7:\"package\";s:61:\"https://downloads.wordpress.org/translation/core/6.8.2/sw.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"sw\";i:2;s:3:\"swa\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:7:\"Endelea\";}}s:3:\"szl\";a:8:{s:8:\"language\";s:3:\"szl\";s:7:\"version\";s:5:\"4.7.2\";s:7:\"updated\";s:19:\"2016-09-24 19:58:14\";s:12:\"english_name\";s:8:\"Silesian\";s:11:\"native_name\";s:17:\"Ślōnskŏ gŏdka\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/4.7.2/szl.zip\";s:3:\"iso\";a:1:{i:3;s:3:\"szl\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:13:\"Kōntynuować\";}}s:5:\"ta_IN\";a:8:{s:8:\"language\";s:5:\"ta_IN\";s:7:\"version\";s:5:\"4.7.2\";s:7:\"updated\";s:19:\"2017-01-27 03:22:47\";s:12:\"english_name\";s:5:\"Tamil\";s:11:\"native_name\";s:15:\"தமிழ்\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/4.7.2/ta_IN.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"ta\";i:2;s:3:\"tam\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:24:\"தொடரவும்\";}}s:5:\"ta_LK\";a:8:{s:8:\"language\";s:5:\"ta_LK\";s:7:\"version\";s:6:\"4.2.39\";s:7:\"updated\";s:19:\"2015-12-03 01:07:44\";s:12:\"english_name\";s:17:\"Tamil (Sri Lanka)\";s:11:\"native_name\";s:15:\"தமிழ்\";s:7:\"package\";s:65:\"https://downloads.wordpress.org/translation/core/4.2.39/ta_LK.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"ta\";i:2;s:3:\"tam\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:18:\"தொடர்க\";}}s:2:\"te\";a:8:{s:8:\"language\";s:2:\"te\";s:7:\"version\";s:5:\"4.7.2\";s:7:\"updated\";s:19:\"2017-01-26 15:47:39\";s:12:\"english_name\";s:6:\"Telugu\";s:11:\"native_name\";s:18:\"తెలుగు\";s:7:\"package\";s:61:\"https://downloads.wordpress.org/translation/core/4.7.2/te.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"te\";i:2;s:3:\"tel\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:30:\"కొనసాగించు\";}}s:2:\"th\";a:8:{s:8:\"language\";s:2:\"th\";s:7:\"version\";s:6:\"5.8.11\";s:7:\"updated\";s:19:\"2022-06-08 04:30:30\";s:12:\"english_name\";s:4:\"Thai\";s:11:\"native_name\";s:9:\"ไทย\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/5.8.11/th.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"th\";i:2;s:3:\"tha\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:15:\"ต่อไป\";}}s:2:\"tl\";a:8:{s:8:\"language\";s:2:\"tl\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-07-08 16:09:09\";s:12:\"english_name\";s:7:\"Tagalog\";s:11:\"native_name\";s:7:\"Tagalog\";s:7:\"package\";s:61:\"https://downloads.wordpress.org/translation/core/6.8.2/tl.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"tl\";i:2;s:3:\"tgl\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:10:\"Magpatuloy\";}}s:5:\"tr_TR\";a:8:{s:8:\"language\";s:5:\"tr_TR\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-04-16 23:11:08\";s:12:\"english_name\";s:7:\"Turkish\";s:11:\"native_name\";s:8:\"Türkçe\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.8.2/tr_TR.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"tr\";i:2;s:3:\"tur\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:5:\"Devam\";}}s:5:\"tt_RU\";a:8:{s:8:\"language\";s:5:\"tt_RU\";s:7:\"version\";s:5:\"4.7.2\";s:7:\"updated\";s:19:\"2016-11-20 20:20:50\";s:12:\"english_name\";s:5:\"Tatar\";s:11:\"native_name\";s:19:\"Татар теле\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/4.7.2/tt_RU.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"tt\";i:2;s:3:\"tat\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:17:\"дәвам итү\";}}s:3:\"tah\";a:8:{s:8:\"language\";s:3:\"tah\";s:7:\"version\";s:5:\"4.7.2\";s:7:\"updated\";s:19:\"2016-03-06 18:39:39\";s:12:\"english_name\";s:8:\"Tahitian\";s:11:\"native_name\";s:10:\"Reo Tahiti\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/4.7.2/tah.zip\";s:3:\"iso\";a:3:{i:1;s:2:\"ty\";i:2;s:3:\"tah\";i:3;s:3:\"tah\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:8:\"Continue\";}}s:5:\"ug_CN\";a:8:{s:8:\"language\";s:5:\"ug_CN\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-07-18 21:39:23\";s:12:\"english_name\";s:6:\"Uighur\";s:11:\"native_name\";s:16:\"ئۇيغۇرچە\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.8.2/ug_CN.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"ug\";i:2;s:3:\"uig\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:26:\"داۋاملاشتۇرۇش\";}}s:2:\"uk\";a:8:{s:8:\"language\";s:2:\"uk\";s:7:\"version\";s:3:\"6.8\";s:7:\"updated\";s:19:\"2025-04-18 21:10:00\";s:12:\"english_name\";s:9:\"Ukrainian\";s:11:\"native_name\";s:20:\"Українська\";s:7:\"package\";s:59:\"https://downloads.wordpress.org/translation/core/6.8/uk.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"uk\";i:2;s:3:\"ukr\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:20:\"Продовжити\";}}s:2:\"ur\";a:8:{s:8:\"language\";s:2:\"ur\";s:7:\"version\";s:6:\"5.4.17\";s:7:\"updated\";s:19:\"2020-04-09 11:17:33\";s:12:\"english_name\";s:4:\"Urdu\";s:11:\"native_name\";s:8:\"اردو\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/5.4.17/ur.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"ur\";i:2;s:3:\"urd\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:19:\"جاری رکھیں\";}}s:5:\"uz_UZ\";a:8:{s:8:\"language\";s:5:\"uz_UZ\";s:7:\"version\";s:8:\"5.8-beta\";s:7:\"updated\";s:19:\"2021-02-28 12:02:22\";s:12:\"english_name\";s:5:\"Uzbek\";s:11:\"native_name\";s:11:\"O‘zbekcha\";s:7:\"package\";s:67:\"https://downloads.wordpress.org/translation/core/5.8-beta/uz_UZ.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"uz\";i:2;s:3:\"uzb\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:11:\"Davom etish\";}}s:2:\"vi\";a:8:{s:8:\"language\";s:2:\"vi\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-07-19 02:17:53\";s:12:\"english_name\";s:10:\"Vietnamese\";s:11:\"native_name\";s:14:\"Tiếng Việt\";s:7:\"package\";s:61:\"https://downloads.wordpress.org/translation/core/6.8.2/vi.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"vi\";i:2;s:3:\"vie\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:12:\"Tiếp tục\";}}s:5:\"zh_TW\";a:8:{s:8:\"language\";s:5:\"zh_TW\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-07-16 04:41:52\";s:12:\"english_name\";s:16:\"Chinese (Taiwan)\";s:11:\"native_name\";s:12:\"繁體中文\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.8.2/zh_TW.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"zh\";i:2;s:3:\"zho\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:6:\"繼續\";}}s:5:\"zh_CN\";a:8:{s:8:\"language\";s:5:\"zh_CN\";s:7:\"version\";s:5:\"6.8.2\";s:7:\"updated\";s:19:\"2025-07-29 06:55:14\";s:12:\"english_name\";s:15:\"Chinese (China)\";s:11:\"native_name\";s:12:\"简体中文\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.8.2/zh_CN.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"zh\";i:2;s:3:\"zho\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:6:\"继续\";}}s:5:\"zh_HK\";a:8:{s:8:\"language\";s:5:\"zh_HK\";s:7:\"version\";s:5:\"6.2.7\";s:7:\"updated\";s:19:\"2022-07-15 15:25:03\";s:12:\"english_name\";s:19:\"Chinese (Hong Kong)\";s:11:\"native_name\";s:12:\"香港中文\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/6.2.7/zh_HK.zip\";s:3:\"iso\";a:2:{i:1;s:2:\"zh\";i:2;s:3:\"zho\";}s:7:\"strings\";a:1:{s:8:\"continue\";s:6:\"繼續\";}}}','off'), +(191,'WPLANG','','auto'), +(192,'new_admin_email','wordpress@example.com','auto'), +(195,'_site_transient_timeout_wp_remote_block_patterns_c277c6d2936d62130ba6f9124fef25ba','1754952382','off'); +INSERT INTO `wp_options` VALUES +(196,'_site_transient_wp_remote_block_patterns_c277c6d2936d62130ba6f9124fef25ba','a:44:{i:0;O:8:\"stdClass\":7:{s:2:\"id\";i:514958;s:5:\"title\";O:8:\"stdClass\":1:{s:8:\"rendered\";s:33:\"Intro area with heading and image\";}s:7:\"content\";O:8:\"stdClass\":2:{s:8:\"rendered\";s:1699:\"\nExploring life’s complex tapestry, options reveal routes to the exceptional, requiring innovation, inquisitiveness, and bravery for a deeply satisfying voyage.
\n\n\n\n \nExploring life\'s complex tapestry, options reveal routes to the exceptional, requiring innovation, inquisitiveness, and bravery for a deeply satisfying voyage.
\n\n\n\n \nbud!
\nbud!
\nDJANGO
\n\n\n\nDJANGO
\n\n\n\nDJANGO
\n\n\n\nDJANGO
\nDJANGO
\n\n\n\nDJANGO
\n\n\n\nDJANGO
\n\n\n\nDJANGO
\nLet ’em Roll is an album by American organist Big John Patton recorded in 1965 and released on the Blue Note label.
\n\n\n\n \nLet
‘EM
Roll
Big
John
Patton
Let \'em Roll is an album by American organist Big John Patton recorded in 1965 and released on the Blue Note label.
\n\n\n\n \nLet
\'EM
Roll
Big
John
Patton
MONK.
\nA new collection
\n\n\n\nLearn More →
\nMONK.
\nA new collection
\n\n\n\nLearn More →
\nExplore our network of trails that lead through a variety of woodland habitats and observe the diverse flora that call this area home.
\n\n\n\n\n\n\n\n \nExplore our network of trails that lead through a variety of woodland habitats and observe the diverse flora that call this area home.
\n\n\n\n\n\n\n\n \nEnjoy
\n\n\n\n20% Off
\n\n\n\n\n\n\n\n \nEnjoy
\n\n\n\n20% Off
\n\n\n\n\n\n\n\n \nEmbark
\n\n\n\nON A HIKING
\n\n\n\nadventure and explore the beauty of nature’s best…
\n\n\n\nIn the
\n\n\n\nWOODS.
\nEmbark
\n\n\n\nON A HIKING
\n\n\n\nadventure and explore the beauty of nature\'s best…
\n\n\n\nIn the
\n\n\n\nWOODS.
\n✴︎ Walk
\n\n\n\nIn the
\n\n\n\nPark
\n\n\n\n—01.03
\n✴︎ Walk
\n\n\n\nIn the
\n\n\n\nPark
\n\n\n\n—01.03
\nExplore our network of trails that lead through a variety of woodland habitats and observe the diverse flora that call this area home.
\n\n\n\n\n\n\n\n \nExplore our network of trails that lead through a variety of woodland habitats and observe the diverse flora that call this area home.
\n\n\n\n\n\n\n\n \n✴︎
\n\n\nBeautifully designed patterns ready to go with a simple copy/paste
Beautifully designed patterns ready to go with a simple copy/paste
Proudly powered by WordPress
\n\n\n\n \nProudly powered by WordPress
\n\n\n\n \nProudly powered by WordPress
\nProudly powered by WordPress
\nProudly powered by WordPress
\nProudly powered by WordPress
\nLocation
\n\n\n\n2020 Lomita Blvd,
Torrance, CA 90101
United States
Pages
\n\n\n\n\n\n\nProudly powered by WordPress
\nLocation
\n\n\n\n2020 Lomita Blvd,
Torrance, CA 90101
United States
Pages
\n\n\n\n\n\n\nProudly powered by WordPress
\nProudly powered by WordPress
\n\n\n\n \nProudly powered by WordPress
\n\n\n\n \nProudly powered by WordPress
\n2020 Lomita Blvd,
Torrance, CA 90101
United States
Proudly powered by WordPress
\n\n\n\n\nPositive growth.
\nNature, in the common sense, refers to essences unchanged by man; space, the air, the river, the leaf. Art is applied to the mixture of his will with the same things, as in a house, a canal, a statue, a picture.
\n\n\n\nBut his operations taken together are so insignificant, a little chipping, baking, patching, and washing, that in an impression so grand as that of the world on the human mind, they do not vary the result.
\nUndoubtedly we have no questions to ask which are unanswerable. We must trust the perfection of the creation so far, as to believe that whatever curiosity the order of things has awakened in our minds, the order of things can satisfy. Every man’s condition is a solution in hieroglyphic to those inquiries he would put.
\nPositive growth.
\nNature, in the common sense, refers to essences unchanged by man; space, the air, the river, the leaf. Art is applied to the mixture of his will with the same things, as in a house, a canal, a statue, a picture.
\n\n\n\nBut his operations taken together are so insignificant, a little chipping, baking, patching, and washing, that in an impression so grand as that of the world on the human mind, they do not vary the result.
\nUndoubtedly we have no questions to ask which are unanswerable. We must trust the perfection of the creation so far, as to believe that whatever curiosity the order of things has awakened in our minds, the order of things can satisfy. Every man\'s condition is a solution in hieroglyphic to those inquiries he would put.
\nOceanic Inspiration
\nWinding veils round their heads, the women walked on deck. They were now moving steadily down the river, passing the dark shapes of ships at anchor, and London was a swarm of lights with a pale yellow canopy drooping above it. There were the lights of the great theatres, the lights of the long streets, lights that indicated huge squares of domestic comfort, lights that hung high in air.
\nNo darkness would ever settle upon those lamps, as no darkness had settled upon them for hundreds of years. It seemed dreadful that the town should blaze for ever in the same spot; dreadful at least to people going away to adventure upon the sea, and beholding it as a circumscribed mound, eternally burnt, eternally scarred. From the deck of the ship the great city appeared a crouched and cowardly figure, a sedentary miser.
\nOceanic Inspiration
\nWinding veils round their heads, the women walked on deck. They were now moving steadily down the river, passing the dark shapes of ships at anchor, and London was a swarm of lights with a pale yellow canopy drooping above it. There were the lights of the great theatres, the lights of the long streets, lights that indicated huge squares of domestic comfort, lights that hung high in air.
\nNo darkness would ever settle upon those lamps, as no darkness had settled upon them for hundreds of years. It seemed dreadful that the town should blaze for ever in the same spot; dreadful at least to people going away to adventure upon the sea, and beholding it as a circumscribed mound, eternally burnt, eternally scarred. From the deck of the ship the great city appeared a crouched and cowardly figure, a sedentary miser.
\nTrees are more important today than ever before. More than 10,000 products are reportedly made from trees. Through chemistry, the humble woodpile is yielding chemicals, plastics and fabrics that were beyond comprehension when an axe first felled a Texas tree.
\n\n\n\n \nTrees are more important today than ever before. More than 10,000 products are reportedly made from trees. Through chemistry, the humble woodpile is yielding chemicals, plastics and fabrics that were beyond comprehension when an axe first felled a Texas tree.
\n\n\n\n \nEleanor Harris (American, 1901-1942)
\nEleanor Harris (American, 1901-1942)
\nAn exhibition about the different representations of the ocean throughout time, between the sixteenth and the twentieth century. Taking place in our Open Room in Floor 2.
\n\n\n\n \nAn exhibition about the different representations of the ocean throughout time, between the sixteenth and the twentieth century. Taking place in our Open Room in Floor 2.
\n\n\n\n \nEven a child knows how valuable the forest is. The fresh, breathtaking smell of trees. Echoing birds flying above that dense magnitude. A stable climate, a sustainable diverse life and a source of culture. Yet, forests and other ecosystems hang in the balance, threatened to become croplands, pasture, and plantations.
\nEven a child knows how valuable the forest is. The fresh, breathtaking smell of trees. Echoing birds flying above that dense magnitude. A stable climate, a sustainable diverse life and a source of culture. Yet, forests and other ecosystems hang in the balance, threatened to become croplands, pasture, and plantations.
\nThey followed her on to the deck. All the smoke and the houses had disappeared, and the ship was out in a wide space of sea very fresh and clear though pale in the early light. They had left London sitting on its mud. A very thin line of shadow tapered on the horizon, scarcely thick enough to stand the burden of Paris, which nevertheless rested upon it. They were free of roads, free of mankind, and the same exhilaration at their freedom ran through them all.
\nThe ship was making her way steadily through small waves which slapped her and then fizzled like effervescing water, leaving a little border of bubbles and foam on either side. The colourless October sky above was thinly clouded as if by the trail of wood-fire smoke, and the air was wonderfully salt and brisk. Indeed it was too cold to stand still. Mrs. Ambrose drew her arm within her husband’s, and as they moved off it could be seen from the way in which her sloping cheek turned up to his that she had something private to communicate.
\nThey followed her on to the deck. All the smoke and the houses had disappeared, and the ship was out in a wide space of sea very fresh and clear though pale in the early light. They had left London sitting on its mud. A very thin line of shadow tapered on the horizon, scarcely thick enough to stand the burden of Paris, which nevertheless rested upon it. They were free of roads, free of mankind, and the same exhilaration at their freedom ran through them all.
\nThe ship was making her way steadily through small waves which slapped her and then fizzled like effervescing water, leaving a little border of bubbles and foam on either side. The colourless October sky above was thinly clouded as if by the trail of wood-fire smoke, and the air was wonderfully salt and brisk. Indeed it was too cold to stand still. Mrs. Ambrose drew her arm within her husband\'s, and as they moved off it could be seen from the way in which her sloping cheek turned up to his that she had something private to communicate.
\nBeautifully designed patterns ready to go with a simple copy/paste
\n\n\n\n\n\n\n \n\n\n\n \nGET IN TOUCH
\n\n\n\nGET IN TOUCH
\n\n\n\nEnrich our growing community.
\n\n\n\nSupport special exhibitions.
\n\n\n\nTake support to the next level.
\n\n\n\nEnrich our growing community.
\n\n\n\nSupport special exhibitions.
\n\n\n\nTake support to the next level.
\n\n\n\nEven the bitterest fruit has sugar in it.
\n\n\n\n– Terry a O’Neal
\nThe trees that are slow to grow bear the best fruit.
\n\n\n\n– Molière
\nEven the bitterest fruit has sugar in it.
\n\n\n\n– Terry a O\'Neal
\nThe trees that are slow to grow bear the best fruit.
\n\n\n\n– Molière
\nAirplane
\n\n\n\nCopper wire, wood base. I created this piece in late 2008. For this work, I aimed to convey both the industrial heaviness of an airplane, but also the cloudlike floating quality you feel when you’re in one.
\nAirplane
\n\n\n\nCopper wire, wood base. I created this piece in late 2008. For this work, I aimed to convey both the industrial heaviness of an airplane, but also the cloudlike floating quality you feel when you’re in one.
\nWhite Irises
\n\n\n\nOgawa Kazumasa
\nCherry Blossom
\n\n\n\nOgawa Kazumasa
\nWhite Irises
\n\n\n\nOgawa Kazumasa
\nCherry Blossom
\n\n\n\nOgawa Kazumasa
\nCupid in Flight
48” x 48” Giclee print on archival paper.
Cupid in Flight
48” x 48” Giclee print on archival paper.
Location:
82 Main St. Brooklyn, NY
Date:
October 24, 2021
Location:
82 Main St. Brooklyn, NY
Date:
October 24, 2021
Positive growth.
\nNature, in the common sense, refers to essences unchanged by man; space, the air, the river, the leaf. Art is applied to the mixture of his will with the same things, as in a house, a canal, a statue, a picture.
\n\n\n\nBut his operations taken together are so insignificant, a little chipping, baking, patching, and washing, that in an impression so grand as that of the world on the human mind, they do not vary the result.
\nUndoubtedly we have no questions to ask which are unanswerable. We must trust the perfection of the creation so far, as to believe that whatever curiosity the order of things has awakened in our minds, the order of things can satisfy. Every man’s condition is a solution in hieroglyphic to those inquiries he would put.
\nPositive growth.
\nNature, in the common sense, refers to essences unchanged by man; space, the air, the river, the leaf. Art is applied to the mixture of his will with the same things, as in a house, a canal, a statue, a picture.
\n\n\n\nBut his operations taken together are so insignificant, a little chipping, baking, patching, and washing, that in an impression so grand as that of the world on the human mind, they do not vary the result.
\nUndoubtedly we have no questions to ask which are unanswerable. We must trust the perfection of the creation so far, as to believe that whatever curiosity the order of things has awakened in our minds, the order of things can satisfy. Every man\'s condition is a solution in hieroglyphic to those inquiries he would put.
\nEven a child knows how valuable the forest is. The fresh, breathtaking smell of trees. Echoing birds flying above that dense magnitude. A stable climate, a sustainable diverse life and a source of culture. Yet, forests and other ecosystems hang in the balance, threatened to become croplands, pasture, and plantations.
\nEven a child knows how valuable the forest is. The fresh, breathtaking smell of trees. Echoing birds flying above that dense magnitude. A stable climate, a sustainable diverse life and a source of culture. Yet, forests and other ecosystems hang in the balance, threatened to become croplands, pasture, and plantations.
\nWelcome to WordPress. This is your first post. Edit or delete it, then start writing!
\n','Hello world!','','trash','open','open','','hello-world__trashed','','','2025-04-09 23:14:13','2025-04-09 23:14:13','',0,'http://localhost:8888/?p=1',0,'post','',1), +(2,1,'2025-04-09 23:13:13','2025-04-09 23:13:13','\nThis is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:
\n\n\n\n\n\n\n\nHi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)
...or something like this:
\n\n\n\n\n\n\n\nThe XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.
As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!
\n','Sample Page','','publish','closed','open','','sample-page','','','2025-04-09 23:13:13','2025-04-09 23:13:13','',0,'http://localhost:8888/?page_id=2',0,'page','',0), +(3,1,'2025-04-09 23:13:13','2025-04-09 23:13:13','\nSuggested text: Our website address is: http://localhost:8888.
\n\n\nSuggested text: When visitors leave comments on the site we collect the data shown in the comments form, and also the visitor’s IP address and browser user agent string to help spam detection.
\n\n\nAn anonymized string created from your email address (also called a hash) may be provided to the Gravatar service to see if you are using it. The Gravatar service privacy policy is available here: https://automattic.com/privacy/. After approval of your comment, your profile picture is visible to the public in the context of your comment.
\n\n\nSuggested text: If you upload images to the website, you should avoid uploading images with embedded location data (EXIF GPS) included. Visitors to the website can download and extract any location data from images on the website.
\n\n\nSuggested text: If you leave a comment on our site you may opt-in to saving your name, email address and website in cookies. These are for your convenience so that you do not have to fill in your details again when you leave another comment. These cookies will last for one year.
\n\n\nIf you visit our login page, we will set a temporary cookie to determine if your browser accepts cookies. This cookie contains no personal data and is discarded when you close your browser.
\n\n\nWhen you log in, we will also set up several cookies to save your login information and your screen display choices. Login cookies last for two days, and screen options cookies last for a year. If you select "Remember Me", your login will persist for two weeks. If you log out of your account, the login cookies will be removed.
\n\n\nIf you edit or publish an article, an additional cookie will be saved in your browser. This cookie includes no personal data and simply indicates the post ID of the article you just edited. It expires after 1 day.
\n\n\nSuggested text: Articles on this site may include embedded content (e.g. videos, images, articles, etc.). Embedded content from other websites behaves in the exact same way as if the visitor has visited the other website.
\n\n\nThese websites may collect data about you, use cookies, embed additional third-party tracking, and monitor your interaction with that embedded content, including tracking your interaction with the embedded content if you have an account and are logged in to that website.
\n\n\nSuggested text: If you request a password reset, your IP address will be included in the reset email.
\n\n\nSuggested text: If you leave a comment, the comment and its metadata are retained indefinitely. This is so we can recognize and approve any follow-up comments automatically instead of holding them in a moderation queue.
\n\n\nFor users that register on our website (if any), we also store the personal information they provide in their user profile. All users can see, edit, or delete their personal information at any time (except they cannot change their username). Website administrators can also see and edit that information.
\n\n\nSuggested text: If you have an account on this site, or have left comments, you can request to receive an exported file of the personal data we hold about you, including any data you have provided to us. You can also request that we erase any personal data we hold about you. This does not include any data we are obliged to keep for administrative, legal, or security purposes.
\n\n\nSuggested text: Visitor comments may be checked through an automated spam detection service.
\n\n','Privacy Policy','','draft','closed','open','','privacy-policy','','','2025-04-09 23:13:13','2025-04-09 23:13:13','',0,'http://localhost:8888/?page_id=3',0,'page','',0), +(4,1,'2025-04-09 23:13:37','0000-00-00 00:00:00','','Auto Draft','','auto-draft','open','open','','','','','2025-04-09 23:13:37','0000-00-00 00:00:00','',0,'http://localhost:8888/?p=4',0,'post','',0), +(6,1,'2025-04-09 18:29:34','2025-04-09 18:29:34','\nWelcome to WordPress. This is your first post. Edit or delete it, then start writing!
\n','Hello world!','','publish','open','open','','hello-world-2','','','2025-04-09 18:29:34','2025-04-09 18:29:34','',0,'http://localhost:8888/?p=1',0,'post','',1), +(7,1,'2025-04-09 18:29:34','2025-04-09 18:29:34','\nThis is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:
\n\n\n\n\n\n\n\nHi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)
...or something like this:
\n\n\n\n\n\n\n\nThe XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.
As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!
\n','Sample Page','','trash','closed','open','','sample-page-2__trashed','','','2025-08-11 21:49:53','2025-08-11 21:49:53','',0,'http://localhost:8888/?page_id=2',0,'page','',0), +(8,1,'2025-04-09 18:29:34','2025-04-09 18:29:34','\nSuggested text: Our website address is: http://localhost:8888.
\n\n\nSuggested text: When visitors leave comments on the site we collect the data shown in the comments form, and also the visitor’s IP address and browser user agent string to help spam detection.
\n\n\nAn anonymized string created from your email address (also called a hash) may be provided to the Gravatar service to see if you are using it. The Gravatar service privacy policy is available here: https://automattic.com/privacy/. After approval of your comment, your profile picture is visible to the public in the context of your comment.
\n\n\nSuggested text: If you upload images to the website, you should avoid uploading images with embedded location data (EXIF GPS) included. Visitors to the website can download and extract any location data from images on the website.
\n\n\nSuggested text: If you leave a comment on our site you may opt-in to saving your name, email address and website in cookies. These are for your convenience so that you do not have to fill in your details again when you leave another comment. These cookies will last for one year.
\n\n\nIf you visit our login page, we will set a temporary cookie to determine if your browser accepts cookies. This cookie contains no personal data and is discarded when you close your browser.
\n\n\nWhen you log in, we will also set up several cookies to save your login information and your screen display choices. Login cookies last for two days, and screen options cookies last for a year. If you select "Remember Me", your login will persist for two weeks. If you log out of your account, the login cookies will be removed.
\n\n\nIf you edit or publish an article, an additional cookie will be saved in your browser. This cookie includes no personal data and simply indicates the post ID of the article you just edited. It expires after 1 day.
\n\n\nSuggested text: Articles on this site may include embedded content (e.g. videos, images, articles, etc.). Embedded content from other websites behaves in the exact same way as if the visitor has visited the other website.
\n\n\nThese websites may collect data about you, use cookies, embed additional third-party tracking, and monitor your interaction with that embedded content, including tracking your interaction with the embedded content if you have an account and are logged in to that website.
\n\n\nSuggested text: If you request a password reset, your IP address will be included in the reset email.
\n\n\nSuggested text: If you leave a comment, the comment and its metadata are retained indefinitely. This is so we can recognize and approve any follow-up comments automatically instead of holding them in a moderation queue.
\n\n\nFor users that register on our website (if any), we also store the personal information they provide in their user profile. All users can see, edit, or delete their personal information at any time (except they cannot change their username). Website administrators can also see and edit that information.
\n\n\nSuggested text: If you have an account on this site, or have left comments, you can request to receive an exported file of the personal data we hold about you, including any data you have provided to us. You can also request that we erase any personal data we hold about you. This does not include any data we are obliged to keep for administrative, legal, or security purposes.
\n\n\nSuggested text: Visitor comments may be checked through an automated spam detection service.
\n\n','Privacy Policy','','trash','closed','open','','privacy-policy__trashed','','','2025-08-11 21:49:45','2025-08-11 21:49:45','',0,'http://localhost:8888/?page_id=3',0,'page','',0), +(9,1,'2025-04-09 18:29:56','2025-04-09 18:29:56','','Navigation','','publish','closed','closed','','navigation','','','2025-04-09 18:29:56','2025-04-09 18:29:56','',0,'http://localhost:8888/navigation/',0,'wp_navigation','',0), +(10,1,'2025-04-09 20:45:15','2025-04-09 20:45:15','\nSample content here!
\n\n\n\n\n','Sample Post','','publish','open','open','','sample-post','','','2025-04-09 20:45:15','2025-04-09 20:45:15','',0,'http://localhost:8888/?p=7',0,'post','',0), +(11,1,'2025-04-09 23:14:13','2025-04-09 23:14:13','\nWelcome to WordPress. This is your first post. Edit or delete it, then start writing!
\n','Hello world!','','inherit','closed','closed','','1-revision-v1','','','2025-04-09 23:14:13','2025-04-09 23:14:13','',1,'http://localhost:8888/?p=11',0,'revision','',0), +(12,1,'2025-08-11 22:59:40','0000-00-00 00:00:00','\nI\'m writing my post. They\'re may be some misteaks.
\n','New Draft Post','','draft','open','open','','','','','2025-08-11 22:59:40','2025-08-11 22:59:40','',0,'http://localhost:8888/?p=12',0,'post','',0), +(13,1,'2025-08-11 21:46:56','2025-08-11 21:46:56','\nI\'m writing my post. They\'re may be some misteaks.
\n','New Draft Post','','inherit','closed','closed','','12-revision-v1','','','2025-08-11 21:46:56','2025-08-11 21:46:56','',12,'http://localhost:8888/?p=13',0,'revision','',0), +(14,1,'2025-08-11 21:49:45','2025-08-11 21:49:45','\nSuggested text: Our website address is: http://localhost:8888.
\n\n\nSuggested text: When visitors leave comments on the site we collect the data shown in the comments form, and also the visitor’s IP address and browser user agent string to help spam detection.
\n\n\nAn anonymized string created from your email address (also called a hash) may be provided to the Gravatar service to see if you are using it. The Gravatar service privacy policy is available here: https://automattic.com/privacy/. After approval of your comment, your profile picture is visible to the public in the context of your comment.
\n\n\nSuggested text: If you upload images to the website, you should avoid uploading images with embedded location data (EXIF GPS) included. Visitors to the website can download and extract any location data from images on the website.
\n\n\nSuggested text: If you leave a comment on our site you may opt-in to saving your name, email address and website in cookies. These are for your convenience so that you do not have to fill in your details again when you leave another comment. These cookies will last for one year.
\n\n\nIf you visit our login page, we will set a temporary cookie to determine if your browser accepts cookies. This cookie contains no personal data and is discarded when you close your browser.
\n\n\nWhen you log in, we will also set up several cookies to save your login information and your screen display choices. Login cookies last for two days, and screen options cookies last for a year. If you select "Remember Me", your login will persist for two weeks. If you log out of your account, the login cookies will be removed.
\n\n\nIf you edit or publish an article, an additional cookie will be saved in your browser. This cookie includes no personal data and simply indicates the post ID of the article you just edited. It expires after 1 day.
\n\n\nSuggested text: Articles on this site may include embedded content (e.g. videos, images, articles, etc.). Embedded content from other websites behaves in the exact same way as if the visitor has visited the other website.
\n\n\nThese websites may collect data about you, use cookies, embed additional third-party tracking, and monitor your interaction with that embedded content, including tracking your interaction with the embedded content if you have an account and are logged in to that website.
\n\n\nSuggested text: If you request a password reset, your IP address will be included in the reset email.
\n\n\nSuggested text: If you leave a comment, the comment and its metadata are retained indefinitely. This is so we can recognize and approve any follow-up comments automatically instead of holding them in a moderation queue.
\n\n\nFor users that register on our website (if any), we also store the personal information they provide in their user profile. All users can see, edit, or delete their personal information at any time (except they cannot change their username). Website administrators can also see and edit that information.
\n\n\nSuggested text: If you have an account on this site, or have left comments, you can request to receive an exported file of the personal data we hold about you, including any data you have provided to us. You can also request that we erase any personal data we hold about you. This does not include any data we are obliged to keep for administrative, legal, or security purposes.
\n\n\nSuggested text: Visitor comments may be checked through an automated spam detection service.
\n\n','Privacy Policy','','inherit','closed','closed','','8-revision-v1','','','2025-08-11 21:49:45','2025-08-11 21:49:45','',8,'http://localhost:8888/?p=14',0,'revision','',0), +(15,1,'2025-08-11 21:49:53','2025-08-11 21:49:53','\nThis is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:
\n\n\n\n\n\n\n\nHi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)
...or something like this:
\n\n\n\n\n\n\n\nThe XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.
As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!
\n','Sample Page','','inherit','closed','closed','','7-revision-v1','','','2025-08-11 21:49:53','2025-08-11 21:49:53','',7,'http://localhost:8888/?p=15',0,'revision','',0); +/*!40000 ALTER TABLE `wp_posts` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_term_relationships` +-- + +DROP TABLE IF EXISTS `wp_term_relationships`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_term_relationships` ( + `object_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `term_taxonomy_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `term_order` int(11) NOT NULL DEFAULT 0, + PRIMARY KEY (`object_id`,`term_taxonomy_id`), + KEY `term_taxonomy_id` (`term_taxonomy_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_term_relationships` +-- + +LOCK TABLES `wp_term_relationships` WRITE; +/*!40000 ALTER TABLE `wp_term_relationships` DISABLE KEYS */; +INSERT INTO `wp_term_relationships` VALUES +(1,1,0), +(6,1,0), +(6,3,0), +(10,2,0), +(10,3,0), +(12,1,0); +/*!40000 ALTER TABLE `wp_term_relationships` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_term_taxonomy` +-- + +DROP TABLE IF EXISTS `wp_term_taxonomy`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_term_taxonomy` ( + `term_taxonomy_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `term_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `taxonomy` varchar(32) NOT NULL DEFAULT '', + `description` longtext NOT NULL, + `parent` bigint(20) unsigned NOT NULL DEFAULT 0, + `count` bigint(20) NOT NULL DEFAULT 0, + PRIMARY KEY (`term_taxonomy_id`), + UNIQUE KEY `term_id_taxonomy` (`term_id`,`taxonomy`), + KEY `taxonomy` (`taxonomy`) +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_term_taxonomy` +-- + +LOCK TABLES `wp_term_taxonomy` WRITE; +/*!40000 ALTER TABLE `wp_term_taxonomy` DISABLE KEYS */; +INSERT INTO `wp_term_taxonomy` VALUES +(1,1,'category','',0,1), +(2,2,'category','This is a sample category!',0,1), +(3,3,'post_tag','All posts with sample data in them!',0,2); +/*!40000 ALTER TABLE `wp_term_taxonomy` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_termmeta` +-- + +DROP TABLE IF EXISTS `wp_termmeta`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_termmeta` ( + `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `term_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `meta_key` varchar(255) DEFAULT NULL, + `meta_value` longtext DEFAULT NULL, + PRIMARY KEY (`meta_id`), + KEY `term_id` (`term_id`), + KEY `meta_key` (`meta_key`(191)) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_termmeta` +-- + +LOCK TABLES `wp_termmeta` WRITE; +/*!40000 ALTER TABLE `wp_termmeta` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_termmeta` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_terms` +-- + +DROP TABLE IF EXISTS `wp_terms`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_terms` ( + `term_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(200) NOT NULL DEFAULT '', + `slug` varchar(200) NOT NULL DEFAULT '', + `term_group` bigint(10) NOT NULL DEFAULT 0, + PRIMARY KEY (`term_id`), + KEY `slug` (`slug`(191)), + KEY `name` (`name`(191)) +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_terms` +-- + +LOCK TABLES `wp_terms` WRITE; +/*!40000 ALTER TABLE `wp_terms` DISABLE KEYS */; +INSERT INTO `wp_terms` VALUES +(1,'Uncategorized','uncategorized',0), +(2,'Category 1','category-1',0), +(3,'Sample Data','sample-data',0); +/*!40000 ALTER TABLE `wp_terms` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_usermeta` +-- + +DROP TABLE IF EXISTS `wp_usermeta`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_usermeta` ( + `umeta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `user_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `meta_key` varchar(255) DEFAULT NULL, + `meta_value` longtext DEFAULT NULL, + PRIMARY KEY (`umeta_id`), + KEY `user_id` (`user_id`), + KEY `meta_key` (`meta_key`(191)) +) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_usermeta` +-- + +LOCK TABLES `wp_usermeta` WRITE; +/*!40000 ALTER TABLE `wp_usermeta` DISABLE KEYS */; +INSERT INTO `wp_usermeta` VALUES +(1,1,'nickname','admin'), +(2,1,'first_name',''), +(3,1,'last_name',''), +(4,1,'description',''), +(5,1,'rich_editing','true'), +(6,1,'syntax_highlighting','true'), +(7,1,'comment_shortcuts','false'), +(8,1,'admin_color','fresh'), +(9,1,'use_ssl','0'), +(10,1,'show_admin_bar_front','true'), +(11,1,'locale',''), +(12,1,'wp_capabilities','a:1:{s:13:\"administrator\";b:1;}'), +(13,1,'wp_user_level','10'), +(14,1,'dismissed_wp_pointers',''), +(15,1,'show_welcome_panel','1'), +(16,1,'session_tokens','a:1:{s:64:\"599a7a50dd47d01009dd68bee33a48c8a6a9f8baf52d3fedc69bfc5448a658d9\";a:4:{s:10:\"expiration\";i:1755121523;s:2:\"ip\";s:12:\"192.168.65.1\";s:2:\"ua\";s:117:\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36\";s:5:\"login\";i:1754948723;}}'), +(17,1,'wp_dashboard_quick_press_last_post_id','4'), +(18,1,'community-events-location','a:1:{s:2:\"ip\";s:12:\"192.168.65.0\";}'), +(19,1,'_application_passwords','a:1:{i:0;a:7:{s:4:\"uuid\";s:36:\"ee26994b-7b88-4377-999c-22996cf4ecc5\";s:6:\"app_id\";s:0:\"\";s:4:\"name\";s:18:\"localhost-previews\";s:8:\"password\";s:49:\"$generic$bZFqMn-pLjcwfZ_4GF4bCYHI4vPiRqrk9pxvpLNz\";s:7:\"created\";i:1754953484;s:9:\"last_used\";N;s:7:\"last_ip\";N;}}'); +/*!40000 ALTER TABLE `wp_usermeta` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_users` +-- + +DROP TABLE IF EXISTS `wp_users`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_users` ( + `ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `user_login` varchar(60) NOT NULL DEFAULT '', + `user_pass` varchar(255) NOT NULL DEFAULT '', + `user_nicename` varchar(50) NOT NULL DEFAULT '', + `user_email` varchar(100) NOT NULL DEFAULT '', + `user_url` varchar(100) NOT NULL DEFAULT '', + `user_registered` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `user_activation_key` varchar(255) NOT NULL DEFAULT '', + `user_status` int(11) NOT NULL DEFAULT 0, + `display_name` varchar(250) NOT NULL DEFAULT '', + PRIMARY KEY (`ID`), + KEY `user_login_key` (`user_login`), + KEY `user_nicename` (`user_nicename`), + KEY `user_email` (`user_email`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_users` +-- + +LOCK TABLES `wp_users` WRITE; +/*!40000 ALTER TABLE `wp_users` DISABLE KEYS */; +INSERT INTO `wp_users` VALUES +(1,'admin','$wp$2y$10$VjbO89GXcJ.C1V5QhXH/2.qIcRPbNr184JCymQdn8eZAxRitEfmKG','admin','wordpress@example.com','http://localhost:8888','2025-04-09 23:13:13','',0,'admin'); +/*!40000 ALTER TABLE `wp_users` ENABLE KEYS */; +UNLOCK TABLES; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*M!100616 SET NOTE_VERBOSITY=@OLD_NOTE_VERBOSITY */; + +-- Dump completed on 2025-08-11 23:05:11 diff --git a/examples/astro/previews/wp-env/setup/.htaccess b/examples/astro/previews/wp-env/setup/.htaccess new file mode 100644 index 00000000..fd77845f --- /dev/null +++ b/examples/astro/previews/wp-env/setup/.htaccess @@ -0,0 +1,15 @@ +# BEGIN WordPress +# The directives (lines) between "BEGIN WordPress" and "END WordPress" are +# dynamically generated, and should only be modified via WordPress filters. +# Any changes to the directives between these markers will be overwritten. +