diff --git a/.env-gmolab b/.env-gmolab deleted file mode 100644 index 796f515..0000000 --- a/.env-gmolab +++ /dev/null @@ -1,4 +0,0 @@ -HOST_NAME=wp-dev.gmolab.net -HOST_IP=172.31.10.15 -PHPADMIN_IMAGE=arm64v8/phpmyadmin:5.2.3 -ENVIRONMENT=gmolab \ No newline at end of file diff --git a/.env-vdglab b/.env-vdglab deleted file mode 100644 index fe1a4bc..0000000 --- a/.env-vdglab +++ /dev/null @@ -1,4 +0,0 @@ -HOST_NAME=wp.vdglab.net -HOST_IP=10.10.8.104 -PHPADMIN_IMAGE=phpmyadmin/phpmyadmin:latest -ENVIRONMENT=vdglab \ No newline at end of file diff --git a/.gitignore b/.gitignore index 2eea525..ac505c8 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -.env \ No newline at end of file +.env +dump-db/*.sql \ No newline at end of file diff --git a/README.md b/README.md index 5ff476b..9f53803 100644 --- a/README.md +++ b/README.md @@ -4,26 +4,27 @@ This docker compose run wordpress on docker ## Requierments -### Folder +* GMoTech/GMoLab/VdGLab Linux environment + * Rocky Linux 10 + * Redhat 10 +* Certificats + * Copy crt and key files on `/home/docker/certs/` +* Environment file + +## Environment file +Copy `env-dist` to `env-` file and adapt as your needs + +## Build ```bash -sudo mkdir -p /home/docker/wp/wp-site -sudo mkdir -p /home/docker/wp/wp-db +./manage.sh --env --build ``` -### Certificats -Copy crt and key files on `/home/docker/certs/` - -## Env file - -## DB -Dans le script modifier le sql en fonction de l'environnement -A faire - -## Run +## Start ```bash -docker compose up -d +./manage.sh --env --start ``` ## DB -The base DB is ready +The database is a dump of wp first install +The script adapt the sql file with data from environment file ## Apache ### http-wp-dev.conf @@ -74,13 +75,57 @@ The base DB is ready ProxyPassReverse "/" "https://127.0.0.1:8080/" ``` +### http-phpmyadmin-dev.conf +``` + + ServerName phpmyadmin-dev.gmolab.net + ServerAlias phpmyadmin-dev + CustomLog logs/phpmyadmin-dev_access_log common + ErrorLog logs/phpmyadmin-dev_error_log + # redirect to https + RewriteEngine on + RewriteCond %{SERVER_NAME} =wp-dev [OR] + RewriteCond %{SERVER_NAME} =phpmyadmin-dev.gmolab.net + RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] + +``` +### https-phpmyadmin-dev.conf +``` +# General setup for the virtual host + + ServerName phpmyadmin-dev.gmolab.net + ServerAlias phpmyadmin-dev + CustomLog logs/phpmyadmin-dev_access_log common + ErrorLog logs/phpmyadmin-dev_error_log + +# SSL + SSLEngine on + SSLHonorCipherOrder on + SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 + SSLHonorCipherOrder on + SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4 + # Enable HTTP/2, if available + Protocols h2 http/1.1 + # HTTP Strict Transport Security (mod_headers is required) (63072000 seconds) + Header always set Strict-Transport-Security "max-age=63072000" +# certificats + SSLCertificateFile "/etc/httpd/auth/cert/gmolab.net.crt" + SSLCertificateKeyFile "/etc/httpd/auth/cert/gmolab.net.key" + SSLCertificateChainFile "/etc/httpd/auth/cert/gmolabCA.crt" +# proxy + RequestHeader set X-Forwarded-Proto "https" + ProxyPreserveHost On + ProxyPass "/" "http://127.0.0.1:8180/" + ProxyPassReverse "/" "http://127.0.0.1:8180/" + +``` + ## Access https://wp-dev.gmolab.net - +https://phpmyadmin-dev.gmolab.net ### [1.0.0] - 2026-02-06 #### Added - initial version by [GMo](mailto:gilles.mouchet@gmail.com) - diff --git a/db-tmpl.sql b/db-tmpl.sql new file mode 100644 index 0000000..77a8f8c --- /dev/null +++ b/db-tmpl.sql @@ -0,0 +1,412 @@ +/*M!999999\- enable the sandbox mode */ +-- MariaDB dump 10.19 Distrib 10.5.27-MariaDB, for Linux (x86_64) +-- +-- Host: gmodocker01t Database: wordpress +-- ------------------------------------------------------ +-- Server version 8.0.45 + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `wp_commentmeta` +-- + +DROP TABLE IF EXISTS `wp_commentmeta`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `wp_commentmeta` ( + `meta_id` bigint unsigned NOT NULL AUTO_INCREMENT, + `comment_id` bigint unsigned NOT NULL DEFAULT '0', + `meta_key` varchar(255) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL, + `meta_value` longtext COLLATE utf8mb4_unicode_520_ci, + PRIMARY KEY (`meta_id`), + KEY `comment_id` (`comment_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_commentmeta` +-- + +LOCK TABLES `wp_commentmeta` WRITE; +/*!40000 ALTER TABLE `wp_commentmeta` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_commentmeta` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_comments` +-- + +DROP TABLE IF EXISTS `wp_comments`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `wp_comments` ( + `comment_ID` bigint unsigned NOT NULL AUTO_INCREMENT, + `comment_post_ID` bigint unsigned NOT NULL DEFAULT '0', + `comment_author` tinytext COLLATE utf8mb4_unicode_520_ci NOT NULL, + `comment_author_email` varchar(100) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', + `comment_author_url` varchar(200) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', + `comment_author_IP` varchar(100) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', + `comment_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `comment_date_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `comment_content` text COLLATE utf8mb4_unicode_520_ci NOT NULL, + `comment_karma` int NOT NULL DEFAULT '0', + `comment_approved` varchar(20) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '1', + `comment_agent` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', + `comment_type` varchar(20) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT 'comment', + `comment_parent` bigint unsigned NOT NULL DEFAULT '0', + `user_id` bigint unsigned NOT NULL DEFAULT '0', + PRIMARY KEY (`comment_ID`), + KEY `comment_post_ID` (`comment_post_ID`), + KEY `comment_approved_date_gmt` (`comment_approved`,`comment_date_gmt`), + KEY `comment_date_gmt` (`comment_date_gmt`), + KEY `comment_parent` (`comment_parent`), + KEY `comment_author_email` (`comment_author_email`(10)) +) 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_comments` +-- + +LOCK TABLES `wp_comments` WRITE; +/*!40000 ALTER TABLE `wp_comments` DISABLE KEYS */; +INSERT INTO `wp_comments` VALUES (1,1,'A WordPress Commenter','wapuu@wordpress.example','https://wordpress.org/','','2026-02-02 13:05:02','2026-02-02 13:05:02','Hi, this is a comment.\nTo get started with moderating, editing, and deleting comments, please visit the Comments screen in the dashboard.\nCommenter avatars come from Gravatar.',0,'1','','comment',0,0); +/*!40000 ALTER TABLE `wp_comments` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_links` +-- + +DROP TABLE IF EXISTS `wp_links`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `wp_links` ( + `link_id` bigint unsigned NOT NULL AUTO_INCREMENT, + `link_url` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', + `link_name` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', + `link_image` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', + `link_target` varchar(25) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', + `link_description` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', + `link_visible` varchar(20) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT 'Y', + `link_owner` bigint unsigned NOT NULL DEFAULT '1', + `link_rating` int NOT NULL DEFAULT '0', + `link_updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `link_rel` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', + `link_notes` mediumtext COLLATE utf8mb4_unicode_520_ci NOT NULL, + `link_rss` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', + PRIMARY KEY (`link_id`), + KEY `link_visible` (`link_visible`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_links` +-- + +LOCK TABLES `wp_links` WRITE; +/*!40000 ALTER TABLE `wp_links` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_links` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_options` +-- + +DROP TABLE IF EXISTS `wp_options`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `wp_options` ( + `option_id` bigint unsigned NOT NULL AUTO_INCREMENT, + `option_name` varchar(191) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', + `option_value` longtext COLLATE utf8mb4_unicode_520_ci NOT NULL, + `autoload` varchar(20) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT 'yes', + PRIMARY KEY (`option_id`), + UNIQUE KEY `option_name` (`option_name`), + KEY `autoload` (`autoload`) +) ENGINE=InnoDB AUTO_INCREMENT=155 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_options` +-- + +LOCK TABLES `wp_options` WRITE; +/*!40000 ALTER TABLE `wp_options` DISABLE KEYS */; +INSERT INTO `wp_options` VALUES (1,'cron','a:11:{i:1770037577;a:1:{s:28:\"wp_update_comment_type_batch\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:2:{s:8:\"schedule\";b:0;s:4:\"args\";a:0:{}}}}i:1770041102;a:1:{s:16:\"wp_version_check\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}}i:1770041104;a:1:{s:34:\"wp_privacy_delete_old_export_files\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"hourly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:3600;}}}i:1770042902;a:1:{s:17:\"wp_update_plugins\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}}i:1770044702;a:1:{s:16:\"wp_update_themes\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}}i:1770080717;a:1:{s:21:\"wp_update_user_counts\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}}i:1770123904;a:2:{s:30:\"wp_site_health_scheduled_check\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"weekly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:604800;}}s:32:\"recovery_mode_clean_expired_keys\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1770123917;a:2:{s:19:\"wp_scheduled_delete\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}s:25:\"delete_expired_transients\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1770123919;a:1:{s:30:\"wp_scheduled_auto_draft_delete\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1770642359;a:1:{s:30:\"wp_delete_temp_updater_backups\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"weekly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:604800;}}}s:7:\"version\";i:2;}','on'),(2,'siteurl','https://_FQDN_','on'),(3,'home','https://_FQDN_','on'),(4,'blogname','_SITE_TITLE_','on'),(5,'blogdescription','','on'),(6,'users_can_register','0','on'),(7,'admin_email','gmo@geneve.ch','on'),(8,'start_of_week','1','on'),(9,'use_balanceTags','0','on'),(10,'use_smilies','1','on'),(11,'require_name_email','1','on'),(12,'comments_notify','1','on'),(13,'posts_per_rss','10','on'),(14,'rss_use_excerpt','0','on'),(15,'mailserver_url','mail.example.com','on'),(16,'mailserver_login','login@example.com','on'),(17,'mailserver_pass','','on'),(18,'mailserver_port','110','on'),(19,'default_category','1','on'),(20,'default_comment_status','open','on'),(21,'default_ping_status','open','on'),(22,'default_pingback_flag','1','on'),(23,'posts_per_page','10','on'),(24,'date_format','F j, Y','on'),(25,'time_format','g:i a','on'),(26,'links_updated_date_format','F j, Y g:i a','on'),(27,'comment_moderation','0','on'),(28,'moderation_notify','1','on'),(29,'permalink_structure','','on'),(30,'rewrite_rules','','on'),(31,'hack_file','0','on'),(32,'blog_charset','UTF-8','on'),(33,'moderation_keys','','off'),(34,'active_plugins','a:0:{}','on'),(35,'category_base','','on'),(36,'ping_sites','https://rpc.pingomatic.com/','on'),(37,'comment_max_links','2','on'),(38,'gmt_offset','0','on'),(39,'default_email_category','1','on'),(40,'recently_edited','','off'),(41,'template','twentytwentyfive','on'),(42,'stylesheet','twentytwentyfive','on'),(43,'comment_registration','0','on'),(44,'html_type','text/html','on'),(45,'use_trackback','0','on'),(46,'default_role','subscriber','on'),(47,'db_version','60717','on'),(48,'uploads_use_yearmonth_folders','1','on'),(49,'upload_path','','on'),(50,'blog_public','1','on'),(51,'default_link_category','2','on'),(52,'show_on_front','posts','on'),(53,'tag_base','','on'),(54,'show_avatars','1','on'),(55,'avatar_rating','G','on'),(56,'upload_url_path','','on'),(57,'thumbnail_size_w','150','on'),(58,'thumbnail_size_h','150','on'),(59,'thumbnail_crop','1','on'),(60,'medium_size_w','300','on'),(61,'medium_size_h','300','on'),(62,'avatar_default','mystery','on'),(63,'large_size_w','1024','on'),(64,'large_size_h','1024','on'),(65,'image_default_link_type','none','on'),(66,'image_default_size','','on'),(67,'image_default_align','','on'),(68,'close_comments_for_old_posts','0','on'),(69,'close_comments_days_old','14','on'),(70,'thread_comments','1','on'),(71,'thread_comments_depth','5','on'),(72,'page_comments','0','on'),(73,'comments_per_page','50','on'),(74,'default_comments_page','newest','on'),(75,'comment_order','asc','on'),(76,'sticky_posts','a:0:{}','on'),(77,'widget_categories','a:0:{}','on'),(78,'widget_text','a:0:{}','on'),(79,'widget_rss','a:0:{}','on'),(80,'uninstall_plugins','a:0:{}','off'),(81,'timezone_string','','on'),(82,'page_for_posts','0','on'),(83,'page_on_front','0','on'),(84,'default_post_format','0','on'),(85,'link_manager_enabled','0','on'),(86,'finished_splitting_shared_terms','1','on'),(87,'site_icon','0','on'),(88,'medium_large_size_w','768','on'),(89,'medium_large_size_h','0','on'),(90,'wp_page_for_privacy_policy','3','on'),(91,'show_comments_cookies_opt_in','1','on'),(92,'admin_email_lifespan','1785589502','on'),(93,'disallowed_keys','','off'),(94,'comment_previously_approved','1','on'),(95,'auto_plugin_theme_update_emails','a:0:{}','off'),(96,'auto_update_core_dev','enabled','on'),(97,'auto_update_core_minor','enabled','on'),(98,'auto_update_core_major','enabled','on'),(99,'wp_force_deactivated_plugins','a:0:{}','on'),(100,'wp_attachment_pages_enabled','0','on'),(101,'wp_notes_notify','1','on'),(102,'initial_db_version','60717','on'),(103,'wp_user_roles','a:5:{s:13:\"administrator\";a:2:{s:4:\"name\";s:13:\"Administrator\";s:12:\"capabilities\";a:61:{s:13:\"switch_themes\";b:1;s:11:\"edit_themes\";b:1;s:16:\"activate_plugins\";b:1;s:12:\"edit_plugins\";b:1;s:10:\"edit_users\";b:1;s:10:\"edit_files\";b:1;s:14:\"manage_options\";b:1;s:17:\"moderate_comments\";b:1;s:17:\"manage_categories\";b:1;s:12:\"manage_links\";b:1;s:12:\"upload_files\";b:1;s:6:\"import\";b:1;s:15:\"unfiltered_html\";b:1;s:10:\"edit_posts\";b:1;s:17:\"edit_others_posts\";b:1;s:20:\"edit_published_posts\";b:1;s:13:\"publish_posts\";b:1;s:10:\"edit_pages\";b:1;s:4:\"read\";b:1;s:8:\"level_10\";b:1;s:7:\"level_9\";b:1;s:7:\"level_8\";b:1;s:7:\"level_7\";b:1;s:7:\"level_6\";b:1;s:7:\"level_5\";b:1;s:7:\"level_4\";b:1;s:7:\"level_3\";b:1;s:7:\"level_2\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:17:\"edit_others_pages\";b:1;s:20:\"edit_published_pages\";b:1;s:13:\"publish_pages\";b:1;s:12:\"delete_pages\";b:1;s:19:\"delete_others_pages\";b:1;s:22:\"delete_published_pages\";b:1;s:12:\"delete_posts\";b:1;s:19:\"delete_others_posts\";b:1;s:22:\"delete_published_posts\";b:1;s:20:\"delete_private_posts\";b:1;s:18:\"edit_private_posts\";b:1;s:18:\"read_private_posts\";b:1;s:20:\"delete_private_pages\";b:1;s:18:\"edit_private_pages\";b:1;s:18:\"read_private_pages\";b:1;s:12:\"delete_users\";b:1;s:12:\"create_users\";b:1;s:17:\"unfiltered_upload\";b:1;s:14:\"edit_dashboard\";b:1;s:14:\"update_plugins\";b:1;s:14:\"delete_plugins\";b:1;s:15:\"install_plugins\";b:1;s:13:\"update_themes\";b:1;s:14:\"install_themes\";b:1;s:11:\"update_core\";b:1;s:10:\"list_users\";b:1;s:12:\"remove_users\";b:1;s:13:\"promote_users\";b:1;s:18:\"edit_theme_options\";b:1;s:13:\"delete_themes\";b:1;s:6:\"export\";b:1;}}s:6:\"editor\";a:2:{s:4:\"name\";s:6:\"Editor\";s:12:\"capabilities\";a:34:{s:17:\"moderate_comments\";b:1;s:17:\"manage_categories\";b:1;s:12:\"manage_links\";b:1;s:12:\"upload_files\";b:1;s:15:\"unfiltered_html\";b:1;s:10:\"edit_posts\";b:1;s:17:\"edit_others_posts\";b:1;s:20:\"edit_published_posts\";b:1;s:13:\"publish_posts\";b:1;s:10:\"edit_pages\";b:1;s:4:\"read\";b:1;s:7:\"level_7\";b:1;s:7:\"level_6\";b:1;s:7:\"level_5\";b:1;s:7:\"level_4\";b:1;s:7:\"level_3\";b:1;s:7:\"level_2\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:17:\"edit_others_pages\";b:1;s:20:\"edit_published_pages\";b:1;s:13:\"publish_pages\";b:1;s:12:\"delete_pages\";b:1;s:19:\"delete_others_pages\";b:1;s:22:\"delete_published_pages\";b:1;s:12:\"delete_posts\";b:1;s:19:\"delete_others_posts\";b:1;s:22:\"delete_published_posts\";b:1;s:20:\"delete_private_posts\";b:1;s:18:\"edit_private_posts\";b:1;s:18:\"read_private_posts\";b:1;s:20:\"delete_private_pages\";b:1;s:18:\"edit_private_pages\";b:1;s:18:\"read_private_pages\";b:1;}}s:6:\"author\";a:2:{s:4:\"name\";s:6:\"Author\";s:12:\"capabilities\";a:10:{s:12:\"upload_files\";b:1;s:10:\"edit_posts\";b:1;s:20:\"edit_published_posts\";b:1;s:13:\"publish_posts\";b:1;s:4:\"read\";b:1;s:7:\"level_2\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:12:\"delete_posts\";b:1;s:22:\"delete_published_posts\";b:1;}}s:11:\"contributor\";a:2:{s:4:\"name\";s:11:\"Contributor\";s:12:\"capabilities\";a:5:{s:10:\"edit_posts\";b:1;s:4:\"read\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:12:\"delete_posts\";b:1;}}s:10:\"subscriber\";a:2:{s:4:\"name\";s:10:\"Subscriber\";s:12:\"capabilities\";a:2:{s:4:\"read\";b:1;s:7:\"level_0\";b:1;}}}','on'),(104,'fresh_site','1','off'),(105,'user_count','1','off'),(106,'widget_block','a:6:{i:2;a:1:{s:7:\"content\";s:19:\"\";}i:3;a:1:{s:7:\"content\";s:154:\"

Recent Posts

\";}i:4;a:1:{s:7:\"content\";s:227:\"

Recent Comments

\";}i:5;a:1:{s:7:\"content\";s:146:\"

Archives

\";}i:6;a:1:{s:7:\"content\";s:150:\"

Categories

\";}s:12:\"_multiwidget\";i:1;}','auto'),(107,'sidebars_widgets','a:4:{s:19:\"wp_inactive_widgets\";a:0:{}s:9:\"sidebar-1\";a:3:{i:0;s:7:\"block-2\";i:1;s:7:\"block-3\";i:2;s:7:\"block-4\";}s:9:\"sidebar-2\";a:2:{i:0;s:7:\"block-5\";i:1;s:7:\"block-6\";}s:13:\"array_version\";i:3;}','auto'),(108,'widget_pages','a:1:{s:12:\"_multiwidget\";i:1;}','auto'),(109,'widget_calendar','a:1:{s:12:\"_multiwidget\";i:1;}','auto'),(110,'widget_archives','a:1:{s:12:\"_multiwidget\";i:1;}','auto'),(111,'widget_media_audio','a:1:{s:12:\"_multiwidget\";i:1;}','auto'),(112,'widget_media_image','a:1:{s:12:\"_multiwidget\";i:1;}','auto'),(113,'widget_media_gallery','a:1:{s:12:\"_multiwidget\";i:1;}','auto'),(114,'widget_media_video','a:1:{s:12:\"_multiwidget\";i:1;}','auto'),(115,'widget_meta','a:1:{s:12:\"_multiwidget\";i:1;}','auto'),(116,'widget_search','a:1:{s:12:\"_multiwidget\";i:1;}','auto'),(117,'widget_recent-posts','a:1:{s:12:\"_multiwidget\";i:1;}','auto'),(118,'widget_recent-comments','a:1:{s:12:\"_multiwidget\";i:1;}','auto'),(119,'widget_tag_cloud','a:1:{s:12:\"_multiwidget\";i:1;}','auto'),(120,'widget_nav_menu','a:1:{s:12:\"_multiwidget\";i:1;}','auto'),(121,'widget_custom_html','a:1:{s:12:\"_multiwidget\";i:1;}','auto'),(122,'_transient_wp_core_block_css_files','a:2:{s:7:\"version\";s:3:\"6.9\";s:5:\"files\";a:584:{i:0;s:31:\"accordion-heading/style-rtl.css\";i:1;s:35:\"accordion-heading/style-rtl.min.css\";i:2;s:27:\"accordion-heading/style.css\";i:3;s:31:\"accordion-heading/style.min.css\";i:4;s:28:\"accordion-item/style-rtl.css\";i:5;s:32:\"accordion-item/style-rtl.min.css\";i:6;s:24:\"accordion-item/style.css\";i:7;s:28:\"accordion-item/style.min.css\";i:8;s:29:\"accordion-panel/style-rtl.css\";i:9;s:33:\"accordion-panel/style-rtl.min.css\";i:10;s:25:\"accordion-panel/style.css\";i:11;s:29:\"accordion-panel/style.min.css\";i:12;s:23:\"accordion/style-rtl.css\";i:13;s:27:\"accordion/style-rtl.min.css\";i:14;s:19:\"accordion/style.css\";i:15;s:23:\"accordion/style.min.css\";i:16;s:23:\"archives/editor-rtl.css\";i:17;s:27:\"archives/editor-rtl.min.css\";i:18;s:19:\"archives/editor.css\";i:19;s:23:\"archives/editor.min.css\";i:20;s:22:\"archives/style-rtl.css\";i:21;s:26:\"archives/style-rtl.min.css\";i:22;s:18:\"archives/style.css\";i:23;s:22:\"archives/style.min.css\";i:24;s:20:\"audio/editor-rtl.css\";i:25;s:24:\"audio/editor-rtl.min.css\";i:26;s:16:\"audio/editor.css\";i:27;s:20:\"audio/editor.min.css\";i:28;s:19:\"audio/style-rtl.css\";i:29;s:23:\"audio/style-rtl.min.css\";i:30;s:15:\"audio/style.css\";i:31;s:19:\"audio/style.min.css\";i:32;s:19:\"audio/theme-rtl.css\";i:33;s:23:\"audio/theme-rtl.min.css\";i:34;s:15:\"audio/theme.css\";i:35;s:19:\"audio/theme.min.css\";i:36;s:21:\"avatar/editor-rtl.css\";i:37;s:25:\"avatar/editor-rtl.min.css\";i:38;s:17:\"avatar/editor.css\";i:39;s:21:\"avatar/editor.min.css\";i:40;s:20:\"avatar/style-rtl.css\";i:41;s:24:\"avatar/style-rtl.min.css\";i:42;s:16:\"avatar/style.css\";i:43;s:20:\"avatar/style.min.css\";i:44;s:21:\"button/editor-rtl.css\";i:45;s:25:\"button/editor-rtl.min.css\";i:46;s:17:\"button/editor.css\";i:47;s:21:\"button/editor.min.css\";i:48;s:20:\"button/style-rtl.css\";i:49;s:24:\"button/style-rtl.min.css\";i:50;s:16:\"button/style.css\";i:51;s:20:\"button/style.min.css\";i:52;s:22:\"buttons/editor-rtl.css\";i:53;s:26:\"buttons/editor-rtl.min.css\";i:54;s:18:\"buttons/editor.css\";i:55;s:22:\"buttons/editor.min.css\";i:56;s:21:\"buttons/style-rtl.css\";i:57;s:25:\"buttons/style-rtl.min.css\";i:58;s:17:\"buttons/style.css\";i:59;s:21:\"buttons/style.min.css\";i:60;s:22:\"calendar/style-rtl.css\";i:61;s:26:\"calendar/style-rtl.min.css\";i:62;s:18:\"calendar/style.css\";i:63;s:22:\"calendar/style.min.css\";i:64;s:25:\"categories/editor-rtl.css\";i:65;s:29:\"categories/editor-rtl.min.css\";i:66;s:21:\"categories/editor.css\";i:67;s:25:\"categories/editor.min.css\";i:68;s:24:\"categories/style-rtl.css\";i:69;s:28:\"categories/style-rtl.min.css\";i:70;s:20:\"categories/style.css\";i:71;s:24:\"categories/style.min.css\";i:72;s:19:\"code/editor-rtl.css\";i:73;s:23:\"code/editor-rtl.min.css\";i:74;s:15:\"code/editor.css\";i:75;s:19:\"code/editor.min.css\";i:76;s:18:\"code/style-rtl.css\";i:77;s:22:\"code/style-rtl.min.css\";i:78;s:14:\"code/style.css\";i:79;s:18:\"code/style.min.css\";i:80;s:18:\"code/theme-rtl.css\";i:81;s:22:\"code/theme-rtl.min.css\";i:82;s:14:\"code/theme.css\";i:83;s:18:\"code/theme.min.css\";i:84;s:22:\"columns/editor-rtl.css\";i:85;s:26:\"columns/editor-rtl.min.css\";i:86;s:18:\"columns/editor.css\";i:87;s:22:\"columns/editor.min.css\";i:88;s:21:\"columns/style-rtl.css\";i:89;s:25:\"columns/style-rtl.min.css\";i:90;s:17:\"columns/style.css\";i:91;s:21:\"columns/style.min.css\";i:92;s:33:\"comment-author-name/style-rtl.css\";i:93;s:37:\"comment-author-name/style-rtl.min.css\";i:94;s:29:\"comment-author-name/style.css\";i:95;s:33:\"comment-author-name/style.min.css\";i:96;s:29:\"comment-content/style-rtl.css\";i:97;s:33:\"comment-content/style-rtl.min.css\";i:98;s:25:\"comment-content/style.css\";i:99;s:29:\"comment-content/style.min.css\";i:100;s:26:\"comment-date/style-rtl.css\";i:101;s:30:\"comment-date/style-rtl.min.css\";i:102;s:22:\"comment-date/style.css\";i:103;s:26:\"comment-date/style.min.css\";i:104;s:31:\"comment-edit-link/style-rtl.css\";i:105;s:35:\"comment-edit-link/style-rtl.min.css\";i:106;s:27:\"comment-edit-link/style.css\";i:107;s:31:\"comment-edit-link/style.min.css\";i:108;s:32:\"comment-reply-link/style-rtl.css\";i:109;s:36:\"comment-reply-link/style-rtl.min.css\";i:110;s:28:\"comment-reply-link/style.css\";i:111;s:32:\"comment-reply-link/style.min.css\";i:112;s:30:\"comment-template/style-rtl.css\";i:113;s:34:\"comment-template/style-rtl.min.css\";i:114;s:26:\"comment-template/style.css\";i:115;s:30:\"comment-template/style.min.css\";i:116;s:42:\"comments-pagination-numbers/editor-rtl.css\";i:117;s:46:\"comments-pagination-numbers/editor-rtl.min.css\";i:118;s:38:\"comments-pagination-numbers/editor.css\";i:119;s:42:\"comments-pagination-numbers/editor.min.css\";i:120;s:34:\"comments-pagination/editor-rtl.css\";i:121;s:38:\"comments-pagination/editor-rtl.min.css\";i:122;s:30:\"comments-pagination/editor.css\";i:123;s:34:\"comments-pagination/editor.min.css\";i:124;s:33:\"comments-pagination/style-rtl.css\";i:125;s:37:\"comments-pagination/style-rtl.min.css\";i:126;s:29:\"comments-pagination/style.css\";i:127;s:33:\"comments-pagination/style.min.css\";i:128;s:29:\"comments-title/editor-rtl.css\";i:129;s:33:\"comments-title/editor-rtl.min.css\";i:130;s:25:\"comments-title/editor.css\";i:131;s:29:\"comments-title/editor.min.css\";i:132;s:23:\"comments/editor-rtl.css\";i:133;s:27:\"comments/editor-rtl.min.css\";i:134;s:19:\"comments/editor.css\";i:135;s:23:\"comments/editor.min.css\";i:136;s:22:\"comments/style-rtl.css\";i:137;s:26:\"comments/style-rtl.min.css\";i:138;s:18:\"comments/style.css\";i:139;s:22:\"comments/style.min.css\";i:140;s:20:\"cover/editor-rtl.css\";i:141;s:24:\"cover/editor-rtl.min.css\";i:142;s:16:\"cover/editor.css\";i:143;s:20:\"cover/editor.min.css\";i:144;s:19:\"cover/style-rtl.css\";i:145;s:23:\"cover/style-rtl.min.css\";i:146;s:15:\"cover/style.css\";i:147;s:19:\"cover/style.min.css\";i:148;s:22:\"details/editor-rtl.css\";i:149;s:26:\"details/editor-rtl.min.css\";i:150;s:18:\"details/editor.css\";i:151;s:22:\"details/editor.min.css\";i:152;s:21:\"details/style-rtl.css\";i:153;s:25:\"details/style-rtl.min.css\";i:154;s:17:\"details/style.css\";i:155;s:21:\"details/style.min.css\";i:156;s:20:\"embed/editor-rtl.css\";i:157;s:24:\"embed/editor-rtl.min.css\";i:158;s:16:\"embed/editor.css\";i:159;s:20:\"embed/editor.min.css\";i:160;s:19:\"embed/style-rtl.css\";i:161;s:23:\"embed/style-rtl.min.css\";i:162;s:15:\"embed/style.css\";i:163;s:19:\"embed/style.min.css\";i:164;s:19:\"embed/theme-rtl.css\";i:165;s:23:\"embed/theme-rtl.min.css\";i:166;s:15:\"embed/theme.css\";i:167;s:19:\"embed/theme.min.css\";i:168;s:19:\"file/editor-rtl.css\";i:169;s:23:\"file/editor-rtl.min.css\";i:170;s:15:\"file/editor.css\";i:171;s:19:\"file/editor.min.css\";i:172;s:18:\"file/style-rtl.css\";i:173;s:22:\"file/style-rtl.min.css\";i:174;s:14:\"file/style.css\";i:175;s:18:\"file/style.min.css\";i:176;s:23:\"footnotes/style-rtl.css\";i:177;s:27:\"footnotes/style-rtl.min.css\";i:178;s:19:\"footnotes/style.css\";i:179;s:23:\"footnotes/style.min.css\";i:180;s:23:\"freeform/editor-rtl.css\";i:181;s:27:\"freeform/editor-rtl.min.css\";i:182;s:19:\"freeform/editor.css\";i:183;s:23:\"freeform/editor.min.css\";i:184;s:22:\"gallery/editor-rtl.css\";i:185;s:26:\"gallery/editor-rtl.min.css\";i:186;s:18:\"gallery/editor.css\";i:187;s:22:\"gallery/editor.min.css\";i:188;s:21:\"gallery/style-rtl.css\";i:189;s:25:\"gallery/style-rtl.min.css\";i:190;s:17:\"gallery/style.css\";i:191;s:21:\"gallery/style.min.css\";i:192;s:21:\"gallery/theme-rtl.css\";i:193;s:25:\"gallery/theme-rtl.min.css\";i:194;s:17:\"gallery/theme.css\";i:195;s:21:\"gallery/theme.min.css\";i:196;s:20:\"group/editor-rtl.css\";i:197;s:24:\"group/editor-rtl.min.css\";i:198;s:16:\"group/editor.css\";i:199;s:20:\"group/editor.min.css\";i:200;s:19:\"group/style-rtl.css\";i:201;s:23:\"group/style-rtl.min.css\";i:202;s:15:\"group/style.css\";i:203;s:19:\"group/style.min.css\";i:204;s:19:\"group/theme-rtl.css\";i:205;s:23:\"group/theme-rtl.min.css\";i:206;s:15:\"group/theme.css\";i:207;s:19:\"group/theme.min.css\";i:208;s:21:\"heading/style-rtl.css\";i:209;s:25:\"heading/style-rtl.min.css\";i:210;s:17:\"heading/style.css\";i:211;s:21:\"heading/style.min.css\";i:212;s:19:\"html/editor-rtl.css\";i:213;s:23:\"html/editor-rtl.min.css\";i:214;s:15:\"html/editor.css\";i:215;s:19:\"html/editor.min.css\";i:216;s:20:\"image/editor-rtl.css\";i:217;s:24:\"image/editor-rtl.min.css\";i:218;s:16:\"image/editor.css\";i:219;s:20:\"image/editor.min.css\";i:220;s:19:\"image/style-rtl.css\";i:221;s:23:\"image/style-rtl.min.css\";i:222;s:15:\"image/style.css\";i:223;s:19:\"image/style.min.css\";i:224;s:19:\"image/theme-rtl.css\";i:225;s:23:\"image/theme-rtl.min.css\";i:226;s:15:\"image/theme.css\";i:227;s:19:\"image/theme.min.css\";i:228;s:29:\"latest-comments/style-rtl.css\";i:229;s:33:\"latest-comments/style-rtl.min.css\";i:230;s:25:\"latest-comments/style.css\";i:231;s:29:\"latest-comments/style.min.css\";i:232;s:27:\"latest-posts/editor-rtl.css\";i:233;s:31:\"latest-posts/editor-rtl.min.css\";i:234;s:23:\"latest-posts/editor.css\";i:235;s:27:\"latest-posts/editor.min.css\";i:236;s:26:\"latest-posts/style-rtl.css\";i:237;s:30:\"latest-posts/style-rtl.min.css\";i:238;s:22:\"latest-posts/style.css\";i:239;s:26:\"latest-posts/style.min.css\";i:240;s:18:\"list/style-rtl.css\";i:241;s:22:\"list/style-rtl.min.css\";i:242;s:14:\"list/style.css\";i:243;s:18:\"list/style.min.css\";i:244;s:22:\"loginout/style-rtl.css\";i:245;s:26:\"loginout/style-rtl.min.css\";i:246;s:18:\"loginout/style.css\";i:247;s:22:\"loginout/style.min.css\";i:248;s:19:\"math/editor-rtl.css\";i:249;s:23:\"math/editor-rtl.min.css\";i:250;s:15:\"math/editor.css\";i:251;s:19:\"math/editor.min.css\";i:252;s:18:\"math/style-rtl.css\";i:253;s:22:\"math/style-rtl.min.css\";i:254;s:14:\"math/style.css\";i:255;s:18:\"math/style.min.css\";i:256;s:25:\"media-text/editor-rtl.css\";i:257;s:29:\"media-text/editor-rtl.min.css\";i:258;s:21:\"media-text/editor.css\";i:259;s:25:\"media-text/editor.min.css\";i:260;s:24:\"media-text/style-rtl.css\";i:261;s:28:\"media-text/style-rtl.min.css\";i:262;s:20:\"media-text/style.css\";i:263;s:24:\"media-text/style.min.css\";i:264;s:19:\"more/editor-rtl.css\";i:265;s:23:\"more/editor-rtl.min.css\";i:266;s:15:\"more/editor.css\";i:267;s:19:\"more/editor.min.css\";i:268;s:30:\"navigation-link/editor-rtl.css\";i:269;s:34:\"navigation-link/editor-rtl.min.css\";i:270;s:26:\"navigation-link/editor.css\";i:271;s:30:\"navigation-link/editor.min.css\";i:272;s:29:\"navigation-link/style-rtl.css\";i:273;s:33:\"navigation-link/style-rtl.min.css\";i:274;s:25:\"navigation-link/style.css\";i:275;s:29:\"navigation-link/style.min.css\";i:276;s:33:\"navigation-submenu/editor-rtl.css\";i:277;s:37:\"navigation-submenu/editor-rtl.min.css\";i:278;s:29:\"navigation-submenu/editor.css\";i:279;s:33:\"navigation-submenu/editor.min.css\";i:280;s:25:\"navigation/editor-rtl.css\";i:281;s:29:\"navigation/editor-rtl.min.css\";i:282;s:21:\"navigation/editor.css\";i:283;s:25:\"navigation/editor.min.css\";i:284;s:24:\"navigation/style-rtl.css\";i:285;s:28:\"navigation/style-rtl.min.css\";i:286;s:20:\"navigation/style.css\";i:287;s:24:\"navigation/style.min.css\";i:288;s:23:\"nextpage/editor-rtl.css\";i:289;s:27:\"nextpage/editor-rtl.min.css\";i:290;s:19:\"nextpage/editor.css\";i:291;s:23:\"nextpage/editor.min.css\";i:292;s:24:\"page-list/editor-rtl.css\";i:293;s:28:\"page-list/editor-rtl.min.css\";i:294;s:20:\"page-list/editor.css\";i:295;s:24:\"page-list/editor.min.css\";i:296;s:23:\"page-list/style-rtl.css\";i:297;s:27:\"page-list/style-rtl.min.css\";i:298;s:19:\"page-list/style.css\";i:299;s:23:\"page-list/style.min.css\";i:300;s:24:\"paragraph/editor-rtl.css\";i:301;s:28:\"paragraph/editor-rtl.min.css\";i:302;s:20:\"paragraph/editor.css\";i:303;s:24:\"paragraph/editor.min.css\";i:304;s:23:\"paragraph/style-rtl.css\";i:305;s:27:\"paragraph/style-rtl.min.css\";i:306;s:19:\"paragraph/style.css\";i:307;s:23:\"paragraph/style.min.css\";i:308;s:35:\"post-author-biography/style-rtl.css\";i:309;s:39:\"post-author-biography/style-rtl.min.css\";i:310;s:31:\"post-author-biography/style.css\";i:311;s:35:\"post-author-biography/style.min.css\";i:312;s:30:\"post-author-name/style-rtl.css\";i:313;s:34:\"post-author-name/style-rtl.min.css\";i:314;s:26:\"post-author-name/style.css\";i:315;s:30:\"post-author-name/style.min.css\";i:316;s:25:\"post-author/style-rtl.css\";i:317;s:29:\"post-author/style-rtl.min.css\";i:318;s:21:\"post-author/style.css\";i:319;s:25:\"post-author/style.min.css\";i:320;s:33:\"post-comments-count/style-rtl.css\";i:321;s:37:\"post-comments-count/style-rtl.min.css\";i:322;s:29:\"post-comments-count/style.css\";i:323;s:33:\"post-comments-count/style.min.css\";i:324;s:33:\"post-comments-form/editor-rtl.css\";i:325;s:37:\"post-comments-form/editor-rtl.min.css\";i:326;s:29:\"post-comments-form/editor.css\";i:327;s:33:\"post-comments-form/editor.min.css\";i:328;s:32:\"post-comments-form/style-rtl.css\";i:329;s:36:\"post-comments-form/style-rtl.min.css\";i:330;s:28:\"post-comments-form/style.css\";i:331;s:32:\"post-comments-form/style.min.css\";i:332;s:32:\"post-comments-link/style-rtl.css\";i:333;s:36:\"post-comments-link/style-rtl.min.css\";i:334;s:28:\"post-comments-link/style.css\";i:335;s:32:\"post-comments-link/style.min.css\";i:336;s:26:\"post-content/style-rtl.css\";i:337;s:30:\"post-content/style-rtl.min.css\";i:338;s:22:\"post-content/style.css\";i:339;s:26:\"post-content/style.min.css\";i:340;s:23:\"post-date/style-rtl.css\";i:341;s:27:\"post-date/style-rtl.min.css\";i:342;s:19:\"post-date/style.css\";i:343;s:23:\"post-date/style.min.css\";i:344;s:27:\"post-excerpt/editor-rtl.css\";i:345;s:31:\"post-excerpt/editor-rtl.min.css\";i:346;s:23:\"post-excerpt/editor.css\";i:347;s:27:\"post-excerpt/editor.min.css\";i:348;s:26:\"post-excerpt/style-rtl.css\";i:349;s:30:\"post-excerpt/style-rtl.min.css\";i:350;s:22:\"post-excerpt/style.css\";i:351;s:26:\"post-excerpt/style.min.css\";i:352;s:34:\"post-featured-image/editor-rtl.css\";i:353;s:38:\"post-featured-image/editor-rtl.min.css\";i:354;s:30:\"post-featured-image/editor.css\";i:355;s:34:\"post-featured-image/editor.min.css\";i:356;s:33:\"post-featured-image/style-rtl.css\";i:357;s:37:\"post-featured-image/style-rtl.min.css\";i:358;s:29:\"post-featured-image/style.css\";i:359;s:33:\"post-featured-image/style.min.css\";i:360;s:34:\"post-navigation-link/style-rtl.css\";i:361;s:38:\"post-navigation-link/style-rtl.min.css\";i:362;s:30:\"post-navigation-link/style.css\";i:363;s:34:\"post-navigation-link/style.min.css\";i:364;s:27:\"post-template/style-rtl.css\";i:365;s:31:\"post-template/style-rtl.min.css\";i:366;s:23:\"post-template/style.css\";i:367;s:27:\"post-template/style.min.css\";i:368;s:24:\"post-terms/style-rtl.css\";i:369;s:28:\"post-terms/style-rtl.min.css\";i:370;s:20:\"post-terms/style.css\";i:371;s:24:\"post-terms/style.min.css\";i:372;s:31:\"post-time-to-read/style-rtl.css\";i:373;s:35:\"post-time-to-read/style-rtl.min.css\";i:374;s:27:\"post-time-to-read/style.css\";i:375;s:31:\"post-time-to-read/style.min.css\";i:376;s:24:\"post-title/style-rtl.css\";i:377;s:28:\"post-title/style-rtl.min.css\";i:378;s:20:\"post-title/style.css\";i:379;s:24:\"post-title/style.min.css\";i:380;s:26:\"preformatted/style-rtl.css\";i:381;s:30:\"preformatted/style-rtl.min.css\";i:382;s:22:\"preformatted/style.css\";i:383;s:26:\"preformatted/style.min.css\";i:384;s:24:\"pullquote/editor-rtl.css\";i:385;s:28:\"pullquote/editor-rtl.min.css\";i:386;s:20:\"pullquote/editor.css\";i:387;s:24:\"pullquote/editor.min.css\";i:388;s:23:\"pullquote/style-rtl.css\";i:389;s:27:\"pullquote/style-rtl.min.css\";i:390;s:19:\"pullquote/style.css\";i:391;s:23:\"pullquote/style.min.css\";i:392;s:23:\"pullquote/theme-rtl.css\";i:393;s:27:\"pullquote/theme-rtl.min.css\";i:394;s:19:\"pullquote/theme.css\";i:395;s:23:\"pullquote/theme.min.css\";i:396;s:39:\"query-pagination-numbers/editor-rtl.css\";i:397;s:43:\"query-pagination-numbers/editor-rtl.min.css\";i:398;s:35:\"query-pagination-numbers/editor.css\";i:399;s:39:\"query-pagination-numbers/editor.min.css\";i:400;s:31:\"query-pagination/editor-rtl.css\";i:401;s:35:\"query-pagination/editor-rtl.min.css\";i:402;s:27:\"query-pagination/editor.css\";i:403;s:31:\"query-pagination/editor.min.css\";i:404;s:30:\"query-pagination/style-rtl.css\";i:405;s:34:\"query-pagination/style-rtl.min.css\";i:406;s:26:\"query-pagination/style.css\";i:407;s:30:\"query-pagination/style.min.css\";i:408;s:25:\"query-title/style-rtl.css\";i:409;s:29:\"query-title/style-rtl.min.css\";i:410;s:21:\"query-title/style.css\";i:411;s:25:\"query-title/style.min.css\";i:412;s:25:\"query-total/style-rtl.css\";i:413;s:29:\"query-total/style-rtl.min.css\";i:414;s:21:\"query-total/style.css\";i:415;s:25:\"query-total/style.min.css\";i:416;s:20:\"query/editor-rtl.css\";i:417;s:24:\"query/editor-rtl.min.css\";i:418;s:16:\"query/editor.css\";i:419;s:20:\"query/editor.min.css\";i:420;s:19:\"quote/style-rtl.css\";i:421;s:23:\"quote/style-rtl.min.css\";i:422;s:15:\"quote/style.css\";i:423;s:19:\"quote/style.min.css\";i:424;s:19:\"quote/theme-rtl.css\";i:425;s:23:\"quote/theme-rtl.min.css\";i:426;s:15:\"quote/theme.css\";i:427;s:19:\"quote/theme.min.css\";i:428;s:23:\"read-more/style-rtl.css\";i:429;s:27:\"read-more/style-rtl.min.css\";i:430;s:19:\"read-more/style.css\";i:431;s:23:\"read-more/style.min.css\";i:432;s:18:\"rss/editor-rtl.css\";i:433;s:22:\"rss/editor-rtl.min.css\";i:434;s:14:\"rss/editor.css\";i:435;s:18:\"rss/editor.min.css\";i:436;s:17:\"rss/style-rtl.css\";i:437;s:21:\"rss/style-rtl.min.css\";i:438;s:13:\"rss/style.css\";i:439;s:17:\"rss/style.min.css\";i:440;s:21:\"search/editor-rtl.css\";i:441;s:25:\"search/editor-rtl.min.css\";i:442;s:17:\"search/editor.css\";i:443;s:21:\"search/editor.min.css\";i:444;s:20:\"search/style-rtl.css\";i:445;s:24:\"search/style-rtl.min.css\";i:446;s:16:\"search/style.css\";i:447;s:20:\"search/style.min.css\";i:448;s:20:\"search/theme-rtl.css\";i:449;s:24:\"search/theme-rtl.min.css\";i:450;s:16:\"search/theme.css\";i:451;s:20:\"search/theme.min.css\";i:452;s:24:\"separator/editor-rtl.css\";i:453;s:28:\"separator/editor-rtl.min.css\";i:454;s:20:\"separator/editor.css\";i:455;s:24:\"separator/editor.min.css\";i:456;s:23:\"separator/style-rtl.css\";i:457;s:27:\"separator/style-rtl.min.css\";i:458;s:19:\"separator/style.css\";i:459;s:23:\"separator/style.min.css\";i:460;s:23:\"separator/theme-rtl.css\";i:461;s:27:\"separator/theme-rtl.min.css\";i:462;s:19:\"separator/theme.css\";i:463;s:23:\"separator/theme.min.css\";i:464;s:24:\"shortcode/editor-rtl.css\";i:465;s:28:\"shortcode/editor-rtl.min.css\";i:466;s:20:\"shortcode/editor.css\";i:467;s:24:\"shortcode/editor.min.css\";i:468;s:24:\"site-logo/editor-rtl.css\";i:469;s:28:\"site-logo/editor-rtl.min.css\";i:470;s:20:\"site-logo/editor.css\";i:471;s:24:\"site-logo/editor.min.css\";i:472;s:23:\"site-logo/style-rtl.css\";i:473;s:27:\"site-logo/style-rtl.min.css\";i:474;s:19:\"site-logo/style.css\";i:475;s:23:\"site-logo/style.min.css\";i:476;s:27:\"site-tagline/editor-rtl.css\";i:477;s:31:\"site-tagline/editor-rtl.min.css\";i:478;s:23:\"site-tagline/editor.css\";i:479;s:27:\"site-tagline/editor.min.css\";i:480;s:26:\"site-tagline/style-rtl.css\";i:481;s:30:\"site-tagline/style-rtl.min.css\";i:482;s:22:\"site-tagline/style.css\";i:483;s:26:\"site-tagline/style.min.css\";i:484;s:25:\"site-title/editor-rtl.css\";i:485;s:29:\"site-title/editor-rtl.min.css\";i:486;s:21:\"site-title/editor.css\";i:487;s:25:\"site-title/editor.min.css\";i:488;s:24:\"site-title/style-rtl.css\";i:489;s:28:\"site-title/style-rtl.min.css\";i:490;s:20:\"site-title/style.css\";i:491;s:24:\"site-title/style.min.css\";i:492;s:26:\"social-link/editor-rtl.css\";i:493;s:30:\"social-link/editor-rtl.min.css\";i:494;s:22:\"social-link/editor.css\";i:495;s:26:\"social-link/editor.min.css\";i:496;s:27:\"social-links/editor-rtl.css\";i:497;s:31:\"social-links/editor-rtl.min.css\";i:498;s:23:\"social-links/editor.css\";i:499;s:27:\"social-links/editor.min.css\";i:500;s:26:\"social-links/style-rtl.css\";i:501;s:30:\"social-links/style-rtl.min.css\";i:502;s:22:\"social-links/style.css\";i:503;s:26:\"social-links/style.min.css\";i:504;s:21:\"spacer/editor-rtl.css\";i:505;s:25:\"spacer/editor-rtl.min.css\";i:506;s:17:\"spacer/editor.css\";i:507;s:21:\"spacer/editor.min.css\";i:508;s:20:\"spacer/style-rtl.css\";i:509;s:24:\"spacer/style-rtl.min.css\";i:510;s:16:\"spacer/style.css\";i:511;s:20:\"spacer/style.min.css\";i:512;s:20:\"table/editor-rtl.css\";i:513;s:24:\"table/editor-rtl.min.css\";i:514;s:16:\"table/editor.css\";i:515;s:20:\"table/editor.min.css\";i:516;s:19:\"table/style-rtl.css\";i:517;s:23:\"table/style-rtl.min.css\";i:518;s:15:\"table/style.css\";i:519;s:19:\"table/style.min.css\";i:520;s:19:\"table/theme-rtl.css\";i:521;s:23:\"table/theme-rtl.min.css\";i:522;s:15:\"table/theme.css\";i:523;s:19:\"table/theme.min.css\";i:524;s:24:\"tag-cloud/editor-rtl.css\";i:525;s:28:\"tag-cloud/editor-rtl.min.css\";i:526;s:20:\"tag-cloud/editor.css\";i:527;s:24:\"tag-cloud/editor.min.css\";i:528;s:23:\"tag-cloud/style-rtl.css\";i:529;s:27:\"tag-cloud/style-rtl.min.css\";i:530;s:19:\"tag-cloud/style.css\";i:531;s:23:\"tag-cloud/style.min.css\";i:532;s:28:\"template-part/editor-rtl.css\";i:533;s:32:\"template-part/editor-rtl.min.css\";i:534;s:24:\"template-part/editor.css\";i:535;s:28:\"template-part/editor.min.css\";i:536;s:27:\"template-part/theme-rtl.css\";i:537;s:31:\"template-part/theme-rtl.min.css\";i:538;s:23:\"template-part/theme.css\";i:539;s:27:\"template-part/theme.min.css\";i:540;s:24:\"term-count/style-rtl.css\";i:541;s:28:\"term-count/style-rtl.min.css\";i:542;s:20:\"term-count/style.css\";i:543;s:24:\"term-count/style.min.css\";i:544;s:30:\"term-description/style-rtl.css\";i:545;s:34:\"term-description/style-rtl.min.css\";i:546;s:26:\"term-description/style.css\";i:547;s:30:\"term-description/style.min.css\";i:548;s:23:\"term-name/style-rtl.css\";i:549;s:27:\"term-name/style-rtl.min.css\";i:550;s:19:\"term-name/style.css\";i:551;s:23:\"term-name/style.min.css\";i:552;s:28:\"term-template/editor-rtl.css\";i:553;s:32:\"term-template/editor-rtl.min.css\";i:554;s:24:\"term-template/editor.css\";i:555;s:28:\"term-template/editor.min.css\";i:556;s:27:\"term-template/style-rtl.css\";i:557;s:31:\"term-template/style-rtl.min.css\";i:558;s:23:\"term-template/style.css\";i:559;s:27:\"term-template/style.min.css\";i:560;s:27:\"text-columns/editor-rtl.css\";i:561;s:31:\"text-columns/editor-rtl.min.css\";i:562;s:23:\"text-columns/editor.css\";i:563;s:27:\"text-columns/editor.min.css\";i:564;s:26:\"text-columns/style-rtl.css\";i:565;s:30:\"text-columns/style-rtl.min.css\";i:566;s:22:\"text-columns/style.css\";i:567;s:26:\"text-columns/style.min.css\";i:568;s:19:\"verse/style-rtl.css\";i:569;s:23:\"verse/style-rtl.min.css\";i:570;s:15:\"verse/style.css\";i:571;s:19:\"verse/style.min.css\";i:572;s:20:\"video/editor-rtl.css\";i:573;s:24:\"video/editor-rtl.min.css\";i:574;s:16:\"video/editor.css\";i:575;s:20:\"video/editor.min.css\";i:576;s:19:\"video/style-rtl.css\";i:577;s:23:\"video/style-rtl.min.css\";i:578;s:15:\"video/style.css\";i:579;s:19:\"video/style.min.css\";i:580;s:19:\"video/theme-rtl.css\";i:581;s:23:\"video/theme-rtl.min.css\";i:582;s:15:\"video/theme.css\";i:583;s:19:\"video/theme.min.css\";}}','on'),(123,'_site_transient_timeout_wp_theme_files_patterns-b24c4b64a1fe6f9f73313f730ddfc1cf','1770039304','off'),(124,'_site_transient_wp_theme_files_patterns-b24c4b64a1fe6f9f73313f730ddfc1cf','a:2:{s:7:\"version\";s:3:\"1.4\";s:8:\"patterns\";a:98:{s:21:\"banner-about-book.php\";a:4:{s:5:\"title\";s:28:\"Banner with book description\";s:4:\"slug\";s:34:\"twentytwentyfive/banner-about-book\";s:11:\"description\";s:66:\"Banner with book description and accompanying image for promotion.\";s:10:\"categories\";a:1:{i:0;s:6:\"banner\";}}s:28:\"banner-cover-big-heading.php\";a:4:{s:5:\"title\";s:22:\"Cover with big heading\";s:4:\"slug\";s:41:\"twentytwentyfive/banner-cover-big-heading\";s:11:\"description\";s:82:\"A full-width cover section with a large background image and an oversized heading.\";s:10:\"categories\";a:3:{i:0;s:6:\"banner\";i:1;s:5:\"about\";i:2;s:8:\"featured\";}}s:22:\"banner-intro-image.php\";a:4:{s:5:\"title\";s:49:\"Short heading and paragraph and image on the left\";s:4:\"slug\";s:35:\"twentytwentyfive/banner-intro-image\";s:11:\"description\";s:68:\"A Intro pattern with Short heading, paragraph and image on the left.\";s:10:\"categories\";a:2:{i:0;s:6:\"banner\";i:1;s:8:\"featured\";}}s:16:\"banner-intro.php\";a:4:{s:5:\"title\";s:35:\"Intro with left-aligned description\";s:4:\"slug\";s:29:\"twentytwentyfive/banner-intro\";s:11:\"description\";s:66:\"A large left-aligned heading with a brand name emphasized in bold.\";s:10:\"categories\";a:1:{i:0;s:6:\"banner\";}}s:17:\"banner-poster.php\";a:4:{s:5:\"title\";s:19:\"Poster-like section\";s:4:\"slug\";s:30:\"twentytwentyfive/banner-poster\";s:11:\"description\";s:78:\"A section that can be used as a banner or a landing page to announce an event.\";s:10:\"categories\";a:2:{i:0;s:6:\"banner\";i:1;s:5:\"media\";}}s:43:\"banner-with-description-and-images-grid.php\";a:4:{s:5:\"title\";s:39:\"Banner with description and images grid\";s:4:\"slug\";s:47:\"twentytwentyfive/banner-description-images-grid\";s:11:\"description\";s:75:\"A banner with a short paragraph, and two images displayed in a grid layout.\";s:10:\"categories\";a:2:{i:0;s:6:\"banner\";i:1;s:8:\"featured\";}}s:18:\"binding-format.php\";a:4:{s:5:\"title\";s:16:\"Post format name\";s:4:\"slug\";s:31:\"twentytwentyfive/binding-format\";s:11:\"description\";s:75:\"Prints the name of the post format with the help of the Block Bindings API.\";s:10:\"categories\";a:1:{i:0;s:28:\"twentytwentyfive_post-format\";}}s:12:\"comments.php\";a:5:{s:5:\"title\";s:8:\"Comments\";s:4:\"slug\";s:25:\"twentytwentyfive/comments\";s:11:\"description\";s:63:\"Comments area with comments list, pagination, and comment form.\";s:10:\"categories\";a:1:{i:0;s:4:\"text\";}s:10:\"blockTypes\";a:1:{i:0;s:13:\"core/comments\";}}s:32:\"contact-centered-social-link.php\";a:5:{s:5:\"title\";s:30:\"Centered link and social links\";s:4:\"slug\";s:45:\"twentytwentyfive/contact-centered-social-link\";s:11:\"description\";s:73:\"Centered contact section with a prominent message and social media links.\";s:10:\"categories\";a:1:{i:0;s:7:\"contact\";}s:8:\"keywords\";a:3:{i:0;s:7:\"contact\";i:1;s:3:\"faq\";i:2;s:9:\"questions\";}}s:26:\"contact-info-locations.php\";a:6:{s:5:\"title\";s:27:\"Contact, info and locations\";s:4:\"slug\";s:39:\"twentytwentyfive/contact-info-locations\";s:11:\"description\";s:78:\"Contact section with social media links, email, and multiple location details.\";s:13:\"viewportWidth\";i:1400;s:10:\"categories\";a:1:{i:0;s:7:\"contact\";}s:8:\"keywords\";a:2:{i:0;s:7:\"contact\";i:1;s:8:\"location\";}}s:29:\"contact-location-and-link.php\";a:4:{s:5:\"title\";s:25:\"Contact location and link\";s:4:\"slug\";s:42:\"twentytwentyfive/contact-location-and-link\";s:11:\"description\";s:89:\"Contact section with a location address, a directions link, and an image of the location.\";s:10:\"categories\";a:2:{i:0;s:7:\"contact\";i:1;s:8:\"featured\";}}s:18:\"cta-book-links.php\";a:4:{s:5:\"title\";s:30:\"Call to action with book links\";s:4:\"slug\";s:31:\"twentytwentyfive/cta-book-links\";s:11:\"description\";s:74:\"A call to action section with links to get the book in different websites.\";s:10:\"categories\";a:1:{i:0;s:14:\"call-to-action\";}}s:22:\"cta-book-locations.php\";a:4:{s:5:\"title\";s:29:\"Call to action with locations\";s:4:\"slug\";s:35:\"twentytwentyfive/cta-book-locations\";s:11:\"description\";s:82:\"A call to action section with links to get the book in the most popular locations.\";s:10:\"categories\";a:1:{i:0;s:14:\"call-to-action\";}}s:24:\"cta-centered-heading.php\";a:4:{s:5:\"title\";s:16:\"Centered heading\";s:4:\"slug\";s:37:\"twentytwentyfive/cta-centered-heading\";s:11:\"description\";s:53:\"A hero with a centered heading, paragraph and button.\";s:10:\"categories\";a:1:{i:0;s:14:\"call-to-action\";}}s:19:\"cta-events-list.php\";a:4:{s:5:\"title\";s:11:\"Events list\";s:4:\"slug\";s:32:\"twentytwentyfive/cta-events-list\";s:11:\"description\";s:37:\"A list of events with call to action.\";s:10:\"categories\";a:1:{i:0;s:14:\"call-to-action\";}}s:26:\"cta-grid-products-link.php\";a:5:{s:5:\"title\";s:54:\"Call to action with grid layout with products and link\";s:4:\"slug\";s:39:\"twentytwentyfive/cta-grid-products-link\";s:11:\"description\";s:42:\"A call to action featuring product images.\";s:13:\"viewportWidth\";i:1400;s:10:\"categories\";a:2:{i:0;s:14:\"call-to-action\";i:1;s:8:\"featured\";}}s:22:\"cta-heading-search.php\";a:4:{s:5:\"title\";s:23:\"Heading and search form\";s:4:\"slug\";s:35:\"twentytwentyfive/cta-heading-search\";s:11:\"description\";s:54:\"Large heading with a search form for quick navigation.\";s:10:\"categories\";a:1:{i:0;s:14:\"call-to-action\";}}s:18:\"cta-newsletter.php\";a:5:{s:5:\"title\";s:18:\"Newsletter sign-up\";s:4:\"slug\";s:31:\"twentytwentyfive/cta-newsletter\";s:11:\"description\";s:0:\"\";s:10:\"categories\";a:1:{i:0;s:14:\"call-to-action\";}s:8:\"keywords\";a:2:{i:0;s:14:\"call-to-action\";i:1;s:10:\"newsletter\";}}s:15:\"event-3-col.php\";a:5:{s:5:\"title\";s:46:\"Events, 3 columns with event images and titles\";s:4:\"slug\";s:28:\"twentytwentyfive/event-3-col\";s:11:\"description\";s:95:\"A header with title and text and three columns that show 3 events with their images and titles.\";s:10:\"categories\";a:1:{i:0;s:6:\"banner\";}s:8:\"keywords\";a:3:{i:0;s:6:\"events\";i:1;s:7:\"columns\";i:2;s:6:\"images\";}}s:14:\"event-rsvp.php\";a:7:{s:5:\"title\";s:10:\"Event RSVP\";s:4:\"slug\";s:27:\"twentytwentyfive/event-rsvp\";s:11:\"description\";s:64:\"RSVP for an upcoming event with a cover image and event details.\";s:13:\"viewportWidth\";i:1400;s:10:\"categories\";a:1:{i:0;s:14:\"call-to-action\";}s:8:\"keywords\";a:3:{i:0;s:14:\"call-to-action\";i:1;s:4:\"rsvp\";i:2;s:5:\"event\";}s:10:\"blockTypes\";a:1:{i:0;s:17:\"core/post-content\";}}s:18:\"event-schedule.php\";a:5:{s:5:\"title\";s:14:\"Event schedule\";s:4:\"slug\";s:31:\"twentytwentyfive/event-schedule\";s:11:\"description\";s:54:\"A section with specified dates and times for an event.\";s:10:\"categories\";a:1:{i:0;s:5:\"about\";}s:8:\"keywords\";a:4:{i:0;s:6:\"events\";i:1;s:6:\"agenda\";i:2;s:8:\"schedule\";i:3;s:8:\"lectures\";}}s:19:\"footer-centered.php\";a:5:{s:5:\"title\";s:15:\"Centered footer\";s:4:\"slug\";s:32:\"twentytwentyfive/footer-centered\";s:11:\"description\";s:44:\"Footer with centered site title and tagline.\";s:10:\"categories\";a:1:{i:0;s:6:\"footer\";}s:10:\"blockTypes\";a:1:{i:0;s:25:\"core/template-part/footer\";}}s:18:\"footer-columns.php\";a:5:{s:5:\"title\";s:19:\"Footer with columns\";s:4:\"slug\";s:31:\"twentytwentyfive/footer-columns\";s:11:\"description\";s:45:\"Footer columns with title, tagline and links.\";s:10:\"categories\";a:1:{i:0;s:6:\"footer\";}s:10:\"blockTypes\";a:1:{i:0;s:25:\"core/template-part/footer\";}}s:21:\"footer-newsletter.php\";a:5:{s:5:\"title\";s:29:\"Footer with newsletter signup\";s:4:\"slug\";s:34:\"twentytwentyfive/footer-newsletter\";s:11:\"description\";s:51:\"Footer with large site title and newsletter signup.\";s:10:\"categories\";a:1:{i:0;s:6:\"footer\";}s:10:\"blockTypes\";a:1:{i:0;s:25:\"core/template-part/footer\";}}s:17:\"footer-social.php\";a:5:{s:5:\"title\";s:33:\"Centered footer with social links\";s:4:\"slug\";s:30:\"twentytwentyfive/footer-social\";s:11:\"description\";s:49:\"Footer with centered site title and social links.\";s:10:\"categories\";a:1:{i:0;s:6:\"footer\";}s:10:\"blockTypes\";a:1:{i:0;s:25:\"core/template-part/footer\";}}s:10:\"footer.php\";a:5:{s:5:\"title\";s:6:\"Footer\";s:4:\"slug\";s:23:\"twentytwentyfive/footer\";s:11:\"description\";s:51:\"Footer columns with logo, title, tagline and links.\";s:10:\"categories\";a:1:{i:0;s:6:\"footer\";}s:10:\"blockTypes\";a:1:{i:0;s:25:\"core/template-part/footer\";}}s:16:\"format-audio.php\";a:4:{s:5:\"title\";s:12:\"Audio format\";s:4:\"slug\";s:29:\"twentytwentyfive/format-audio\";s:11:\"description\";s:73:\"An audio post format with an image, title, audio player, and description.\";s:10:\"categories\";a:1:{i:0;s:28:\"twentytwentyfive_post-format\";}}s:15:\"format-link.php\";a:4:{s:5:\"title\";s:11:\"Link format\";s:4:\"slug\";s:28:\"twentytwentyfive/format-link\";s:11:\"description\";s:77:\"A link post format with a description and an emphasized link for key content.\";s:10:\"categories\";a:1:{i:0;s:28:\"twentytwentyfive_post-format\";}}s:15:\"grid-videos.php\";a:4:{s:5:\"title\";s:16:\"Grid with videos\";s:4:\"slug\";s:28:\"twentytwentyfive/grid-videos\";s:11:\"description\";s:19:\"A grid with videos.\";s:10:\"categories\";a:1:{i:0;s:5:\"about\";}}s:24:\"grid-with-categories.php\";a:5:{s:5:\"title\";s:20:\"Grid with categories\";s:4:\"slug\";s:37:\"twentytwentyfive/grid-with-categories\";s:11:\"description\";s:41:\"A grid section with different categories.\";s:13:\"viewportWidth\";i:1400;s:10:\"categories\";a:1:{i:0;s:6:\"banner\";}}s:19:\"header-centered.php\";a:5:{s:5:\"title\";s:20:\"Centered site header\";s:4:\"slug\";s:32:\"twentytwentyfive/header-centered\";s:11:\"description\";s:52:\"Site header with centered site title and navigation.\";s:10:\"categories\";a:1:{i:0;s:6:\"header\";}s:10:\"blockTypes\";a:1:{i:0;s:25:\"core/template-part/header\";}}s:18:\"header-columns.php\";a:5:{s:5:\"title\";s:19:\"Header with columns\";s:4:\"slug\";s:31:\"twentytwentyfive/header-columns\";s:11:\"description\";s:54:\"Site header with site title and navigation in columns.\";s:10:\"categories\";a:1:{i:0;s:6:\"header\";}s:10:\"blockTypes\";a:1:{i:0;s:25:\"core/template-part/header\";}}s:22:\"header-large-title.php\";a:5:{s:5:\"title\";s:23:\"Header with large title\";s:4:\"slug\";s:35:\"twentytwentyfive/header-large-title\";s:11:\"description\";s:63:\"Site header with large site title and right-aligned navigation.\";s:10:\"categories\";a:1:{i:0;s:6:\"header\";}s:10:\"blockTypes\";a:1:{i:0;s:25:\"core/template-part/header\";}}s:10:\"header.php\";a:5:{s:5:\"title\";s:6:\"Header\";s:4:\"slug\";s:23:\"twentytwentyfive/header\";s:11:\"description\";s:43:\"Site header with site title and navigation.\";s:10:\"categories\";a:1:{i:0;s:6:\"header\";}s:10:\"blockTypes\";a:1:{i:0;s:25:\"core/template-part/header\";}}s:36:\"heading-and-paragraph-with-image.php\";a:4:{s:5:\"title\";s:45:\"Heading and paragraph with image on the right\";s:4:\"slug\";s:49:\"twentytwentyfive/heading-and-paragraph-with-image\";s:11:\"description\";s:89:\"A two-column section with a heading and paragraph on the left, and an image on the right.\";s:10:\"categories\";a:1:{i:0;s:5:\"about\";}}s:13:\"hero-book.php\";a:5:{s:5:\"title\";s:9:\"Hero book\";s:4:\"slug\";s:26:\"twentytwentyfive/hero-book\";s:11:\"description\";s:66:\"A hero section for the book with a description and pre-order link.\";s:10:\"categories\";a:1:{i:0;s:6:\"banner\";}s:8:\"keywords\";a:3:{i:0;s:7:\"podcast\";i:1;s:4:\"hero\";i:2;s:7:\"stories\";}}s:25:\"hero-full-width-image.php\";a:4:{s:5:\"title\";s:22:\"Hero, full width image\";s:4:\"slug\";s:38:\"twentytwentyfive/hero-full-width-image\";s:11:\"description\";s:68:\"A hero with a full width image, heading, short paragraph and button.\";s:10:\"categories\";a:1:{i:0;s:6:\"banner\";}}s:41:\"hero-overlapped-book-cover-with-links.php\";a:4:{s:5:\"title\";s:38:\"Hero, overlapped book cover with links\";s:4:\"slug\";s:54:\"twentytwentyfive/hero-overlapped-book-cover-with-links\";s:11:\"description\";s:47:\"A hero with an overlapped book cover and links.\";s:10:\"categories\";a:1:{i:0;s:6:\"banner\";}}s:16:\"hero-podcast.php\";a:5:{s:5:\"title\";s:12:\"Hero podcast\";s:4:\"slug\";s:29:\"twentytwentyfive/hero-podcast\";s:11:\"description\";s:0:\"\";s:10:\"categories\";a:1:{i:0;s:6:\"banner\";}s:8:\"keywords\";a:3:{i:0;s:7:\"podcast\";i:1;s:4:\"hero\";i:2;s:7:\"stories\";}}s:14:\"hidden-404.php\";a:4:{s:5:\"title\";s:3:\"404\";s:4:\"slug\";s:27:\"twentytwentyfive/hidden-404\";s:11:\"description\";s:0:\"\";s:8:\"inserter\";b:0;}s:23:\"hidden-blog-heading.php\";a:4:{s:5:\"title\";s:19:\"Hidden blog heading\";s:4:\"slug\";s:36:\"twentytwentyfive/hidden-blog-heading\";s:11:\"description\";s:52:\"Hidden heading for the home page and index template.\";s:8:\"inserter\";b:0;}s:17:\"hidden-search.php\";a:4:{s:5:\"title\";s:6:\"Search\";s:4:\"slug\";s:30:\"twentytwentyfive/hidden-search\";s:11:\"description\";s:0:\"\";s:8:\"inserter\";b:0;}s:18:\"hidden-sidebar.php\";a:4:{s:5:\"title\";s:7:\"Sidebar\";s:4:\"slug\";s:31:\"twentytwentyfive/hidden-sidebar\";s:11:\"description\";s:0:\"\";s:8:\"inserter\";b:0;}s:21:\"hidden-written-by.php\";a:4:{s:5:\"title\";s:10:\"Written by\";s:4:\"slug\";s:34:\"twentytwentyfive/hidden-written-by\";s:11:\"description\";s:0:\"\";s:8:\"inserter\";b:0;}s:9:\"logos.php\";a:4:{s:5:\"title\";s:5:\"Logos\";s:4:\"slug\";s:22:\"twentytwentyfive/logos\";s:11:\"description\";s:77:\"Showcasing the podcast\'s clients with a heading and a series of client logos.\";s:10:\"categories\";a:1:{i:0;s:6:\"banner\";}}s:24:\"media-instagram-grid.php\";a:5:{s:5:\"title\";s:14:\"Instagram grid\";s:4:\"slug\";s:37:\"twentytwentyfive/media-instagram-grid\";s:11:\"description\";s:62:\"A grid section with photos and a link to an Instagram profile.\";s:13:\"viewportWidth\";i:1440;s:10:\"categories\";a:3:{i:0;s:5:\"media\";i:1;s:7:\"gallery\";i:2;s:8:\"featured\";}}s:14:\"more-posts.php\";a:5:{s:5:\"title\";s:10:\"More posts\";s:4:\"slug\";s:27:\"twentytwentyfive/more-posts\";s:11:\"description\";s:45:\"Displays a list of posts with title and date.\";s:10:\"categories\";a:1:{i:0;s:5:\"query\";}s:10:\"blockTypes\";a:1:{i:0;s:10:\"core/query\";}}s:21:\"overlapped-images.php\";a:4:{s:5:\"title\";s:41:\"Overlapping images and paragraph on right\";s:4:\"slug\";s:34:\"twentytwentyfive/overlapped-images\";s:11:\"description\";s:53:\"A section with overlapping images, and a description.\";s:10:\"categories\";a:2:{i:0;s:5:\"about\";i:1;s:8:\"featured\";}}s:22:\"page-business-home.php\";a:8:{s:5:\"title\";s:17:\"Business homepage\";s:4:\"slug\";s:35:\"twentytwentyfive/page-business-home\";s:11:\"description\";s:28:\"A business homepage pattern.\";s:13:\"viewportWidth\";i:1400;s:10:\"categories\";a:2:{i:0;s:21:\"twentytwentyfive_page\";i:1;s:8:\"featured\";}s:8:\"keywords\";a:1:{i:0;s:7:\"starter\";}s:10:\"blockTypes\";a:1:{i:0;s:17:\"core/post-content\";}s:9:\"postTypes\";a:2:{i:0;s:4:\"page\";i:1;s:11:\"wp_template\";}}s:20:\"page-coming-soon.php\";a:8:{s:5:\"title\";s:11:\"Coming soon\";s:4:\"slug\";s:33:\"twentytwentyfive/page-coming-soon\";s:11:\"description\";s:96:\"A full-width cover banner that can be applied to a page or it can work as a single landing page.\";s:13:\"viewportWidth\";i:1400;s:10:\"categories\";a:2:{i:0;s:21:\"twentytwentyfive_page\";i:1;s:8:\"featured\";}s:8:\"keywords\";a:1:{i:0;s:7:\"starter\";}s:10:\"blockTypes\";a:1:{i:0;s:17:\"core/post-content\";}s:9:\"postTypes\";a:2:{i:0;s:4:\"page\";i:1;s:11:\"wp_template\";}}s:15:\"page-cv-bio.php\";a:7:{s:5:\"title\";s:6:\"CV/bio\";s:4:\"slug\";s:28:\"twentytwentyfive/page-cv-bio\";s:11:\"description\";s:36:\"A pattern for a CV/Bio landing page.\";s:13:\"viewportWidth\";i:1400;s:10:\"categories\";a:3:{i:0;s:21:\"twentytwentyfive_page\";i:1;s:5:\"about\";i:2;s:8:\"featured\";}s:8:\"keywords\";a:1:{i:0;s:7:\"starter\";}s:10:\"blockTypes\";a:1:{i:0;s:17:\"core/post-content\";}}s:21:\"page-landing-book.php\";a:8:{s:5:\"title\";s:21:\"Landing page for book\";s:4:\"slug\";s:34:\"twentytwentyfive/page-landing-book\";s:11:\"description\";s:104:\"A landing page for the book with a hero section, pre-order links, locations, FAQs and newsletter signup.\";s:13:\"viewportWidth\";i:1400;s:10:\"categories\";a:2:{i:0;s:21:\"twentytwentyfive_page\";i:1;s:8:\"featured\";}s:8:\"keywords\";a:1:{i:0;s:7:\"starter\";}s:10:\"blockTypes\";a:1:{i:0;s:17:\"core/post-content\";}s:9:\"postTypes\";a:2:{i:0;s:4:\"page\";i:1;s:11:\"wp_template\";}}s:22:\"page-landing-event.php\";a:8:{s:5:\"title\";s:22:\"Landing page for event\";s:4:\"slug\";s:35:\"twentytwentyfive/page-landing-event\";s:11:\"description\";s:87:\"A landing page for the event with a hero section, description, FAQs and call to action.\";s:13:\"viewportWidth\";i:1400;s:10:\"categories\";a:2:{i:0;s:21:\"twentytwentyfive_page\";i:1;s:8:\"featured\";}s:8:\"keywords\";a:1:{i:0;s:7:\"starter\";}s:10:\"blockTypes\";a:1:{i:0;s:17:\"core/post-content\";}s:9:\"postTypes\";a:2:{i:0;s:4:\"page\";i:1;s:11:\"wp_template\";}}s:24:\"page-landing-podcast.php\";a:8:{s:5:\"title\";s:24:\"Landing page for podcast\";s:4:\"slug\";s:37:\"twentytwentyfive/page-landing-podcast\";s:11:\"description\";s:111:\"A landing page for the podcast with a hero section, description, logos, grid with videos and newsletter signup.\";s:13:\"viewportWidth\";i:1400;s:10:\"categories\";a:2:{i:0;s:21:\"twentytwentyfive_page\";i:1;s:8:\"featured\";}s:8:\"keywords\";a:1:{i:0;s:7:\"starter\";}s:10:\"blockTypes\";a:1:{i:0;s:17:\"core/post-content\";}s:9:\"postTypes\";a:2:{i:0;s:4:\"page\";i:1;s:11:\"wp_template\";}}s:50:\"page-link-in-bio-heading-paragraph-links-image.php\";a:7:{s:5:\"title\";s:59:\"Link in bio heading, paragraph, links and full-height image\";s:4:\"slug\";s:63:\"twentytwentyfive/page-link-in-bio-heading-paragraph-links-image\";s:11:\"description\";s:84:\"A link in bio landing page with a heading, paragraph, links and a full height image.\";s:13:\"viewportWidth\";i:1400;s:10:\"categories\";a:3:{i:0;s:21:\"twentytwentyfive_page\";i:1;s:6:\"banner\";i:2;s:8:\"featured\";}s:8:\"keywords\";a:1:{i:0;s:7:\"starter\";}s:10:\"blockTypes\";a:1:{i:0;s:17:\"core/post-content\";}}s:33:\"page-link-in-bio-wide-margins.php\";a:7:{s:5:\"title\";s:48:\"Link in bio with profile, links and wide margins\";s:4:\"slug\";s:46:\"twentytwentyfive/page-link-in-bio-wide-margins\";s:11:\"description\";s:86:\"A link in bio landing page with social links, a profile photo and a brief description.\";s:13:\"viewportWidth\";i:1400;s:10:\"categories\";a:3:{i:0;s:21:\"twentytwentyfive_page\";i:1;s:6:\"banner\";i:2;s:8:\"featured\";}s:8:\"keywords\";a:1:{i:0;s:7:\"starter\";}s:10:\"blockTypes\";a:1:{i:0;s:17:\"core/post-content\";}}s:39:\"page-link-in-bio-with-tight-margins.php\";a:8:{s:5:\"title\";s:30:\"Link in bio with tight margins\";s:4:\"slug\";s:52:\"twentytwentyfive/page-link-in-bio-with-tight-margins\";s:11:\"description\";s:90:\"A full-width, full-height link in bio section with an image, a paragraph and social links.\";s:13:\"viewportWidth\";i:1400;s:10:\"categories\";a:2:{i:0;s:21:\"twentytwentyfive_page\";i:1;s:6:\"banner\";}s:8:\"keywords\";a:1:{i:0;s:7:\"starter\";}s:10:\"blockTypes\";a:1:{i:0;s:17:\"core/post-content\";}s:9:\"postTypes\";a:2:{i:0;s:4:\"page\";i:1;s:11:\"wp_template\";}}s:23:\"page-portfolio-home.php\";a:8:{s:5:\"title\";s:18:\"Portfolio homepage\";s:4:\"slug\";s:36:\"twentytwentyfive/page-portfolio-home\";s:11:\"description\";s:29:\"A portfolio homepage pattern.\";s:13:\"viewportWidth\";i:1400;s:10:\"categories\";a:2:{i:0;s:21:\"twentytwentyfive_page\";i:1;s:5:\"posts\";}s:8:\"keywords\";a:1:{i:0;s:7:\"starter\";}s:10:\"blockTypes\";a:1:{i:0;s:17:\"core/post-content\";}s:9:\"postTypes\";a:2:{i:0;s:4:\"page\";i:1;s:11:\"wp_template\";}}s:18:\"page-shop-home.php\";a:8:{s:5:\"title\";s:13:\"Shop homepage\";s:4:\"slug\";s:31:\"twentytwentyfive/page-shop-home\";s:11:\"description\";s:24:\"A shop homepage pattern.\";s:13:\"viewportWidth\";i:1400;s:10:\"categories\";a:1:{i:0;s:21:\"twentytwentyfive_page\";}s:8:\"keywords\";a:1:{i:0;s:7:\"starter\";}s:10:\"blockTypes\";a:1:{i:0;s:17:\"core/post-content\";}s:9:\"postTypes\";a:2:{i:0;s:4:\"page\";i:1;s:11:\"wp_template\";}}s:19:\"post-navigation.php\";a:5:{s:5:\"title\";s:15:\"Post navigation\";s:4:\"slug\";s:32:\"twentytwentyfive/post-navigation\";s:11:\"description\";s:29:\"Next and previous post links.\";s:10:\"categories\";a:1:{i:0;s:4:\"text\";}s:10:\"blockTypes\";a:1:{i:0;s:25:\"core/post-navigation-link\";}}s:17:\"pricing-2-col.php\";a:5:{s:5:\"title\";s:18:\"Pricing, 2 columns\";s:4:\"slug\";s:30:\"twentytwentyfive/pricing-2-col\";s:11:\"description\";s:88:\"Pricing section with two columns, pricing plan, description, and call-to-action buttons.\";s:13:\"viewportWidth\";i:1400;s:10:\"categories\";a:1:{i:0;s:14:\"call-to-action\";}}s:17:\"pricing-3-col.php\";a:4:{s:5:\"title\";s:18:\"Pricing, 3 columns\";s:4:\"slug\";s:30:\"twentytwentyfive/pricing-3-col\";s:11:\"description\";s:100:\"A three-column boxed pricing table designed to showcase services, descriptions, and pricing options.\";s:10:\"categories\";a:3:{i:0;s:14:\"call-to-action\";i:1;s:6:\"banner\";i:2;s:8:\"services\";}}s:18:\"services-3-col.php\";a:4:{s:5:\"title\";s:19:\"Services, 3 columns\";s:4:\"slug\";s:31:\"twentytwentyfive/services-3-col\";s:11:\"description\";s:56:\"Three columns with images and text to showcase services.\";s:10:\"categories\";a:3:{i:0;s:14:\"call-to-action\";i:1;s:6:\"banner\";i:2;s:8:\"services\";}}s:36:\"services-subscriber-only-section.php\";a:4:{s:5:\"title\";s:33:\"Services, subscriber only section\";s:4:\"slug\";s:49:\"twentytwentyfive/services-subscriber-only-section\";s:11:\"description\";s:72:\"A subscriber-only section highlighting exclusive services and offerings.\";s:10:\"categories\";a:2:{i:0;s:14:\"call-to-action\";i:1;s:8:\"services\";}}s:24:\"services-team-photos.php\";a:4:{s:5:\"title\";s:21:\"Services, team photos\";s:4:\"slug\";s:37:\"twentytwentyfive/services-team-photos\";s:11:\"description\";s:59:\"Display team photos in a services section with grid layout.\";s:10:\"categories\";a:3:{i:0;s:6:\"banner\";i:1;s:14:\"call-to-action\";i:2;s:8:\"featured\";}}s:37:\"template-404-vertical-header-blog.php\";a:5:{s:5:\"title\";s:17:\"Right-aligned 404\";s:4:\"slug\";s:50:\"twentytwentyfive/template-404-vertical-header-blog\";s:11:\"description\";s:0:\"\";s:13:\"viewportWidth\";i:1400;s:13:\"templateTypes\";a:1:{i:0;s:3:\"404\";}}s:30:\"template-archive-news-blog.php\";a:6:{s:5:\"title\";s:17:\"News blog archive\";s:4:\"slug\";s:43:\"twentytwentyfive/template-archive-news-blog\";s:11:\"description\";s:0:\"\";s:13:\"viewportWidth\";i:1400;s:8:\"inserter\";b:0;s:13:\"templateTypes\";a:1:{i:0;s:7:\"archive\";}}s:31:\"template-archive-photo-blog.php\";a:6:{s:5:\"title\";s:18:\"Photo blog archive\";s:4:\"slug\";s:44:\"twentytwentyfive/template-archive-photo-blog\";s:11:\"description\";s:0:\"\";s:13:\"viewportWidth\";i:1400;s:8:\"inserter\";b:0;s:13:\"templateTypes\";a:1:{i:0;s:7:\"archive\";}}s:30:\"template-archive-text-blog.php\";a:6:{s:5:\"title\";s:17:\"Text blog archive\";s:4:\"slug\";s:43:\"twentytwentyfive/template-archive-text-blog\";s:11:\"description\";s:0:\"\";s:13:\"viewportWidth\";i:1400;s:8:\"inserter\";b:0;s:13:\"templateTypes\";a:1:{i:0;s:7:\"archive\";}}s:41:\"template-archive-vertical-header-blog.php\";a:6:{s:5:\"title\";s:21:\"Right-aligned archive\";s:4:\"slug\";s:54:\"twentytwentyfive/template-archive-vertical-header-blog\";s:11:\"description\";s:0:\"\";s:13:\"viewportWidth\";i:1400;s:8:\"inserter\";b:0;s:13:\"templateTypes\";a:1:{i:0;s:7:\"archive\";}}s:27:\"template-home-news-blog.php\";a:6:{s:5:\"title\";s:14:\"News blog home\";s:4:\"slug\";s:40:\"twentytwentyfive/template-home-news-blog\";s:11:\"description\";s:0:\"\";s:13:\"viewportWidth\";i:1400;s:8:\"inserter\";b:0;s:13:\"templateTypes\";a:3:{i:0;s:10:\"front-page\";i:1;s:5:\"index\";i:2;s:4:\"home\";}}s:28:\"template-home-photo-blog.php\";a:6:{s:5:\"title\";s:15:\"Photo blog home\";s:4:\"slug\";s:41:\"twentytwentyfive/template-home-photo-blog\";s:11:\"description\";s:0:\"\";s:13:\"viewportWidth\";i:1400;s:8:\"inserter\";b:0;s:13:\"templateTypes\";a:3:{i:0;s:10:\"front-page\";i:1;s:5:\"index\";i:2;s:4:\"home\";}}s:38:\"template-home-posts-grid-news-blog.php\";a:5:{s:5:\"title\";s:34:\"News blog with featured posts grid\";s:4:\"slug\";s:51:\"twentytwentyfive/template-home-posts-grid-news-blog\";s:11:\"description\";s:0:\"\";s:8:\"inserter\";b:0;s:13:\"templateTypes\";a:3:{i:0;s:10:\"front-page\";i:1;s:5:\"index\";i:2;s:4:\"home\";}}s:27:\"template-home-text-blog.php\";a:6:{s:5:\"title\";s:14:\"Text blog home\";s:4:\"slug\";s:40:\"twentytwentyfive/template-home-text-blog\";s:11:\"description\";s:0:\"\";s:13:\"viewportWidth\";i:1400;s:8:\"inserter\";b:0;s:13:\"templateTypes\";a:2:{i:0;s:10:\"front-page\";i:1;s:4:\"home\";}}s:38:\"template-home-vertical-header-blog.php\";a:6:{s:5:\"title\";s:18:\"Right-aligned home\";s:4:\"slug\";s:51:\"twentytwentyfive/template-home-vertical-header-blog\";s:11:\"description\";s:0:\"\";s:13:\"viewportWidth\";i:1400;s:8:\"inserter\";b:0;s:13:\"templateTypes\";a:3:{i:0;s:10:\"front-page\";i:1;s:5:\"index\";i:2;s:4:\"home\";}}s:40:\"template-home-with-sidebar-news-blog.php\";a:6:{s:5:\"title\";s:22:\"News blog with sidebar\";s:4:\"slug\";s:53:\"twentytwentyfive/template-home-with-sidebar-news-blog\";s:11:\"description\";s:0:\"\";s:13:\"viewportWidth\";i:1400;s:8:\"inserter\";b:0;s:13:\"templateTypes\";a:3:{i:0;s:10:\"front-page\";i:1;s:5:\"index\";i:2;s:4:\"home\";}}s:28:\"template-page-photo-blog.php\";a:5:{s:5:\"title\";s:15:\"Photo blog page\";s:4:\"slug\";s:41:\"twentytwentyfive/template-page-photo-blog\";s:11:\"description\";s:0:\"\";s:13:\"viewportWidth\";i:1400;s:13:\"templateTypes\";a:1:{i:0;s:4:\"page\";}}s:38:\"template-page-vertical-header-blog.php\";a:5:{s:5:\"title\";s:18:\"Right-aligned page\";s:4:\"slug\";s:51:\"twentytwentyfive/template-page-vertical-header-blog\";s:11:\"description\";s:0:\"\";s:13:\"viewportWidth\";i:1400;s:13:\"templateTypes\";a:1:{i:0;s:4:\"page\";}}s:33:\"template-query-loop-news-blog.php\";a:4:{s:5:\"title\";s:20:\"News blog query loop\";s:4:\"slug\";s:46:\"twentytwentyfive/template-query-loop-news-blog\";s:11:\"description\";s:0:\"\";s:8:\"inserter\";b:0;}s:34:\"template-query-loop-photo-blog.php\";a:6:{s:5:\"title\";s:16:\"Photo blog posts\";s:4:\"slug\";s:47:\"twentytwentyfive/template-query-loop-photo-blog\";s:11:\"description\";s:54:\"A list of posts, 3 columns, with only featured images.\";s:13:\"viewportWidth\";i:1400;s:10:\"categories\";a:1:{i:0;s:5:\"query\";}s:10:\"blockTypes\";a:1:{i:0;s:10:\"core/query\";}}s:33:\"template-query-loop-text-blog.php\";a:4:{s:5:\"title\";s:20:\"Text blog query loop\";s:4:\"slug\";s:46:\"twentytwentyfive/template-query-loop-text-blog\";s:11:\"description\";s:0:\"\";s:8:\"inserter\";b:0;}s:44:\"template-query-loop-vertical-header-blog.php\";a:4:{s:5:\"title\";s:24:\"Right-aligned query loop\";s:4:\"slug\";s:57:\"twentytwentyfive/template-query-loop-vertical-header-blog\";s:11:\"description\";s:0:\"\";s:8:\"inserter\";b:0;}s:23:\"template-query-loop.php\";a:5:{s:5:\"title\";s:23:\"List of posts, 1 column\";s:4:\"slug\";s:36:\"twentytwentyfive/template-query-loop\";s:11:\"description\";s:61:\"A list of posts, 1 column, with featured image and post date.\";s:10:\"categories\";a:1:{i:0;s:5:\"query\";}s:10:\"blockTypes\";a:1:{i:0;s:10:\"core/query\";}}s:29:\"template-search-news-blog.php\";a:6:{s:5:\"title\";s:24:\"News blog search results\";s:4:\"slug\";s:42:\"twentytwentyfive/template-search-news-blog\";s:11:\"description\";s:0:\"\";s:13:\"viewportWidth\";i:1400;s:8:\"inserter\";b:0;s:13:\"templateTypes\";a:1:{i:0;s:6:\"search\";}}s:30:\"template-search-photo-blog.php\";a:6:{s:5:\"title\";s:25:\"Photo blog search results\";s:4:\"slug\";s:43:\"twentytwentyfive/template-search-photo-blog\";s:11:\"description\";s:0:\"\";s:13:\"viewportWidth\";i:1400;s:8:\"inserter\";b:0;s:13:\"templateTypes\";a:1:{i:0;s:6:\"search\";}}s:29:\"template-search-text-blog.php\";a:6:{s:5:\"title\";s:24:\"Text blog search results\";s:4:\"slug\";s:42:\"twentytwentyfive/template-search-text-blog\";s:11:\"description\";s:0:\"\";s:13:\"viewportWidth\";i:1400;s:8:\"inserter\";b:0;s:13:\"templateTypes\";a:1:{i:0;s:6:\"search\";}}s:40:\"template-search-vertical-header-blog.php\";a:6:{s:5:\"title\";s:26:\"Right-aligned blog, search\";s:4:\"slug\";s:53:\"twentytwentyfive/template-search-vertical-header-blog\";s:11:\"description\";s:0:\"\";s:13:\"viewportWidth\";i:1400;s:8:\"inserter\";b:0;s:13:\"templateTypes\";a:1:{i:0;s:6:\"search\";}}s:40:\"template-single-left-aligned-content.php\";a:6:{s:5:\"title\";s:30:\"Post with left-aligned content\";s:4:\"slug\";s:47:\"twentytwentyfive/post-with-left-aligned-content\";s:11:\"description\";s:0:\"\";s:13:\"viewportWidth\";i:1400;s:8:\"inserter\";b:0;s:13:\"templateTypes\";a:2:{i:0;s:5:\"posts\";i:1;s:6:\"single\";}}s:29:\"template-single-news-blog.php\";a:6:{s:5:\"title\";s:34:\"News blog single post with sidebar\";s:4:\"slug\";s:42:\"twentytwentyfive/template-single-news-blog\";s:11:\"description\";s:0:\"\";s:13:\"viewportWidth\";i:1400;s:8:\"inserter\";b:0;s:13:\"templateTypes\";a:2:{i:0;s:5:\"posts\";i:1;s:6:\"single\";}}s:26:\"template-single-offset.php\";a:6:{s:5:\"title\";s:34:\"Offset post without featured image\";s:4:\"slug\";s:39:\"twentytwentyfive/template-single-offset\";s:11:\"description\";s:0:\"\";s:13:\"viewportWidth\";i:1400;s:8:\"inserter\";b:0;s:13:\"templateTypes\";a:2:{i:0;s:5:\"posts\";i:1;s:6:\"single\";}}s:30:\"template-single-photo-blog.php\";a:6:{s:5:\"title\";s:22:\"Photo blog single post\";s:4:\"slug\";s:43:\"twentytwentyfive/template-single-photo-blog\";s:11:\"description\";s:0:\"\";s:13:\"viewportWidth\";i:1400;s:8:\"inserter\";b:0;s:13:\"templateTypes\";a:2:{i:0;s:5:\"posts\";i:1;s:6:\"single\";}}s:29:\"template-single-text-blog.php\";a:6:{s:5:\"title\";s:21:\"Text blog single post\";s:4:\"slug\";s:42:\"twentytwentyfive/template-single-text-blog\";s:11:\"description\";s:0:\"\";s:13:\"viewportWidth\";i:1400;s:8:\"inserter\";b:0;s:13:\"templateTypes\";a:2:{i:0;s:5:\"posts\";i:1;s:6:\"single\";}}s:40:\"template-single-vertical-header-blog.php\";a:6:{s:5:\"title\";s:25:\"Right-aligned single post\";s:4:\"slug\";s:53:\"twentytwentyfive/template-single-vertical-header-blog\";s:11:\"description\";s:0:\"\";s:13:\"viewportWidth\";i:1400;s:8:\"inserter\";b:0;s:13:\"templateTypes\";a:2:{i:0;s:5:\"posts\";i:1;s:6:\"single\";}}s:22:\"testimonials-2-col.php\";a:5:{s:5:\"title\";s:21:\"2 columns with avatar\";s:4:\"slug\";s:35:\"twentytwentyfive/testimonials-2-col\";s:11:\"description\";s:42:\"Two columns with testimonials and avatars.\";s:10:\"categories\";a:1:{i:0;s:12:\"testimonials\";}s:8:\"keywords\";a:1:{i:0;s:11:\"testimonial\";}}s:22:\"testimonials-6-col.php\";a:5:{s:5:\"title\";s:35:\"3 column layout with 6 testimonials\";s:4:\"slug\";s:35:\"twentytwentyfive/testimonials-6-col\";s:11:\"description\";s:86:\"A section with three columns and two rows, each containing a testimonial and citation.\";s:10:\"categories\";a:1:{i:0;s:12:\"testimonials\";}s:8:\"keywords\";a:1:{i:0;s:11:\"testimonial\";}}s:22:\"testimonials-large.php\";a:5:{s:5:\"title\";s:32:\"Review with large image on right\";s:4:\"slug\";s:35:\"twentytwentyfive/testimonials-large\";s:11:\"description\";s:46:\"A testimonial with a large image on the right.\";s:10:\"categories\";a:1:{i:0;s:12:\"testimonials\";}s:8:\"keywords\";a:1:{i:0;s:11:\"testimonial\";}}s:13:\"text-faqs.php\";a:6:{s:5:\"title\";s:4:\"FAQs\";s:4:\"slug\";s:26:\"twentytwentyfive/text-faqs\";s:11:\"description\";s:68:\"A FAQs section with a FAQ heading and list of questions and answers.\";s:13:\"viewportWidth\";i:1400;s:10:\"categories\";a:2:{i:0;s:4:\"text\";i:1;s:5:\"about\";}s:8:\"keywords\";a:5:{i:0;s:3:\"faq\";i:1;s:5:\"about\";i:2;s:10:\"frequently\";i:3;s:5:\"asked\";i:4;s:9:\"questions\";}}s:19:\"vertical-header.php\";a:6:{s:5:\"title\";s:20:\"Vertical site header\";s:4:\"slug\";s:32:\"twentytwentyfive/vertical-header\";s:11:\"description\";s:52:\"Vertical site header with site title and navigation.\";s:13:\"viewportWidth\";i:300;s:10:\"categories\";a:1:{i:0;s:6:\"header\";}s:10:\"blockTypes\";a:1:{i:0;s:34:\"core/template-part/vertical-header\";}}}}','off'),(126,'recovery_keys','a:0:{}','off'),(127,'_site_transient_update_core','O:8:\"stdClass\":4:{s:7:\"updates\";a:1:{i:0;O:8:\"stdClass\":10:{s:8:\"response\";s:6:\"latest\";s:8:\"download\";s:57:\"https://downloads.wordpress.org/release/wordpress-6.9.zip\";s:6:\"locale\";s:5:\"en_US\";s:8:\"packages\";O:8:\"stdClass\":5:{s:4:\"full\";s:57:\"https://downloads.wordpress.org/release/wordpress-6.9.zip\";s:10:\"no_content\";s:68:\"https://downloads.wordpress.org/release/wordpress-6.9-no-content.zip\";s:11:\"new_bundled\";s:69:\"https://downloads.wordpress.org/release/wordpress-6.9-new-bundled.zip\";s:7:\"partial\";s:0:\"\";s:8:\"rollback\";s:0:\"\";}s:7:\"current\";s:3:\"6.9\";s:7:\"version\";s:3:\"6.9\";s:11:\"php_version\";s:6:\"7.2.24\";s:13:\"mysql_version\";s:5:\"5.5.5\";s:11:\"new_bundled\";s:3:\"6.7\";s:15:\"partial_version\";s:0:\"\";}}s:12:\"last_checked\";i:1770037517;s:15:\"version_checked\";s:3:\"6.9\";s:12:\"translations\";a:0:{}}','off'),(128,'_site_transient_update_plugins','O:8:\"stdClass\":5:{s:12:\"last_checked\";i:1770037518;s:8:\"response\";a:0:{}s:12:\"translations\";a:0:{}s:9:\"no_update\";a:2:{s:19:\"akismet/akismet.php\";O:8:\"stdClass\":10:{s:2:\"id\";s:21:\"w.org/plugins/akismet\";s:4:\"slug\";s:7:\"akismet\";s:6:\"plugin\";s:19:\"akismet/akismet.php\";s:11:\"new_version\";s:3:\"5.6\";s:3:\"url\";s:38:\"https://wordpress.org/plugins/akismet/\";s:7:\"package\";s:54:\"https://downloads.wordpress.org/plugin/akismet.5.6.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:60:\"https://ps.w.org/akismet/assets/icon-256x256.png?rev=2818463\";s:2:\"1x\";s:60:\"https://ps.w.org/akismet/assets/icon-128x128.png?rev=2818463\";}s:7:\"banners\";a:2:{s:2:\"2x\";s:63:\"https://ps.w.org/akismet/assets/banner-1544x500.png?rev=2900731\";s:2:\"1x\";s:62:\"https://ps.w.org/akismet/assets/banner-772x250.png?rev=2900731\";}s:11:\"banners_rtl\";a:0:{}s:8:\"requires\";s:3:\"5.8\";}s:9:\"hello.php\";O:8:\"stdClass\":10:{s:2:\"id\";s:25:\"w.org/plugins/hello-dolly\";s:4:\"slug\";s:11:\"hello-dolly\";s:6:\"plugin\";s:9:\"hello.php\";s:11:\"new_version\";s:5:\"1.7.2\";s:3:\"url\";s:42:\"https://wordpress.org/plugins/hello-dolly/\";s:7:\"package\";s:60:\"https://downloads.wordpress.org/plugin/hello-dolly.1.7.2.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:64:\"https://ps.w.org/hello-dolly/assets/icon-256x256.jpg?rev=2052855\";s:2:\"1x\";s:64:\"https://ps.w.org/hello-dolly/assets/icon-128x128.jpg?rev=2052855\";}s:7:\"banners\";a:2:{s:2:\"2x\";s:67:\"https://ps.w.org/hello-dolly/assets/banner-1544x500.jpg?rev=2645582\";s:2:\"1x\";s:66:\"https://ps.w.org/hello-dolly/assets/banner-772x250.jpg?rev=2052855\";}s:11:\"banners_rtl\";a:0:{}s:8:\"requires\";s:3:\"4.6\";}}s:7:\"checked\";a:2:{s:19:\"akismet/akismet.php\";s:3:\"5.6\";s:9:\"hello.php\";s:5:\"1.7.2\";}}','off'),(129,'_site_transient_timeout_theme_roots','1770039318','off'),(130,'_site_transient_theme_roots','a:3:{s:16:\"twentytwentyfive\";s:7:\"/themes\";s:16:\"twentytwentyfour\";s:7:\"/themes\";s:17:\"twentytwentythree\";s:7:\"/themes\";}','off'),(131,'_site_transient_update_themes','O:8:\"stdClass\":5:{s:12:\"last_checked\";i:1770037518;s:7:\"checked\";a:3:{s:16:\"twentytwentyfive\";s:3:\"1.4\";s:16:\"twentytwentyfour\";s:3:\"1.4\";s:17:\"twentytwentythree\";s:3:\"1.6\";}s:8:\"response\";a:0:{}s:9:\"no_update\";a:3:{s:16:\"twentytwentyfive\";a:6:{s:5:\"theme\";s:16:\"twentytwentyfive\";s:11:\"new_version\";s:3:\"1.4\";s:3:\"url\";s:46:\"https://wordpress.org/themes/twentytwentyfive/\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/theme/twentytwentyfive.1.4.zip\";s:8:\"requires\";s:3:\"6.7\";s:12:\"requires_php\";s:3:\"7.2\";}s:16:\"twentytwentyfour\";a:6:{s:5:\"theme\";s:16:\"twentytwentyfour\";s:11:\"new_version\";s:3:\"1.4\";s:3:\"url\";s:46:\"https://wordpress.org/themes/twentytwentyfour/\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/theme/twentytwentyfour.1.4.zip\";s:8:\"requires\";s:3:\"6.4\";s:12:\"requires_php\";s:3:\"7.0\";}s:17:\"twentytwentythree\";a:6:{s:5:\"theme\";s:17:\"twentytwentythree\";s:11:\"new_version\";s:3:\"1.6\";s:3:\"url\";s:47:\"https://wordpress.org/themes/twentytwentythree/\";s:7:\"package\";s:63:\"https://downloads.wordpress.org/theme/twentytwentythree.1.6.zip\";s:8:\"requires\";s:3:\"6.1\";s:12:\"requires_php\";s:3:\"5.6\";}}s:12:\"translations\";a:0:{}}','off'),(132,'_site_transient_timeout_browser_4925b4ba558db41c0df87e47df1ba2fc','1770642318','off'),(133,'_site_transient_browser_4925b4ba558db41c0df87e47df1ba2fc','a:10:{s:4:\"name\";s:7:\"Firefox\";s:7:\"version\";s:5:\"140.0\";s:8:\"platform\";s:7:\"Windows\";s:10:\"update_url\";s:32:\"https://www.mozilla.org/firefox/\";s:7:\"img_src\";s:44:\"http://s.w.org/images/browsers/firefox.png?1\";s:11:\"img_src_ssl\";s:45:\"https://s.w.org/images/browsers/firefox.png?1\";s:15:\"current_version\";s:2:\"56\";s:7:\"upgrade\";b:0;s:8:\"insecure\";b:0;s:6:\"mobile\";b:0;}','off'),(134,'_site_transient_timeout_php_check_478252eea4acfca65f7d24ee29253bbe','1770642319','off'),(135,'_site_transient_php_check_478252eea4acfca65f7d24ee29253bbe','a:5:{s:19:\"recommended_version\";s:3:\"8.3\";s:15:\"minimum_version\";s:6:\"7.2.24\";s:12:\"is_supported\";b:1;s:9:\"is_secure\";b:1;s:13:\"is_acceptable\";b:1;}','off'),(137,'can_compress_scripts','0','on'),(138,'_site_transient_timeout_community-events-d5da354fe93faaf1b295dbd93e368db6','1770080720','off'),(139,'_site_transient_community-events-d5da354fe93faaf1b295dbd93e368db6','a:4:{s:9:\"sandboxed\";b:0;s:5:\"error\";N;s:8:\"location\";a:1:{s:2:\"ip\";s:11:\"10.90.131.0\";}s:6:\"events\";a:4:{i:0;a:10:{s:4:\"type\";s:8:\"wordcamp\";s:5:\"title\";s:18:\"WordCamp Nice 2026\";s:3:\"url\";s:31:\"https://nice.wordcamp.org/2026/\";s:6:\"meetup\";N;s:10:\"meetup_url\";N;s:4:\"date\";s:19:\"2026-03-06 08:00:00\";s:8:\"end_date\";s:19:\"2026-03-06 08:00:00\";s:20:\"start_unix_timestamp\";i:1772780400;s:18:\"end_unix_timestamp\";i:1772780400;s:8:\"location\";a:4:{s:8:\"location\";s:12:\"Nice, France\";s:7:\"country\";s:2:\"FR\";s:8:\"latitude\";d:43.6945679;s:9:\"longitude\";d:7.2831987;}}i:1;a:10:{s:4:\"type\";s:6:\"meetup\";s:5:\"title\";s:47:\"#107 WordPress-Updates eine Übersicht zu viert\";s:3:\"url\";s:55:\"https://www.meetup.com/wordpress-bern/events/313116472/\";s:6:\"meetup\";s:14:\"WordPress Bern\";s:10:\"meetup_url\";s:38:\"https://www.meetup.com/wordpress-bern/\";s:4:\"date\";s:19:\"2026-03-26 18:00:00\";s:8:\"end_date\";s:19:\"2026-03-26 20:00:00\";s:20:\"start_unix_timestamp\";i:1774544400;s:18:\"end_unix_timestamp\";i:1774551600;s:8:\"location\";a:4:{s:8:\"location\";s:17:\"Bern, Switzerland\";s:7:\"country\";s:2:\"ch\";s:8:\"latitude\";d:46.948257;s:9:\"longitude\";d:7.442258;}}i:2;a:10:{s:4:\"type\";s:8:\"wordcamp\";s:5:\"title\";s:20:\"WordCamp Torino 2026\";s:3:\"url\";s:33:\"https://torino.wordcamp.org/2026/\";s:6:\"meetup\";N;s:10:\"meetup_url\";N;s:4:\"date\";s:19:\"2026-05-08 00:00:00\";s:8:\"end_date\";s:19:\"2026-05-09 00:00:00\";s:20:\"start_unix_timestamp\";i:1778191200;s:18:\"end_unix_timestamp\";i:1778277600;s:8:\"location\";a:4:{s:8:\"location\";s:13:\"Torino, Italy\";s:7:\"country\";s:2:\"IT\";s:8:\"latitude\";d:45.0501866;s:9:\"longitude\";d:7.6688509;}}i:3;a:10:{s:4:\"type\";s:8:\"wordcamp\";s:5:\"title\";s:22:\"WordCamp Mannheim 2026\";s:3:\"url\";s:35:\"https://mannheim.wordcamp.org/2026/\";s:6:\"meetup\";N;s:10:\"meetup_url\";N;s:4:\"date\";s:19:\"2026-07-03 00:00:00\";s:8:\"end_date\";s:19:\"2026-07-04 00:00:00\";s:20:\"start_unix_timestamp\";i:1783029600;s:18:\"end_unix_timestamp\";i:1783116000;s:8:\"location\";a:4:{s:8:\"location\";s:17:\"Mannheim, Germany\";s:7:\"country\";s:2:\"DE\";s:8:\"latitude\";d:49.4820104;s:9:\"longitude\";d:8.4674385;}}}}','off'),(140,'_site_transient_timeout_feed_9bbd59226dc36b9b26cd43f15694c5c3','1770080720','off'),(141,'_site_transient_feed_9bbd59226dc36b9b26cd43f15694c5c3','a:6:{s:5:\"child\";a:1:{s:0:\"\";a:1:{s:3:\"rss\";a:1:{i:0;a:6:{s:4:\"data\";s:3:\"\n\n\n\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:7:\"version\";s:3:\"2.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:1:{s:7:\"channel\";a:1:{i:0;a:6:{s:4:\"data\";s:52:\"\n \n \n \n \n \n \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:8:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"WordPress News\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:26:\"https://wordpress.org/news\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:59:\"The latest news about WordPress and the WordPress community\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:13:\"lastBuildDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 30 Jan 2026 21:13: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:8:\"language\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"en-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:9:\"generator\";a:1:{i:0;a:5:{s:4:\"data\";s:40:\"https://wordpress.org/?v=7.0-alpha-61576\";s: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:\"image\";a:1:{i:0;a:6:{s:4:\"data\";s:11:\"\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:3:\"url\";a:1:{i:0;a:5:{s:4:\"data\";s:29:\"https://s.w.org/favicon.ico?2\";s: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:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"WordPress News\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:26:\"https://wordpress.org/news\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:5:\"width\";a:1:{i:0;a:5:{s:4:\"data\";s:2:\"32\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:6:\"height\";a:1:{i:0;a:5:{s:4:\"data\";s:2:\"32\";s: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:\"item\";a:10:{i:0;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:\"New AI Agent Skill for WordPress\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:54:\"https://wordpress.org/news/2026/01/new-ai-agent-skill/\";s: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, 30 Jan 2026 17:13: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:8:\"category\";a:2:{i:0;a:5:{s:4:\"data\";s:11:\"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:\"\";}i:1;a:5:{s:4:\"data\";s:11:\"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:35:\"https://wordpress.org/news/?p=19798\";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:338:\"Faster Way For AI Agents To Test AI code agents are getting better at writing WordPress plugins and themes, but testing can still be the slow part. WordPress contributor Brandon Payton has published wp-playground, a new AI agent skill designed to run WordPress via the Playground CLI, giving agents a fast, repeatable way to run […]\";s: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:5989:\"\n

Faster Way For AI Agents To Test

\n\n\n\n

AI code agents are getting better at writing WordPress plugins and themes, but testing can still be the slow part. WordPress contributor Brandon Payton has published wp-playground, a new AI agent skill designed to run WordPress via the Playground CLI, giving agents a fast, repeatable way to run WordPress and verify their work as they iterate.

\n\n\n\n
\n

“AI agents work better when they have a clear feedback loop. That’s why I made the wp-playground skill. It gives agents an easy way to test WordPress code and makes building and experimenting with WordPress a lot more accessible.”

\n\n\n\n

— Brandon Payton, WordPress Contributor

\n
\n\n\n\n

What the Playground skill does

\n\n\n\n

When launched, the skill starts WordPress and detects where the current code should live inside a WordPress install. For example, it can mount a plugin into wp-content/plugins or a theme into wp-content/themes by recognizing common file signatures (such as plugin headers or a theme’s style.css). This helps agents move from “generated code” to “running site” with fewer manual steps.

\n\n\n\n
\n

Install and try it today.

\n\n\n\n

Find more information on this GitHub link:

\n\n\n\n\n
\n\n\n\n

Early results and testing workflow

\n\n\n\n

In testing, agents were able to start WordPress, build playful plugins, and validate behavior in a tight feedback loop. Once Playground was running, the agent alternated between tools such as curl and Playwright to interact with WordPress, verify results, apply fixes when needed, and then re-verify with Playground.

\n\n\n\n

Faster startup and smoother iteration

\n\n\n\n

Helper scripts handle startup and shutdown, so an agent doesn’t waste time guessing when WordPress is ready. Using helper scripts reduced the “ready to test” moment from roughly a minute to a few seconds on the author’s machine. The Playground CLI can also log in automatically for easier WP-Admin access during testing.

\n\n\n\n

Install and try it now

\n\n\n\n

For those who want to try it in Claude Code, Codex, or another AI agent, installation requires Node.js and npm and looks like this:

\n\n\n\n

# Run this in a project directory to install the skills for that project 
npx openskills install WordPress/agent-skills

# Make skills available to non-Claude agents
npx openskills sync

\n\n\n\n

A new repo for WordPress agent skills

\n\n\n\n

This release also comes with a new home for this kind of work:
https://github.com/WordPress/agent-skills

\n\n\n\n

It’s an early step in exploring how AI agents can collaborate with WordPress tooling, and contributions from the community are welcome. Future additions being explored include persistent Playground sites based on the current directory, running commands against an existing Playground instance (including wp-cli), and Blueprint generation.

\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:\"19798\";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: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:29:\"Be Part of WordCamp Asia 2026\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:54:\"https://wordpress.org/news/2026/01/wordcamp-asia-2026/\";s: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, 21 Jan 2026 12:07: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: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=19738\";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:333:\"WordCamp Asia is back in 2026, this time in Mumbai, India, and it’s building on a year that showed just how ambitious and connected the WordPress community has become. Now is the time to get involved. Get your ticket, explore sponsorship opportunities, and help spread the word. In 2025, more than 1,400 attendees from 71 […]\";s: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:\"Nicholas Garofalo\";s: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:36121:\"\n

WordCamp Asia is back in 2026, this time in Mumbai, India, and it’s building on a year that showed just how ambitious and connected the WordPress community has become. Now is the time to get involved. Get your ticket, explore sponsorship opportunities, and help spread the word.

\n\n\n\n\n\n\n\n

In 2025, more than 1,400 attendees from 71 countries gathered in person, with nearly 15,000 more joining online for WordCamp Asia 2025. With notable guests like WordPress Co-founder Matt Mullenweg and Gutenberg Lead Architect Matías Ventura, and a diverse lineup of speakers and panelists from across the ecosystem, WordCamp Asia 2025 brought together a community actively shaping the future of the open web.

\n\n\n\n
\n

It’s the people. It’s the friendships and the stories.

\n\n\n\n

Matt Mullenweg, WordPress Cofounder

\n
\n\n\n\n

WordCamp isn’t just about sessions and schedules. It’s about connection. It’s about learning directly from people who are building, scaling, and sustaining WordPress in the real world. It’s about sharing ideas, debating the future of the open web, and leaving with renewed energy for the work ahead. And in 2026, that spirit returns stronger than ever.

\n\n\n\n\n\n\n\n

Tickets for WordCamp Asia 2026 are on sale now, and this is the moment to secure your spot. WordCamps are intentionally priced to remain accessible, and early ticket sales help organizers plan an inclusive, high-quality experience for everyone.

\n\n\n\n
\"\"
\n

Join 3,000+ Web Professionals

\n\n\n\n

April 9 – 11, 2026 | Jio World Convention Centre, Mumbai, India

\n\n\n\n\n
\n\n\n\n

WordCamp Asia is also made possible by the organizations that step up to support it. Sponsorship plays a critical role in keeping the event accessible, supporting contributors and volunteers, and ensuring the experience reflects the values of the WordPress project. For sponsors, WordCamp Asia 2026 offers a rare opportunity to connect with a highly engaged, global audience in a setting built on trust, collaboration, and shared purpose.

\n\n\n\n

Sponsorship packages are designed to support a wide range of organizations, from local companies to global businesses building products and services on WordPress. Beyond visibility, sponsors become part of the story—helping sustain the ecosystem and invest directly in the community that makes WordPress possible.

\n\n\n\n
\n
\n
\n\n
\n
\n\n\n\n

If your company is interested in becoming a sponsor or you would like to know more, please reach out.

\n\n\n\n\n
\n\n\n\n

At every level, WordCamp Asia is powered by people. Organizers, volunteers, speakers, sponsors, and attendees all contribute to an experience that reflects WordPress’s shared values of openness and collaboration. It’s a place where new voices are welcomed, long-time contributors reconnect, and ideas move from conversation to action.

\n\n\n\n\n\n\n\n

WordCamp Asia 2026 is more than an event—it’s a moment to come together, reflect on where we are, and help shape what comes next. Whether you’re attending for the first time, returning for another year, or supporting the event as a sponsor, your involvement helps strengthen the WordPress ecosystem and the global community behind it.

\n\n\n\n

We’ll see you in Mumbai.

\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:\"19738\";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:43:\"A New Home for WordPress Education Programs\";s: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://wordpress.org/news/2026/01/wordpress-education-programs-new-home/\";s: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, 20 Jan 2026 17:14: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: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:7:\"Updates\";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:9:\"Education\";s: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=19636\";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:392:\"Over the past few weeks, a new space has taken shape on WordPress.org for students who want to learn, build, and contribute. WordPress Education programs bring together initiatives that help students enter the WordPress ecosystem through clear, accessible entry points that lead to real-world practice. With hands-on initiatives and supportive communities, participants can grow new […]\";s: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:17688:\"\n

Over the past few weeks, a new space has taken shape on WordPress.org for students who want to learn, build, and contribute. WordPress Education programs bring together initiatives that help students enter the WordPress ecosystem through clear, accessible entry points that lead to real-world practice.

\n\n\n\n

With hands-on initiatives and supportive communities, participants can grow new skills and take their first steps as contributors. Across campuses and communities worldwide, learners publish real projects, build practical experience, and gain confidence as part of open source creation.

\n\n\n\n
\"\"
CC0 licensed photo by Virendra Kumar Yadav from the WordPress Photo Directory.
\n\n\n\n

A clearer path into the WordPress ecosystem

\n\n\n\n

WordPress Education is designed to help students turn knowledge into practice, discover their strengths, and understand how their contributions can make a real impact through three core programs: WordPress Campus Connect, WordPress Credits, and WordPress Student Clubs.

\n\n\n\n

Through hands-on campus events, such as WordPress Campus Connect, on-campus groups like WordPress Student Clubs, and a practice-based program called WordPress Credits, participants can gain practical experience, publish real-world projects, and build confidence as contributors to a global culture of open-source creation.

\n\n\n\n

At its heart, these WordPress education programs are about three simple ideas:

\n\n\n\n

Learn. Build. Connect.

\n\n\n\n

This update brings WordPress education programs together in one place, with an easy way to explore initiatives, understand how they work, and take the next step.

\n\n\n\n

You will find:

\n\n\n\n
    \n
  • A home for WordPress Education programs and updates
  • \n\n\n\n
  • Clear “how to get involved” paths for students, educators, mentors, organizers, and sponsors
  • \n\n\n\n
  • Stories, highlights, and examples of real projects created through the programs
  • \n\n\n\n
  • Links to the Education Handbook for program guidelines and resources
  • \n
\n\n\n\n
\n

Want to learn more about WordPress education opportunities?

\n\n\n\n\n\n\n\n

You can also view more information from the WordPress Community Education Programs Handbook. Learn how this serves as a central guide and resource for all community-driven educational initiatives.

\n
\n\n\n\n
\n
\n

WordPress
Campus Connect

\n\n\n\n

WordPress Campus Connect is a growing global learning initiative that brings hands-on WordPress learning directly to the students on their campus.

\n\n\n\n

The organizers can come from within educational institutions or from the local communities to help deliver WordPress programming and create the future stewards of WordPress.

Learn more: https://wordpress.org/education/campus-connect/

\n
\n\n\n\n
\n

WordPress
Credits

\n\n\n\n

WordPress Credits is a contribution-based program by the WordPress Foundation that connects higher education students with the global WordPress community.

\n\n\n\n

Educational institutions partner with the WordPress Foundation to offer students credits toward their degrees for contributing 150 hours to the WordPress project.

Learn more: https://wordpress.org/education/credits/

\n
\n\n\n\n
\n

WordPress
Student Clubs

\n\n\n\n

WordPress Student Clubs empower students to build on-campus WordPress communities that keep learning going throughout the year.

\n\n\n\n

In the spirit of our local community meetups, these groups operate as on-campus equivalents, keeping students engaged and connected with their local WordPress communities.

Learn more: https://wordpress.org/education/student-clubs/

\n
\n
\n\n\n\n

Support This Growing Movement

\n\n\n\n

Help spread the word, and let friends, students, and others know how they can contribute to this growing effort, including a widely expanding translation effort. WordPress Education has already been translated into 10 new languages. WordPress Education is powered by people who believe in open learning and the power of collaboration.

\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:\"19636\";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: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:58:\"WordPress Playground Brings Speed, Stability, and Momentum\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:81:\"https://wordpress.org/news/2026/01/wordpress-playground-speed-stability-momentum/\";s: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, 15 Jan 2026 16:53: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: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=19673\";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:399:\"WordPress Playground had a busy year in 2025, with updates that make it more capable for day-to-day development, plugin previews, and learning environments. The project’s latest year-in-review highlights progress across performance, compatibility, database support, and tooling, expanding what can be done in a WordPress environment that runs in the browser and through the command line. […]\";s: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:12643:\"\n

WordPress Playground had a busy year in 2025, with updates that make it more capable for day-to-day development, plugin previews, and learning environments. The project’s latest year-in-review highlights progress across performance, compatibility, database support, and tooling, expanding what can be done in a WordPress environment that runs in the browser and through the command line.

\n\n\n\n

From faster load times to broader plugin support, the throughline is clear: Playground is moving beyond quick demos and into workflows that help developers and educators test, iterate, and share WordPress experiences more easily.

\n\n\n\n\n\n\n\n
\"\"
\n\n\n\n
\n\n\n\n
\n

Key Takeaways

\n\n\n\n
\n\n\n\n
    \n
  • Plugin previews are more reliable: 99% of the top 1,000 plugins can be installed and activated successfully, making demos and evaluations more trustworthy.
  • \n\n\n\n
  • Everything is faster: A performance upgrade reduced average response time by 42%, and further optimizations improved overall “time to first useful click.”
  • \n\n\n\n
  • Database tools work in browser: Improved database compatibility enabled tools like phpMyAdmin to be used directly on playground.wordpress.net.
    More practical tooling for real work: Testing configurations and previewing changes can happen in one place, without a complete local environment first.
  • \n\n\n\n
  • New visual gallery of blueprints: A new visual gallery of blueprints provides excellent starting points for various types of sites.
  • \n\n\n\n
  • Global adoption: Playground was used 1.4 million times globally, with growing documentation translations and community contributions.
  • \n
\n
\n\n\n\n

Reliable Plugin Previews and Experimentation

\n\n\n\n

A headline update from 2025 is the focus on compatibility. In testing with the top 1,000 plugins from the WordPress plugin directory, 99% installed and activated successfully. That matters because it raises confidence in what Playground is best known for: letting people try things quickly, without a complex setup, and with fewer surprises.

\n\n\n\n

This highlighted that Playground is increasingly useful as a general-purpose PHP sandbox. Alongside WordPress, it can support standard PHP tools and projects, which makes it easier to explore how WordPress fits into broader development workflows and to share reproducible environments with others.

\n\n\n\n

If you try something new and unexpected in Playground, the update encourages you to share what you learn in the #playground Slack channel, so the community can build a clearer picture of what works well today and what is improving next.

\n\n\n\n

Faster Load Times

\n\n\n\n

Speed was a central theme in 2025. A recent year-in-review report revealed a 42% reduction in average response time, and this is not just a single change. A series of improvements make Playground feel quicker in the moments people notice most, such as loading WordPress, opening wp-admin, and switching between tasks.

\n\n\n\n

Several behind-the-scenes updates were described in plain terms as “less waiting”: checks happen earlier, parts of the experience load in a smarter order, and more content is reused from cache, so repeat actions are snappier.

\n\n\n\n

For people using Playground to review a plugin, validate a bug fix, or teach a class, these improvements mean the same thing: faster feedback loops, with fewer pauses that break concentration.

\n\n\n\n

Better Tooling and Compatibility

\n\n\n\n

In 2025, Playground also became more “toolbox-like” in the browser. The update highlighted features that reduce context switching, such as editing files on the page, building and testing starter configurations (Blueprints) in a dedicated editor, and launching database tools such as phpMyAdmin and Adminer with a single click.

\n\n\n\n

On the database side, a significant compatibility upgrade was introduced to improve support for more complex database behavior. The practical outcome is that more WordPress sites and plugins behave as expected in Playground, and more developer tools can run inside the environment.

\n\n\n\n

Blueprints also advanced in ways that benefit both builders and sharers. The updates focus on making starter setups easier to create, browse, and reuse, especially when a demo requires content, media, or a specific configuration that should launch consistently.

\n\n\n\n

One of the clearest ways to see that progress is the WordPress Blueprints Gallery, a community library of ready-to-launch WordPress environments. From practical “building block” examples (such as starting with a specific login role) to demos that automatically install themes and plugins, to richer setups that generate posts and featured images via WP-CLI, the gallery demonstrates how quickly an idea can become a fully functional site that you can browse and share.

\n\n\n\n

Examples:

\n\n\n\n
\n
\n
\"\"
\n
\n\n\n\n
\n
\"\"
\n
\n\n\n\n
\n
\"\"
\n
\n
\n\n\n\n

For anyone who wants to experience the power of WordPress without the setup, the gallery serves as a strong reminder of what Playground makes possible: shareable, repeatable site experiences that work the same way every time — ideal for demos, workshops, testing, and “try it now” links. 

\n\n\n\n

Clear adoption signals back all of this. The review reports 1.4 million uses globally, documentation translations in multiple languages, and growing integration across the plugin directory through Playground-powered previews. It also points to a steady increase in community contribution, from documentation and support to talks and real-world workflows built on top of Playground.

A huge thank you to everyone who tried Playground over the past year,  whether you launched a quick demo, tested a change, taught a workshop, or helped make the documentation more accessible in your language. And if there’s anything that would make Playground even more helpful for your day-to-day work, the project actively welcomes ideas and feature requests via the WordPress Playground GitHub issues tracker.

\n\n\n\n

Looking Ahead

\n\n\n\n

As we closed out 2025 and now look forward to 2026, we can see several forward-looking initiatives, including work on MySQL binary protocol support (to enhance broader compatibility with MySQL tools) and continued exploration of debugging enhancements, such as expanded XDebug access.

\n\n\n\n

For anyone who last tried Playground as a quick demo environment, 2025’s updates suggested a shift in direction: Playground is increasingly positioned as a practical layer for testing, teaching, previewing, and reviewing WordPress, both in the browser and in local workflows.

\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:\"19673\";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: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:40:\"2026 Global Partner Program Announcement\";s: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:63:\"https://wordpress.org/news/2025/12/2026-global-partner-program/\";s: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, 10 Dec 2025 17:16:48 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s: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=19534\";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:412:\"Become a driving force behind WordPress innovation by joining the Global Community Sponsorship Program: a comprehensive initiative that supports the events and people powering our open source mission. As a Global Sponsor, your organization gains meaningful visibility across the international WordPress ecosystem while helping to fund events that foster growth, collaboration, and community. Why Choose […]\";s: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:\"Harmony Romo\";s: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:11677:\"\n

Become a driving force behind WordPress innovation by joining the Global Community Sponsorship Program: a comprehensive initiative that supports the events and people powering our open source mission. As a Global Sponsor, your organization gains meaningful visibility across the international WordPress ecosystem while helping to fund events that foster growth, collaboration, and community.

\n\n\n\n
\"\"
\n\n\n\n

Why Choose Global Sponsorship?

\n\n\n\n

Instead of managing multiple individual sponsorships, this streamlined program consolidates your efforts into one efficient and impactful partnership.

\n\n\n\n

Efficiency and Simplified Administration

\n\n\n\n

Skip the complexity of coordinating invoice payments with numerous volunteer teams. Our centralized approach saves time and resources. In 2026, sponsors will benefit from:

\n\n\n\n
    \n
  • A dedicated Slack channel for direct communication with the WordPress Community Support team and Community Program Managers
  • \n\n\n\n
  • Monthly updates listing upcoming WordPress events, their current planning stages, and scheduled dates
  • \n
\n\n\n\n

Expanded Reach and Impact

\n\n\n\n

Your sponsorship amplifies your presence worldwide, ensuring consistent visibility across global WordPress community events.

\n\n\n\n

Stability and Reliability

\n\n\n\n

Your commitment strengthens locally organized events by providing predictable funding that supports venues, logistics, and growth.

\n\n\n\n

Flexible Branding Options

\n\n\n\n

Adapt across your portfolio—Global Sponsors can represent different brands at different events (subject to approval and advance notice).

\n\n\n\n

Program Benefits

\n\n\n\n
Global LeaderRegional PowerhouseCommunity Builder




Best for:
Established brands seeking global reach and year-round visibility.Companies aiming for regional dominance and strong brand recognition.Organizations supporting the next generation of WordPress education.
Sponsorship payable in full or through quarterly installments$180,000$110,000$60,000
Top tier sponsorship benefits at all local WordCamp events (excludes flagships) with priority access to claim a sponsor table at in-person WordPress events\"✔\"
Option to feature multiple brands across events\"✔\"
Dedicated sponsor landing page\"✔\"\"✔\"
Complimentary WordPress event tickets for your team\"✔\"\"✔\"
Recognition across all WordPress events\"✔\"\"✔\"
Sponsor Spotlight post on WordPress.org/news featuring highlights from recent WordCampsQuarterlyAnnually
Inclusion of your company logo in signage and materials for WordPress Campus Connect eventsAll signage & materials for the year (digital and printed)Signage & materials for 5 events per year (printed only)All signage & materials for the year (digital and printed)
Opportunity to be featured in an exclusive digital binder for WordPress Campus Connect event organizersPriority placement (logos & text)Feature listing (text only)Feature listing (text only)
Regular recognition in monthly education buzz report\"✔\"
\n\n\n\n

How Sponsorship Funds Are Used

\n\n\n\n

Global Sponsorship funds directly support:

\n\n\n\n
    \n
  • Local WordPress events worldwide (venue rental, catering, A/V, and more)
  • \n\n\n\n
  • Meetup.com license fees for over 671 WordPress Meetup groups globally
  • \n\n\n\n
  • Administrative costs like insurance, banking, and annual financial audits that ensure transparent operations
  • \n
\n\n\n\n

Your partnership helps sustain the community that powers more than 43% of the web. Together, we can keep the WordPress project thriving and expanding for years to come.

\n\n\n\n
\n

If your company is interested in joining the Global Sponsorship program or you would like to know more, please reach out.

\n\n\n\n\n\n\n\n
\n\n\n\n

Please see Rules for Sponsor Materials for more details about terms of sponsorship. Please also see our sample sponsorship agreement.

\n
\n\n\n\n

If you’d like to go one step further, please consider donating directly to the WordPress Foundation. We operate lean—every dollar goes toward keeping WordPress free, supporting education, and funding the community that makes the web a better place. In short, your donation helps us keep the lights on and the mission alive.

\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:\"19534\";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:65:\"\n \n \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:7:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:54:\"State of the Word 2025: Innovation Shaped by Community\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:45:\"https://wordpress.org/news/2025/12/sotw-2025/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 03 Dec 2025 18:26: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: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:\"\";}i:2;a:5:{s:4:\"data\";s:17:\"state of the word\";s: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=19447\";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:354:\"State of the Word 2025 brought the WordPress community together for an afternoon that felt both reflective and forward-moving, blending stories of global growth with technical milestones and glimpses of the future. This year also marked the twentieth State of the Word since the first address in 2006, a milestone noted in the WordPress history […]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:9:\"enclosure\";a:2:{i:0;a:5:{s:4:\"data\";s:0:\"\";s:7:\"attribs\";a:1:{s:0:\"\";a:3:{s:3:\"url\";s:59:\"https://wordpress.org/news/files/2025/12/Telex-demo-776.mp4\";s:6:\"length\";s:8:\"29136831\";s:4:\"type\";s:9:\"video/mp4\";}}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:0:\"\";s:7:\"attribs\";a:1:{s:0:\"\";a:3:{s:3:\"url\";s:53:\"https://wordpress.org/news/files/2025/12/wapu-513.mp4\";s:6:\"length\";s:9:\"102323371\";s:4:\"type\";s:9:\"video/mp4\";}}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:\"Nicholas Garofalo\";s: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:37924:\"\n
\n\n
\n\n\n\n

State of the Word 2025 brought the WordPress community together for an afternoon that felt both reflective and forward-moving, blending stories of global growth with technical milestones and glimpses of the future. This year also marked the twentieth State of the Word since the first address in 2006, a milestone noted in the WordPress history book Milestones: The Story of WordPress as the beginning of a tradition that has helped the project tell its own story.

\n\n\n\n

From the outset, the keynote carried a sense of momentum shaped by thousands of contributors, educators, students, and creators whose steady participation continues to define the open web. It was a reminder that WordPress is more than software. It is a community writing its future together.

\n\n\n\n
\n

What we have is more than code. It’s momentum, it’s culture, and it’s a system that lets people learn by doing and lead by showing up.  — Mary Hubbard, WordPress Executive Director

\n
\n\n\n\n

Mary opened the evening by reflecting on her first full year as Executive Director, a year spent listening deeply and seeing firsthand how people across regions learn, contribute, and lead. Her remarks grounded the keynote in the lived reality of a community that grows because people invest in one another, teach openly, and build trust through contribution.

\n\n\n\n
\n

I’ve met people using WordPress to unlock new careers. I’ve met contributors who started a single translation or forum post and are now leading major pieces of the project. In LatAm, Europe, and the States, I’ve seen students get access to WordPress tools and start building faster than we could have ever imagined. I’ve watched communities build in public, resolve disagreements in the open, and collaborate across languages and time zones.

\n
\n\n\n\n

That reflection offered a clear reminder of what makes WordPress resilient through change: a culture of showing up, learning by doing, and supporting others along the way. The project moves forward because people choose to participate in ways both large and small, strengthening the foundation that has carried WordPress for more than two decades.

\n\n\n\n

With that foundation in place, the keynote moved through a series of stories and demonstrations that highlighted where WordPress stands today and where it is headed next — from a historic live release of WordPress 6.9 to expanding global education pathways, emerging AI capabilities, and deeper collaboration across the entire ecosystem.

\n\n\n\n

WordPress by the Numbers

\n\n\n\n

Project Cofounder Matt Mullenweg began with a wide-angle view of the project’s growth. WordPress powers over 43% of the web, with 60.5% of the CMS market. Shopify, its nearest competitor, holds 6.8%. Among the top 1,000 websites, WordPress’s share climbed to 49.4%, up 2.3% from the previous year.

\n\n\n\n
\"Globe
\n\n\n\n

Multilingual usage continued its strong rise. Over 56% of WordPress sites now run in languages other than English. Japan stood out, with WordPress powering 58.5% of all Japanese websites and 83% of the CMS market. Japanese became the second most-used language on WordPress at 5.82%. Spanish followed, then German, French, and Brazilian Portuguese.

\n\n\n\n

The plugin ecosystem saw explosive growth. The directory surpassed 60,000 plugins, and plugin downloads were on pace to reach 2.1 billion by year-end. Over 1,500 themes have been released this year as well.

\n\n\n\n

Contributors also hit new highs. The 6.8 release included 921 contributors, the largest group yet. WordPress 6.8 saw 79.5 million downloads, up 13%, and WordPress 6.9 included contributions from 230 first-time contributors and more than 340 enhancements and fixes.

\n\n\n\n

A Release Moment to Remember

\n\n\n\n

This year’s keynote delivered something WordPress had never attempted before: a live on-stage release of WordPress 6.9.

\n\n\n\n
\"WordPress
\n\n\n\n

Mary set the moment up earlier in the program, calling WordPress 6.9 “fast, polished, and built for collaboration.” She explained that it reflected a year of intentional iteration, improved workflows, and deeper cross-team participation. 

\n\n\n\n

Matt took the stage with some of the release leads, the release button in hand. The room counted down, and then WordPress 6.9 shipped live, instantly updating millions of sites around the world. It was both a celebration and a testament to the reliability and trust the WordPress community has built into its release processes. Shipping a major version of WordPress in real time, on stage, without drama, is something the early contributors could hardly have imagined.

\n\n\n\n
\"Photo
\n\n\n\n

That reflection connected back to WordPress’s origin story. Matt talked about discovering the B2 forums, asking questions, and eventually reaching the point where he could answer someone else’s. That transition from learner to contributor remains at the heart of the project today. Two decades later, WordPress has grown from those early interactions into a platform that can ship a major release in front of the world, powered by thousands of contributors building together.

\n\n\n\n

WordPress and the Future of AI

\n\n\n\n

As the keynote shifted toward the future, Matt acknowledged what has become an essential truth of the moment: it would be impossible to talk about the next chapter of WordPress without talking about AI. He reminded the audience that in 2022, long before ChatGPT entered global conversation, he encouraged the community to “learn AI deeply.” The speed of change since then, he said, has exceeded every expectation, and WordPress has been preparing for it in ways both visible and behind the scenes.

\n\n\n\n
\"Timeline
\n\n\n\n

Matt introduced one of the most important architectural developments of the year: the Abilities API and the MCP adapter. The Abilities API defines what WordPress can do in a structured way that AI systems can interpret, while the MCP adapter exposes those abilities through a shared protocol. This means AI agents — whether built by individuals, companies, or larger platforms — can understand and interact with WordPress safely and predictably. Instead of relying on one-off integrations or brittle interfaces, WordPress now participates in a broader ecosystem of tools that can query its capabilities and perform tasks using a standard, governed approach.

\n\n\n\n

Matt then highlighted how developers are already using AI in their everyday work through tools like Cursor, Claude Code, and next-generation CLIs. These tools can explore entire codebases, generate documentation, produce tests, refactor large components, and even coordinate sequences of WP-CLI commands. For many developers, they expand what a single person can accomplish in an afternoon. They don’t eliminate the need for human judgment — they amplify it.

\n\n\n\n

With that foundation laid, Matt turned the audience’s attention to Telex, the experimental environment designed to turn natural-language prompts into Gutenberg Blocks. Telex has already moved beyond experimentation and into real use. Matt showed examples from community creator Nick Hamze, who uses Telex to power micro-business tools that represent practical, revenue-generating workflows that previously required custom engineering.

\n\n\n\n
\n\n\n\n

Matt then widened the lens to show what companies across the ecosystem are building with AI. Hostinger’s Kodee can generate a complete WordPress site from a single description. Elementor AI demonstrated similarly rapid creation inside its own editor, producing full sections and layouts in seconds. WordPress.com showcased how its AI tools help users draft, rewrite, and refine content while keeping language aligned with the site’s voice. Yoast demonstrated how AI can support SEO workflows by generating structured suggestions and improving readability. Together, these examples illustrated that AI is not arriving in one place — it is arriving everywhere.

\n\n\n\n

Experimental browsers can navigate WP Admin autonomously, performing tasks such as clicking buttons, opening menus, changing settings, and performing multi-step tasks without requiring any custom plugins or APIs. This raised a key question that Matt encouraged the community to consider: Which AI capabilities should live inside WordPress itself, and which should remain external, operating through the browser or operating system?

\n\n\n\n

Matt closed the section by discussing WordPress-specific AI benchmarks and evaluation suites. These shared tests will measure how well AI systems understand and execute WordPress tasks, from enabling plugins to navigating WP Admin to modifying content and settings. The goal is to create a foundation where future AI tools behave predictably and responsibly across the entire ecosystem, giving creators confidence that intelligent tools understand the platform deeply.

\n\n\n\n

A Global Community Growing Together

\n\n\n\n

Mary then returned to the stage to celebrate the ecosystem that supports WordPress’s growth. Across continents, diverse groups of people have hosted WordPress events, training new contributors and welcoming newcomers into the project. WordCamp growth in 2025 reflected that: more than 81 WordCamps across 39 countries, powered by over 5,000 volunteers and attended by nearly 100,000 people, with sixteen more events still underway.

\n\n\n\n
\"\"
\n\n\n\n

Education played a major role in this community expansion. Learn.WordPress.org served over 1.5 million learners this year, with clearer pathways into more structured programs like Campus Connect and WordPress Credits. This bridging was deliberate. Many learners arrive through tutorials or workshops but need clearer guidance on how to deepen their skills. By reshaping navigation and improving wayfinding across WordPress.org, the project began closing that gap.

\n\n\n\n

She spotlighted Costa Rica’s Universidad Fidélitas, where WordPress moved beyond extracurricular interest into formal academic integration. Long before signing an agreement with the WordPress Foundation, their students were hosting WordCamp San José, forming student clubs, and treating WordPress as a crucial part of digital literacy and professional development.

\n\n\n\n
\"\"
Students of the WordPress Fidélitas Club
\n\n\n\n

Wapuu appeared across events as a familiar companion and a cultural thread running through contributor tools and community projects. Its presence was a reminder that creativity and playfulness are as essential to open source as documentation or code.

\n\n\n\n
\"Various
\n\n\n\n

Matt highlighted the story of Youth Day in Managua, Nicaragua. Seventy-five young people spent a full day building their first WordPress sites. Sessions were taught by teenagers, for teenagers. They learned to pick themes, customize layouts, create contact forms, and publish content. Contribution often starts with a simple moment of confidence, and those early sparks can shape entire careers.

\n\n\n\n
\n\n\n\n

Together, these moments illustrated a project expanding not just in numbers, but in depth, diversity, and global reach. WordPress is growing because communities are finding their own ways to embrace it.

\n\n\n\n

What’s New in WordPress 6.9

\n\n\n\n

Joining virtually, WordPress Lead Architect, Matías Ventura, shifted the keynote from vision to practice. Matías offered a detailed walkthrough of what makes WordPress 6.9 one of the most refined, collaborative, and forward-looking releases the project has shipped in years. He returned to the four familiar lenses of creation — writing, designing, building, and developing — and showed how each evolved in this release cycle.

\n\n\n\n

He began with notes in the Block Editor, one of the most anticipated features. Notes allow collaborators to comment directly on individual blocks in a post or page. When a note is selected, the surrounding content subtly fades, helping contributors stay focused on context. Because notes are built on WordPress’s native comment system, they integrate seamlessly with existing communication workflows, including email notifications. Matías highlighted that notes development exemplified collaboration at its best, with contributors from various companies working together to bring the feature to life.

\n\n\n\n
\n\n
\n\n\n\n

From there, he turned to refinements across the writing and design experience. Editor interactions feel smoother and more consistent. Patterns behave more predictably. Spacing and typography controls are clearer, more organized, and more intuitive. Together these capabilioties make the experience of writing and designing inside WordPress calmer, more reliable, and more empowering.

\n\n\n\n

Block bindings now provide a more intuitive, visual way to connect blocks to dynamic data sources. Users can switch or remove bindings with a single click, and developers can register additional sources to support custom workflows. This work lays the foundation for a future where dynamic data flows more naturally through blocks, enabling site creators to build richer interfaces without writing code.

\n\n\n\n

On the developer front, Matías focused on three foundational upgrades that represent major steps forward in how WordPress will evolve over the coming years.

\n\n\n\n
    \n
  • The first was the Abilities API, a unified registry that describes what WordPress can do — across PHP, REST endpoints, the command palette, and future AI-driven interactions.
  • \n\n\n\n
  • The HTML API introduces new ways of working with and modifying HTML server-side. The API ensures safer, more reliable handling, lowering the barrier for theme and block developers who work with dynamic or structured markup.
  • \n\n\n\n
  • The Interactivity API delivers smoother, faster interactions without requiring heavy JavaScript frameworks. Improved routing, better state management, and clearer conventions help developers create rich, modern interfaces without leaving the WordPress philosophy of simplicity and flexibility.
  • \n
\n\n\n\n

After Matías wrapped his presentation, Matt stepped back in to highlight several developments that build on the foundations of 6.9 and strengthen the overall WordPress ecosystem. He pointed first to the Plugin Check Plugin, a tool designed to help developers align with current WordPress standards and catch common issues early, making plugins more reliable for users and easier to maintain over time. Matt then spoke about ongoing progress in Data Liberation, noting improvements to the WordPress importer that make it easier for people to bring their content into WordPress without disruption or loss, an important step toward ensuring the open web remains portable and resilient. He also highlighted advances across the Playground ecosystem, including WordPress Studio, the Playground CLI, and an expanding set of Blueprints. These allow developers and learners to spin up complete WordPress environments in seconds, test ideas, and experiment without servers or configuration. Matt closed this portion by emphasizing work on safer updates, which help WordPress avoid partial installs and ensure that updates complete smoothly even in less predictable hosting conditions, reinforcing WordPress’s commitment to stability as the platform continues to grow.

\n\n\n\n

Matt emphasized that WordPress 6.9 is not defined by any single headline feature, but by a broad spectrum of refinements across the entire experience. It is a release that deepens reliability, expands capability, and sets the stage for future innovation.

\n\n\n\n

Insights from the AI Panel

\n\n\n\n

The keynote transitioned into a live AI panel moderated by Mary Hubbard. The panel brought together four perspectives from across the ecosystem: James LePage (Automattic), Felix Arntz (Google), and Jeff Paul (Fueled, FKA 10up), and Matt Mullenweg. Their conversation touched on the philosophy, practice, and future of AI inside WordPress — not as a distant trend, but as an active part of the project’s evolution.

\n\n\n\n

A central theme was AI’s ability to amplify human creativity. James LePage put it plainly:

\n\n\n\n
\n

It’s not that we’re going to just add sparkle buttons everywhere. We’re going to do some crazy stuff here — things we’re going to build into the way you interact with creating content, with expressing yourself digitally. We want to give you more power, more control, and make you more effective at creating.

\n
\n\n\n\n

Jeff Paul echoed this sentiment, emphasizing that AI should make developers more productive by handling repetitive work and freeing them to focus on higher-level decisions. Felix Arntz expanded the idea further, describing how Google sees AI as a way to make the web more accessible and intuitive, especially for new creators who may not have formal technical training.

\n\n\n\n
\"\"
From left to right: Mary Hubbard, Matt Mullenweg, Jeff Paul, Felix Arntz, James LePage
\n\n\n\n

Looking ahead, the panelists predicted deeper contextual integrations, AI-assisted debugging and scaffolding for developers, and workflows where agents can take on sequences of tasks while remaining directed by human decisions. They also highlighted the importance of standards, shared protocols, and privacy-focused design as essential components of WordPress’s long-term approach.

\n\n\n\n
\n

The next 20 years looks like WordPress remaining what it is today, which is the center of the open web.

\n
\n\n\n\n

The panel closed on a forward-looking but steady note. AI is accelerating, but WordPress is designing its foundations with flexibility and values that endure. The tools may change, but the commitment to openness, agency, and creative freedom remains the compass.

\n\n\n\n

Questions That Push Us Forward

\n\n\n\n

Matt introduced the Q&A as one of his favorite parts of State of the Word because it reveals what people are imagining, struggling with, or eager to build.

\n\n\n\n
\"Q&A\"
\n\n\n\n

The first question addressed the growing interconnectedness of today’s web. What happens, a participant asked, when a major provider like Cloudflare goes down? As tools and agents rely more heavily on external services, failures can cascade. Matt acknowledged that outages are increasingly visible, but also argued that each one strengthens the system.

\n\n\n\n
\n

“Every failure, every edge case, everything that you never imagined is just another opportunity to find that new edge case,” he said. Resilience is not avoidance of failure, but the ability to grow stronger after it.

\n
\n\n\n\n

Another question focused on the longevity of web content. With platforms shutting down or links breaking over time, how can creators ensure their work endures? Matt pointed to the Internet Archive as one of the great stabilizers of the open web. He highlighted a new plugin that automatically scans posts and replaces dead links with archived versions, helping preserve the historical fabric of the web even as individual services come and go.

\n\n\n\n

The next question turned to real-time collaboration inside WordPress. A participant asked how co-editing fits into the future of WordPress and how these tools might help creators work more confidently. Matt talked about how collaboration tools can support people who are just starting their creative journeys — whether they are entrepreneurs, students, or first-time site builders. He described real-time editing as part of a broader vision of WordPress “just doing the work for you” in high-pressure or early-stage creative moments.

\n\n\n\n

The final question considered long-term decision-making. Matt noted that predicting what will change is difficult, but identifying what will remain the same is much easier. For WordPress, he said, the invariant is clear: people will always want agency, openness, and the ability to publish on their own terms. These values guide decisions not only in the present, but across decades of future evolution.

\n\n\n\n

TBPN Podcast Appearance

\n\n\n\n
\n\n
\n\n\n\n

After the Q&A, the keynote shifted gears with a live crossover segment featuring TBPN (the Technology Business Programming Network), a tech-focused podcast. The segment introduced a lively, unscripted energy into the room.

\n\n\n\n

The hosts kicked things off by asking Matt what the “word of the year” should be. He chose “freedom”, connecting it directly to the core philosophy of open source. He described open source licenses as a kind of “bill of rights for software,” giving users inalienable rights that no company can revoke. In a world increasingly shaped by software platforms and digital ecosystems, these freedoms form the heart of what keeps the web open and accessible.

\n\n\n\n

Conversation then moved to Beeper, the multi-network messaging client. Asked whether Beeper aims to “tear down walled gardens,” Matt rejected that framing. Instead, he offered a more collaborative metaphor: bringing gardens together. Most people have friends and colleagues scattered across WhatsApp, Instagram, LinkedIn, Messenger, and SMS. Beeper doesn’t replace those apps — it brings messages together into a unified interface..

\n\n\n\n

The conversation eventually returned to publishing. Matt referenced the same principle he noted earlier: the importance of identifying what won’t change. For WordPress, he said, that means doubling down on freedom, agency, and the ability to publish without gatekeepers. Even as AI evolves, even as platforms shift, even as new tools emerge, these are the values that will guide the project forward.

\n\n\n\n

Building the Web We Believe In

\n\n\n\n

As the keynote drew to a close, Matt returned to a message that had threaded through every section of the evening. The future of WordPress is not arriving from outside forces — it is being crafted, questioned, tested, and expanded by the people who show up. Contributors, students, educators, community organizers, designers, developers, business owners, and first-time site builders all play a role in shaping the platform.

\n\n\n\n

He spoke about the opportunities ahead: new tools that expand what creators can build, collaborative features that make teamwork feel natural, and AI systems that enhance creativity rather than diminish it. Across continents, generations, and skill levels, people are discovering WordPress as a path to learning, empowerment, and expression.

\n\n\n\n

The values that brought the project this far remain the ones that will carry it forward: freedom, participation, learning, and community. These aren’t abstract principles. They are lived every day in the decisions contributors make, the ideas they pursue, and the care they bring to the work.

\n\n\n\n

Future Events

\n\n\n\n

If you’re feeling inspired to revisit past moments from the project’s annual address, the State of the Word YouTube playlist offers a look back at years of community milestones and product progress. The excitement continues into 2026, with major WordPress events already on the horizon: WordCamp Asia in Mumbai, India,WordCamp Europe in Kraków, Poland, and WordCamp US in Phoenix. We hope to see you there as the community continues building what comes next.

\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:\"19447\";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:66:\"\n \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:24:\"WordPress 6.9 “Gene”\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:40:\"https://wordpress.org/news/2025/12/gene/\";s: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, 02 Dec 2025 20:12: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:8:\"category\";a:4:{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: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:2;a:5:{s:4:\"data\";s:3:\"6.9\";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: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=19398\";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:495:\"WordPress 6.9, code-named \"Gene,\" brings major upgrades to how teams collaborate and create. The Notes feature introduces block-level commenting to streamline reviewing and polishing content, navigating across the entire dashboard with the Command Palette is now faster for power users, and the new Abilities API provides a standardized way to open the door for AI-powered and automated workflows. Combined with all the performance and accessibility improvements, 6.9 is one to write home about.\";s: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:\"Matt Mullenweg\";s: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:80443:\"\n
\"WordPress
\n\n\n\n

Each WordPress release celebrates an artist who has made an indelible mark on the world of music. WordPress 6.9, code-named “Gene,” honors the American Jazz pianist Gene Harris. 

\n\n\n\n

A piano veteran, self taught at the age of six, Harris infused mainstream jazz with elements of soul, blues, and gospel, creating a warm, signature sound that is both elegant and iconic. Harris’ bluesy jazz lived at the intersection of worlds, weaving a rich landscape of texture and mood, with a thread of soulfulness that ignited listeners.

\n\n\n\n

Welcome to WordPress 6.9

\n\n\n\n

WordPress 6.9 brings major upgrades to how teams collaborate and create. The new Notes feature introduces block-level commenting when writing posts and pages that streamlines reviews, while the expanded Command Palette makes it faster for power users to navigate and operate across the entire dashboard. The new Abilities API provides a standardized, machine-readable permissions system that opens the door for next generation AI-powered and automated workflows. This release also delivers notable performance improvements for faster page loads and adds several practical new blocks alongside a more visual drag and drop to help creators build richer, more dynamic content.

\n\n\n\n

Download WordPress 6.9 “Gene”

\n\n\n\n

Introducing Notes: Seamless, Block-Level Collaboration

\n\n\n\n

Collaborate Smarter : Leave Feedback Right Where You’re Working

\n\n\n\n

With notes attached directly to blocks in the post editor, your team can stay aligned, track changes, and turn feedback into action all in one place. Whether you’re working on copy or refining design in your posts or pages, collaboration happens seamlessly on the canvas itself.

\n\n\n\n
\"View
\n\n\n\n

Command Palette Throughout the Dashboard

\n\n\n\n

Your tools are always at hand.

\n\n\n\n

Access the Command Palette from any part of the dashboard, whether you’re writing your latest post, deep in design in the Site Editor, or browsing your plugins. Everything you need, just a few keystrokes away.

\n\n\n\n
\"Command
\n\n\n\n

Fit text to container

\n\n\n\n

Content that adapts.

\n\n\n\n

There’s a new typography option for text-based blocks that’s been added to the Paragraph and Heading blocks. This new option automatically adjusts font size to fill its container perfectly, making it ideal for banners, callouts, and standout moments in your design.

\n\n\n\n
\""Novem"
\n\n\n\n

The Abilities API

\n\n\n\n

Unlocking the next generation of site interactions.

\n\n\n\n

WordPress 6.9 lays the groundwork for the future of automation with the unified Abilities API. By creating a standardized registry for site functionality, developers can now register, validate, and execute actions consistently across any context—from PHP and REST endpoints to AI agents—paving the way for smarter, more connected WordPress experiences.

\n\n\n\n
\"Abstract
\n\n\n\n

Accessibility Improvements

\n\n\n\n

More than 30 accessibility fixes sharpen the core WordPress experience. These updates improve screen reader announcements, hide unnecessary CSS-generated content from assistive tech, fix cursor placement issues, and make sure typing focus stays put even when users click an autocomplete suggestion.

\n\n\n\n

Performance enhancements

\n\n\n\n

WordPress 6.9 delivers significant frontend performance enhancements, optimizing the site loading experience for visitors. 6.9 boasts an improved LCP (Largest Contentful Paint) through on-demand block styles for classic themes, minifying block theme styles, and increasing the limit for inline styles – removing blockages to page rendering and clearing the rendering path by deprioritizing non-critical scripts. This release comes with many more performance boosts, including optimized database queries, refined caching, improved spawning of WP Cron, and a new template enhancement output buffer that opens the door for more future optimizations.

\n\n\n\n

And much more

\n\n\n\n

For a comprehensive overview of all the new features and enhancements in WordPress 6.9, please visit the feature-showcase website.

\n\n\n\n

Check out What’s New

\n\n\n\n

Learn more about WordPress 6.9

\n\n\n\n

Learn WordPress is a free resource for new and experienced WordPress users. Learn is stocked with how-to videos on using various features in WordPress, interactive workshops for exploring topics in-depth, and lesson plans for diving deep into specific areas of WordPress.

\n\n\n\n

Read the WordPress 6.9 Release Notes for information on installation, enhancements, fixed issues, release contributors, learning resources, and the list of file changes.

\n\n\n\n

Explore the WordPress 6.9 Field Guide. Learn about the changes in this release with detailed developer notes to help you build with WordPress.

\n\n\n\n

The 6.9 release squad

\n\n\n\n

Every release comes to you from a dedicated team of enthusiastic contributors who help keep things on track and moving smoothly. The team that has led 6.9 is a cross-functional group of contributors who are always ready to champion ideas, remove blockers, and resolve issues.

\n\n\n\n\n\n\n\n

Thank you, contributors

\n\n\n\n

The mission of WordPress is to democratize publishing and embody the freedoms that come with open source. A global and diverse community of people collaborating to strengthen the software supports this effort.

\n\n\n\n

WordPress 6.9 reflects the tireless efforts and passion of more than 900+ contributors in countries all over the world. This release also welcomed over 279 first-time contributors!

\n\n\n\n

Their collaboration delivered more than 340 enhancements and fixes, ensuring a stable release for all – a testament to the power and capability of the WordPress open source community.

\n\n\n\n

2046 · Aakash Verma · Aaron Jorbin · Aaron Robertshaw · Aarti Chauhan · Aashish Sharma · aatospaja · Abdur Rahman Emon · Abu Hurayra · Adam Harley (Kawauso) · Adam Silverstein · Adam Zieliński · Aditya Bansode · Aditya Dhade · aditya shah · Aditya Singh · aduth · agulbra · Ahmed · Ahmed Kabir Chaion · ajaxStardust · Ajit Bohra · Akanshu Singh · Akeda Bagus · Aki Hamano · Akira Tachibana · Akramul Hasan · Akshat Kakkad · Akshay Dhere · Akshaya Rane · Albert Juhé Lluveras · alejandrogonzalvo · Alex Cuadra · Alex Lende · Alex Lion (阿力獅) · Alex Stine · Alexandre Buffet · Alexei Samarschi · Alexis Pandaan · alordiel · Alvaro Gómez · Amber Hinds · Amin · Aminul Islam · Aminul Islam Alvi · Amit Bhosale · Amy Kamala · Anatol Broder · Anders Norén · Andrea Fercia · Andrea Roenning · Andrei Draganescu · Andrew Hoyer · Andrew Nacin · Andrew Ozz · Andrew Serong · André Maneiro · Andy Fragen · Anita C · Ankit K Gupta · Ankit Kumar Shah · Ankit Panchal · Anne McCarthy · Anne-Mieke Bovelett · Anton Vlasenko · Antonio Sejas · Anuj Singh · Anveshika Srivastava · apmeyer · Ari Stathopoulos · Arkadiusz Rzadkowolski · Armando · Artemio Morales · Arthur Chu · Artur Piszek · ArtZ91 · asafm7 · asdofindia · Ashish Kumar (Ashfame) · Ashraful Haque Akash · askapache · Aslam Doctor · Aurooba Ahmed · aut0poietic · Axel DUCORON · Ayesh Karunaratne · Azhar Deraiya · Béryl de La Grandière · bartnv · bchecketts · Beee · Ben Dwyer · Benazeer · Benjamin Denis · Benjamin Zekavica · Benny · Benoit Chantre · Bernhard Kau · Bernhard Reiter · Bernie Reiter · bgermann · bhattaganesh · Bhavesh Desai · BiDbMAK · Bigul Malayi · Birgir Erlendsson (birgire) · Birgit Pauli-Haack · Bishal Shrestha · bobbyleenoblestudios · BogdanUngureanu · bonger · Boro Sitnikovski · Brad Griffin · brad hogan · Brad Jorsch · bradshawtm · Brandon Hubbard · Brandon Kraft · Brandon Zhang · Brennan Goewert · brhodes · Brian Alexander · Brian Coords · Brian Gardner · Brian Haas · brumack · Bryan Schneidewind · bshuchter · burnuser · byteninjaa0 · Cédric Chevillard · Callum Bridgford-Whittick · Calvin Alkan · Carlo Cannas · Carlos Bravo · Carlos G. P. · CarlSteffen · Carolina Nymark · Carolina Romo · Catalin Ciobanu · catgofire · cbirdsong · ccharel · Chad Butler · Chad Chadbourne · Chakrapani Gautam · Chi-Hsuan Huang · Chillifish · ChloeD · Chouby · Chris Zarate · chriscct7 · chrisdotdotdot · chrismattix · christinecooper · Christoph Daum · Christy Nyiri · cikrimcin · Ciprian Popescu · cjhaas · ckoerner · claimableperch · Code Amp · codebuddy · coleatkinson1 · Colin Stewart · ColinD · Cooper Dalrymple · Coralie Tixeront · Corey Salzano · Corey Worrell · Cornwell · Cory Hughart · Courtney Robertson · cucocreative · Cullen Whitmore · Cyrille37 · Daan van den Bergh · Dakota Chichester · damchtlv · Damir · Damon Cook · Dan Cameron · Dan Waldschmidt · Daniel Bachhuber · Daniel Iser · Daniel Richards · Daniele Scasciafratte · daniellacatus · danielmorell · Danny Schmarsel · dannyreaktiv · Darren Ethier (nerrad) · Darshit Rajyaguru · Dave Ryan · daveguitaruno · David Aguilera · David Arenas · David Artiss · David Baumwald · David Calhoun · David Herrera · David Levine · David Perez · David Riviera · David Smith · DavidB · dawidadach · Dean Sas · Debabrata Karfa · DEBARGHYA BANERJEE · Denis de Bernardy · Denis Žoljom · Dennis Ploetner · Dennis Snell · Dennys Dionigi · Densi Nakum · derekherman · Devasheesh Kaul · Dhananjay Kuber · Dhrumil Kumbhani · Dhruval Shah · Dhruvang21 · Dhruvik Malaviya · diebombe · Dilip Bheda · Dilip Modhavadiya · Dion Hulse · divinenephron · dj.cowan · Dominik Schilling · dominiquepijnenburg · donalirl · doughamlin · DougMelvin · drawcard · dretzlaff · Drew Jaynes · Drivingralle · dsawyers · dustintechsmith · eclev91 · eduwass · Ehti · elialum · Eliezer Peña · Ella van Durpe · Elvis Morales · emaildano · Emerson Maningo · Emilie LEBRUN · Emran Ahmed · Enaan Farhan · Enrico Battocchi · Enrique Sánchez · epeicher · Eric · Eric Andrew Lewis · Erick Hitter · Erik · Erik Joling · Eshaan Dabasiya · ethanscorey · Evan Mullins · Even Tobiesen · Fabian Kägy · Fabian Todt · Faisal Ahammad · Faisal Alvi · fakhriaz (Fakhri Azzouz) · Falguni Desai · Felix Arntz · Felix Renicks · Fellyph Cintra · Florian TIAR · Francisco Torres · Francisco Vera · FrogDesk Strategy · Fumiki Takahashi · Gael Denysiak · Gajendra Singh · Gan Eng Chin · Garrett Hyder · Gary Jones · Gary Pendergast · Gaurang Dabhi · Gautam Mehta · Gennady Kovshenin · George Mamadashvili · George Stephanis · Georgi Stoyanov · gernberg · giuliorubelli · Glen Davies · Gopal Krishnan · Grant M. Kinney · Greg Ziółkowski · Guido · Guido Scialfa · Guillaume TURPIN · Gulamdastgir Momin · H. Adam Lenz · H. Kabir · hanimbarek · hanneslsm · Hans-Gerd Gerhards · Hardik Raval · Hareesh S · Harsh Gajipara · Harshal Kadu · harshbhonsle08 · harshdeepgill · Harun · Helen Hou-Sandi · HelgaTheViking · Hidenori ISHIKAWA · Hilay Trivedi · Himani Panchal · Himanshu Pathak · Hiroshi Sato · Hit Bhalodia · Hitendra Chopda · Hitesh Talpada · Hozefa Saleh · Hrohh · hugod · hugosolar · humanify · huubl · Huzaifa Al Mesbah · Héctor Prieto · Ian Dunn · ignatiusjeroe · Igor Radovanov · ikriv · imokweb · Imran · Indira Biswas · Ipstenu (Mika Epstein) · Iqbal Hossain · Isabel Brison · Ishika Bansal · Ivan Ottinger · Jabe · Jacob Cassidy · Jagir Bahesh · Jaimin Prajapati · Jakaria Istauk · Jake Spurlock · jakeparis · James Koster · James LePage · James Monroe · James Sansbury · James Titus · Jamie · Jamie Burchell · Jamie Marsland · janthiel · Jarda Snajdr · jarekmorawski · Jarkko Saltiola · Jason Adams · Jason LeMahieu (MadtownLems) · Jason Sauerwald · Javier Casares · Jay McPartland · Jayaram · Jaydip · Jean-Baptiste Audras · Jeff Chi · Jeff Matson · Jeff Ong · Jeff Paul · Jeffrey de Wit · Jeffro · jeflopo · Jenny Dupuy · Jeremiah Bratton · Jeremy Felt · Jeremy Massel · Jeroen Schmit · jeryj · Jesin A · jessedyck · Jessica Lyschik · Jigar Bhanushali · Jigar Panchal · jikamens · jnweaver · Joan Namunina · JoAnne Obata · JochenT · jodamo5 · Joe Dolson · Joe Hoyle · Joe McGill · Joen Asmussen · Johannes Jülg · John Blackbourn · John Brand · John Godley · John James Jacoby · John Parris · John Regan · JohnVieth · Jon Surrell · Jonathan Bossenger · Jonathan Champ · Jonathan Desrosiers · Joni Erkkilä · Jonny Harris · Jono Alderson · jordesign · Jorge Costa · Jos Velasco · Joseph Scott · Josh Habdas · Joshua Goode · jrmd · Juan Aldasoro · Juan Cook · JuanMa Garrido · juliengardair · Juliette Reinders Folmer · Justin Ahinon · Justin Tadlock · Jyotirmoy Roy · K. Adam White · Kai Hao · Kailey (trepmal) · Kaito Hanamori · Kakoma · Kalpesh · Karin Christen · Karol Manijak · Karthick Murugan · Karthikeya Bethu · Kaspars · Kat Hagan · Kateryna K. a11n · Kathryn Presner · Katrina Massey · Kausar Alam · Kaushik Domadiya · Kawshar Ahmed · kaygee79 · Kazuto Takeshita · Kelly Choyce-Dwan · Kelly Hoffman · Kelly Mears · Ken Gagne · Kerfred · Kerry Liu · kesselb · Kevin Leary · Khoi Pro · Khushi Patel · killerbishop · Kingsley Felix · Kira Schroder · Kishan Jasani · kitchin · Kjell Reigstad · kkmuffme · Kleor · Knut Sparhell · Konstantin Obenland · Konstantinos Xenos · kpapazov · kprocyszyn · krishaamer · Krunal Bhimajiyani · Krupa Nanda · kshaner · kub1x · kubiq · kunalpuri123 · Kush Sharma · Kushagra Goyal · Lachezar Gadzhev · lakrisgubben · Lakshyajeet Singh Goyal · Lalit Kumawat · Lance Willett · Laura Byrne · Lauri Saarni · ldanielgiuliani · Lee Willis · leedxw · leemon · Lena Morita · Leonidas Milosis · Levin Baria · lgseo · LilGames · liviopv · logiclink · LogicRays Technologies · lordandy1984 · Lovro Hrust · Lucas Martins · Luigi Teschio · luisherranz · LukasFritzeDev · Lukasz · Luke Cavanagh · maccyd · Madhavi Shah · Madhu Dollu · Maggie Cabrera · Maikuolan · manfcarlo · manhatthien98 · Manuel Camargo · Manzoor Wani · maorb · Marc · Marc Armengou · Marcio Duarte · Marco Ciampini · Marcus · Marcus Kazmierczak · marian1 · Marie · Marin Atanasov · Mario Santos · mariohamann · mariushosting · Marty · MartyThornley · Mary Baum · Mary Hubbard · Mat Lipe · mathiscode · Matias Benedetto · Matias Ventura · Matt Mullenweg · Matt Robinson · Matt West · Matteo Enna · Matthias Pfefferle · mattryanwalker · Max Schmeling · Maxime Pertici · Mayank Tripathi · Mayur Prajapati · Md Abdullah Al Arif · Md Abdullah Al Fahad · Md Abul Bashar · MD ISMAIL · MD Kawsar Chowdhury · Md Masum Molla Alhaz · Md Obidullah (obiPlabon) · Md Rashed Hossain · Md Sabbir Hossain · Md. Najmul Islam · Md.Mehedi Hasan · mdmoreau · mdviralsampat · Meet Makadia · megane9988 · Meher Bala · Mel Choyce-Dwan · Micha Krapp · Michael Burridge · Michael Keck · Michael Nelson · Michael Sumner · michaelreetz · Michal Czaplinski · Michelle Schulp Hunt · Miguel Fonseca · Miguel Lezama · Mikael Korpela · Mike · Mike Fitzpatrick · Mike Hansen · Mike Jolley · Mike McAlister · Mike Ritter · Mikin Chauhan · Milan Ricoul · Minal Diwan · Miroku · missveronica · Mitchell Austin · mkeck · mlaetitia1986 · mleray · mleraygp · Mobarak Ali · Mohammad Rockeybul Alam · Mohammed Kateregga · Moses Cursor Ssebunya · mrwweb · mtg169 · mujuonly · Mukesh Panchal · Mukul Singh · Mumtahina Faguni · Núria Nadal i Rovira · Naman Vyas · NANI SAMIREDDY · Narendra Sishodiya · Naresh Bheda · Nasim Miah · Nate Finch · Naveen Dwivedi · Navneet Kaur · Nazar Hotsa · Nazmul Hosen · Ned Zimmerman · nexbridge · Nextendweb · Neycho Kalaydzhiev · Nick · Nick · Nick Diego · Nick Halsey · nickbrazilian · nickjbedford · nickpagz · nickwilmot · Nico · nidhidhandhukiya · Niels Lange · nigelnelles · Nik Tsekouras · Nikan Radan · Nikunj Hatkar · Nimesh · Nino Mihovilic · Ninos · Noah Allen · Noel Santos · Noruzzaman · nosilver4u · oceantober · oferlaor · okat · Okawa Yasuno · Olga Gleckler · Oliver Campion · Omar Alshaker · Ophelia Rose · Optimizing Matters · owi · Paal Joachim Romdahl · Pablo Honey · Palak Patel · Paragon Initiative Enterprises · Parin Panjari · Parth vataliya · Partho Hore · Pascal Birchler · Patel Jaymin · Patricia BT · Patrick Lumumba · Patrick Piwowarczyk · Paul · Paul Bearne · Paul Biron · Paul Bonneau · Paul Kevan · Paulo Trentin · paulstanos · pcarvalho · Pedro Figueroa · Per Egil Roksvaag · Peter Ingersoll · Peter Westwood · Peter Wilson · petitphp · Philip John · Philip Sola · Philipp Bammes · Phill · piskvorky · Pooja Bhimani · poojapadamad · porg · Prabhat Mishra · Praful Patel · Pranjal Pratap Singh · Prasad Karmalkar · prasadgupte · Prashant Baldha · Pratik Londhe · Presskopp · prettyboymp · puggan · quentinr64600 · Rachel Baker · Rafiqul Islam · Raluca · Ramanan · Rami Yushuvaev · Ramon Ahnert · Ramon Corrales · Ramon James · Ravi Chudasama · Ravi Gadhiya · rcrdortiz · Rehan Ali · Rejaul Alom Khan · Remy Perona · Renato Alves · renishsurani · retrofox · Rezwan Shiblu · Riad Benguella · riadev · Rich Tabor · Richard Korthuis · Riddhi Dave · Rinat · Rinkal Pagdar · Rishabh Gupta · Rishav Dutta · Rishit Gupta · Risto Jovanovic · Ritoban · Robert Anderson · Robert Chapin · Robert Ghetau · Robert O\'Rourke · Robmcclel · Rodrigo Primo · roelof · Rolly Bueno · Ronak prajapati · Room 34 Creative Services, LLC · Rostislav Wolný · Rotem Gelbart · Rufaro Madamombe · Rutvik Bhambhi · Ryan McCue · Ryan Welcher · S Page · Sören Wünsch · Sabbir Ahmed · Sabbir Sam · SACHINRAJ CP · Sahil Jadhav · Sainath Poojary · Sajjad Hossain Sagor · sakibmoon · Sam · sam_a · Samir Malpande · Sampat Viral · Samuel Paget · Samuel Wood (Otto) · Sandeep Dahiya · Sandip Sinh · Sandy McFadden · Sarah Norris · sarah semark · Sarthak Nagoshe · Satish Prajapati · saurabh.dhariwal · Saxon Fletcher · scholdstrom · Scott Buscemi · Scott Kingsley Clark · Scott Reilly · Scott Taylor · scribu · Sebastian Pisula · Seif Radwane · Sergey Biryukov · Seth Rubenstein · SH Sajal Chowdhury · Shadi G شادي جـ · Shail Mehta · Shalin Shah · Shane Muirhead · Shashank Jain · Shashank Shekhar · Shazzad Hossain Khan · Sheri Grey · Shipon Karmakar · Shreya Shrivastava · Shubham Patil · Shyamsundar Gadde · sidharthpandita · siliconforks · Silpa TA · simonefontana · Slava Abakumov · smerriman · Sneha Patil · Sophie Dimitrov · Sourabh Jain · Sourav Pahwa · Soyeb Salar · Spenser Hale · spstrap · Sridhar Katakam · stankea · Stanko Metodiev · staurand · Stefan Pasch · Stefan Velthuys · Stephen Bernhardt · Stephen Harris · Steve Dufresne · strarsis · Subrata Sarkar · Sudip Dadhaniya · Sujan Sarkar · Sukhendu Sekhar Guria · Sumit Bagthariya · SunilPrajapati · sunnykasera · sunyatasattva (a11n) · supernovia · SuzuKube · svedish · Svetoslav Marinov · Sybre Waaijer · syhussaini · T4ng · Taco Verdonschot · Takashi Irie · Takuro · Tammie Lister · tatof · tecnogaming · Tetsuro Higuchi · tharsheblows · thelmachido a11n · ThemeAWESOME · theMikeD · Thomas Kräftner · Thorsten Frommen · Till Krüss · Tim Havinga · Tim Sheehan · Timo Tijhof · Timothée Brosille · Timothée Moulin · Timothy Jacobs · TJarrett · Tobias Bäthge · Tobias Zimpel · tobifjellner (Tor-Bjorn “Tobi” Fjellner) · Tom de Visser · Tom J Nowell · Tomoki Shimomura · Toni Viemerö · Tonya Mork · Toro_Unit (Hiroshi Urabe) · Torsten Landsiedel · Travis Smith · traxus · Trevor Mills · tristanleboss · Troy Chaplin · Trupti Kanzariya · tsteel · Tung Du · Tushar Bharti · Tushar Patel · Tussendoor B.V. · Ugyen Dorji · Umesh Nevase · Umesh Singh · Unsal Korkmaz · upadalavipul · Utsav Ladani · Utsav tilava · Valentin Grenier · Vape tsimshatsui · vbbp · Vedansh Mishra · Vegard S. · vgnavada · Vicente Canales · vidugupta · Vijendra Jat · Viktor Szépe · Vinit · Vipul Ghori · Vipul Gupta · Vipul Patil · Vishit Shah · vladimiraus · vortfu · Vrishabh Jasani · Walter Ebert · WebMan Design | Oliver Juhas · websupporter · webwrotter · Weston Ruter · whaze · widhy980 · Will Skora · wplmillet · xate · xavilc · xerpa43 · xipasduarte · Yagnik Sangani · Yash · Yash B · Yash Jawale · Yogesh Bhutkar · YogieAnamCara · Yui · Zebulan Stanphill · Zeel Thakkar · Zunaid Amin · Łukasz Strączyński · 耗子

\n\n\n\n

More than 71 locales have fully translated WordPress 6.9 into their language. Community translators are working hard to ensure more translations are on their way. Thank you to everyone who helps make WordPress available in 200+ languages.

\n\n\n\n

Last but not least, thanks to the volunteers who contribute to the support forums by answering questions from WordPress users worldwide.

\n\n\n\n

Get involved

\n\n\n\n

Participation in WordPress goes far beyond coding. And learning more and getting involved is easy.  Discover the teams that come together to Make WordPress and use this interactive tool to help you decide which is right for you.

\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:\"19398\";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:75:\"\n \n \n \n \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:33:\"WordPress 6.9 Release Candidate 3\";s: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://wordpress.org/news/2025/11/wordpress-6-9-release-candidate-3/\";s: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, 25 Nov 2025 15:33:10 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:7:{i:0;a:5:{s:4:\"data\";s:11:\"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:\"\";}i:1;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: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:\"\";}i:3;a:5:{s:4:\"data\";s:3:\"6.9\";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:5:{s:4:\"data\";s:11:\"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:\"\";}i:5;a:5:{s:4:\"data\";s:18:\"release candidates\";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: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=19373\";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:366:\"The third Release Candidate (“RC3”) for WordPress 6.9 is ready for download and testing! This version of the WordPress software is under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, it’s recommended that you evaluate RC3 on a test server and site. Reaching this phase […]\";s: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:\"Amy Kamala\";s: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:8652:\"\n

The third Release Candidate (“RC3”) for WordPress 6.9 is ready for download and testing!

\n\n\n\n

This version of the WordPress software is under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, it’s recommended that you evaluate RC3 on a test server and site.

\n\n\n\n

Reaching this phase of the release cycle is an important milestone. While release candidates are considered ready for release, testing remains crucial to ensure that everything in WordPress 6.9 is the highest quality possible.

\n\n\n\n

You can test WordPress 6.9 RC3 in four ways:

\n\n\n\n
PluginInstall and activate the WordPress Beta Tester plugin on a WordPress install. (Select the “Bleeding edge” channel and “Beta/RC Only” stream.)
Direct DownloadDownload the RC3 version (zip). and install it on a WordPress website.
Command LineUse this WP-CLI command:
wp core update --version=6.9-RC3
WordPress PlaygroundUse the 6.9 WordPress Playground instance to test the software directly in your browser.  No setup is required – just click and go! 
\n\n\n\n

The scheduled final release date for WordPress 6.9 is December 2, 2025. The full release schedule can be found here. Your help testing RC versions is vital to making this release as stable and powerful as possible.

\n\n\n\n

Please continue checking the Make WordPress Core blog for 6.9-related posts in the coming weeks for more information.

\n\n\n\n

What’s in WordPress 6.9 RC3?

\n\n\n\n

Want to look deeper into the details and technical notes for this release? Take a look at the WordPress 6.9 Field Guide. For technical information related to issues addressed since RC2, you can browse the following links:

\n\n\n\n\n\n\n\n

How you can contribute

\n\n\n\n

WordPress is open source software made possible by a passionate community of people collaborating on and contributing to its development. The resources below outline various ways you can get involved with the world’s most popular open source web platform, regardless of your technical expertise.

\n\n\n\n

Get involved in testing

\n\n\n\n

Testing for issues is crucial to the development of any software. It’s also a meaningful way for anyone to contribute. 

\n\n\n\n

Your help testing the WordPress 6.9 RC3 prerelease is key to ensuring that the final release is the best it can be. While testing the upgrade process is essential, trying out new features is equally important. This detailed guide will walk you through testing features in WordPress 6.9. For those new to testing, follow this general testing guide for more details on getting set up.

\n\n\n\n

If you encounter an issue, please report it to the Alpha/Beta/RC area of the support forums or directly to WordPress Trac if you are comfortable writing a reproducible bug report. You can also check your issue against a list of known bugs.

\n\n\n\n

Curious about testing releases in general?  Follow along with the testing initiatives in Make Core and join the #core-test channel on Making WordPress Slack..

\n\n\n\n

Update your theme or plugin

\n\n\n\n

For plugin and theme authors, your products play an integral role in extending the functionality and value of WordPress for all users.

\n\n\n\n

Thanks for continuing to test your themes and plugins with the WordPress 6.9 prereleases. If you haven’t yet, please conclude your testing and update the “Tested up to” version in your theme and plugin readme files to 6.9.

\n\n\n\n

If you find compatibility issues, please post detailed information in the support forum.

\n\n\n\n

Test on your hosting platforms

\n\n\n\n

Web hosts provide vital infrastructure for supporting WordPress and its users. Testing on hosting systems helps inform the development process while ensuring that WordPress and hosting platforms are fully compatible, free of errors, optimized for the best possible user experience, and that updates roll out to customer sites without issue.

\n\n\n\n

Want to test WordPress on your hosting system? Get started with configuring distributed hosting tests here

\n\n\n\n

Help translate WordPress

\n\n\n\n

Do you speak a language other than English? ¿Español? Français? Русский? 日本語? हिन्दी? বাংলা? मराठी? ಕನ್ನಡ? You can help translate WordPress into more than 100 languages.

\n\n\n\n

An RC3 haiku

\n\n\n\n

Some folks make money,

\n\n\n\n

some folks make time to travel,

\n\n\n\n

and we Make WordPress.

\n\n\n\n

Props to @akshayar, @davidbaumwald, @westonruter, @ellatrix, @mobarak and @tacoverdo for proofreading and review.

\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:\"19373\";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:69:\"\n \n \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:33:\"WordPress 6.9 Release Candidate 2\";s: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://wordpress.org/news/2025/11/wordpress-6-9-release-candidate-2/\";s: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, 18 Nov 2025 15:26: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:8:\"category\";a:5:{i:0;a:5:{s:4:\"data\";s:11:\"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:\"\";}i:1;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: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:\"\";}i:3;a:5:{s:4:\"data\";s:3:\"6.9\";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:5:{s:4:\"data\";s:7:\"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=19350\";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:367:\"The second Release Candidate (“RC2”) for WordPress 6.9 is ready for download and testing! This version of the WordPress software is under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, it’s recommended that you evaluate RC2 on a test server and site. Reaching this phase […]\";s: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:\"Akshaya Rane\";s: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:11181:\"\n

The second Release Candidate (“RC2”) for WordPress 6.9 is ready for download and testing!

\n\n\n\n

This version of the WordPress software is under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, it’s recommended that you evaluate RC2 on a test server and site.

\n\n\n\n

Reaching this phase of the release cycle is an important milestone. While release candidates are considered ready for release, testing remains crucial to ensure that everything in WordPress 6.9 is the best it can be.

\n\n\n\n

You can test WordPress 6.9 RC2 in four ways:

\n\n\n\n
PluginInstall and activate the WordPress Beta Tester plugin on a WordPress install. (Select the “Bleeding edge” channel and “Beta/RC Only” stream).
Direct DownloadDownload the RC2 version (zip) and install it on a WordPress website.
Command LineUse the following WP-CLI command:
wp core update --version=6.9-RC2
WordPress PlaygroundUse the 6.9 RC2 WordPress Playground instance to test the software directly in your browser without the need for a separate site or setup.
\n\n\n\n

The scheduled final release date for WordPress 6.9 is December 2, 2025. The full release schedule can be found here. Your help testing RC versions is vital to making this release as stable and powerful as possible.

\n\n\n\n

Please continue checking the Make WordPress Core blog for 6.9-related posts in the coming weeks for more information.

\n\n\n\n

What’s in WordPress 6.9 RC2?

\n\n\n\n

Get a recap of WordPress 6.9’s highlighted features in the Beta 1 announcement. For more technical information related to issues addressed since RC1, you can browse the following links:

\n\n\n\n\n\n\n\n

Want to look deeper into the details and technical notes for this release? These recent posts cover some of the latest updates:

\n\n\n\n\n\n\n\n

How you can contribute

\n\n\n\n

WordPress is open source software made possible by a passionate community of people collaborating on and contributing to its development. The resources below outline various ways you can help the world’s most popular open source web platform, regardless of your technical expertise.

\n\n\n\n

Get involved in testing

\n\n\n\n

Testing for issues is crucial to the development of any software. It’s also a meaningful way for anyone to contribute. 

\n\n\n\n

Your help testing the WordPress 6.9 RC2 version is key to ensuring that the final release is the best it can be. While testing the upgrade process is essential, trying out new features is equally important. This detailed guide will walk you through testing features in WordPress 6.9. For those new to testing, follow this general testing guide for more details on getting set up.

\n\n\n\n

If you encounter an issue, please report it to the Alpha/Beta area of the support forums or directly to WordPress Trac if you are comfortable writing a reproducible bug report.  You can also check your issue against a list of known bugs

\n\n\n\n

Curious about testing releases in general?  Follow along with the testing initiatives in Make Core and join the#core-test channel on Making WordPress Slack.

\n\n\n\n

Update your theme or plugin

\n\n\n\n

For plugin and theme authors, your products play an integral role in extending the functionality and value of WordPress for all users.

\n\n\n\n

Thanks for continuing to test your themes and plugins with the WordPress 6.9 beta releases. If you haven’t yet, make sure to conclude your testing and update the “Tested up to” version in your plugin’s readme file to 6.9.

\n\n\n\n

If you find compatibility issues, please post detailed information to the support forum.

\n\n\n\n

Test on your hosting platforms

\n\n\n\n

Web hosts provide vital infrastructure for supporting WordPress and its users. Testing on hosting systems helps inform the development process while ensuring that WordPress and hosting platforms are fully compatible, free of errors, optimized for the best possible user experience, and that updates roll out to customer sites without issue.

\n\n\n\n

Want to test WordPress on your hosting system? Get started with configuring distributed hosting tests here.

\n\n\n\n

Help translate WordPress

\n\n\n\n

Do you speak a language other than English? ¿Español? Français? Русский? 日本語? हिन्दी? বাংলা? मराठी? ಕನ್ನಡ?  You can help translate WordPress into more than 100 languages. This release milestone (RC2) also marks the hard string freeze point of the 6.9 release cycle.

\n\n\n\n

An RC2 haiku

\n\n\n\n

A calm hillside sighs,
Work of many now complete —
RC2 stays true.

\n\n\n\n

Props to @amykamala, @annezazu, @davidbaumwald, @westonruter and @joedolson for proofreading and review.

\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:\"19350\";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:75:\"\n \n \n \n \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:33:\"WordPress 6.9 Release Candidate 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:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:69:\"https://wordpress.org/news/2025/11/wordpress-6-9-release-candidate-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:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 11 Nov 2025 15:34:48 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:7:{i:0;a:5:{s:4:\"data\";s:11:\"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:\"\";}i:1;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: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:\"\";}i:3;a:5:{s:4:\"data\";s:3:\"6.9\";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:5:{s:4:\"data\";s:11:\"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:\"\";}i:5;a:5:{s:4:\"data\";s:18:\"release candidates\";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: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=19317\";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 first Release Candidate (“RC1”) for WordPress 6.9 is ready for download and testing! This version of the WordPress software is still under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, it’s recommended to evaluate RC1 on a test server and site. WordPress 6.9 RC1 […]\";s: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:\"Amy Kamala\";s: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:10146:\"\n

The first Release Candidate (“RC1”) for WordPress 6.9 is ready for download and testing!

\n\n\n\n

This version of the WordPress software is still under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, it’s recommended to evaluate RC1 on a test server and site.

\n\n\n\n

WordPress 6.9 RC1 can be tested using any of the following methods:

\n\n\n\n
PluginInstall and activate the WordPress Beta Tester plugin on a WordPress install. (Select the “Bleeding edge” channel and “Beta/RC Only” stream.)
Direct DownloadDownload the RC1 version (zip) and install it on a WordPress website.
Command LineUse this WP-CLI command:
wp core update --version=6.9-RC1
WordPress PlaygroundUse the 6.9 RC1 WordPress Playground instance to test the software directly in your browser. No setup is required – just click and go! 
\n\n\n\n

The scheduled final release date for WordPress 6.9 is December 2, 2025. The full release schedule can be found here. Your help testing Beta and RC versions is vital to making this release as stable and powerful as possible.

\n\n\n\n

Please continue checking the Make WordPress Core blog for 6.9-related posts in the coming weeks for more information.

\n\n\n\n

What’s in WordPress 6.9 RC1?

\n\n\n\n

Check out the Beta 1 announcement for details on WordPress 6.9.

\n\n\n\n

You can browse the technical details for all issues addressed since Beta 4 using these links:

\n\n\n\n\n\n\n\n

Want to know more about this release? Here are some highlights:

\n\n\n\n
    \n
  • Site Editor improvements and Refined content creation\n
      \n
    • Ability to hide blocks
    • \n\n\n\n
    • New blocks
    • \n\n\n\n
    • Notes on blocks
    • \n\n\n\n
    • Universal command palette in wp-admin
    • \n
    \n
  • \n\n\n\n
  • Developer updates\n
      \n
    • Updates to dataviews and dataforms components
    • \n\n\n\n
    • New abilities API
    • \n\n\n\n
    • Updates to interactivity API
    • \n\n\n\n
    • Updates to block binding API
    • \n
    \n
  • \n\n\n\n
  • Performance Improvements\n
      \n
    • Improved script and style handling
    • \n\n\n\n
    • Optimized queries and caching
    • \n\n\n\n
    • Added ability to handle “fetchpriority” in ES Modules and Import Maps
    • \n\n\n\n
    • Standardizing output buffering
    • \n
    \n
  • \n
\n\n\n\n

The final release is on track for December 2nd. As always, a successful release depends on your confirmation during testing. So please download and test!

\n\n\n\n

How you can contribute

\n\n\n\n

WordPress is open source software made possible by a passionate community of people collaborating on and contributing to its development. The resources below outline various ways you can help the world’s most popular open source web platform, regardless of your technical expertise.

\n\n\n\n

Get involved in testing

\n\n\n\n

Testing for issues is crucial to the development of any software. It’s also a meaningful way for anyone to contribute. 

\n\n\n\n

Your help testing the WordPress 6.9 RC1 version is key to ensuring that the final release is the best it can be. While testing the upgrade process is essential, trying out new features is equally important. This detailed guide will walk you through testing features in WordPress 6.9.

\n\n\n\n

Calls for testing

\n\n\n\n

Thank you to everyone who helps test the following enhancements and bug fixes:

\n\n\n\n\n\n\n\n

If you encounter an issue, please report it to the Alpha/Beta area of the support forums, or directly to WordPress Trac if you are comfortable writing a reproducible bug report. You can also check your issue against a list of known bugs.

\n\n\n\n

Thank you to everyone who helps with testing!

\n\n\n\n

Update your theme or plugin

\n\n\n\n

For plugin and theme authors, your products play an integral role in extending the functionality and value of WordPress for all users.

\n\n\n\n

Thanks for continuing to test your themes and plugins with the WordPress 6.9 beta releases. With RC1, you’ll want to conclude your testing and update the “Tested up to” version in your plugin’s readme file to 6.9.

\n\n\n\n

If you find compatibility issues, please post detailed information to the support forum.

\n\n\n\n

Test on your hosting platforms

\n\n\n\n

Web hosts provide vital infrastructure for supporting WordPress and its users. Testing on hosting systems helps inform the development process while ensuring that WordPress and hosting platforms are fully compatible, free of errors, optimized for the best possible user experience, and that updates roll out to customer sites without issue.

\n\n\n\n

Want to test WordPress on your hosting system? Get started with configuring distributed hosting tests here. Thank you to all web hosts who help test WordPress!

\n\n\n\n

Curious about testing releases in general? Follow along with the testing initiatives in Make Core and join the #core-test channel on Making WordPress Slack.

\n\n\n\n

An RC1 haiku

\n\n\n\n

As the sun rises,

\n\n\n\n

RC1 breaks its cocoon

\n\n\n\n

and emerges strong.

\n\n\n\n

Props to @akshayar, @davidbaumwald, @jeffpaul, @desrosj, @westonruter, @ellatrix, @priethor, @krupajnanda and @cbravobernal for proofreading and review.

\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:\"19317\";s: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\";a:12:{s:6:\"server\";s:5:\"nginx\";s:4:\"date\";s:29:\"Mon, 02 Feb 2026 13:05:20 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:\"Fri, 30 Jan 2026 21:13:37 GMT\";s:4:\"link\";s:63:\"; rel=\"https://api.w.org/\"\";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:1760643936;s:21:\"cache_expiration_time\";i:1770080720;s:23:\"__cache_expiration_time\";i:1770080720;}','off'),(142,'_site_transient_timeout_feed_mod_9bbd59226dc36b9b26cd43f15694c5c3','1770080720','off'),(143,'_site_transient_feed_mod_9bbd59226dc36b9b26cd43f15694c5c3','1770037520','off'),(144,'_site_transient_timeout_feed_d117b5738fbd35bd8c0391cda1f2b5d9','1770080721','off'),(145,'_site_transient_feed_d117b5738fbd35bd8c0391cda1f2b5d9','a:6:{s:5:\"child\";a:1:{s:0:\"\";a:1:{s:3:\"rss\";a:1:{i:0;a:6:{s:4:\"data\";s:3:\"\n\n\n\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:7:\"version\";s:3:\"2.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:1:{s:7:\"channel\";a:1:{i:0;a:6:{s:4:\"data\";s:112:\"\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\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\";s: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:16:\"WordPress Planet\";s: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:28:\"http://planet.wordpress.org/\";s: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:\"language\";a:1:{i:0;a:5:{s:4:\"data\";s:2:\"en\";s: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:47:\"WordPress Planet - http://planet.wordpress.org/\";s: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:\"item\";a:50:{i:0;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:127:\"Gutenberg Times: Navigation Overlays, WordPress 7.0, Interactivity API Helper, AI Skills, and #WCAsia — Weekend Edition #355\";s: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=44172\";s: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://gutenbergtimes.com/navigation-overlays-wordpress-7-0-interactivity-api-helper-ai-skills-and-wcasia-weekend-edition-355/\";s: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:25910:\"

Hi, there \"👋\"

\n\n\n\n

this week, you’ll find a great mix of new releases, new tools, new plugins and events.

\n\n\n\n

Outside the WordPress sphere I signed up for the FediForum Un-Workshop, an event bringing together people who will discuss obstacles and ideas on growing the Open Social Web. It’ll be a three-hour virtual event on March 2, 2026. It’s NOT on the same day as Human Made’s WP:26 event, which takes place 10 days later.

\n\n\n\n

I hope you enjoy this week’s edition and I wish you a great weekend!

\n\n\n\n

Yours, \"💕\"
Birgit

\n\n\n\n\n\n

Human Made announced WP:26, a virtual event on March 12th exploring where WordPress is heading this year. You’ll hear from Mary Hubbard (WordPress executive director), speakers from Pantheon, Yoast, News UK, and PMC on topics like hybrid CMS architectures, agentic AI systems, and the CMS as orchestration layer. Following last year’s WP:25 with 700+ attendees, this one targets digital leaders, architects, and teams betting on WordPress long-term—registration is open now. It’s free and will be recorded, I reckon.

\n\n\n\n
\n\n\n\n

WordCamp Asia communication team is publishing great content to get ready for the event: Tickets are still available, Sponsorships as well and you can learn more about Mumbai, Indian culture and food. The WordCamp will take place between April 9 and 11, 2026. The first rounds of speakers are announced, too. Will I see you there? It would be wonderful to meet you! You are welcome to use my public calendar to schedule a meeting.

\n\n\n\n
\"Announced
\n\n\n\n

If WordCamp Asia is not on your radar, check out the WordCamp calendar for in person or educational event closer to you or on a different date.

\n\n\n\n

Developing Gutenberg and WordPress

\n\n\n\n

WordPress 6.9.1 RC1 is now available. Led by Aaron Jorbin and Aki Hamano, the final release is planned for February 3, 2026. You can test using the Beta Tester plugin, WP-CLI, or a direct download. This maintenance release addresses bugs introduced in 6.9, with 23 Core fixes and 25 Block Editor fixes. Notable corrections include mail function errors, broken styling on the Add Plugins screen, widget accessibility issues, and several Interactivity API router fixes.

\n\n\n\n
\n\n\n\n

Gutenberg 22.5 RC 1 is also available for testing. The final release is scheduled for February 4, 2025. It will bring practical refinements for your editing workflow. You can now add custom CSS to individual blocks, and the Image block shows aspect ratio controls for wide and full alignments. List View gets more useful with full block titles and actual content displayed for list items. The release also stabilizes viewport-based block visibility and pattern editing, plus adds focal point controls for fixed Cover backgrounds and text column support for Paragraphs.

\n\n\n\n
\n\n\n\n

Mary Hubbard, executive director of WordPress open-source project, outlines the big picture goals for WordPress in 2026, signaling a return to three releases annually with WordPress 7.0 arriving at WordCamp Asia. You’ll see real-time co-editing move into Phase 3: Collaboration, client-side media processing graduate to Core, and new blocks like Tabs and Icon ship out of the box.

\n\n\n\n

What I am most excited about is Hubbard’s emphasis on WordPress meetups as the primary front door to contribution and calls on Make teams to prepare clearer onboarding paths for incoming contributors. If there isn’t a WordPress Meetup in your city or region, the community team would love to help you start one. Before my year-end vacation I collaborated with co-organizers, and we revitalized the München WordPress Meetup. If you are in the city, join us on February 11 at 19:00. Or every second Wednesday of the month.

\n\n\n\n
\n\n\n\n

Anne McCarthy shares her latest round of exploring work in progress for WordPress 7.0, with beta 1 just weeks away. You’ll find hands-on looks at real-time collaboration transport layers, visual revisions, responsive block hiding, customizable navigation overlays, and the Cover block’s new video embed support. The Gallery block gains lightbox navigation, while Tabs and Breadcrumbs blocks continue maturing. McCarthy encourages you to test via WordPress Playground and to leave feedback on GitHub.

\n\n\n\n
\n\n\n\n


David Smith posted a call for testing customizable navigation mobile overlays targeting WordPress 7.0. This feature finally gives you full control over mobile hamburger menus using blocks and patterns—add branding, calls-to-action, images, and custom styling instead of being stuck with WordPress defaults. Overlays are saved as template parts, so themes can ship their own variations. Feedback is requested by February 9th, with a ready-to-go Playground instance for quick testing.

\n\n\n\n

Your feedback would ddirectly shapes what ships in core—catching bugs, validating UX decisions, and surfacing edge cases before millions of sites receive the update. It’s one of the most impactful ways to contribute to WordPress without writing code, and the Test Team provides clear scenarios and templates for reporting issues. Give it a whirl, and learn first hand how this new feature works.

\n\n\n\n
\n

\"🎙\" The latest episode is Gutenberg Changelog #125 – WordPress 6.9, Gutenberg 22.1 and Gutenberg 22.2 with JC Palmes, WebDev Studios

\n\n\n\n
\"Gutenberg
\n\n\n
\n
\n\n
\n
\n\n\n\n

Ryan Welcher highlights the most important updates from the What’s New for Developer (January 2026) post in his latest video: Responsive Grids, PHP Blocks, Smarter Tools: WordPress in January.

\n\n\n\n\n
\n
\n\n
\n
\n\n\n
\n\n\n\n

Brandon Payton published wp-playground, a new AI agent skill that lets tools like Claude Code and Codex run WordPress via the Playground CLI for fast, repeatable testing. The skill auto-detects where your code belongs—mounting plugins or themes by recognizing file signatures—and reduces the “ready to test” moment from roughly a minute to a few seconds. You can install it via npx openskills install WordPress/agent-skills, and contributions are welcome at the new WordPress/agent-skills repository.

\n\n\n\n

Plugins, Themes, and Tools for #nocode site builders and owners

\n\n\n\n

Varun Dubey‘s comprehensive look at Gutenberg blocks in 2026 and WordPress development in the AI era walks you through how the block revolution has fundamentally shifted WordPress workflows. You’ll find practical guidance on when to choose patterns over custom blocks, explore emerging AI tools like WordPress Telex and Kadence’s inline generation, and understand why block metadata makes AI integration particularly powerful. Solid reading whether you’re building blocks or simply trying to keep pace with where WordPress is heading.

\n\n\n\n
\n\n\n\n

Troy Chaplin‘s Block Finder plugin gives you a dashboard metabox to quickly locate any core or custom Gutenberg block across your entire site. You can filter by post type, detect InnerBlocks nested within parent containers, and jump directly to editing posts containing specific blocks. Particularly handy if you’re managing large-scale migrations or hunting down where a particular block lives—one reviewer credited it with helping audit over 700 sites during a Classic-to-Gutenberg transition.

\n\n\n\n
\n\n\n\n

Weston Ruter released Post Date Block: Published & Modified, a plugin addressing a long-standing gap in the Date block. You can now display both publish and modified dates when they differ—with configurable prefixes, suffixes, and single-line or two-line layouts. The plugin uses the HTML Tag Processor to inject clean markup with proper microformat classes, and it’s now live on WordPress.org. Ruter positions it as a prototype until something similar lands in core, possibly via the upcoming Shortblocks feature.

\n\n\n\n
\n\n\n\n

On the WP Builds podcast episode 452, Nathan Wrigley chats with photographer and developer Michael Campanella about FolioBlocks, his block-based gallery plugin built from a working photographer’s perspective. You’ll hear about grid, justified, masonry, carousel, and the clever modular gallery that uses rows and stacks for visual priority. The plugin includes real-time filtering via comma-separated keywords, WooCommerce integration for selling prints, and image downloads—all with true visual parity between editor and frontend.

\n\n\n\n
\"\"
\n\n\n\n

Theme Development for Full Site Editing and Blocks

\n\n\n\n

Kadim Gültekin’s Block Theme Color Switcher lets your visitors preview every style variation your block theme offers without you creating multiple demo sites. The plugin automatically parses theme.json and the styles folder to generate a floating frontend menu where users can swap color palettes instantly—no page reload required. Selections persist via localStorage, making it particularly useful for theme developers showcasing their work or sites offering accessibility options like high-contrast modes.

\n\n\n\n
\n\n\n\n

Johanne Courtright‘s tutorial on the real power of CSS Grid goes well beyond basic column setups into territory useful for theme builders. You’ll learn how minmax() creates flexible-yet-constrained layouts, how named grid lines with -start and -end suffixes unlock implicit areas, and how grid-template-areas lets you draw layouts in code. The full-width breakout pattern—achieving edge-to-edge elements without negative margins—offers a cleaner alternative to the margin-based approach WordPress core currently uses for wide and full alignments.

\n\n\n\n

Building Blocks and Tools for the Block editor.

\n\n\n\n

Ryan Welcher released WordPress Interactivity API Helper, a VS Code extension that brings intelligent autocomplete and validation to data-wp-* directives. You get context-aware suggestions for state, actions, and callbacks based on detected stores in your PHP and JavaScript files, plus warnings for duplicate directives and undefined namespaces with typo suggestions. If you’re building interactive blocks and find yourself constantly referencing the documentation for directive syntax, this extension should smooth out your workflow considerably. Go to Extension > Search for Interactivity and install.

\n\n\n\n
\"\"
\n\n\n\n
\n\n\n\n

Nick Diego announced WordPress Studio 1.7.0 with a major CLI upgrade that turns the command line into a full-featured companion for local development. You can now create, start, stop, and delete local sites entirely from the terminal, plus run WP-CLI commands without installing it yourself—Studio handles all the environment configuration. Diego walks through practical examples of pairing the CLI with AI coding tools like Claude Code and Cursor, where agents can spin up sites, run diagnostics, and deploy preview sites without you touching the Studio UI.

\n\n\n\n
\n\n\n\n

JuanMa Garrido‘s WPSmith brings the Laravel php artisan experience to WordPress, wrapping Playground’s CLI and WP-CLI into one streamlined tool. You can spin up disposable sites with wpsmith new, manage database snapshots via checkpoint and rollback commands, reset to fresh state, or seed test data—workflows that don’t yet exist in tool like Studio’s CLI. Scaffold shortcuts like forge:plugin and forge:block round out the toolkit. It’s designed for both developers and AI agents working entirely from the terminal.You can take a glimspe on how it works on YouTube.

\n\n\n\n
\"\"
\n\n\n\n

WordPress and AI

\n\n\n\n

On his personal blog, Jonathan Bossenger shared four WordPress apps he built with AI that he uses daily. You’ll find

\n\n\n\n
    \n
  • WP Debug for quick access to WordPress debug logs,
  • \n\n\n\n
  • WP SQLite for inspecting WordPress Studio databases,
  • \n\n\n\n
  • WP Mail for capturing local emails during development, and
  • \n\n\n\n
  • WP Shell for running PHP snippets.
  • \n
\n\n\n\n

Each scratches a specific itch without a steep learning curve—and in a fun twist, the post itself was largely AI-generated using the WP AI Client.

\n\n\n\n

In his latest video “Benchmarking AI models for WordPress development” , Bossenger walks you through getting started with WP Bench, the AI benchmarking tool for WordPress development tasks. You’ll follow along as he clones the repository, sets up the Python environment, and configures API keys. The real fun comes when he pits his MacBook against an Intel workstation, testing local and cloud models including GPT, Claude Sonnet, Qwen Coder, and Deepseek Coder to see which delivers the best performance for WordPress coding workflows.

\n\n\n

Need a plugin .zip from Gutenberg’s master branch?
Gutenberg Times provides daily build for testing and review.

\n\n
\"\"
\n\n

Now also available via WordPress Playground. There is no need for a test site locally or on a server. Have you been using it? Email me with your experience.

\n\n\n
\n\n\n\n

Questions? Suggestions? Ideas?
Don’t hesitate to send them via email or
send me a message on WordPress Slack or Twitter @bph.

\n\n\n\n
\n\n\n\n

For questions to be answered on the Gutenberg Changelog,
send them to changelog@gutenbergtimes.com

\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:\"Sat, 31 Jan 2026 03:50:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:18:\"Birgit Pauli-Haack\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:1;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:\"WordPress.org blog: New AI Agent Skill for WordPress\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=19798\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:54:\"https://wordpress.org/news/2026/01/new-ai-agent-skill/\";s: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:4931:\"

Faster Way For AI Agents To Test

\n\n\n\n

AI code agents are getting better at writing WordPress plugins and themes, but testing can still be the slow part. WordPress contributor Brandon Payton has published wp-playground, a new AI agent skill designed to run WordPress via the Playground CLI, giving agents a fast, repeatable way to run WordPress and verify their work as they iterate.

\n\n\n\n
\n

“AI agents work better when they have a clear feedback loop. That’s why I made the wp-playground skill. It gives agents an easy way to test WordPress code and makes building and experimenting with WordPress a lot more accessible.”

\n\n\n\n

— Brandon Payton, WordPress Contributor

\n
\n\n\n\n

What the Playground skill does

\n\n\n\n

When launched, the skill starts WordPress and detects where the current code should live inside a WordPress install. For example, it can mount a plugin into wp-content/plugins or a theme into wp-content/themes by recognizing common file signatures (such as plugin headers or a theme’s style.css). This helps agents move from “generated code” to “running site” with fewer manual steps.

\n\n\n\n
\n

Install and try it today.

\n\n\n\n

Find more information on this GitHub link:

\n\n\n\n\n
\n\n\n\n

Early results and testing workflow

\n\n\n\n

In testing, agents were able to start WordPress, build playful plugins, and validate behavior in a tight feedback loop. Once Playground was running, the agent alternated between tools such as curl and Playwright to interact with WordPress, verify results, apply fixes when needed, and then re-verify with Playground.

\n\n\n\n

Faster startup and smoother iteration

\n\n\n\n

Helper scripts handle startup and shutdown, so an agent doesn’t waste time guessing when WordPress is ready. Using helper scripts reduced the “ready to test” moment from roughly a minute to a few seconds on the author’s machine. The Playground CLI can also log in automatically for easier WP-Admin access during testing.

\n\n\n\n

Install and try it now

\n\n\n\n

For those who want to try it in Claude Code, Codex, or another AI agent, installation requires Node.js and npm and looks like this:

\n\n\n\n

# Run this in a project directory to install the skills for that project
npx openskills install WordPress/agent-skills

# Make skills available to non-Claude agents
npx openskills sync

\n\n\n\n

A new repo for WordPress agent skills

\n\n\n\n

This release also comes with a new home for this kind of work:
https://github.com/WordPress/agent-skills.

\n\n\n\n

It’s an early step in exploring how AI agents can collaborate with WordPress tooling, and contributions from the community are welcome. Future additions being explored include persistent Playground sites based on the current directory, running commands against an existing Playground instance (including wp-cli), and Blueprint generation.

\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:\"Fri, 30 Jan 2026 17:13: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: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:2;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:41:\"Open Channels FM: Take the Time to Listen\";s: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=114583\";s: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:48:\"https://openchannels.fm/take-the-time-to-listen/\";s: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:62:\"We are too busy adding to the conversation vs. just listening.\";s: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, 30 Jan 2026 14:37: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:3;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:105:\"Open Channels FM: Inside WooCommerce: Competitive Advantages, Community Events, and New Design Directions\";s: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=114775\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:109:\"https://openchannels.fm/inside-woocommerce-competitive-advantages-community-events-and-new-design-directions/\";s: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:225:\"In this episode of Do the Woo, guest Beau Lebens and hosts James and Katie chat about key WooCommerce topics, including community concerns, competitive advantages, AI developments, and the future of the WooCommerce ecosystem.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 29 Jan 2026 11:06:41 +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:4;a:6:{s:4:\"data\";s:21:\"\n \n \n \n \n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:83:\"WPTavern: #202 – Charly Leetham on Using WordPress to Enable a Digital Nomad Life\";s: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=202405\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:97:\"https://wptavern.com/podcast/202-charly-leetham-on-using-wordpress-to-enable-a-digital-nomad-life\";s: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:59965:\"
Transcript
\n

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

\n\n\n\n

Jukebox is a podcast which is dedicated to all things WordPress. The people, the events, the plugins, the blocks, the themes, and in this case, using WordPress to enable a digital nomad life.

\n\n\n\n

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

\n\n\n\n

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

\n\n\n\n

So on the podcast today we have Charly Leetham. Charly’s journey with technology spans over four decades, from tinkering with amateur radio as a teenager in Australia, to working in electronic engineering and eventually building a career in WordPress and small business tech support. With a background in field service, sales, and running retail businesses, Charly pivoted to helping people with their websites and tech needs right around the time WordPress was in its infancy. Today, nearly 20 years later, she’s still involved in the WordPress ecosystem, providing troubleshooting, support, and plain English tech translations for business owners who need their digital lives demystified.

\n\n\n\n

But in this episode, we are focusing less on her technical skills and more on her unique lifestyle. Charly is a true digital nomad. Someone who’s not bound to a fixed address, but instead lives and works from a camper van fitted with a Starlink system traveling and working all over Australia.

\n\n\n\n

We talk about what it was like to embrace remote working long before it was commonplace, and how she built a business that supports complete flexibility. We explore both the upsides of the digital nomad life, the freedom to travel, spend quality time with family, and work from beautiful locations, as well as the trade-offs such as limited space, and having to ruthlessly prioritize her longings.

\n\n\n\n

Charlie discusses the essential tech setup that empowers her nomadism. From laptops and microphones to how Starlink satellite internet lets her work reliably from almost anywhere, even in places with little or no mobile signal.

\n\n\n\n

There’s practical advice on working with clients, so support can happen on her schedule, and reflections on building a business that matches her values, even if it sometimes means saying goodbye to clients who aren’t the right fit.

\n\n\n\n

If you’ve ever imagined trading your desk for the open road, or wondered what’s technologically, and personally possible, as a remote WordPress worker this episode is for you.

\n\n\n\n

If 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\n

And so without further delay, I bring you Charly Leetham.

\n\n\n\n

I am joined on the podcast by Charly Leetham. Hello Charly.

\n\n\n\n

[00:03:29] Charly Leetham: Hi Nathan. It’s really good to be here, and we are literally on other side of the world from each other.

\n\n\n\n

[00:03:35] Nathan Wrigley: We could probably not be further apart. You are in Australia, and we’ve never met. We spent probably the last 20 minutes or so having a good old natter. It’s been really interesting. And actually, the way that this podcast was going to go, I think has been upended by the conversation that we just had. Because you talked to me about your digital nomadism, I’m going to say, and I want to lean into that.

\n\n\n\n

But before we get into all of that story about how you’ve ended up working remotely and things, do you just want to give us a little bit of background about how you’ve come to work, be on a WordPress podcast? What’s your background with tech, your life in general? Whatever you wish.

\n\n\n\n

[00:04:09] Charly Leetham: Okay, well, look, I’ll try and keep it short. There is like 40 years to sort of condense into three or four minutes here.

\n\n\n\n

Look, I have always been interested in tech from a very, very, very young age. My dad kind of encouraged me, if I was showed interest in anything, he’d say, well, go and find out about and let’s do this and let’s do that. The age of 13, I had my amateur radio license. By the time I was 16, I’d just left year 10, grade 10, and I went and did an associate diploma, electronic engineering. I worked full-time as a junior laboratory technician in an electronics lab at the Australian University while I was doing that.

\n\n\n\n

And from there I went to be a field service tech with a private company. I’ve done field service, I’ve done pre-sales, I’ve done sales, I’ve done contract management. I’ve done customer service management. Done bid management.

\n\n\n\n

And then I had a need after I decided, I was really, really sick and tired of doing all of this, so I went and bought myself a business with a franchise. We ran retail businesses for four years. They failed spectacularly. And I had a need that I had to actually get some money through the door so that I could feed the kids, pay the bills, eventually feed myself, and the husband is part of it.

\n\n\n\n

So this was born. And this was, people need help with their technology. People need help with their websites, people need help with their emails, people need help with all of this. And at that point in time, that was 2007 and WordPress was just in its infancy. I think it was, maybe three or four generations in at that point, but it was still in its infancy. And I learned, WordPress from that.

\n\n\n\n

Someone said, I’ve got a WordPress website, it’s not working. Can you look at it? Sure. I can look at it. I know C++, I know Pascal, I know Basic. Oh, this is PHP. What’s that? I learned PHP, I learned themes, I learned plugins, I learned how to troubleshoot things. And here we are nearly 20 years later, doing the thing that I love the most.

\n\n\n\n

[00:06:16] Nathan Wrigley: There’s a lot in there, Charly. Genuinely, there is a lot in there. But what I’ve taken from that is that you have always been a bit of a tinkerer. You’ve always been somebody that’s fascinated by the technology side of things. Not just the software, but also, you know, the engineering side of things. And so, gosh, what a history you’ve got.

\n\n\n\n

We’ll get onto all the WordPress stuff a little bit later. Obviously that’s a big part of why you’re on this particular podcast because we are a WordPress focussed podcast. But it was the conversation that we had about half an hour ago that captured my attention and is just going to divert us for a little while.

\n\n\n\n

And that is, you got on the call, we started talking about where we are in the world and the fact that you are over there and I’m over here, and isn’t it amazing that we can talk to each other? And the fact that this technology is here and, you know, when we were both children, this was the realm of science fiction. Being able to speak to somebody on the other side of the planet without prearranging it, and organising it with a telephone network and a great expense and all that.

\n\n\n\n

And then we started talking about literally where you are. And I was kind of curious about your location. It turns out you are a digital nomad. Now, for those people tuning in who don’t know what this is, a digital nomad, I guess is somebody who is not bound to a specific location. I live in the UK. I have a house and a mortgage and all those kind of things. So I’ve kind of saddled myself to that, and I’ve got this definite spot in the world where I call home. You’ve decided to kind of get rid of all of that. And so just tell us about your life and what it is that you do, and how you move around and how you empower that with technology, and what technology you use to make that even possible.

\n\n\n\n

[00:07:53] Charly Leetham: Okay. Let’s start by telling you a story. When my kids were all, all my kids are now in their early thirties, late twenties, so they’re adults. They’re gone, they’re out doing their own thing. But when my kids were born in the mid nineties, I wanted nothing more than to be able to stay home with them. But because of my experience, because of what I was doing, I was the breadwinner. I was the one that had the money coming in, so I had to go back to work. Went back to it when my kids were really young.

\n\n\n\n

And as much as I loved my job and I loved what I was doing, I really hated not being able to be with him. And what I wanted to do was what I’m doing now, then. The ability to help people with their tech. The technology didn’t exist. We couldn’t remote into computers, we couldn’t do video conferencing. We couldn’t even do audio calls like phone networks for what we had. So if you just think about, you know, a young 20-year-old woman with two kids, working in IT, wanting to do this.

\n\n\n\n

Now we come forward nearly 20 years, or nearly 30 years because my kids are 30. I can do exactly what I wanted to do 30 years ago today. I can sit wherever I am, I can run up my computer, I can get an internet connection, I can talk to you. Someone says to me, my computer’s not working, or my email’s not sending, I can’t do this. I can remote into their computer. I can do a face-to-face call with them. I can remote into their computer. I can give them that support. I don’t have to be on site to do that.

\n\n\n\n

That is what a digital nomad is. That’s what me as a digital nomad does. I provide tech support to people wherever I am, literally in the world. I said to you, I traveled in the US for a couple of years. Well, I got stuck in the US for a couple of years. And I didn’t work over there. I want to be really, really clear because you’re allowed to work in the US when you’re over there on a visitor visa. But I was helping people. People would say to me, my computer’s broken, well, let me remote in. I’ll have a look. Let me go and do this, I’ll help you. My dad would ring me from Australia and say, my email’s broken. What can I do? I’d fix it for him.

\n\n\n\n

So that’s what I do. So how does that work for me today? There is a housing crisis. That’s the first thing that we really need to recognise is there is a housing crisis. Finding a house is really, really difficult. Finding a house that is affordable is even more difficult. Rather than stressing on the fact that I can’t find a house, or I can’t afford the rent for a house, or I don’t want to have that stress of having a rent for a house. I fitted out a vehicle, I got a Starlink system. My brother fitted the vehicle out for me. My son, who is the electrician, put the electrical into it. And I literally live on the road. I go from place to place. I find somewhere I can hook into power for a couple of days. I throw my Starlink out the site, and I work. I support people.

\n\n\n\n

You could talk to me tomorrow, well, not tomorrow. Talk to me in a month, and I’m going to be in far North Queensland. A month from today, I will be in far North Queensland doing things up in far North Queensland because I’ve got to be up there for something. That’s what my life is like.

\n\n\n\n

[00:10:55] Nathan Wrigley: If we rewind the clock, I don’t know, 10 years, did you desire something like that? From what you said, it sounds like you did. You always had some sort of intuition that if the technology allowed, you would wish for something like that. But obviously, kids and bills and all of that kind of got in the way. Has this been something which, if you sort of look back on your life, you think instinctively this was something that you wished to do?

\n\n\n\n

[00:11:17] Charly Leetham: Not on the road. Not mobile like I am. Being able to do it from home, being able to be a work from home mum, absolutely. Being on the road and moving around, no, not even my wildest dreams would I have even imagined it. I didn’t even know that was available to us. I had no idea.

\n\n\n\n

Look, I’ve met people, just to sort of segue very quickly. I have met people while I’m doing this, and they are young families. They are mum and dad and the kids, and they’re living on the road. They’ve got homeschooling curriculums for the kids. The kids do all their schooling. They get all these extra education of the places they’re in, all the things that they’re doing. Mum and dad will arrange to take the kids out on a bushwalk, and go and see a place that very few people in Australia will ever get to see. And these kids are living this life. I didn’t know that was available. If I had known that was available, I might have done that with my kids.

\n\n\n\n

[00:12:08] Nathan Wrigley: I think one of the curious things is that, if you are working in the tech space, and obviously we’ll talk more about WordPress in a moment, there is a significant chance that this is available to you. I mean obviously you may have a job which is office bound. We understand that that means that you’ve got to show up to the office and what have you. But I’m imagining that there’s quite a few people listening to this podcast who, if they were to really examine it, these possibilities are open to them.

\n\n\n\n

But it may not be something that they, A, wish to do, or B, they’ve not really thought about it too much. You know, they’ve decided that, okay, life is fine, I like my local environment or what have you.

\n\n\n\n

What are like the key benefits, if you know what I mean? If you were to advertise this lifestyle to our audience, so we’ll do this in two parts. Let’s do the benefits first and then we’ll do the drawbacks later. What are the key things which you look at in your life at the moment and think, I’m so grateful for that? What are they?

\n\n\n\n

[00:12:57] Charly Leetham: Freedom. Absolutely the freedom. I mean, we’re going to talk about drawbacks in a minute, so that’s going to get balanced out. But it is the freedom. It’s the ability to say, it’s getting cold in the south of Australia, remembering we’re in the southern hemisphere. So, I actually have to say that because people like, it’s hot in the south. No, it’s cold in the south. So as the winter months come and it gets colder, we migrate north. So I can literally say, no, it’s too cold here, I’m going to go north. Going to go to Queensland and spend winter in Queensland. It still gets cold, but not as cold as it does in the south. So you’ve got that ability.

\n\n\n\n

I guess one of the biggest benefits is my dad is, he’s in his late seventies and I get to travel with dad. Dad’s traveled for many, many years and he still is. But I get to travel with dad. I get to spend these years with my dad. There’s not many people that can say they get to spend this sort of time, and this quality time, with their parents at this stage of life, because life gets in our way. But we make it work.

\n\n\n\n

We will, once a week, arrange to go and do something. He’ll come and knock on the door and say, you are working too hard. I’m like, I’m working, go away, leave me alone. But then it’ll be, okay, yes, you’re right. I’m working too hard, so why don’t I take this morning off and we go and visit this place where we are staying. Go and find a touristy place or a bush walk to do, or go for a swim in the sea, or go and do something together so I can spend time with my dad. If the family needs me to be somewhere, I can be there, generally.

\n\n\n\n

I also just to sort of pad this out a little, I also house sit while I’m doing it. So sometimes I’ll get to a place, someone will be advertising, we need a house sitter. We need someone to come and live in the house, or live at the house, for a couple of weeks while we’re away. So I’ll go and house sit for them, and I get another experience in all of that. So that’s the benefits. It’s just that flexibility. I would be doing exactly what I’m doing, but I would be stuck in a house. I’d be stuck in a room, in a house, grinding. I can grind and be in some of the most beautiful places in the country.

\n\n\n\n

[00:15:02] Nathan Wrigley: Do you know, it’s so curious because I’m imagining there’s a proportion of the people listening to this who are just so in awe of that description. You know, oh gosh, you can really spend the time in the locations that you wish. I’m imagining there’ll also be other people who think, no, that’s not what I want at all. But I’ve got to say, I’m really drawn to what you’re saying. The idea of being able to go and, I don’t know, work with a spectacular view. Or work in a particular city for a period of time, and then go somewhere slightly more rural. In other words, it’s not the same view that you get every day when you wake up. There’s that variety in life which, certainly for me, there’s a lot of appeal there. Okay, let’s do the drawbacks. What are the downsides?

\n\n\n\n

[00:15:44] Charly Leetham: The downsize is I live in a car. Literally, I live in a little camper van. My workspace is probably, because I fitted out a little commercial vehicle, a little commercial van as my van and as, you know, as my income improves, my savings improve, I will probably upgrade it. But my workspace is probably a metre by a metre. It’s not very big. And when I finish up for the day, I’ve got to pack everything up so I’ve got room for relaxation. I can’t sort of just walk out of a room, shut the door and say, well, that’s work done.

\n\n\n\n

Now, work’s done for me, I’ve got to pack everything up, I’ve got to put everything away. You are living on the road, so you don’t have all of your stuff. And I’m going to put stuff in double quotes, they’re in inverted commas. You learn very quickly what is important to you, and what is necessary, and you have what is necessary. And then you have a few of those things that you go, these are really important to me and I’m not going to give them up.

\n\n\n\n

So it is not like you can say, oh, I’ve got that plate that is really good for this entertaining thing, and go to a cupboard and pull that plate out that you use maybe once a year. No, you don’t have that. You’ve got the plates that you use every day.

\n\n\n\n

[00:16:50] Nathan Wrigley: Yeah. The plates.

\n\n\n\n

[00:16:52] Charly Leetham: Yeah, well, I travel on my own. I could literally live with one plate, one cup, one bowl, knife and fork. You are trading off that flexibility of having a house where you can have things stored, and all of storage space. You really have to think about what it is you want. I have a rule. I literally have a rule and I think everyone should live with this rule anyway. I have to have needed it four times before I go and buy it. If I haven’t needed it four times, then I’m not going to buy it. If I look at something, I go, oh, that’d be really cool and it’d be really convenient. Then I go, but would I use it? Have I needed it four times? Have I needed the functionality that gives me four times? No, don’t buy it. Because where the hell am I going to put it?

\n\n\n\n

[00:17:37] Nathan Wrigley: Yeah, and I guess whatever you’re buying, you have to buy the tiny version of it as well. You can’t get the sort of jumbo version of whatever it is.

\n\n\n\n

[00:17:44] Charly Leetham: There’s your other trade off is you can’t buy food in bulk. Like, I used to go and buy several cans of food and put them in the cupboard. Whether I used them or not immediately, there would be several cans of the same thing in the cupboard just in case I needed it. And if it was sort of, oh, I’m down to the last can, I’ll go and buy a few more. Well, now I’m down to buying two or three cans at a time. And once I’ve run those out, I’ve got to go and find the nearest shop and go and buy another one just to sort of keep it topped up.

\n\n\n\n

You’re not buying in bulk, you’re not buying your meat, you’re not buying your fruit veg in bulk. Does that matter? No, because when you get to certain places, you normally find the local providers, you normally find the local fruit seller or the local fruit and veg shop, and go and buy there. You go and support the local community, and you pick up a few things there and, yep, that’s what you’re going to use. That’s what we do.

\n\n\n\n

[00:18:31] Nathan Wrigley: Just to interrupt there, Charly, do you try to spend a significant portion of time in a particular place so that rather than just sort of driving through it, I guess, and spending a couple of days here and a couple of days there, do you spend significant amounts of time there, and therefore begin to have some feeling of what that community is like?

\n\n\n\n

I guess the underpinnings of that question really is, how do you get that sort of human interaction that so many people think is important? Because clearly you are meeting fresh people every day, and you probably don’t get the chance to form those roots and what have you. So there’s a lot there. But do you know what I mean? Do you try to sort of spend a bit of time so that you gather some of those human connections along the way?

\n\n\n\n

[00:19:12] Charly Leetham: Okay, so there’s a couple of things there that you’ve touched on. On my way to a location, I may only spend a day in a location, as I’m heading to a final destination or the next stop along the way. When I get to that next stop along the way, I do try to spend a bit of time, because I like to put my roots down. I like to be able to just settle on in, be able to work for really long periods and not have to worry about, oh, I’ve got to pack everything up and be on the road again. I’ve worked for three days, now I’ve got to spend the next two or three hours packing everything up so I can get on the road and drive for another couple of hours. Yes, I know English people are going to say, couple of hours driving, you’d be across the country.

\n\n\n\n

We’d spend a couple of hours driving and then you get to the other end and you’ve got to set it up. So you’re losing a day when you’re doing that. So my preference is when I get to where I want to be, getting my feet down and staying there for a couple of weeks if I can. And then from there, I use that as a base of, okay, what is within a hundred kilometers that I can go and visit, and do the site seeing, and do the local colour, and make that a hub for my activities.

\n\n\n\n

You then asked about human interaction and honestly, I think I’m a little different to people. I don’t need it as much as others. I am really, really quite happy to just be in my sphere. I’ve got my online connections. If I need to speak to someone, I’ve normally got someone on the other, on Discord, or one of the chat programs that I can chat to. And then if I feel like I’m getting to that stir crazy point, you go to the local pub or you go to the local cafe and you sort of sit around and you have a chat to the locals.

\n\n\n\n

That fills that need for me. I’m not a person who is, it sounds terrible, I’m actually really good in a public environment, but it drains me. So I really, once that’s done, I’m done for a couple of days and I can just go sit in nature and not worry about it.

\n\n\n\n

[00:20:58] Nathan Wrigley: Yeah, I think everybody can totally see that. There’s just so many different personality types, isn’t there? I can identify exactly with what you’re saying. I can go for extended periods of time, and not really require that human interaction. And then occasionally I sort of crave it, and so I satisfy it and go and meet people and hang out with all sorts of different people.

\n\n\n\n

And so I guess really that is the piece that you would need to examine in your own life. Because if you were going to go nomadic, for want of a better word, you’ve got to really understand that bit. What is your need? On what level do you need to be with other people and interact with other people? Because that’s really the fulcrum around what makes this whole thing possible.

\n\n\n\n

Speaking of what makes the whole thing possible, I’m interested to delve into the tech a little bit. Because you mentioned this sort of one metre square, and the fact that you’ve got to pack things away and what have you. I’m curious as to what technology do you have which enables this? Ignoring the vehicle and all that, I’m just trying to imagine what you might put in your shopping cart. If you were telling somebody this digital nomad life was available, what would be the requirements to make that happen?

\n\n\n\n

[00:22:01] Charly Leetham: So I’m doing this with my laptop computer. Now, I buy as top of the range as I can when I buy, and it lasts me for years. So I’ve got, I don’t know if you’re familiar with them, I have an MSI gaming computer, because it’s got the extra fans in it. So it really, really works well when you’re doing a lot of processor intensive stuff. So it’s not just for gaming, because I do a bit of graphic design and I do a bit of this and I do a bit of that. So the extra fans make the world a difference.

\n\n\n\n

So I’ve got an MSI gaming computer, or an MSI computer. I have an external microphone. I’ve actually just recently bought an external webcam. I was using the webcam on the computer. It was perfectly fine. I’ve changed my setup to where I now have an external monitor mounted on the wall in my van. So when I settle in, I pull my 21 inch monitor out and I plug my computer into it and I’ve got this beautiful big monitor. I’ve got my external keyboard, and I’ve got my mouse.

\n\n\n\n

[00:22:56] Nathan Wrigley: Okay. I mean it’s the bare essentials, isn’t it? I think we can all understand that. And then I think you mentioned the internet connectivity bit, which I suppose is also a crucial part of the tech. Because where I am, it’s a landline. I obviously have, you know, I’ve got a mobile phone, so there’s the cell signal, which will allow me to roam within Europe and North America and what have you, but there’s all the cost and everything associated with that. Where you go, I think it’s fair to say that you would quickly lose all manner of possibilities because the reception in Australia, you said is not that great in terms of the internet. So how do you overcome that? I think you said Starlink.

\n\n\n\n

[00:23:30] Charly Leetham: Yes, Starlink. I kind of looked into it for a very long time. I was relying on our mobile data and using my phone as a hot link. But in Australia, I was joking with you about it when we started this call, I’m on the NBN here. And if anyone knows anything about the NBN, you’ll know that most Australians hate the NBN. It’s terrible. If it works, you’ve got to consider yourself lucky.

\n\n\n\n

It’s great if you are in a capital city, but you go a hundred kilometers, and I’m being a little flippant when I say that, but I’m not too far wrong. Go a hundred kilometers away from a regional center and you’ve got nothing. There’s no radio signal. By radio signal, I mean mobile signal. You can’t make phone calls. You’ve got that little, there is no signal icon on your phone. You can’t actually get a connection. I say a hundred kilometers, maybe it’s 200, maybe it’s 250, but that’s not a very long way in Australia. It really isn’t.

\n\n\n\n

So I bought Starlink. I spoke to someone who was traveling along the way. And I actually want to come back to just the nomadic lifestyle when we’re done here, Nathan. And I met someone while they were traveling. They said, oh, Starlink, it’s wonderful. And it was still relatively new at the time. I’m like, oh, really? Are you sure? And he explained it to me like, oh. So when I got the car, I went and bought myself the Starlink and it’s fantastic.

\n\n\n\n

Oh my goodness, it’s so good. You’ve got to have power because the routers take power. You can just get, you know, one of the, I don’t know if you’ve got them there, the power stations, the USB power station that you charge up and you can run all your devices off it for a couple of hours. You could do that. I’ve seen people run them off of just car batteries with the clamps on the battery terminals. I’m an Australian, this is pretty normal.

\n\n\n\n

So you’ve got to have the power for the router, to run the router. That then powers the dish and you’ve basically got, in inverted commas, uninterruptable internet for as long as your power lasts. For as long as you’ve got power, you’ve got uninterruptable internet. I have found where I’ve been, I house sat for my sister-in-law during winter, and her internet was terrible. So I went and got my Starlink out and threw it up and connected to it, and I had better internet. The connection speed on the internet on the Starlink versus her landline connection was like 10 times. I had 10 times better internet connection using Starlink than I did on a landline.

\n\n\n\n

[00:25:50] Nathan Wrigley: With the Starlink technology, do you have to, so I really am ignorant of this. I mean I know it’s to do with satellites, and I know that you can have it bolted onto the side of your house, I guess if you live in a rural area where there is no regular landline. But yours is this sort of peripatetic, mobile version of that.

\n\n\n\n

Firstly, do you have to point it at a particular part of the sky? Do you have to spend time lining it up or do you just have to, just plonk it in daylight? So you know, outside basically? And is it bulky, or is it the kind of stuff that you could throw in a backpack if you were nomadic in that sense? You know, you didn’t have wheels, you didn’t have a vehicle, you were just sort of backpacking around. So two things. Where do you have to point it and is it big?

\n\n\n\n

[00:26:27] Charly Leetham: Okay. You asked some really great questions. I’m just going to say they are really, really inspired questions. The first thing I want to say is that the stuff that you see bolted onto the side of a house is typically the stuff that we would use when we’re out mobile. It’s the same hardware. They’ve just got mounting technology, or mounting systems, that will allow you to mount it to the house.

\n\n\n\n

Quick story before I answer the second question about how big is it and all the rest of it. I had a version 2 Starlink, which, it would now be five or six years old, and it’s got a pole and it’s got the dish on it. And the dish is, I say dish, it’s a rectangular panel and you’ve got put it on a base so that it’s stable. That’s heavier than the version three. I had that last week, the week before I had a problem with it and I was a bit concerned. So I contacted Starlink and I said, listen, it’s doing this, here’s all my, being a tech I had all the diagnostics and stuff I’d done and I laid it all out and I said, and I just really want to say that I’m a little concerned. Because I’m traveling and I’m often outside of mobile range, I don’t want to get outside of mobile range, put my Starlink on and have it fail. I’m concerned that I’ve got an intermittent fault that is going to be a problem.

\n\n\n\n

And they said, no worries, we’ll send you a version 3, no charge. Because I’ve been with Starlink now, probably two, two and a half, no, two years now. And they just sent me the new hardware. So I’ve just upgraded to the version 3. So I can actually talk about both. So the version two is a little bigger. You’re probably talking, I’m just holding my hands up. It’s probably about 40 centimeters wide and 70 centimeters tall, the panel. It’s only 10 mil, five centimeters deep, I guess.

\n\n\n\n

[00:28:06] Nathan Wrigley: It’s like the sort of size of a modestly big laptop screen. Something along those lines.

\n\n\n\n

[00:28:13] Charly Leetham: Actually, it would be about the same size as my, I’m just looking at, it would be a little larger than my computer here. And I’ve got a 21, is this the 15? No, this is a 17 inch. This is a 17 inch monitor. So I’ve got a 17 inch laptop.

\n\n\n\n

[00:28:24] Nathan Wrigley: Yeah, so we’re in the order of, got my hands out and I’m imagining how big that is. It certainly answers my backpacking question anyway.

\n\n\n\n

[00:28:32] Charly Leetham: Well, let me answer that question for you in a different way. There is now actually what they call a Starlink Mini, which is designed for backpacks. It’s designed to fit inside a backpack. It’s got a portable power supply so that you can go hiking, you can go backpacking and take your Starlink with you. I don’t know a lot about it. I do know that the plan that you put it on is a little different to what you would put our plans on, the plans you would use for ours, because it’s designed for you to be really, really mobile, not just mobile like we are. And it’s really light. It’s designed for a backpack.

\n\n\n\n

So that answers that question as well as like, you’ve got the technology. The version 3, and I wanted you to say this, the version 3 would probably be half as light as the version 2. So it’s much lighter. And one of the things that I really liked about the way this all works is that they’ve got ground mounts, right? So you just put them down on the ground, which is going to answer your next question. Do you need to position it? No. You just put it out. You’ve got to make sure it’s got a clear view of the sky. You’ve got to make sure that there’s no real obstructions, and that means no trees, no buildings. So nothing that’s going to sort of overshadow it as the satellites go over. And it will find the satellites for you. You don’t have to do anything. You just hit the button and it just works.

\n\n\n\n

[00:29:45] Nathan Wrigley: Miraculous really when you think about it. I mean, actually think about it. You’ve got this box that you just plonk out under the stars somewhere, and a bunch of, I mean, I’m just actually thinking about what I’m about to say, and it is ridiculous. There’s a bunch of satellites, so they had to go into space, moving around the planet. And they connect to the little box somehow send TCP IP packets all over the place, literally off the planet, which then get bounced down somewhere and, you know, end up in this case talking to me. Insane that any of that works.

\n\n\n\n

[00:30:19] Charly Leetham: So let me just add to that, at faster speeds than your standard internet will give you in Australia. I don’t know what it’s like in the US, I don’t know what it’s like in Britain, the UK, but it’s faster and more stable speeds than you get in Australia in general.

\n\n\n\n

[00:30:36] Nathan Wrigley: Yeah, I actually, so it’s probably about six months ago I looked at Starlink. I’ve never seriously looked at it. I’m always just curious about it so I’ve ended up on the Starlink website. In terms of the speeds that you can get, they’re not comparable to what you can get through a landline. You can get significantly faster. But they are still impressive. And there’s nothing that day-to-day use wouldn’t be afforded by a Starlink package. I mean, maybe if you were sort of streaming 4K video left, right and center, maybe it would struggle in that scenario. But for any normal, and I’m doing air quotes, any normal use of the internet, more than enough. Absolutely incredible.

\n\n\n\n

Okay, so all of that stuff, absolutely amazing. I’m so impressed with everything that you’ve just said. It really, it speaks to me. I think there’s an awful lot in your life that I think, oh gosh, wish I was Charly. But I’m kind of curious then as to the kind of work that you do actually do, because you painted this picture of all these infinite possibilities and what have you. And now I’m turning the attention really to what is it that you do do? What are the kind of things that you’ve been able to create in your life in this nomadic way? What kind of work are you able to pull off?

\n\n\n\n

[00:31:43] Charly Leetham: So what I do, what my business is, is I help businesses manage their tech. I like to sit between a business and they’re tech. Some people might call me their CTO, some people might just call me their technical team. I try to translate tech into plain English for business owners so that it takes all of that stress out of it.

\n\n\n\n

When your business owner says, I need an email address, or I need a new email account, or whatever it is, and they’re talking to a provider, and the provider’s giving them all of the marketing guff, and all of the sales thing, and then it’s not working. So then they’re speaking to the technical people and the technical people are talking their jargon to them. It’s overwhelming for them, and they’re not spending time running their businesses when they’re dealing with that.

\n\n\n\n

They need someone who can sit between them and that morass, if you like, and then say, okay, what is it you want? Oh, right, cool. Let me go and talk to people. Let me get you some answers and I’ll come back to you. So I often say, I don’t walk into a business and say, the answer is this, now what was the question? Which is what a lot of product salespeople would do. And I don’t want to, I’m not trying to bag salespeople here, because they’re needed. But I don’t go in and say, the answer is this, now what was the question? I go in and I say, okay, what is it you’re trying to do?

\n\n\n\n

I don’t want to know about the technology you want to use. I want to know about what your business application is. I want to know, what is your input and what is your output? What are you trying to do here? Cool. Now, what systems do you already have? Let me go and investigate those systems. Let me see what they can do for you. Let me see if we can make those systems work to do what you want them to do. They can’t do it, okay, let me go and find some technology that we can plug in and we’ll work with what you’ve got.

\n\n\n\n

The big thing I find with a lot of small businesses is, two things. They get caught with the bright shiny object syndrome. Oh, this new technology’s coming out. It’s going to make my business run well, it’s going to make me money. Technology never makes you money, by the way. Technology only ever helps you make money if you use it right. So they get caught with the bright shiny object syndrome. Or they get caught with the sales person said it would work. I didn’t understand what it did, and I bought this system and now it doesn’t interact with the rest of my systems and I’ve now got to put all these other processes and all these other things in places to make it work.

\n\n\n\n

That’s kind of where I sit. But I’m a tech as well, so I can make it work, I can troubleshoot it. I build websites, which is how I got into WordPress. I build websites. I fix websites. Like I actually also troubleshoot plugins. You know when we upgrade something or something’s not working and you’re getting all the error message? I’ll go and actually troubleshoot a plugin and say, oh, that plugin’s doing this. Can I fix it? No. Okay, I’ll send a support response off to the plugin provider and say, here’s all the logs, here’s what I’ve done, here’s what I’ve found. Can you get this fixed up for me? Or can you get it fixed up for us? Or, I’m really stuck because I’m getting to this point and it’s just not working and I don’t know where it’s going wrong, but I’m pretty certain it’s between here and here.

\n\n\n\n

The other thing I do in all of that is, when you get the two suppliers going, it’s them with the fingers going both ways. I tend to be the one that sits between it and mediates to try and get that sorted out. So that’s what I do, and I do that all remotely.

\n\n\n\n

[00:34:54] Nathan Wrigley: I’ve totally understood all of that. You know, you’ve got this, you’re sort of sitting in between, and being that kind of agent that helps people with the tech because they’re busy and they’re doing all the things and they haven’t got the time to gain that expertise in all of that.

\n\n\n\n

So the follow up question, I guess from that, and it’s kind of leaning into your nomadic thing a little bit as well, is I guess that kind of work, the kind of work that you’ve got for yourself there, you can do it because, and I’m going to say this like it’s true and then you can correct me if I’m false, because you can do that when you have time available.

\n\n\n\n

And what I mean by that is, it’s not like if you were working in an office and you need to be there from nine o’clock in the morning until five o’clock at night, because the telephone lines open up and you’ve got to field all this support. I’m guessing you’ve built a business where the channels of communication are a little bit more async than that. I don’t know, like an email exchange, or Discord, or Slack or whatever it may be. In other words, you can be in the car driving at 7:30 in the morning or 5:30 in the afternoon, or 3 or whatever it may be, because you are not needed at that exact moment by, I’m going to say your employer, but in this case, your clients. It’s more async than that. So I’ve said that like it’s true. Is that true?

\n\n\n\n

[00:36:07] Charly Leetham: It is true for me. You are entirely correct. I’m sort of laughing because you’re like, oh, you can be driving in the car. The amount of times where I’ve been traveling with dad and my phone’s buzzed at me and I’ve gone, oh. And he goes, okay, hang on, I’ll pull over. Because we’ve got radio signal, we’ve got mobile signal. And he pulls over and I’ll fix the problem. Like, it might be a five minute fix and I will actually fix the problem then and we’ll keep moving. I’m sitting having a cup of coffee somewhere and one of my clients messages. And they message. I rarely spend time on the phone, or on video conferences with them. They know that the best way to get me is to book a time. I’ve trained my clients.

\n\n\n\n

[00:36:44] Nathan Wrigley: That’s fascinating. So to you, that piece of the jigsaw puzzle is entirely obvious. And so it kind of just gets glossed over in your head. But you have created a business where that bit is the kind of foundational piece. If you had clients that wanted you on call 24/7, that really wouldn’t work because you’ve carved out a life for yourself where you don’t want to be on call 24/7. You want be able to do what you want to do when you want to do it, with the understanding that the clients are important, but the async nature of it is, they’ll message you. As soon as you can get to it, you’ll get to it.

\n\n\n\n

And I’m guessing that when you onboard these clients, there’s that whole education piece. This is what I do, this is the way we respond to support. You’ll get an answer with, I don’t know, 12 hours, 24 hours, whatever it may be. And it may be that somebody listening to this podcast is firefighting all the time and they kind of haven’t figured that piece out. So I think that’s really interesting that you’ve got that, but yet it’s self-evident to you.

\n\n\n\n

[00:37:39] Charly Leetham: I think I want to also add to that is that my clients trust me. So there might be point in time where I am always on for that client for a while at least. And when, I’m always on for them. If they message me, I will, and I do this for all of my clients actually. If they message me and say, hey, this is a problem, and I’ve got access, I actually have the ability to respond to them. I will normally respond to them and say, I’m letting you know, I’ve seen this on the road today, or I’ve got meetings all day. I’ve got this, you are in my queue, I’ll get to you as soon as I can. And they know that actually means not tomorrow, not the next day, not, whenever it is. I really do mean as soon as I get a space available, they’re going to get my attention. We’ve built that trust relationship.

\n\n\n\n

[00:38:26] Nathan Wrigley: I think probably that is another foundational piece of your business. Without that trust, that’s going to be difficult to onboard clients. Do you tend to gather clients by word of mouth more, or do you have a marketing website where people onboard to you and you have to build that trust up over time? Or is it more a case of your clients recommend your services to other clients who then bring in that trust with them, if you know what I mean?

\n\n\n\n

[00:38:49] Charly Leetham: Mostly column A, little bit of column B and more of column C. So yeah, it’s a bit of everything. I am actually just starting to ramp up my marketing as I start to get more comfortable with what I’m doing. And it sounds strange, right? Because I’ve been doing it for a while, but I’m starting to get more comfortable.

\n\n\n\n

So now I’m starting to ramp up my marketing, because I can talk to people about how it works and what it does. And I have very frank conversations. It’s one of my things is to be, make sure that I am upfront, I am frank, I am honest about what goes on. I don’t like. I can talk salesy. I prefer not to. I prefer to be plain English and real world with people.

\n\n\n\n

I think the other thing because, if we are talking to your audience, the other thing that I really wanted to highlight there is that I have had clients sack me because they don’t like the way I work. That’s not a reflection on me. That’s not a reflection on the surface I provide. It was a reflection on the relationship that was developed, and that relationship didn’t work for them. I’m good with that. I hope I found someone that can actually work with them the way they need them to work.

\n\n\n\n

The other side of that is I have actually suggested to some clients that they would be better off with another provider. And as a service provider, that’s something that we have to be utterly comfortable with. Being able to say this client is not the client that works for us. We are going to spend too much time, too much energy, too much money supporting them, than we are going to get out of that relationship. It is commercial, and it sounds mercantile, and it sounds cutthroat, and it is. But by doing that, what you’re also doing is making space for another client to come in that is actually going to fit your ideals better, it’s going to fit the way you work better. You’re also allowing that client to find a provider that works better for them.

\n\n\n\n

[00:40:39] Nathan Wrigley: This has been such an interesting conversation Charly. This is your life, right? So it’s just oh, this is the way I wake up and I do these things and what have you. But it’s in such contrast to my life at the moment, and yet there’s so many bits of the jigsaw puzzle that you’ve just described that are really fascinating to me.

\n\n\n\n

I would imagine there’s going to be quite a lot of people listening to this who have intuitions that, I got into tech and I got into building WordPress websites so that I too could have a little bit more of that freedom. Maybe even going as far as you’ve done to make it more nomadic. So they own their own vehicle and potter about all over the place. Or they backpack for three months of the year. It’s just fascinating. And because it’s your life, it probably doesn’t seem that extraordinary, but from where I’m sitting, totally remarkable.

\n\n\n\n

[00:41:24] Charly Leetham: No, it doesn’t seem like it’s every day to me. I will say that I think I have a concept of how blessed I am being able to do it. I try not to become so blase about, oh, this is just the way my life is. It’s yeah, I worked hard to get it to this point. So I’ve got to accept that I’ve put in a lot of work to get there, but I’ve also got to accept that there is a lot of blessings that have come from it. And I thank the Lord every day for the life that I have.

\n\n\n\n

[00:41:50] Nathan Wrigley: Well Charly, we’ve reached the 45 minute mark, and although we had a whole range of different things that we could talk about, I hope that you are happy that’s where we ended up. We talked mostly about digital nomadism. We didn’t really stray into WordPress too much, but what a fascinating conversation.

\n\n\n\n

Maybe we’ll have a conversation another day, and lean in heavily to the WordPress side of things, but digital nomadism it was.

\n\n\n\n

Charly, where can people reach you? And I don’t mean that in a physical sense because obviously we have no idea where you’re going to be, but if they were to reach out online, or try and find you on a social network, or a website or whatever it may be, where would be some of the places where we could find you?

\n\n\n\n

[00:42:27] Charly Leetham: The best place to find me is on my website. If you go to askcharlyleetham.com, and then at the end of it put /connect-me. So connect to me with the dashes between it, you will get wherever you can find me. All the networks I’m on. You can book a free 30 minute breakthrough session. And guys, if you just want to come and talk to me about how you can set up your business, or the things that you’re doing and the things that you need to consider, I’d happily talk to you for 30 minutes about that. That’s not a problem at all. And just so you know, I’m on Facebook, I’m on X, I’m on LinkedIn. I’ve got a YouTube channel.

\n\n\n\n

I do a podcast every other day. I do a podcast, Making Tech Easy for Small Business Owners. It’s a 10 to 15, or 15 to 20 minute episode about something tech, and tries to try to simplify it out. I do interviews every now and again, much like this that I put up on there. I’m on Rumble, I’m on Odyssey.

\n\n\n\n

[00:43:22] Nathan Wrigley: I will link to all of those different bits and pieces. Anything that we’ve mentioned just then I will put into the show notes. So if you head to wptavern.com. Search for the episode with Charly in it. And Charly, I should have said at the beginning is not a typical spelling, it’s c h a r l y. So if you search for that this episode will surface.

\n\n\n\n

So absolutely fascinating, Charly. Thank you so much for chatting to me today and good luck. I hope that you managed to get wherever it is that you are going in the days, weeks, months, and years to come. Thank you so much.

\n\n\n\n

[00:43:52] Charly Leetham: Thank you Nathan. I have had an absolute ball. I’ve really enjoyed this conversation, and I love talking about the life I’ve built, so thank you.

\n
\n\n\n\n

On the podcast today we have Charly Leetham.

\n\n\n\n

Charly’s journey with technology spans over four decades, from tinkering with amateur radio as a teenager in Australia, to working in electronic engineering, and eventually building a career in WordPress and small business tech support. With a background in field service, sales, and running retail businesses, Charly pivoted to helping people with their websites and tech needs right around the time WordPress was in its infancy. Today, nearly 20 years later, she’s still involved in the WordPress ecosystem, providing troubleshooting, support, and plain-English tech translations for business owners who need their digital lives demystified.

\n\n\n\n

But in this episode, we’re focusing less on her technical skills and more on her unique lifestyle. Charly is a true digital nomad, someone who’s not bound to a fixed address, but instead lives and works from a camper van fitted with a Starlink system, traveling, and working, all over Australia.

\n\n\n\n

We talk about what it was like to embrace remote working long before it was commonplace, and how she built a business that supports complete flexibility. We explore both the upsides of the digital nomad life, the freedom to travel, spend quality time with family, and work from beautiful locations, as well as the tradeoffs, such as limited space and having to ruthlessly prioritise her belongings.

\n\n\n\n

Charly discusses the essential tech setup that empowers her nomadism: from laptops and microphones to how Starlink satellite internet lets her work reliably from almost anywhere, even in places with little or no mobile signal. There’s practical advice on working with clients, so support can happen on her schedule, and reflections on building a business that matches her values, even if it sometimes means saying goodbye to clients who aren’t the right fit.

\n\n\n\n

If you’ve ever imagined trading your desk for the open road, or wondered what’s technologically and personally possible as a remote WordPress worker, this episode is for you.

\n\n\n\n

Useful links

\n\n\n\n

Charly’s website

\n\n\n\n

Charly can be found on the following platforms:

\n\n\n\n\n\n\n\n

Starlink

\n\n\n\n

Charly’s podcast

\";s: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, 28 Jan 2026 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:\"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:5;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:46:\"HeroPress: How Art School Led Me To Web Design\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:56:\"https://heropress.com/?post_type=heropress-essays&p=8325\";s: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:144:\"https://heropress.com/essays/how-art-school-led-me-to-web-design/#utm_source=rss&utm_medium=rss&utm_campaign=how-art-school-led-me-to-web-design\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:14108:\"\"Pull
\n
Here is Emily reading her own story aloud.
\n
\n\n\n\n\n

There are two, possibly conflicting, values inherent to my work and general enjoyment of life – collaboration and autonomy.

\n\n\n\n

My background is in fine art. I studied painting in Chicago and New York in the mid-90s. I very much saw the web as another pliant artistic medium to work with, as well as a non-traditional way to show my artwork (since I didn’t have gallery representation). I created fun websites for myself, cropping my photographs for backgrounds and custom buttons, assembling content within tables, interviewing inanimate objects and making animated GIFs. And, yes, I did display an animated hit-counter and a “Built for Netscape Navigator” badge – if that helps you visualize this cacophony.

\n\n\n\n

Living in capitalism, I was also governed by self-interest. I thought I might apply my creative abilities to the earning of a living wage since being a “professional artist” seemed to involve more social skills and luck than I could depend on.

\n\n\n\n

Checking Out The Web

\n\n\n\n

Aside from one class I took in college that covered HTML5 and Macromedia Director, I mostly taught myself by reading books by Lynda Weinman and Peachpit Press and building things. Learning HTML then, and later CSS, was powerful and a much more accessible entry point for a person like me – not especially technical but able to endure lots of trial and error to figure out how to make things work (eventually).

\n\n\n\n
\n

After graduating, I did not get a job at a prestigious design firm.

\n
\n\n\n\n

I was a terrible designer and I didn’t know how to dress or behave in a corporate environment. I probably still don’t. Instead, I waited tables and made websites for friends and fellow artists. After a few years of this, I started to wonder what I was doing with my life and whether I would ever be an artist myself. I volunteered to work with a small neighborhood arts group. I knew they needed a website, so I made one and later worked with a local web development company to migrate it to their proprietary CMS for our volunteer group. Finding I had an aptitude for coordinating people, creating content, and assembling something from nothing – being a web designer began to glimmer as a possibility in the back of my mind. I thought about pursuing arts administration but while at a nonprofit bootcamp had the epiphany that I needed to do my own art and not just support other artists. (Aside: This was to become the underlying struggle of my adult life, #WIP.)

\n\n\n\n

Moving On

\n\n\n\n

Back to waiting tables, I built a few more sites for friends who had started their own businesses. These early sites were all made with HTML, CSS, and a sprinkle of JavaScript. After a few projects, I began to realize that if I had to be the master of all content, I would quickly max out my capacity to take on new work. This was around 2010. I had recently met another web designer who lived near me in Chicago – Becky Davis. Becky also ran the Chicago WordPress MeetUp and, through her, I started my journey into WordPress theme development. I purchased “Digging into WordPress,” the non-official WordPress manual created by Chris Coyier and Jeff Starr. What could go wrong?

\n\n\n\n
\n

Learning a new technology came with its own challenges.

\n
\n\n\n\n

I landed my first non-friend client, hosted them on GoDaddy, and was almost immediately felled by some nefarious exploit. So, I figured out how to resuscitate a hacked site, I learned from bitter experience that I must always (always) have a backup, and I experimented with various commercial themes as I tried to figure out how to build a child theme in this new frontier of PHP code. It’s not as perilous for newbies now; hosts understand how to manage WordPress better and there is a ton of excellent documentation on how to do things (necessary for developing for the complexity and popularity of WordPress today).

\n\n\n\n

Getting A “Real” Job

\n\n\n\n

I worked on my own, slowly building up a business that supported me, but I felt that I was hitting a capacity ceiling again. This time, PHP programming was the biggest challenge. In 2015, I decided I was going to get a “real” job. My hope was that within a company, I would work directly with “real” programmers and develop my skills. I put “real” in quote marks because – people are just people, with flaws and failures like anyone else. Being a freelancer isn’t a “not real” job. There’s just pros and cons to each situation.

\n\n\n\n
\n

Also, even real programmers don’t understand semantic HTML or CSS.

\n
\n\n\n\n

The only designer on a very small team with remote developers, I was still working with clients and building websites with little direction. My work hadn’t really changed; I just had more pressure and no capacity to choose what projects I wanted to work on. I listened to lots of podcasts during this time – mainly Jeffrey Zeldman’s The Big Web Show, Jen Simmons’ The Web Ahead, Jason Ogle’s User Defenders – these inspired me with what was possible and what was important. I wasn’t finding this meaning in my day to day work however and that was a problem for me.

\n\n\n\n

Back To My Roots

\n\n\n\n

One day, walking back from the neighborhood grocery store, I saw a storefront for rent. It had high ceilings, big front windows and lots of wall space. Sure, the main view was a giant empty lot but this felt like an opportunity to reclaim some of that autonomy I was missing and maybe pursue my artwork again. I gave notice at my job and invested some of my savings into renting the commercial space.

\n\n\n\n

From 2018 to 2022 I ran the storefront as a gallery showing emerging artists as well as my own work. I hosted artist talks, local musicians, and generally interfaced with the public. I also rebuilt my web design business in order to support this financially unprofitable venture. Though enjoyable, especially curating, I learned that running a gallery is also marketing, sales, writing, public speaking, and lots of people management.

\n\n\n\n
\n

So, I had effectively given myself two challenging jobs for the price of one with still less time to make my own art.

\n
\n\n\n\n
\n

\n
\n\n\n\n

Although I wasn’t painting as much as I wanted to, in my web development work, I found that I had learned something working at a design firm with other developers after all. I no longer relied on commercial builder themes. I was coding custom themes with Underscores – albeit haltingly, with many Google searches. I started to follow more WordPress folks on the now extant Twitter, people like Aurooba Ahmed, Fränk Klein, Carolina Nymark, Nick Diego, Brian Coords, Birgit Pauli-Haack and many others. I was staying current on WordPress news and through the conversations online, felt more a part of a community than I ever had at my former job.

\n\n\n\n

Refocusing

\n\n\n\n

By March 2020, the pandemic mostly meant the gallery was closed. I couldn’t host public events. Without openings, there weren’t as many sales. Lots of neighborhood businesses closed. The vacant lot across the street that had promised to be a new apartment building remained a weedy lot with half-finished cement foundations and an increasingly elaborate display of graffiti. In 2022, the building I was renting space in was sold. I decided it was time to retrench. I went back to my home office and focused on web development work.

\n\n\n\n

When Jonathan Bossenger tweeted that he was looking for a designer to provide a block theme that he could code up in a tutorial, I eagerly volunteered. It was still early days for block themes and they required a big mental shift from PHP development. A lot of traditional developers were unhappy and vocal about it. Although we didn’t complete the block theme project, it was exciting to connect with people in WordPress in other parts of the world and to feel that we were all invested in learning together. I’d like to try to build that theme at some point – I mean, I got the domain so I have to, right?

\n\n\n\n

For a few years, I kept to a hybrid theme approach, adding theme.json to a custom Underscore theme.

\n\n\n\n
\n

I teetered on the edge of going for a pure block theme up until last year. Now, I believe it’s absolutely doable even for complex websites.

\n
\n\n\n\n

With block themes, I can now set aside the several, weighty PHP books I had intended to study, and remain a generalist. If my development / Googling time is reduced, I can explore other aspects of web design that are interesting and fulfilling to me – like content strategy and web accessibility.

\n\n\n\n

Where I Go From Here

\n\n\n\n

WordPress has enabled me to build a career for myself and to wholly determine my own path. It’s also, as self-employment options go, relatively profitable. The overhead is low, there’s a lot of avenues to follow a specific interest or stay broad, collaboration opportunities, and above all to keep learning (if you’re into that).

\n\n\n\n

Web design and development in 2009 was different then it is in 2026.

\n\n\n\n
\n

I’m not sure I could do today what I was able to do 20 years ago as a mostly non-technical person.

\n
\n\n\n\n

Node, build processes, GitHub, tech bros, (not that those things are synonymous) are a little off-putting. The best way to learn is to do and, if there are too many prerequisites, you don’t.

\n\n\n\n

But, WordPress is large and contains multitudes. The majority of people I’ve met through WordPress genuinely care about what they are building, why, and for whom. The open web is about inclusion, connection, and community – so, whether you are writing a blog post, contributing to a theme or plugin, or volunteering for WordPress in some way, everything we do matters. That cumulative effort is tangible and it’s a unique element of what WordPress is at its essence.

\n\n\n
\n\n
\n

Emily’s Work Environment

\n\n\n\n

We asked Emily for a view into her development life and this is what she sent!

\n\n\n
\n \"Emily\n
\n\n\n\n\n

HeroPress would like to thank Draw Attention for their donation of the plugin to make this interactive image!

\n
\n\n
\n\n

The post How Art School Led Me To Web Design 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, 28 Jan 2026 13:42: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:13:\"Emily Rapport\";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:73:\"Open Channels FM: How WooCommerce’s Open Source Model Spawns 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=114271\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:77:\"https://openchannels.fm/how-woocommerces-open-source-model-spawns-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:168:\"Looking at WooCommerce’s open source nature, we learn how community contributions drive innovation, foster flexibility, and ensure collaborative growth in ecommerce.\";s: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, 28 Jan 2026 09:35: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:7;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:75:\"Open Channels FM: Fostering a Culture of Positive Learning in Accessibility\";s: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=114143\";s: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://openchannels.fm/fostering-a-culture-of-positive-learning-in-accessibility/\";s: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:232:\"Accessibility in digital design should be an engaging process, fostering a supportive learning culture. When approached with empathy, it transforms obligation into enthusiasm, promoting effective learning and advocacy for inclusion.\";s: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 Jan 2026 14:56:44 +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: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:65:\"Open Channels FM: Underfunded PHP Tools: A Global Business Threat\";s: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=114701\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:78:\"https://openchannels.fm/how-an-overlooked-php-tool-keeps-the-internet-running/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:231:\"In this episode of Open Web, host Anne chats with Juliette, the sole maintainer of PHP_CodeSniffer. They dive into the challenges of maintaining crucial open-source projects, funding issues, and AI\'s impact on software 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:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 27 Jan 2026 10: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: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:17:\"Matt: What a Week\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=151148\";s: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:34:\"https://ma.tt/2026/01/what-a-week/\";s: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:3576:\"
\n

There are decades where nothing happens, and there are weeks where decades happen

\n
\n\n\n\n

No attribution, but fun Quote Investigator dive.

\n\n\n\n

Sorry for dropping off the daily blogging train; it just turned out to be a week of pleasant surprises and life-changing events. I’ll share with y’all the second-most exciting one. 

\n\n\n\n

I know I’ve been pushing you all to learn the AI coding stuff as deeply as possible, and I have been doing some myself, my favorite a few years ago, a script to count when we had too many words in a presentation slide, but I knew Claude Code was something different and better.

\n\n\n\n

However, I fell into the trap of bookmarking and downloading tens of hours of Claude Code tutorials and not installing the thing itself. And work has been busy! My colleague Dave Martin was hosting an internal livestream. I joined late, then had to leave because an important call came in. I decided to forget it all, throwing caution to the wind, and just install Claude Code and play with it without reading anything.

\n\n\n\n

The next 24-36 hours are a bit of a blur. I haven’t locked into a multi-day coding session fueled by energy drinks, sugar, and cheesy carbs since my early 20s! There were some interruptions for previous commitments, but I basically became addicted to the feeling of that steep learning curve. Every minor annoyance or workflow became an opportunity to create new software in languages I’d never touched before. 

\n\n\n\n

It also really rewired my brain, even in how I talk. (Found myself saying “thinking” after a colleague’s question. \"😂\") I’m thinking about problems in a much more structured manner now, how to divide and chunk tasks, and provide appropriate context and skills. I really do feel like my brain is being terraformed a bit.

\n\n\n\n

So far I’ve written scripts or apps for grabbing daily summaries from my calendar, spinning up new projects and syncing them with Github, switching between Brave tabs better, an app to search and launch Brave tabs quickly…

\n\n\n\n

Did you know that macOS Preview regressed and no longer lets you export a single page of a PDF as an image? I have an app that does that. What do I do with it? Do I open source it? Am I a Mac App developer now? Do I want to support this for other people forever? Should I even put it in source control? Or publish a set of tests and prompts, as Drew Brenig did with whenwords.

\n\n\n\n

It’s a strange and wonderful time to be a lover of software and computers. A little bit of code goes a long way. I’m at a CCL leadership training this week so offline during the days and exhausted at night but I gotta keep all those little bots running.

\";s: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 Jan 2026 08:53:16 +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: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:126:\"Gutenberg Times: AI Experiments, WordPress 7.0, Gutenberg 22.3 and 22.4, Playground for theme builders — Weekend Edition 354\";s: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=44026\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:130:\"https://gutenbergtimes.com/ai-experiments-wordpress-7-0-gutenberg-22-3-and-22-4-playground-for-theme-builders-weekend-edition-354/\";s: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:33252:\"

Hi there!

\n\n\n\n

Yes, it’s been a while. Did you miss me? I hope you and yours had a great start to the new year, and I wish you a healthy, happy and prosperous 2026. I am infinitely grateful you are a reader on this site and newsletter. Thank you for your ongoing support.

\n\n\n\n

My Year-End vacation directly merged into an intensive training and exploration into AI-first software development. It was eye-opening to say the least and entirely liberating. Ideas can be prototyped fairly quickly and their implementation is not stifled by the level of my personal coding skills. Success heavily depends on a clear vision, architectural consistency and radical quality control.

\n\n\n\n

Although there was a downturn in publishing over the holidays, I found a plethora of posts and plugins again. This edition catches up on most of it.

\n\n\n\n

Looking forward to going through our connecting with you in our eighth year of Gutenberg Times.

\n\n\n\n

Yours, \"💕\"
Birgit

\n\n\n\n\n\n

Developing Gutenberg and WordPress

\n\n\n\n

Aaron Jorbin published the WordPress 6.9.1 Release Schedule. RC1 will be next week on January 29, 2026, and the final release on February 3, 2026.

\n\n\n\n

The GitHub project board of WordPress 6.9.x Editor Tasks lists the PRs that will make it into the release in the Done column. Other core updates are available in this trac report.

\n\n\n\n

WordPress 7.0

\n\n\n\n

Jeff Paul announced the WordPress 7.0 release squad, led by Gutenberg’s chief architect Matias Ventura. It’s a team of veterans and newbies spread around the globe.

\n\n\n\n

Rae Morey, The Repository, also reported with more background and details on the state of real-time collaboration feature in her post: Matías Ventura Named WordPress 7.0 Release Lead as Contributors Close In on Real-Time Collaboration Approach

\n\n\n\n
\n\n\n\n

WordPress 7.0 will run your post editor inside an iframe by default, so now’s the time to test your blocks for compatibility. If you’re still registering blocks with apiVersion 2, you’ll start seeing console warnings in WordPress 6.9. The main gotcha: your document and window references won’t work inside an iframe. You’ll need to switch to useRefEffect with ownerDocument and defaultView instead of globals. You can find more details in the official migration guide.

\n\n\n\n

In his post WordPress 7.0 Enforces Block API v3: Why Existing Blocks Begin to Fail, Benjamin Zekavica, core-team rep, also provides some tips and Tricks. Custom blocks that target admin selectors like .wp-admin or .editor-styles-wrapper, rely on global document queries, or initialize libraries globally and now fail consistently. Reading through the article, it seems this is mostly related to agency work, with bespoke theme and block development on sites of the early block era.

\n\n\n\n

Gutenberg releases

\n\n\n\n

Gutenberg 22.3 and 22.4 have been released.

\n\n\n\n

Hector Prieto highlights in his release post Gutenberg 22.3 (December 17)

\n\n\n\n\n\n\n\n

JuanMa Garrido led the 22.4 release together with Anne McCarthy and they had to tame quite a large changelog with more than 400 PRs merged by 77 contributors, of whom 16 were first-timers! It must have been difficult to pick the top highlights for their release post What’s new in Gutenberg 22.4? (20 January):

\n\n\n\n\n\n\n\n
\n\n\n\n
\n

\"🎙\" The latest episode is Gutenberg Changelog #125 – WordPress 6.9, Gutenberg 22.1 and Gutenberg 22.2 with JC Palmes, WebDev Studios

\n\n\n\n
\"Gutenberg
\n\n\n
\n
\n\n
\n
\n\n\n\n

Justin Tadlock‘s January developer roundup covers new responsive Grid blocks with adjustable columns and widths, an easy-to-use Fonts admin screen, and experimental PHP-only block registration with full metadata. New tools include an image cropper and an updated Abilities API client. The Breadcrumbs block is on track for WordPress 7.0, and Navigation overlay tests are allowing template part assignments. Playground now features a DevTools extension and a new dashboard interface.

\n\n\n\n

Plugins, Themes, and Tools for #nocode site builders and owners

\n\n\n\n

If you’ve ever watched a client accidentally drag your carefully crafted block layout into chaos, Eric Karkovack has your back. In his guide on How to Protect WordPress Block Layouts From Accidental Changes he walks you through two built-in WordPress safeguards: save your layouts as exportable block patterns you can restore anytime, then use the Lock feature to let clients update content without rearranging your design. You can even lock entire Group blocks at once for extra security.

\n\n\n\n
\n\n\n\n

Wes Theron demonstrates the Details block for WordPress, showcasing how you can create collapsible sections perfect for FAQs, definitions, transcripts, and supplemental content. The tutorial covers inserting the block, navigating with List View, and customization options for keeping pages organized and tidy. Theron walks through practical examples showing how the accordion-style functionality helps hide and reveal content on demand, offering a native WordPress solution for managing long explanations without cluttering the page layout.

\n\n\n
\n
\n\n
\n
\n\n\n
\n\n\n\n

Matthew Cowan released Find Blocks, Patterns & Shortcodes, a plugin that helps users locate Gutenberg blocks on WordPress sites and allows CSV export for content audits. The tool includes batch processing, post-type filtering, synced pattern searches, and WP-CLI support, with sortable results tables. It also features security measures like rate limiting and XSS prevention, and improves accessibility for screen readers and keyboard navigation.

\n\n\n\n
\n\n\n\n

In his post How to create magic effects in WordPress with core blocks, Joel Olawanle demonstrates creating cinematic effects using only WordPress core blocks, focusing on the Cover block’s layering capabilities. In his tutorial, Olawanle covers fixed backgrounds for parallax simulation, scroll snap with minimal CSS, creative typography using duotone filters and blend modes, and multi-layered depth through nested Group blocks. Olawanle emphasizes building premium visuals while maintaining performance through native blocks, avoiding heavy page builders and keeping sites lightweight, accessible, and fast.

\n\n\n\n
\n\n\n\n

Matt Cromwell created the Synced Pattern Popups plugin, which turns WordPress’s reusable synced patterns into modal popups that load content with AJAX and use smart caching. Triggers can be activated using simple class or href attributes, and third-party blocks display correctly with good styling. The plugin supports accessibility with keyboard navigation and ARIA support, has an optional AI-powered summary feature, and works with WordPress 6.9’s Abilities API for automated workflows—all without any setup needed.

\n\n\n\n
\n\n\n\n

Justin Tadlock‘s Media Data plugin reveals hidden information from uploaded files—like camera settings, audio tags, and video codecs—through easy-to-use editor blocks that need no coding. Photographers can show exposure details below images, podcasters can add artist info next to players, and archivists can log file sizes and lengths, all using WordPress’s existing metadata with customizable labels and complete block theme integration. Users of WordPress 6.9 also benefit from Block Bindings support for improved workflows.

\n\n\n\n
\n\n\n\n

Troy Chaplin‘s Priority Plus Navigation plugin enhances the core Navigation block by managing menu items more efficiently. When space is limited, it moves items into a dropdown for better accessibility. Using ResizeObserver, it monitors width and changes submenus into a “More” dropdown while following core overlay settings. The plugin fully supports theme.json for customizing dropdown styles, hover effects, and separators, and ensures keyboard navigation and screen reader compatibility.

\n\n\n\n
\n\n\n\n

Kadim Gültekin created Block Style Modifiers plugin to enhance Gutenberg’s block styles with additional CSS classes that can layer together. Developers can easily add modifiers for specific blocks or globally using simple PHP functions and can reorder these classes in the editor sidebar. An experimental companion pack showcases hover effects, responsive utilities, and overlay treatments.

\n\n\n\n
\n\n\n\n

In his post, Bernhard Kau presents his Campaign Archive Block plugin, which fixes Mailchimp’s complicated archive problem by creating dynamic API-driven listings instead of manual archives. Annoyed with Mailchimp’s clunky JavaScript and formatting issues, Kau developed a plugin that automatically pulls archives and can share API credentials with other Mailchimp plugins. Users can set the display count, choose between title and subject, and include sender metadata, reducing the need for manual updates after sending emails.

\n\n\n\n
\n\n\n\n

Johanne Courtright released Groundworx Core 1.3.0 with Dynamic Flow, a query-powered carousel filtering posts by taxonomy or keywords with curated mode for manual selection, Static Flow for building custom slide carousels with any blocks and media pause controls, and Featured Posts displaying content in responsive grids. The update adds responsive breakpoint systems across layouts, block transforms between post disp

\n\n\n\n

Theme Development for Full Site Editing and Blocks

\n\n\n\n

In my latest post, I show how WordPress Playground Blueprints turn theme demos from basic setups into fully functional sites in a browser. Developers create demo content locally, export it, and host assets on GitHub to avoid CORS issues. They then make JSON files that define installation steps, including content import and site setup. The WordPress Importer automatically resizes media and updates URLs. Using this method theme builders can share links that launch complete working demos with sample content, navigation, and settings preserved.

\n\n\n\n
\n\n\n\n

On the Developer Blog, you can read my article Streamlining block theme development with WordPress Playground and GitHub, where I explained a simple workflow using WordPress Playground, the Create Block Theme plugin, and GitHub to connect visual design with version control. Designers can work entirely within browser-based Playground instances, using CBT’s Save Changes to update theme files and submit pull requests to GitHub—without needing to use a terminal or code editor. This method makes it easier for anyone to work on block themes while upholding professional development standards. It’s the blog post to the presentation I gave at WordCamp Gdynia last September. The video is now available on WordPressTV.

\n\n\n\n
\n\n\n

“Keeping up with Gutenberg – Index 2025”
A chronological list of the WordPress Make Blog posts from various teams involved in Gutenberg development: Design, Theme Review Team, Core Editor, Core JS, Core CSS, Test, and Meta team from Jan. 2024 on. Updated by yours truly. 

\n\n

The previous years are also available:
2020 | 2021 | 2022 | 2023 | 2024

\n\n\n

Building Blocks and Tools for the Block editor

\n\n\n\n

Carlo Daniele explores the Block Bindings API for Kinsta, demonstrating how to connect external data sources to Gutenberg blocks. The tutorial walks you through registering custom binding sources, fetching weather data from Open-Meteo API, and creating a UI for custom sources introduced in WordPress 6.9. Daniele builds a practical example binding temperature and conditions to Paragraph blocks, showcasing how the API transforms WordPress into a dynamic application platform beyond traditional blogging.

\n\n\n\n
\n\n\n\n

Ian Svoboda helps developers with creating custom blocks using the create-block package. He covers static and dynamic rendering options and explains important files like block.json, edit.js, and save.js. In his tutorial, he builds a dismissible Notice block, outlines naming conventions for assets in the editor and frontend, and demonstrates automatic block registration with glob pattern matching. Developers need local environments and build tools like wordpress/scripts or 10up-toolkit.

\n\n\n\n
\n\n\n\n

In his last week’s live stream, Ryan Welcher went fully into PHP mode and build Custom WordPress Blocks WITHOUT JavaScript. The Gutenberg plugin now also entails a PHP-only block API in version 22.2 and refined in 22.3. Check out the video and see how it all works.

\n\n\n
\n
\n\n
\n
\n\n\n
\n\n\n\n

Paulo Carvajal published a comprehensive guide on managing Interactivity API state flow for large-scale WordPress applications. You’ll learn the three foundational pillars: Global State for page-wide data, Local Context for component isolation, and Derived State for reactive consistency. You also learn unidirectional data patterns, asynchronous actions with withSyncEvent, store namespacing, and server-side hydration strategies to help you build performant enterprise projects.

\n\n\n\n

WordPress and AI

\n\n\n\n

In his latest video, Jonathan Bossenger discussed recent AI-related news in WordPress, including the Plugin Check Namer tool for evaluating plugin names and the introduction of the Abilities API JavaScript client in Gutenberg. He also showcased the AI Experiments plugin and WP Bench for evaluating the AI capabilities in WordPress development.

\n\n\n
\n
\n\n
\n
\n\n\n
\n\n\n\n

As James Le Page announced on X, the AI Experiments plugin has received significant updates that include AI-powered excerpt generation fully integrated with the editor, along with a new Abilities Explorer admin screen for viewing registered AI features. The backend now supports Content Summarization and Image Generation experiments, which are pending UI development. Additionally, documentation and onboarding materials were improved, and WordPress Playground preview support was added to streamline workflows, allowing developers to test changes directly from pull requests.

\n\n\n\n

Ray Morey has the skinny for you here: AI Experiments 0.2.0 Adds Excerpt Generation and Abilities Explorer

\n\n\n\n
\n\n\n\n

WordVell‘s editorial team examined fourteen practical MCP implementations changing WordPress and WooCommerce workflows from manual tasks to AI-driven automation. This protocol allows natural language commands, such as “publish this post,” to be executed instantly via servers like InstaWP, OttoKit, and n8n. Use cases include AI-driven content creation with SEO, automating admin tasks across sites, product search conversations, personalized customization, and guided checkout experiences.

\n\n\n\n
\n\n\n\n

James Le Page also announced WP-Bench, a benchmark that measures how well language models understand WordPress development. This tool assesses models on WordPress APIs, hooks, security patterns, and features like the Abilities API while testing code in a secure WordPress environment. The goal is to set a standard evaluation for AI providers, encouraging them to improve for WordPress’s many developers.

\n\n\n\n
\n\n\n\n

David Levine, a senior software engineer at rtCamp, explained in the article Beyond AI: What the Abilities API means for WordPress Composability that the new Abilities API allows developers to register specific “abilities” using a clear, machine-readable format. This approach replaces scattered hooks and custom REST endpoints, making plugins and core features more composable. It helps third-party code integrate easily without needing extensive knowledge of internal functions. The API also allows AI and automated tools to find and use capabilities automatically, leading to a more modular and future-ready WordPress ecosystem while maintaining backward compatibility for gradual changes.

\n\n\n

Need a plugin .zip from Gutenberg’s master branch?
Gutenberg Times provides daily build for testing and review.

\n\n
\"\"
\n\n

Now also available via WordPress Playground. There is no need for a test site locally or on a server. Have you been using it? Email me with your experience.

\n\n\n
\n\n\n\n

Questions? Suggestions? Ideas?
Don’t hesitate to send them via email or
send me a message on WordPress Slack or Twitter @bph.

\n\n\n\n
\n\n\n\n

For questions to be answered on the Gutenberg Changelog,
send them to changelog@gutenbergtimes.com

\n\n\n

\n\n

Featured Image: Ai generated.

\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:\"Sat, 24 Jan 2026 06:05:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:18:\"Birgit Pauli-Haack\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i: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:39:\"Open Channels FM: It’s Okay to Let Go\";s: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=114519\";s: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:48:\"https://openchannels.fm/when-its-time-to-let-go/\";s: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:156:\"Being a creator also means there are many times where it\'s tough to let go of ideas or even businesses. You need to figure out that sweet spot for yourself.\";s: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, 23 Jan 2026 12: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:12;a:6:{s:4:\"data\";s:21:\"\n \n \n \n \n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:93:\"Open Channels FM: Growing Agency Success with People-Centric Values and Open Source Education\";s: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=114458\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:100:\"https://openchannels.fm/growing-agency-success-with-people-centric-values-and-open-source-education/\";s: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 this episode, Anne Bovelett chats with Rahul Bansal and Aviral Mittal from rtCamp, highlighting the agency\'s growth since 2009, commitment to accessibility, and innovative training programs 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:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 22 Jan 2026 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:13;a:6:{s:4:\"data\";s:21:\"\n \n \n \n \n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:81:\"WPTavern: #201 – Marc Benzakein on How Life Has Changed During the Internet Era\";s: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=202326\";s: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://wptavern.com/podcast/201-marc-benzakein-on-how-life-has-changed-during-the-internet-era\";s: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:66612:\"
Transcript
\n

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

\n\n\n\n

Jukebox is a podcast which is dedicated to all things WordPress, the people, the events, the plugins, the blocks, the themes, and in this case how life has changed during the internet era.

\n\n\n\n

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

\n\n\n\n

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

\n\n\n\n

So on the podcast today, we have Marc Benzakein. Marc’s story is one that spans nearly the entire history of the internet, with roots reaching back to the mid nineties. He explores, how curiosity and an enthusiastic embrace of technology led him from running a small coffee importing business, accepting payments by snail mail, fax, then email, to helping wire up schools for internet access when modems worked incredibly slowly, and only a handful of people were online.

\n\n\n\n

This episode is a departure from our usual topic about plugins, themes, and WordPress community news. Instead, we are more in the business of reminiscing this week, taking a reflective walk down memory lane to look at how the internet has evolved, not just as a technology, but as an integral part of society that’s transformed how we work, communicate, and think.

\n\n\n\n

Marc shares some personal stories, building bulletin board systems, forging long distance friendships over phone lines and slow modems, and watching as internet access shifted from an intentional, difficult to navigate hobby for a few, to an invisible always on utility that we all take for granted.

\n\n\n\n

We talk about how technology has affected not only business and productivity, often creating more work instead of less, but also our attention spans, expectations around entertainment, the pace of life, and even the social fabric that binds us together.

\n\n\n\n

We discuss the cultural shifts that came with always connected living, digital minimalism, and the recent push by younger generations to step back from tech and reclaim a bit of analog life.

\n\n\n\n

We chat about the early optimism of open standards, the rise of walled gardens and social networks, and the challenges of regulation, commercialisation, and the balancing act between freedom and responsibility online.

\n\n\n\n

Marc’s perspective is shaped by decades of direct technical experience, as well as thoughtful observations of how technology is reshaping the world around us, sometimes for the better, sometimes in ways we need to pause and question.

\n\n\n\n

Whether you are nostalgic for the old days of dial up, intrigued by how the internet’s culture has shifted, or curious about how these transformations might play out as new technologies like AI reshape society, this episode is for you.

\n\n\n\n

If 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\n

And so without further delay, I bring you Marc Benzakein.

\n\n\n\n

I am joined on the podcast by Marc Benzakein. Hello, Marc.

\n\n\n\n

[00:03:44] Marc Benzakein: Hello, Nathan. How are you?

\n\n\n\n

[00:03:45] Nathan Wrigley: Yeah, good. This is going to be an episode unlike one I think we’ve ever done on the WP Tavern podcast. Because usually we have a conversation about, I don’t know, a plugin, a theme, a community idea, something along those lines. And today we’re just going to do memory lane. We’re going to go hand in hand down memory lane.

\n\n\n\n

I think Marc’s memory lane is a little bit longer than my memory lane because it’s all about the internet and the way we’ve been using it and how it’s evolved and all of that. So if you’ve got an expectation of a plugin show, this is not the one for you. This is going to be a little bit different.

\n\n\n\n

So before we crack in properly and have that conversation, Marc, would you just sort of paint the picture a little bit about your bio? Maybe go back right to the beginning of your experiences on the internet. When did you first get online and all that kind of stuff?

\n\n\n\n

[00:04:30] Marc Benzakein: So I want to go back to, I think it was 1995 or 1996. There was a, of course people hear about, and it still exists, AOL and things like that. And then there was Prodigy. I got involved as a user of the internet with a company called Netcom. And it was kind of one of the first true internet service providers that I knew of at the time. It wasn’t like, it didn’t have like this interface and kind of guide you through where you needed to go and everything. You had to use things like Gopher, and you had to do research in order to be able to use the internet.

\n\n\n\n

I of course, became fascinated with it always being a, kind of a tech head or just curious. I’m just infinitely curious. It doesn’t really matter, it doesn’t have to be technology. It can be anything and I find it, like I said, I’m infinitely curious and that leads to distractions sometimes, but it also leads me down paths that I never would’ve thought.

\n\n\n\n

And while I was working on the internet, so this was at a time that I was actually importing coffee from Africa. So yeah, so related. So related. And I had actually made some pretty good money with the coffee business. I was doing the email thing. I had like my three friends who had email addresses and we were like, oh, this is cool. Look at this, instant gratification. And I thought, man, it sure would be cool to see what this looks like from the other side of things. Because I have no clue how any of this works.

\n\n\n\n

And so curious thing happened with the coffee company. I was importing from a country called Burundi in Africa. Some people know where it is, some people don’t. I actually never visited, but my uncle was actually a big shot in the agriculture department there which is how I had the connection to be able to import coffee into the United States. They had a lot of civil and political unrest, and essentially burned the coffee fields. And my uncle fled the country because it had become so dangerous.

\n\n\n\n

So one day I’m, basically I had set up a system in which I import the coffee, it goes to a distributor. Once a month I would go out to the mailbox and collect a cheque. And that was my job. It was the easiest thing I ever did, once I got the system built. And so, lo and behold, civil unrest and all that, which was just awful by the way, but I’m out of business because I can’t import coffee from Burundi. And I was really young, and probably not smart enough to think, maybe I should back this up with other countries too.

\n\n\n\n

But coincidentally, a person that I had gone to high school with, they built computers for schools and things like that, so they had some government contracts and things like that. And they had this crazy idea that they wanted to connect schools to the internet. And they wanted to give them high speed access. Now, keep in mind that back in these days we’re talking about 14.4K, it was, well, we thought it was fast at the time. You know, you had US robotics with their HST standard. And we thought that we were doing well, but most people were actually on 24 hundreds back then.

\n\n\n\n

So if you can imagine that, 2,400 baud modems. I remember it like it was a meal ago. I mean it was just crazy. And so now, I was like importing coffee and I was trying to figure out what to do next and Greg Franklin, who I have partnered with since like the eighties, we’ve been through a lot. We were partners at ServerPress. We’ve been through it all. He and I, you know, we were always good friends. And he says, hey, I’m going to work with Phil and Steve on this internet thing, and it’d be kind of cool if you help me out because I have no clue what I’m doing. I’m like, well, I have no clue what I’m doing either. And he said, yeah, but between the two of us, we can figure it out.

\n\n\n\n

So the idea was, they had already set up, Phil and Steve, who were the other partners in this company, they had set up digital ISDN access. Now, ISDN, let’s see, what did that stand for? Something, something, digital network.

\n\n\n\n

[00:08:32] Nathan Wrigley: I can’t remember what the acronym stood for, but it was banded around a lot, I remember that.

\n\n\n\n

[00:08:36] Marc Benzakein: Yeah. And what made it fantastic was you had a modem, okay, but it was kind of on demand. So when your computer sent out a network request that was outside of your internal network, which nobody had home internal networks back then. You know, if they had a computer, that was it, right? Back then, internal networks were things like, there was like LANtastic was one of them, and then there was Novell networking and all that stuff. So it was like that token ring network stuff, right? Okay. So you have to go way back, right? So I can’t believe I’m remembering some of these terms because it’s been so long.

\n\n\n\n

[00:09:11] Nathan Wrigley: Yeah, I remember all of the ways that they could be connected. I remember seeing the, you know, you’d read through TCP IP documentation and there’d be diagrams of computers connected with T cables all in circles because that was the most efficient way to connect them all. Oh gosh, you’ve taken me back.

\n\n\n\n

[00:09:26] Marc Benzakein: It wasn’t just the most efficient way, it was, if any part of that ring broke, the whole network broke down. You had have it, you know? So this concept of plugging into a switch or a router or something like that was like completely, pardon the pun, but completely novel. Not Novell, novel.

\n\n\n\n

[00:09:45] Nathan Wrigley: Novell, yeah, very good. Very good.

\n\n\n\n

[00:09:48] Marc Benzakein: So I built a lot of token ring systems for local businesses and things like that, but nobody had a network at home. They generally, at most had one computer at home. And when they wanted to go online, I should go back even before that, I used to run a bulletin board service, a BBS, which was even more ridiculous than a 2,400 baud modem.

\n\n\n\n

[00:10:11] Nathan Wrigley: This was when there were like three people in the United States online.

\n\n\n\n

[00:10:14] Marc Benzakein: Yeah. And essentially I would have my computer, I was living in an apartment at the time. I would have my computer set up and only one person could connect at a time to my computer, which was set up with this BBS software on it. And they would play games. I had downloads of different files and things like that. I was the first BBS in our region to have a one gigabyte SCSI hard drive. And so I became very, obviously my BBS became very popular, not because I offered anything incredible, but because I had a one gigabyte hard drive.

\n\n\n\n

[00:10:47] Nathan Wrigley: Yeah, you had the badge of honor.

\n\n\n\n

[00:10:48] Marc Benzakein: Yeah. And word spread quickly and all that. In the old fashioned ways, which was carrier pigeons and things like that.

\n\n\n\n

[00:10:53] Nathan Wrigley: That’s right. There was no, yeah, or the bulletin board.

\n\n\n\n

[00:10:57] Marc Benzakein: Yeah, or the bulletin, yeah. And I think that was probably where I got kind of this taste of like how cool it could be because I would modify my own stuff. So I would, we used a bulletin board software called WWIV. It was all C++ coded. And there was this guy that somehow I found, I don’t even know, in Virginia. His name was Tony. And he and I got to be really good friends because he ran a bulletin board system too in Virginia and I’m in California. And we would get on phone calls, long distance mind you. If you remember what long distance was.

\n\n\n\n

We would talk for hours and this guy was one of the funniest guys I’ve ever met. I mean we would, he would just call me up to tell me, we got to the point where he’d just call me up to tell me jokes and we would just laugh for hours. But he was in the military. He worked on the helicopters that flew George Bush senior around. He was in the Marines.

\n\n\n\n

And we met up one time because he flew out to California. But that’s a whole side story. So that’s where I got started. And then I invested in a US Robotics 14.4 HST modem. So I could do, yeah, 14,400K per second, which was like, I don’t know what the time of $500 modem or something ridiculous like that.

\n\n\n\n

[00:12:10] Nathan Wrigley: Yeah, you’ve suddenly taken your computer onto the highway instead of being stuck on back lanes.

\n\n\n\n

[00:12:16] Marc Benzakein: Right. So not only did I have my one gigabyte SCSI drive, but I also had high speed BBS connection.

\n\n\n\n

[00:12:23] Nathan Wrigley: You got all the bling that you can have.

\n\n\n\n

[00:12:26] Marc Benzakein: I had all the bling on my 286 computer. It might have been a 486, I don’t know. I don’t remember the computer. But what was funny was like you would sit there, we’d be watching TV and I’d hear my modem go off because someone would be connecting to the BBS. I would drop what I was doing just so that I could go and see what they were doing, right? Because at my end I could see everything that people were doing, so on top of it all. That was probably my foray into the internet, even though I didn’t realise it at the time.

\n\n\n\n

[00:12:53] Nathan Wrigley: Although for a proportion of the listeners, they’ll be kind of nodding their head and going, oh yeah, all of the things that you described make perfect sense. I guess for a significant proportion of the audience, all of this will sort of sound like a mystery. But hopefully you’ll have got some impression, deal listener, the internet as we now know it, where it’s ubiquitous, it really is everywhere. You know, you’ve got a connection if you’re walking down the street with your cellular network and what have you.

\n\n\n\n

In the part of the world, certainly where I live, and I imagine where you live, there’s no real black spot where the internet does not really exist. And everything’s really straightforward. You buy a device from a shop, turn it on and it connects almost immediately. And yet that really wasn’t the case. It was kind of like more pioneering days. Most things didn’t work, but it was a heck of a lot of fun, and a heck of a lot hobbying. So more of actually. Now that I think about it, that’s the best way to phrase it. It was a hobby, things to do.

\n\n\n\n

[00:13:48] Marc Benzakein: It absolutely was a hobby. Very few of us actually had, well, I don’t think any of us had the foresight that the internet would become what it is right now. At least none of the people in my circles. I think it was, it would be the equivalent of like being a Ham radio operator. You know, it’s kind of the same sort of thing. You kind of felt like you were part of this like little elite group of people who understood how it worked and could make it work, and it made you feel special. And for those of us who grew up kind of being that nerd in high school and things like that, and especially back in the seventies and eighties when, I mean I went to school, there were only three people who even knew how to use a keyboard on a computer. And of course we, I mean they made a fricking movie called Revenge of the Nerds. They made fun of us.

\n\n\n\n

It’s amazing that we haven’t had, well, I think a lot of us have had to go through years and years and years of therapy. And I think that I just probably deflected a lot of that sort of treatment of nerds with like a very sharp tongue and a, you know, a very, I would laugh at it and things like that. So that was kind of my coping mechanism probably. And I probably have some trauma from all that that I don’t even remember. But there’s probably something there, but that’s a whole other show. We can talk about that another time.

\n\n\n\n

[00:15:00] Nathan Wrigley: Yeah. So the fact that it was a hobby and also the fact that, so my recollections start a little bit later than yours, but we’re not like a whole decade out of kilter. I think you definitely started at times where I can remember some of that stuff. You certainly got the march on me. But nevertheless, I don’t think in my estimation I had any conception that it would grow beyond a thing that hobbyists did.

\n\n\n\n

So I think it was always going to remain this sort of niche hobby thing. Maybe some sort of place where you would communicate with a handful of people, and that handful of people would be, you know, equally nerdy in the same way that you or I were. But no expectation that it would be adopted en masse. No expectation that every single human being would have some sort of device, either that they’re walking around with or just in their home or anything like that.

\n\n\n\n

And so I think, looking back, I predicted it would just be this hobby thing and would never grow into anything else. And so it was just a bit of a lark, a bit of fun. Something that you’d put away from time, you know, you would set it down, go and do your regular day, then come back. There was no email, nothing like that. So you could safely put it away and then come back to it.

\n\n\n\n

I look back on it very fondly. It’s almost like halcyon days. And so many things that the internet has been connected with, and is connected with now are fabulous, but there’s also a lot of downsides which have come serendipitously along the way as well. Nobody foresaw those either. So I think, like I say, it was sort of halcyon days. Just this notion that it would be, I don’t know, unicorns and rainbows all the way down.

\n\n\n\n

[00:16:33] Marc Benzakein: Right. The closest prediction that I had made back then was I said, you know, one day we are all going to be connected. But I thought it was going to be one of these kind of like, we go on and we intentionally connect with each other, not like we’re always connected all the time kind of thing. Of course I was young and quite the gamer at the time. I said, here’s what’s going to happen is, I predict that one day games will exist where we keep all the files on our own systems, and the only thing that’s being transmitted to each other is just data to like, so we can like play together all at the same time in these games.

\n\n\n\n

That was my prediction and people would laugh at me. And now of course it’s gone way, way, way beyond that. But every once in a while I’m like, see, I told them and I did nothing about it. I just knew it was going to happen and I did nothing about it.

\n\n\n\n

[00:17:20] Nathan Wrigley: I remember when I was at school, sitting in a physics class, and I for some reason got sat next to probably the nerdiest nerd I’ve ever met. I won’t name him, but he is still very nerdy. He really was like on the extreme end of interested in all of this kind of stuff. And I remember we got into a conversation once where he said, do you know what I think is going to happen in the future? I think you’ll be able to, so we still had cathode ray tellies, so you’d turn the tele on, you’d wait for three minutes for the TV to warm up, and then the picture would slowly appear. And that was the level that we were at, and you had to walk over and press a button on the screen if you want to change it between the four channels or three channels that were available in the UK at the time.

\n\n\n\n

[00:18:01] Marc Benzakein: Yeah, the kids were the remotes back in those days.

\n\n\n\n

[00:18:03] Nathan Wrigley: That’s right. We were literally, either that or a big stick that you could try and prod from the sofa. But he said to me, in the future we’ll have televisions that are just connected to computers somehow, and we’ll pick what we want to watch, and we won’t have to just watch what’s provided to us. We’ll be able to say, I’d like that now, and this now, and watch this film now. And he just predicted this future. And I remember sitting there thinking, that’s never going to happen.

\n\n\n\n

Now that’s kind of like the starting gate for children growing up in this era. That’s like the basic provision. If you haven’t got, you know, the computer switched on and the TV and the music and the radio and all of that on demand, yeah, that’s not life, that’s just some sort of poor version of life. It’s so interesting how it’s transformed what we expect.

\n\n\n\n

[00:18:55] Marc Benzakein: It’s funny because, yeah, you hear the kids being like, what do you mean you had to wait till Tuesday night at eight o’clock in order to watch? And if you didn’t see it, you’d miss it completely. What do you mean by that?

\n\n\n\n

[00:19:04] Nathan Wrigley: Yeah. But even map that further back and, you know, you go back a whole generation or a generation and a half prior to you and I, even the notion that you could watch anything on a box in a house, what do you mean, the theater? Somebody brought the theater to your house. Well, yeah, kind of, in a little box. What, they shrunk the people down? How? It’s insane.

\n\n\n\n

And yet, every single generation, this is now the assumption. The technology of the magnitude that we’ve got now, and the complexity that we’ve got now, and the miniaturisation that we’ve got now, this is now the benchmark for the beginning of the next generation. And it’s so interesting watching it happen.

\n\n\n\n

I don’t know what you feel. I’m probably jumping ahead because I want to go back and talk about some of the things which have gone wrong. But what’s your, do you see yourself fully able to engage with all of the new things that are happening?

\n\n\n\n

So we’re in the year, we’re at the very, very end of 2025 and, you know, we’ve got things like AI. We’ve had all sorts of interesting things happening. And I do wonder, for me at least anyway, I do wonder if there’s a point in time where it just races ahead at such a speed that somebody like me really does genuinely struggle to kind of keep up. I don’t know if you’ve got the same intuitions.

\n\n\n\n

[00:20:13] Marc Benzakein: I actually think everybody does. I think that kids do too. I just think that kids are focused, for instance, on what’s important to them. And they’re at a different point in their life, so what’s important to them is not important to us. And so the technology that’s important to them like, say for instance, TikTok or whatever, is just an example, right? I only care about TikTok insofar as, what can it do to boost my brand? Or something like that.

\n\n\n\n

Although it is interesting that kids are interested in boosting their brand on TikTok and they’re kids. But that’s, they may not realise that that’s what they’re doing, but that’s what they’re doing. But as far as technologies go, I think we just tend to use a technology, I think we’ve reached an age where, with the exception of maybe teleportation, we really feel like, if I can think this, we can do this. And so we just kind of like, now we’re just like, okay, I want to do this, what do I have to do in order to do it? Not, that’s impossible. You know, I think we’ve crossed over that hump of things being impossible.

\n\n\n\n

[00:21:15] Nathan Wrigley: I remember sitting in the car with my children. So this is going back several years now. I mean quite, maybe a decade or more. And I remember my child asking to play a certain song on the car radio. I said to him, we don’t have that. And he looked at me and he said, what do you mean we don’t have it? Because the setup that I had in the car still required compact disks. You know, the old CD player. You would put the CD in and so the arrangement of CDs that we had in the car was the available catalog of songs.

\n\n\n\n

But he could not get over, unavailable. What? What do you mean? I mean, genuinely, it was a real moment where he had to think, the song is bound to that round thing. It’s not just coming out of the ether somehow. And that was quite a profound moment for me thinking, wow, your world is a lot bigger than mine, well, smaller and bigger at the same time, but your expectations are so different to what mine were when I grew up.

\n\n\n\n

[00:22:10] Marc Benzakein: I think that, oh, I mean I hate to sound like, oh, kids today, but kids today, I mean they barely know what an iPod is. And how long ago was that? That wasn’t even that long ago. Because it’s like, what, you had to download your music onto this device? Yeah, because it could hold more music than a CD. For us, the iPod was groundbreaking, right? But I remember the first time I could put music on my phone and I was like, oh, this is awesome. I don’t even, once again, I don’t even know why we call them phones anymore. I hardly ever use it to talk to people.

\n\n\n\n

[00:22:38] Nathan Wrigley: Yeah, your pocket computer.

\n\n\n\n

[00:22:40] Marc Benzakein: It’s way more powerful than anything I ever had in the past. I think because kids are in a constant state of having to adapt anyway, that’s just what growing up is, is a constant state of adaptation. I think that it’s easier for them. I do find that I’m a little bit slower or I might be just more selective. I might just be like, you know, this doesn’t interest me. And it may this be like I’m becoming more and more, get off my lawn as I get older. Or it may be that I’ve always, even back when we started the internet service provider, my feeling was that we have all this power at our hands and we are still children when it comes to us as a society and our ability to be responsible.

\n\n\n\n

[00:23:25] Nathan Wrigley: Yeah, that’s a curious insight isn’t it?

\n\n\n\n

[00:23:28] Marc Benzakein: Technology has always been kind of a double-edged sword for me. It’s amazing what you can do, but going back to the coffee days, I remembered how the speed of business changed for me because we had fax machines. And so I would fax to the people in Burundi because we would, coffee would go to auction. I’d have to bid on it and, you know, get the lot and then have it shipped over here. And the next morning I would, you know, because of the time difference, I would send them a fax in my morning and then the next morning I’d have a fax from them.

\n\n\n\n

And we’re talking about not even 10 years ago, everything had to be done by courier and things like that. And it would be days and days and days before you got information or you’d have to make a phone call. And so that was like the first part of, you could sign contracts in a fax machine. And then we got email, which became even more instantaneous. And as a result, going back to like when personal computers came into our homes, a big part of it was, hey, these things, well, you can do in two hours, what you used to be able to do it eight hours.

\n\n\n\n

And I very quickly learned that nobody was working a two hour day once technology came into our homes. In fact, people were not only bringing their work home, but they were working 14 and 16 hour days. And my thought, I was probably 18 or 20 years old, and my thought even at that time was like, we are not responsible enough to have this kind of technology at our fingertips. And I still feel that way. And so I’ve always struggled with this like, we have technology but we do not have the ability to limit ourselves or to discipline ourselves to say, okay, but how much is actually enough here?

\n\n\n\n

[00:25:06] Nathan Wrigley: Do you know? That’s really curious. It’s not something I dwell on a lot, but when you say it, it makes perfect sense. It’s not like the amount of work that we were doing 50 years ago, the amount that needs to be done objectively is the same now than it was then. I don’t think that’s the case. I think the amount of work always fills up the available time.

\n\n\n\n

And so this promise, which has been offered in multiple generations over hundreds of years, you know, you can go back to the industrial revolution or the agricultural revolution, just the idea that the technology will free up time. Clearly it does, but I think it’s true to say that other things occupy that time because there’s an efficiency gained over here. Well, that leaves you a little bit of time to do this extra other task over here. And because everybody’s bound up to the technology, everybody has this available time, which they then fill up. And so the cycle begins.

\n\n\n\n

And in many ways, I feel exactly like you’ve just described. Instead of going from an eight hour day, the fact that we’ve got the technology in our homes and we can check the email during the middle of the night, and so on and so forth, I think it is entirely possible that the workday could be longer now than it ever has been. I mean not for everybody, and not all the time, but it certainly could be.

\n\n\n\n

Curiously, last night I went to, there’s a history society that I attend locally and we had a magic lantern show. And I don’t know if you’ve come across a magic lantern show, but a magic lantern show is, it’s a wooden box with a whole bunch of candles in it. They put painted glass slides in, and some of the painted glass slides, if they manipulate them in a certain way, they can simulate movement, or arms moving around or.

\n\n\n\n

[00:26:41] Marc Benzakein: Yeah, they’re really cool.

\n\n\n\n

[00:26:42] Nathan Wrigley: Yeah, I really was hit by a sense of, that was entertainment. And there was such pleasure and innovation in that. And it’s the same now, right? Along comes the internet and we get the same pleasure out of that. And along comes AI and the next generation will get the same amount of pleasure out of that. But it was also curious to see, and I’m just going to use the word slow, how slow that activity was.

\n\n\n\n

There was a lot of breathing room. There was a lot of space for you to inject your own thoughts. There was a lot of time waiting for the chap to pull out one slide and put the other one in. Whole minutes would go by and nothing would happen. But there was no expectation that, well, we just lost a couple of minutes there.

\n\n\n\n

So I think that’s kind of leading me onto an unexpected consequence of the internet is maybe that we’ve lost the capacity to think in that kind of slow manner, which I really hadn’t parsed it until last night when I saw what entertainment was 150 years ago. And it was so gentle and slow and enormously pleasurable. Once you’d suspended that there’s no CGI, there’s no Tom Cruise there, it’s just a person on a glass slide. But it was absolutely fascinating. It gave me a real window into the pace of life and what that might have been and how that has changed. And it will, I presume, never, that genie will never go back in the box.

\n\n\n\n

[00:28:05] Marc Benzakein: Well, no. I mean it’s impossible for any of that. I mean I can bring it to modern day terms. When you watch or listen to a podcast, do you listen to it at regular speed or do you listen to it at 1.5 or 2?

\n\n\n\n

[00:28:15] Nathan Wrigley: Yeah, there you go. Yeah, most people I think.

\n\n\n\n

[00:28:18] Marc Benzakein: Yeah. If I have a day where I am doing nothing, I even watch my movies now, I watch them at 1.5x or 2x. And it’s crazy because your brain adapts to it very quickly. But then what happens is, if I’ve gone through a whole day of like listening to podcasts or something like that, which I’ll have going on in the background and I have no interaction with people, when I’m done listening to them, it is dreadfully dreadful. I become impatient talking to people because they talk so slowly.

\n\n\n\n

And then I wonder, am I speaking faster than I normally do now because I’ve been listening to this podcast. And I have to reset my brain. And the thing is, I kind of feel like, I have this theory on ADHD, which I definitely have. My theory on ADHD is, there’s this misconception that ADHD is something where you can’t keep your attention on any one thing, which we’re finding out that’s not true. You either hyperfocus or you’re not focused, in simple terms.

\n\n\n\n

And I feel like what it boils down to is a ADHDers have to have 100% of their bandwidth taken up all the time. That’s what it boils down to. So if what I’m working on requires a hundred percent of my bandwidth, I can hyper focus on it and do nothing else. If I don’t then, I’ve got four screens on my computer. I used to have six, but I’ve got four. I’ve pared it down to four and I’ve got something going on on all those screens. If I’m doing something that’s kind of mundane and just, because I have to have that filled all the time.

\n\n\n\n

But I think that as a society, you talked about time, and it’s really kind of a rule of economics, right? You spend what you make. No matter what you’re making, you’re going to spend it all. That’s kind of like this echo. And it’s the same with time. Unless we actually discipline ourselves to say, look, mental health is just as important, so that means downtime, meditation, all these things are just as important no matter what society tells us. Those things are just as productive as putting out a widget or whatever you’re doing.

\n\n\n\n

And so I think that what has to happen at a societal level, in order for us to gain back some of this discipline, is we need to recognise that while, yes, we need to take up a hundred percent of our time, what are the important things that we need to do in order to take up that a hundred percent of the time? And the reality is, some of that is downtime. Some of that is sleep, some of that is eating, some of that is interacting with people or whatever it may be. And I think technology, because it is constantly the shining new object, takes us away from all of that.

\n\n\n\n

[00:30:45] Nathan Wrigley: I think for me, the profundity of the internet, let’s just use that term, you know, whatever is bound up inside that term, is enormous. You know, it’s probably the most, up till now, maybe AI will come to surpass that, but up until this point, I think the internet is probably the most profound technological invention of all time.

\n\n\n\n

[00:31:04] Marc Benzakein: I call it the eighth wonder of the world.

\n\n\n\n

[00:31:05] Nathan Wrigley: Yeah, right. So the capacity for all that it brings. The fact that you can communicate with people, as I am with you. You are literally on the other side of the planet, and I’m talking to you as if you are stood next to me. The mind boggles. But also access to news, access to publishing your own information, seeking out communities that are just like you and the myriad way, oh, commerce. Let’s not forget that. That whole thing. The capacity for that, remarkable. All of it, remarkable and amazing.

\n\n\n\n

But I think fair to say that there’s always swings and roundabouts. All of those wonderful things that we’ve just described, there’s probably some missteps along the way. And that was one of the things that I wanted to ask you. Are there any bits during the internet’s evolution to where we are now, where you think, do you know what, maybe we shouldn’t have done that? Maybe that wasn’t a good idea. Have you got any sort of thoughts on that, where you look back and you think the internet probably could have avoided that aspect?

\n\n\n\n

[00:31:58] Marc Benzakein: I could think of a lot of little things. I think it’s one of those million little things, right? So going back to those days, it was really quite interesting. You know, I didn’t know what DNS was. I didn’t know, I barely knew what an ethernet cable was. We had this box sitting there that was a Cisco router. I had no idea what a router was. I mean, all this stuff because it was all pre-configured.

\n\n\n\n

And I think the thing that blew me away back then, and this doesn’t really answer your question, but the thing that blew me away was, here we had people that we would get on phone calls with each other to work through problems, because this guy understood DNS, this guy understood routing. The two didn’t both understand both. It was really insane that it worked at all.

\n\n\n\n

And I remembered sitting there going, this is a worldwide thing and it’s going to become a worldwide phenomenon. I mean it’s already working on a worldwide level. And it’s a bunch of people who don’t know each other, who probably if they were in the same room as each other, wouldn’t like each other.

\n\n\n\n

I mean there were guys that I dealt with, there was this one guy, Frank, every time there was a DNS problem, I had to call him. I would dread calling him because his first question would be, what did you do now? It wouldn’t be like, ironically, it would be like, accusatorily, right? If that’s a word. I hated calling this guy, right? But somehow or another, we knew that we were working on something bigger than all of us, and so we tolerated each other at these various levels.

\n\n\n\n

[00:33:22] Nathan Wrigley: Can I just inject a couple of my things? Yeah. Is that all right?

\n\n\n\n

[00:33:25] Marc Benzakein: Yeah, sure. Go ahead. Absolutely.

\n\n\n\n

[00:33:26] Nathan Wrigley: Because where I was going with this was, at the outset of the internet, I think there was a widespread assumption, and hope, that open things would win. And for a period of time, I think they did. So an example would be, I don’t know, things like RSS and things like that. Just widespread, open standards, everybody understood. And I think a lot of that has been upended, you know, the social networks came along, and made these utterly beguiling interfaces, which consumed lots of time. I’ll get onto that as my second point in a moment.

\n\n\n\n

But the standards sort of got, not thrown out the window because they’re still there and, you know, you can still build on top of them, but they got usurped. More utilitarian things that were more easily understood because you were in this silo worked. And so closed things started to dominate.

\n\n\n\n

I have this notion, I have this hope that we are maybe seeing a little bit of a pushback against that. Obviously you and I are in the WordPress space where those kind of things are incredibly important. So that would be one of my things.

\n\n\n\n

And the other thing, which I think I can say for me, and I think it maps across many people, but I can’t be certain about that, is the time that can be consumed on the internet, which with the benefit of hindsight could have been better spent doing other things. I think it’s easy to become, not addicted, but for me to really get lost in the internet.

\n\n\n\n

[00:34:51] Marc Benzakein: What you’re talking about is a natural evolution though, because there’s no real way to regulate that. That’s like, you can’t. How do you regulate that? And I mean that was of course the appeal of all of it back then. Just like blockchain, that’s the appeal of blockchain is like, how do you regulate it? We knew that eventually people would figure out how to regulate it, even then. Because I remember us having these congressional hearings and things about monopolies and things like that, and all these things that had to do with the internet.

\n\n\n\n

And it was very clear that the people asking questions had no clue what they were asking, because they had no clue what the internet really was other than they used email. They had no clue how far reaching. And so they would try to put standards in that just didn’t make sense. But we all knew that eventually people would be in those positions that actually grew up with the internet, understood it. And, of course, you can be cynical or whatever, the government is going to figure out a way to regulate everything so they can get their piece of the pie somehow.

\n\n\n\n

And we saw a little bit of that with the regulation of, say, for instance, IP addresses, which back then were a lot harder to come by because there was a big concern about IP address shortages because we were on IP v4 and there was no such thing as what they call network address translation. So like every single website, if you had a web server, every website had its own IP address. If you were at home, you had a static IP address that was assigned to you.

\n\n\n\n

And I remember filling out the forms, which was like a 20 page application, it may not have been 20, but it sure felt like it, application for more IP addresses, more blocks of IP addresses because after, so we had ISDN, which was kind of a big flop, and then we went to the modem standard which was dial up, which was actually, became very highly profitable for us. But then we got into DSL, which was the digital subscriber line concept. And it was cable or DSL. Those were the two high speed or broadband options.

\n\n\n\n

And even when DSL just came out, we had to assign people IP addresses. So it’d be like, here’s your DSL modem. We would go out, we would install it in their home. Here’s your IP address. And with your DSL subscription comes a dial up subscription, so that when you’re traveling, you can access the internet and you can dial in from your hotel room or whatever.

\n\n\n\n

And I’d say that the only thing we could have changed maybe was the messaging. Because everything else, and it’s still a matter of, look, the internet represents freedom. It represents the freedom to do what you want, when you want, how you want. And hopefully you’re not doing anything illegal. But of course there was a lot of that going on as well. But I don’t, the whole point of the wild westiness of it is that it was the wild west and you could do whatever you wanted. And people loved that freedom.

\n\n\n\n

And so I don’t know, you know, my big frustration is I’d have people call me at two in the morning on my home phone line, because their internet was down and they were going to go on a raid on World of Warcraft or something like that, and they were the raid leader and, by the way, true story. I’m not making this up. And somehow this guy got my phone number and death threat. I mean, I got a death threat because he couldn’t go on this raid.

\n\n\n\n

I mean the stories during that time are crazy. And I think it really is just a matter of, I think as always, with everything, messaging is everything, but people are still going to do what they’re going to do, whether it’s legal or not. So I’m not sure that there were any mistakes that were made because it was an evolution. It wasn’t, there was nothing intentional.

\n\n\n\n

[00:38:21] Nathan Wrigley: I mean, it’s a technology which is just flooded with all of humanity. So the idea that it was going to be unicorns and rainbows all the way down was misguided because it was just waiting for humans to come in with all their interesting, fun, curious, illegal, time wasting stuff, and pour all of that into the internet. I am so fascinated about where all of that will go.

\n\n\n\n

The bit that makes me most interested is that I had quite a significant portion of my life when the internet didn’t exist. And so I had a childhood which was completely inoculated from the internet. And so I have that perspective and so, okay, here’s the bit where I sound like the curmudgeonly old man and, you know, the youths of today and all of that. And that’s not really the intention.

\n\n\n\n

But my children’s generation have never had that. And it’ll be curious to see how they grow up in a world in which always on was always a thing. From very early age, they had access to technology. The endeavor to acquire information is now more or less trivial. You just log onto something and all of that is available to you. We’ve got AI coming at a breathtaking pace. It would just be so interesting to see how this goes. And also very interesting to see how my generation cope with its onset because, sure as anything, it doesn’t look like it’s going to slow down. And so we are going to have to try and keep up, and hopefully we will, without becoming too curmudgeonly.

\n\n\n\n

[00:39:52] Marc Benzakein: My son is going to be 21 this next year, and he hates everything that has to do with technology, which is really fascinating. He’s in college and outside of college, he works at a Barnes and Noble. He has his girlfriend and they go hiking every single day. He takes a hammock with him and puts it between two trees and lays in his hammock and reads books. And this is not something that I trained him to do.

\n\n\n\n

This was, I mean I appreciate that about him other than he’s, you know, not nearby so the only way I can contact him is texting and phone calls, but he prefers phone calls to texting. He prefers email to texting because emails, you check your email when you want to, you don’t get interrupted by the text message notification. And he’s very, very bright and his whole circle of friends are very, very bright and they’re not into technology either.

\n\n\n\n

[00:40:44] Nathan Wrigley: I was just going to say, I’ve noticed that that seemingly would be a bit of a trend over this side of the pond as well. There does seem to be a groundswell of turning things off or minimalising, tech minimalism, let’s call it that. So things like vinyl is coming back as a format for consuming music. The phone’s getting simplified so that there’s less on there. Apps being deleted because the assumption that it’s good to have more things coming in and that more connection is a good thing has been sort of pushed to the back.

\n\n\n\n

Actually many of my children’s generations seem to have now grown weary of that, and they realise that actually that’s not in their best interest to be engaged all the time, every day. And so that will be a curious pushback. It almost seems like a sort of Hollywood plot that, doesn’t it?

\n\n\n\n

[00:41:24] Marc Benzakein: Maybe it’s just that it’s so taken for granted now just like a car is or anything else, that they don’t think of it as anything other than what it is.

\n\n\n\n

[00:41:36] Nathan Wrigley: So we were sort of caught up, our generation were caught up with this constant cycle of innovation, newness, the shiny thing. And actually for a whole sort of 20 years, there was no let up in that, was there? The internet came along, home computers came along. They got smaller. They became laptops, which you could then take everywhere. Internet and mobile phone networks got switched on. Then the advent of a computer, which you could hold in your hand came along. Social networks came along. All of that completely switched on, connectivity came along. There was a constant churn of evolution and next new thing. Maybe you’re right.

\n\n\n\n

[00:42:09] Marc Benzakein: It’s like you’re talking about the television set. In our house growing up, the TV set was something that was kind of always on, and so when we turned it off, it wasn’t a big deal or we didn’t feel the need to watch it constantly. We didn’t need to, I mean let’s say that you live in a place where, out your front window, you have like this beautiful view. But every single day you see that same exact view, to the point where you can acknowledge that it’s a beautiful view, but you’re not as likely to acknowledge it every single day.

\n\n\n\n

I think that that’s the way that technology has become. And of course, I welcome that because I want our kids to have some of the same experiences that we Gen Xers had, you know, where we had to drink water out of the garden hose because our parents told us to go out the door and not come back until after dark. And I don’t want to go that extreme but the point is that they have these things at their disposal, and they just know that they’re there, so they don’t feel like they have to constantly pursue it.

\n\n\n\n

And I mean, I remember last year when my son was out visiting, I took him to this place called, it’s called the Medicine Buddha, which is about, it’s out by Santa Cruz. And it’s about, I don’t know how many acres it is, but it’s redwoods. It’s nothing but redwoods. And we were out there for about two hours hiking. He’s like, Dad, why didn’t you bring me here two days ago? We could have spent the whole weekend here. I mean, it was like, to give you an idea of what it’s like, it is so quiet there because the trees are so tall that the birds don’t even come down,

\n\n\n\n

So I think that the pendulum is swinging in the right direction. I do think that youth today has a lot of the right ideas. You know, hopefully our generations haven’t screwed it up too much for them, that they get to appreciate all of that. But I’m not as worried about it.

\n\n\n\n

But I will also say that with our kids, we were not super restrictive with the screen time with our kids. And it was always funny, you know, we kind of started it out as an experiment and what we found was that they’d play on their tablets, or on their computers for an hour or whatever, and then they’d be like, let’s go play basketball, or let’s go play football, or whatever.

\n\n\n\n

And they would just put the things down and they’d go out and explore on their own. And my kids, it’s crazy how sometimes hard it is to get a hold of them because, oh, I left my phone at home, sorry Dad. And so I see it going in a good direction. But that’s the funny thing is like we went from this period, and I know this was supposed to be about the whole evolution of the internet and we kind of, as you and I do, went down.

\n\n\n\n

[00:44:36] Nathan Wrigley: We segued.

\n\n\n\n

[00:44:37] Marc Benzakein: We segued. But there was a time as crazy as it is, that when you wanted to get on the internet, it had to be intentional. You had to deliberately want to get on the internet. So if you went traveling and you had dial up access, you would have to hook up your laptop computer to a modem, unplug the phone line from the hotel phone line, plug it into your computer, and then hope that the dialing worked, right? That you could get an outside line and that it would take you to the internet and that you’d be able to have a connection. And then it would, nine times out of ten, it would be a long distance number that you had to call because you were in a hotel somewhere else. And now if we go into a hotel that doesn’t have WiFi, we freak out.

\n\n\n\n

[00:45:21] Nathan Wrigley: Yeah. It’s like, what’s going on? This isn’t normal.

\n\n\n\n

[00:45:25] Marc Benzakein: Welcome to the 20th century, I mean.

\n\n\n\n

[00:45:27] Nathan Wrigley: I feel like we’ve grown up in such an interesting time. If you look back and if, like me, you’re into things like archaeology. Archaeology really does show that for most of humanity, especially if you go pre-history, thousands of years go by and the innovation is very small. You know, there might be one or two little things which built up this growing corpus of things which humanity use.

\n\n\n\n

But it might be that somebody invents a slightly new way of cutting the wheat down, or it might be a new way of building a wall or what have you. And that’s the pattern of history. Slow, fairly slow, pedestrian until you get to much more recent times, couple of hundred years ago, and things start to pick up speed. And now we’re at a point where, goodness knows what is going to happen even in the next six months, especially in the realm of AI. We really are at a rate of change, which is very difficult to keep track of.

\n\n\n\n

But it’s exciting. It’s a time when everything is up for grabs. It really is exciting. And hopefully we are going to maintain that enthusiasm, maintain that interest. Make sure that, you know, we’re all safe and well fed and everybody’s looked after. Let’s hope those kind of things happen. But what a breathtaking time to live in. What an interesting time we are in.

\n\n\n\n

[00:46:43] Marc Benzakein: Well, I mean the idea of the internet, and I remember saying this when we started our internet service provider. I said, look, we have an opportunity to level the playing field for businesses. It doesn’t matter if you’re small or if you’re big. On the web, it all looks the same. And I think that that’s always been kind of one of the drivers for a lot of us, especially in the open source world, is this idea of leveling the playing field between kind of the haves and the have nots, right?

\n\n\n\n

So we have the same access to knowledge that people with means might have. We have the same access to products. We have all the same accesses. So in many ways, from a consumption level, I’m talking about consuming knowledge as well as products, but from a consumption level, we have a level playing field. From the other side of things, it’s not as level as it used to be.

\n\n\n\n

A Walmart or an Amazon obviously is going to show up in every search for everything, as opposed to back in the day, all you really had to do was just put in a few keywords and somehow or another you’d show up on Yahoo or AltaVista or Ask Jeeves or whatever it was at the time, you know, before Google came along. And then Google came along and the same thing was still true for a while, where you could like do just minimal amounts of SEO and get attention to your website and get business.

\n\n\n\n

So the idea and I think the mission of the internet kind of should always be to keep the playing field level. I just don’t know that that’s necessarily possible because obviously the people who have the power and the money are going to be able to tilt things in their direction. But having said that, it is still the greatest opportunity for us to level the playing field of anything out there.

\n\n\n\n

[00:48:33] Nathan Wrigley: Oh, that’s such a good way, I think we should probably end it on that, because that’s such a nice and optimistic note actually, in many ways.

\n\n\n\n

We began this conversation not really knowing where we were going to end up, and that has proved to be the case. We really did go in all sorts of different directions there, but absolutely fascinating.

\n\n\n\n

You know, we revealed a lot about our own past and our sort of heuristics and intuitions about how it’s going to be for our children’s generation, and what we’ve enjoyed and what we think might be of concern in the future. That was absolutely fascinating. Marc Benzakein, where can we find you online, 24/7?

\n\n\n\n

[00:49:05] Marc Benzakein: You can find me online, not 24/7, I actually do try to take some time off of technology. But I am with MainWP. I do their marketing and partnerships, for MainWP, which is a fantastic WordPress management dashboard. That’s my plug. And you can also find me on LinkedIn. You can find me on Twitter, Marc Benzakein. I’m pretty sure I’m the only Marc Benzakein out there. I’m marcbenzak Twitter and Bluesky and those things. And then you can find me on Facebook and I’m just kind of generally all over the place.

\n\n\n\n

[00:49:38] Nathan Wrigley: I will endeavor to find those links and I’ll drop them into the show notes. So if you go to wptavern.com and search for, well, I suspect if you just search for Marc’s first name, which is Marc with a C, M-A-R-C. If you search for that, you’ll probably come up in the search. But Benzakein, B-E-N-Z, as we say in the UK, A-K-E-I-N. Marc Benzakein, thank you so much for a really interesting chat today. I appreciate that.

\n\n\n\n

[00:50:03] Marc Benzakein: Thanks for having me, Nathan. Appreciate it.

\n
\n\n\n\n

On the podcast today we have Marc Benzakein.

\n\n\n\n

Marc’s story is one that spans nearly the entire history of the Internet. With roots reaching back to the mid-90s. He explores how curiosity and an enthusiastic embrace of technology led him from running a small coffee importing business, accepting payments by snail mail, fax, then email, to helping wire up schools for Internet access when modems worked incredibly slowly, and only a handful of people were online.

\n\n\n\n

This episode is a departure from our usual topics about plugins, themes, and WordPress community news. Instead, we’re more in the business of reminiscing this week. Taking a reflective walk down memory lane to look at how the Internet has evolved, not just as a technology, but as an integral part of society that’s transformed how we work, communicate, and think.

\n\n\n\n

Marc shares some personal stories, building bulletin board systems, forging long-distance friendships over phone lines and slow modems, and watching as Internet access shifted from an intentional, difficult-to-navigate hobby for the few, to an invisible, always-on utility that we all take for granted.

\n\n\n\n

We talk about how technology has affected not only business and productivity (often creating more work instead of less), but also our attention spans, expectations around entertainment, the pace of life, and even the social fabric that binds us together. We discuss the cultural shifts that came with always-connected living, digital minimalism, and the recent push by younger generations to step back from tech and reclaim a bit of analog life.

\n\n\n\n

We chat about the early optimism of open standards, the rise of walled gardens and social networks, and the challenges of regulation, commercialisation, and the balancing act between freedom and responsibility online.

\n\n\n\n

Marc’s perspective is shaped by decades of direct technical experience, as well as thoughtful observations of how technology is reshaping the world around us, sometimes for the better, sometimes in ways we need to pause and question.

\n\n\n\n

Whether you’re nostalgic for the old days of dial-up, intrigued by how the Internet’s culture has shifted, or curious about how these transformations might play out as new technologies like AI reshape society, this episode is for you.

\n\n\n\n

Useful links

\n\n\n\n

MainWP

\n\n\n\n

AOL

\n\n\n\n

 Prodigy

\n\n\n\n

 Gopher

\n\n\n\n

ServerPress Is Shutting Down

\n\n\n\n

LANtastic

\n\n\n\n

Novell

\n\n\n\n

BBS (Bulletin board system)

\n\n\n\n

WWIV

\n\n\n\n

Ham radio

\n\n\n\n

Marc on X

\n\n\n\n

Marc on LinkedIn

\n\n\n\n

Marc on Bluesky

\";s: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, 21 Jan 2026 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:\"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: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:49:\"WordPress.org blog: Be Part of WordCamp Asia 2026\";s: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=19738\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:54:\"https://wordpress.org/news/2026/01/wordcamp-asia-2026/\";s: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:16192:\"

WordCamp Asia is back in 2026, this time in Mumbai, India, and it’s building on a year that showed just how ambitious and connected the WordPress community has become. Now is the time to get involved. Get your ticket, explore sponsorship opportunities, and help spread the word.

\n\n\n\n\n\n\n\n

In 2025, more than 1,400 attendees from 71 countries gathered in person, with nearly 15,000 more joining online for WordCamp Asia 2025. With notable guests like WordPress Co-founder Matt Mullenweg and Gutenberg Lead Architect Matías Ventura, and a diverse lineup of speakers and panelists from across the ecosystem, WordCamp Asia 2025 brought together a community actively shaping the future of the open web.

\n\n\n\n
\n

It’s the people. It’s the friendships and the stories.

\n\n\n\n

Matt Mullenweg, WordPress Cofounder

\n
\n\n\n\n

WordCamp isn’t just about sessions and schedules. It’s about connection. It’s about learning directly from people who are building, scaling, and sustaining WordPress in the real world. It’s about sharing ideas, debating the future of the open web, and leaving with renewed energy for the work ahead. And in 2026, that spirit returns stronger than ever.

\n\n\n\n\n\n\n\n

Tickets for WordCamp Asia 2026 are on sale now, and this is the moment to secure your spot. WordCamps are intentionally priced to remain accessible, and early ticket sales help organizers plan an inclusive, high-quality experience for everyone.

\n\n\n\n
\"\"
\n

Join 3,000+ Web Professionals

\n\n\n\n

April 9 – 11, 2026 | Jio World Convention Centre, Mumbai, India

\n\n\n\n\n
\n\n\n\n

WordCamp Asia is also made possible by the organizations that step up to support it. Sponsorship plays a critical role in keeping the event accessible, supporting contributors and volunteers, and ensuring the experience reflects the values of the WordPress project. For sponsors, WordCamp Asia 2026 offers a rare opportunity to connect with a highly engaged, global audience in a setting built on trust, collaboration, and shared purpose.

\n\n\n\n

Sponsorship packages are designed to support a wide range of organizations, from local companies to global businesses building products and services on WordPress. Beyond visibility, sponsors become part of the story—helping sustain the ecosystem and invest directly in the community that makes WordPress possible.

\n\n\n\n
\n
\n
\n\n
\n
\n\n\n\n

If your company is interested in becoming a sponsor or you would like to know more, please reach out.

\n\n\n\n\n
\n\n\n\n

At every level, WordCamp Asia is powered by people. Organizers, volunteers, speakers, sponsors, and attendees all contribute to an experience that reflects WordPress’s shared values of openness and collaboration. It’s a place where new voices are welcomed, long-time contributors reconnect, and ideas move from conversation to action.

\n\n\n\n\n\n\n\n

WordCamp Asia 2026 is more than an event—it’s a moment to come together, reflect on where we are, and help shape what comes next. Whether you’re attending for the first time, returning for another year, or supporting the event as a sponsor, your involvement helps strengthen the WordPress ecosystem and the global community behind it.

\n\n\n\n

We’ll see you in Mumbai.

\";s: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, 21 Jan 2026 12:07: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:17:\"Nicholas Garofalo\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:15;a:6:{s:4:\"data\";s:21:\"\n \n \n \n \n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:49:\"Open Channels FM: Open Channels FM v7.0 Changelog\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:33:\"https://openchannels.fm/?p=114485\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:56:\"https://openchannels.fm/open-channels-fm-v7-0-changelog/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:141:\"Our v.7.0 changelog highlights Open Channels FM structure, including new channels, a podcast revival, updated features, and plugin additions.\";s: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, 21 Jan 2026 09:39: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: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:16;a:6:{s:4:\"data\";s:21:\"\n \n \n \n \n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:25:\"Matt: Cancer Founder Mode\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=151128\";s: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:42:\"https://ma.tt/2026/01/cancer-founder-mode/\";s: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:1593:\"

Sid Sijbrandi, a friend and a former CEO of Gitlab, has started to share some of the story of his journey with cancer.

\n\n\n\n
\n

Manager mode assumes that existing systems will surface the best options. When I was first diagnosed with cancer in 2022, I delegated the crucial analyses and decisions about my care to others. In late 2024, when my cancer reappeared and my doctors told me I had exhausted the standard of care and there were no trials for my situation, I realized that assumption might, quite literally, kill me. Founder Mode was my only option.

\n\n\n\n

Founder Mode meant going deep on every diagnostic and treatment option. It meant assembling a team of physicians and scientists to work from first principles to understand what was possible beyond standard protocols. Together, we paved new roads to access the very cutting edge of science and technology. Today, thanks to the efforts of many people around the world and the support of my wife Karen, I currently have no evidence of disease.

\n
\n\n\n\n

Sid was already very inspiring before this journey, and this is especially impressive. Elliot Hershberg has the full story and analysis, including some predictions for the future of cancer treatment.

\";s: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, 21 Jan 2026 06:14:30 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s: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:17;a:6:{s:4:\"data\";s:21:\"\n \n \n \n \n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:63:\"WordPress.org blog: A New Home for WordPress Education Programs\";s: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=19636\";s: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://wordpress.org/news/2026/01/wordpress-education-programs-new-home/\";s: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:8775:\"

Over the past few weeks, a new space has taken shape on WordPress.org for students who want to learn, build, and contribute. WordPress Education programs bring together initiatives that help students enter the WordPress ecosystem through clear, accessible entry points that lead to real-world practice.

\n\n\n\n

With hands-on initiatives and supportive communities, participants can grow new skills and take their first steps as contributors. Across campuses and communities worldwide, learners publish real projects, build practical experience, and gain confidence as part of open source creation.

\n\n\n\n
\"\"
CC0 licensed photo by Virendra Kumar Yadav from the WordPress Photo Directory.
\n\n\n\n

A clearer path into the WordPress ecosystem

\n\n\n\n

WordPress Education is designed to help students turn knowledge into practice, discover their strengths, and understand how their contributions can make a real impact through three core programs: WordPress Campus Connect, WordPress Credits, and WordPress Student Clubs.

\n\n\n\n

Through hands-on campus events, such as WordPress Campus Connect, on-campus groups like WordPress Student Clubs, and a practice-based program called WordPress Credits, participants can gain practical experience, publish real-world projects, and build confidence as contributors to a global culture of open-source creation.

\n\n\n\n

At its heart, these WordPress education programs are about three simple ideas:

\n\n\n\n

Learn. Build. Connect.

\n\n\n\n

This update brings WordPress education programs together in one place, with an easy way to explore initiatives, understand how they work, and take the next step.

\n\n\n\n

You will find:

\n\n\n\n
    \n
  • A home for WordPress Education programs and updates
  • \n\n\n\n
  • Clear “how to get involved” paths for students, educators, mentors, organizers, and sponsors
  • \n\n\n\n
  • Stories, highlights, and examples of real projects created through the programs
  • \n\n\n\n
  • Links to the Education Handbook for program guidelines and resources
  • \n
\n\n\n\n
\n

Want to learn more about WordPress education opportunities?

\n\n\n\n\n\n\n\n

You can also view more information from the WordPress Community Education Programs Handbook. Learn how this serves as a central guide and resource for all community-driven educational initiatives.

\n
\n\n\n\n
\n
\n

WordPress
Campus Connect

\n\n\n\n

WordPress Campus Connect is a growing global learning initiative that brings hands-on WordPress learning directly to the students on their campus.

\n\n\n\n

The organizers can come from within educational institutions or from the local communities to help deliver WordPress programming and create the future stewards of WordPress.

Learn more: https://wordpress.org/education/campus-connect/

\n
\n\n\n\n
\n

WordPress
Credits

\n\n\n\n

WordPress Credits is a contribution-based program by the WordPress Foundation that connects higher education students with the global WordPress community.

\n\n\n\n

Educational institutions partner with the WordPress Foundation to offer students credits toward their degrees for contributing 150 hours to the WordPress project.

Learn more: https://wordpress.org/education/credits/

\n
\n\n\n\n
\n

WordPress
Student Clubs

\n\n\n\n

WordPress Student Clubs empower students to build on-campus WordPress communities that keep learning going throughout the year.

\n\n\n\n

In the spirit of our local community meetups, these groups operate as on-campus equivalents, keeping students engaged and connected with their local WordPress communities.

Learn more: https://wordpress.org/education/student-clubs/

\n
\n
\n\n\n\n

Support This Growing Movement

\n\n\n\n

Help spread the word, and let friends, students, and others know how they can contribute to this growing effort, including a widely expanding translation effort. WordPress Education has already been translated into 10 new languages. WordPress Education is powered by people who believe in open learning and the power of collaboration.

\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:\"Tue, 20 Jan 2026 17:14: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: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: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:47:\"Open Channels FM: Open Channels FM v7.0 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:33:\"https://openchannels.fm/?p=114441\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:54:\"https://openchannels.fm/open-channels-fm-v7-0-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:219:\"In this episode, BobWP announces the release of Open Channels FM version 7.0, detailing significant updates, rebranding changes, new hosting voices, and improved sponsorship strategies for a revamped podcast experience.\";s: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, 20 Jan 2026 09:57:04 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s: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:59:\"Weston Ruter: Post Date Block: Published & Modified\";s: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=38580\";s: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://weston.ruter.net/2026/01/19/post-date-block-published-modified/\";s: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:22580:\"

I’ve had an itch I’ve wanted to scratch for a while. A year ago, I re-developed my blog here to use the Twenty Twenty-Five block theme replacing the Twenty Twenty classic theme. Something I wanted to do was show a post’s published date followed by the modified date if it differed. For example, for WCUS 2024 I published My Portland Picks to share my favorite things to do in the city. Since WCUS 2025 was also in Portland last year, I updated the post with my latest picks. To make it clear it had been changed, I manually added a “Post updated for 2025” paragraph at the beginning of the post. But I wanted to avoid having to keep doing this for such evergreen content.

\n\n\n\n

There are two blocks listed in the block inserter for dates: Date and Modified Date. (Previously these block names started with “Post” but these were removed in WordPress 6.4.) In reality, these two blocks are just variations of the one Date block. You could turn a Date block into a Modified Date block by enabling this block setting:

\n\n\n\n
\"Display
\n\n\n\n

With block bindings in WordPress 6.9, the Date block became further abstracted to be able to represent any date, not just a post’s publish date or modified date. When a Date block is inserted, you can now decide to bind the block to either of these dates:

\n\n\n\n
\"Date
\n\n\n\n

The key word there is “either”. The setting I was looking for was missing: the ability to display the publish date and the modified date (if it differs).

\n\n\n\n

I did find Gutenberg issue #53099 opened by Carolina Nymark where she was reporting that it was confusing that the old “display modified date” toggle actually causes the modified date to be displayed instead of the publish date:

\n\n\n\n
\n

The info I was looking for was whether, when toggled on, it would display both the published and modified dates, or display the modified date instead of the published date, as from the settings alone it’s not immediately clear

\n
\n\n\n\n

Commenting on that issue, Ronnie Burt said:

\n\n\n\n
\n

Feedback after using this block on multiple sites in templates for both posts and pages. The ‘modified date’ block doesn’t show anything if the post has never been updated. This makes it really challenging to use, as there will be a blank spot on the front end for new posts or pages without any edits.

\n\n\n\n

It would be more useful to show the date published if the post has no edits.

\n
\n\n\n\n

Carolina responded:

\n\n\n\n
\n

The problem is that there is no one scenario that will work for all use cases. Some users and designs wants to display both the original publishing date and the modified date. So no matter how this block is updated, it will break for someone.

\n\n\n\n

Your best option may be to register a block binding with a callback function that displays the post date, to get the exact conditions that you need, and then insert a paragraph with this block binding, instead of using the post date block.

\n
\n\n\n\n

A few months later, when I discovered the issue, I commented:

\n\n\n\n
\n

To me it seems like the block should facilitate showing the published date and then also show the modified date if it is different, with a prefix like “Updated: ” or some other parenthetical treatment. I don’t think the modified date should ever take over the published date. I’m not sure the best way to achieve that other than by adding a plugin which filters the Date block to append the desired content. I’m not sure how that could be handled in the UI, given we’re dealing with inline content and there is no ability to hide blocks (cf. #50756), and there’d have to be a condition like “Only show this block if the rendered date/time of the published date is not the same as the rendered date/time of the modified date.”

\n
\n\n\n\n

So this is what I wanted, but the Date block didn’t support it. So I started exploring something that would implement my desired use case.

\n\n\n\n

Accounting for all the different scenarios adds complexity to the block. Rendering a single publish date or modified date is simple enough. But if the modified date needs to be displayed conditionally then how is this configured in the editor? Namely, if both dates are displayed, then one or both of the dates would need to have some prefix indicating what the date refers to. The two configurations I had in mind were prefixing the modified date only:

\n\n\n\n
\n

December 25, 2025 (Modified: January 1, 2026)

\n
\n\n\n\n

Or else putting each on a separate line and having prefixes for each:

\n\n\n\n
\n

Published: December 25, 2025
Modified: January 1, 2026

\n
\n\n\n\n

There is an existing Gutenberg issue #61920 which is about adding prefixes and suffixes to the block similarly to the Categories block. But these prefixes are unconditional for only a single date. I wanted these prefixes added conditionally for when the modified date is displayed in addition to the published date.

\n\n\n\n

A New Plugin

\n\n\n\n

Ultimately, I put together a plugin to implement what I wanted: Post Date Block: Published & Modified. It’s currently on GitHub but I’ve also submitted it to the WordPress.org directory.

\n\n\n\n
\"Try
\n\n\n\n

Update: It’s now live on plugin directory!

\n\n\n\n
\n\n\n\n

Once active, when you are editing the settings for the Date block for the Post Date variation, a new “With Modified Date” panel appears. Inside that panel there is a new toggle:

\n\n\n\n
\n

Show modified date when different from published date

\n
\n\n\n\n

The two dates are rendered in the supplied date format, and only if they then differ will the modified date be displayed after the published date. This prevents the modified date from appearing as a duplicate when the post is updated on the same day it was published.

\n\n\n\n

When that toggle is enabled, two new sets of fields are presented for adding a prefix and suffix to both the published date and the modified date. There is also a toggle for whether the modified date should be displayed on a separate line. Here are the settings for the two configurations I mentioned previously, one where the modified date is displayed on a separate line and another where it is displayed on the same line:

\n\n\n\n
\n
\n
\"Settings
\n
\n\n\n\n
\n
\"Settings
\n
\n
\n\n\n\n

In terms of the frontend rendering, here’s what the Date markup looks like right after publishing on Christmas:

\n\n\n
<div class=\"wp-block-post-date\">\n	<time datetime=\"2025-12-25T18:14:21-08:00\">\n		December 25, 2025\n	</time>\n</div>
\n\n\n

And here is how the block is rendered after having been modified on New Year’s Day, in the two-line configuration:

\n\n\n
<div class=\"wp-block-post-date post-date-modified\">\n	Published:\n	<time class=\"entry-date published\" datetime=\"2025-12-25T18:14:21-08:00\">\n		December 25, 2025\n	</time>\n	<br>\n	<span class=\"modified\">\n		Modified:\n		<time class=\"updated\" datetime=\"2026-01-01T21:20:05-08:00\">\n			January 1, 2026\n		</time>\n	</span>\n</div>
\n\n\n

Note the added microformat classes to disambiguate the published date from the modified date. I was really happy to be able to leverage the HTML Tag Processor to handle insertion of the prefixes, suffixes, newline, and class names!

\n\n\n\n

This plugin solves my use case, but it’s primarily a prototype/stopgap until something lands in core. The user experience for this doesn’t feel ideal, but I can’t think of a better option at the moment. Note also that there is currently no preview in the editor, so you have to save the changes and go to the frontend to see the results. (My Customizer self weeps.) I didn’t want to fork the Date block’s edit function to implement full preview in the editor, and it would be of little value anyway since when editing a block template the Date block now just shows ”Invalid date” anyway due to there being no post context for the block binding.

\n\n\n\n

The Future

\n\n\n\n

The ideal solution perhaps would involve Bits (now Shortblocks). Maybe the default view for a Post Date block when editing a block template would be to show the view when the modified date is the same as the published date. But then there could potentially be a popover that could allow configuring how the block should render when the modified date is different. With Shortblocks, these tokens could be inserted inline with the content and moved around inside of a paragraph block. This would avoid the need to supply a suffix/prefix in the detached block settings sidebar.

\n\n\n\n

In the meantime, I hope my plugin is helpful for keeping your readers updated!

\n\n\n\n
\n\n\n\n

Where I’ve posted about this:

\n\n\n\n\n\n\n\n

\n

The post Post Date Block: Published & Modified 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:\"Tue, 20 Jan 2026 05:45:15 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s: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:20;a:6:{s:4:\"data\";s:21:\"\n \n \n \n \n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:18:\"Matt: AI Psychosis\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=151118\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://ma.tt/2026/01/ai-psychosis/\";s: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:1531:\"

One of the most concerning trends I’ve seen is that, as people adopt AI, it captures those for whom it was designed. That previous sentence went through several revisions at various layers of intelligence… the spell-checker, grammar-checker, Grammarly, Harper, maybe more, all attacking the words that spill from my divine intelligence and then interact with yours.

\n\n\n\n

Anthropic has published a really interesting essay and paper, The assistant axis: situating and stabilizing the character of large language models. You need infoguards to protect your mind.

\n\n\n\n

Sam Altman was prescient in 2023 when he said,

\n\n\n\n
\n

i expect ai to be capable of superhuman persuasion well before it is superhuman at general intelligence, which may lead to some very strange outcomes

\n
\n\n\n\n

Some very smart and talented friends are going down rabbit holes that don’t have good ends. My world is small; when you extrapolate this out to the 800M+ MAUs of ChatGPT, there’s probably a lot of weird stuff happening out there. We live in the most interesting times.

\";s: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, 20 Jan 2026 04:26:33 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s: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: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:55:\"Open Channels FM: Thoughts From the Brain, Not a Prompt\";s: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=114414\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:61:\"https://openchannels.fm/thoughts-from-the-brain-not-a-prompt/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:50:\"BobWP kicks off his posts with Creator Meanderings\";s: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, 19 Jan 2026 11:21: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:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:22;a:6:{s:4:\"data\";s:21:\"\n \n \n \n \n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Matt: Bob Weir\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=151110\";s: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:31:\"https://ma.tt/2026/01/bob-weir/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:372:\"
\n

They say that blood is thicker than water, and what we had was way thicker than blood.

\n
\n\n\n\n

Bob Weir on Jerry Garcia. John Mayer gave Bob a great eulogy.

\";s: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, 19 Jan 2026 06:51:34 +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:23;a:6:{s:4:\"data\";s:21:\"\n \n \n \n \n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:22:\"Matt: Bacon Egg Cheese\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=151102\";s: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:39:\"https://ma.tt/2026/01/bacon-egg-cheese/\";s: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:2072:\"

One of my favorite travel hacks is finding the Neapolitan pizza oven in the airport, as there’s nothing quite like a fresh pizza sizzling on your plate.

\n\n\n\n

At Houston Intercontinental, which I know like the back of my hand, there was a divine experience at the C Gate nexus at Forno Magico, especially in the morning, when they offer a bacon, egg, and cheese pizza that I would beeline for whenever I had a morning flight. It’s big enough to feed two.

\n\n\n\n

That said, I am disappointed to report that Forno Magico is no longer magical. They stopped salting the oven floor or rotating the pie, and the eggs were sloppily bunched. The dough was dry; it was like they’d never had a good pizza. They’re only heating the oven to 498, not the 905 recommended by the Associazione Verace Pizza Napoletana. It was edible but not a delight, as you can see here.

\n\n\n\n
\"\"
\n\n\n\n

I hope they rediscover the art of firing pizzas they started with. They’re charging over $20 for it, so plenty of margin for fuel. It would also serve customers much faster! I’ll keep searching for great pizzas in other airports.

\n\n\n\n

If you have a Gozney or Ooni at home (highly recommended!), try making a breakfast pizza. My friend Chris Young recommends this dough recipe.

\";s: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, 17 Jan 2026 22:03:23 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"Matt\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:24;a:6:{s:4:\"data\";s:21:\"\n \n \n \n \n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:21:\"Matt: A Better Writer\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=151093\";s: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:38:\"https://ma.tt/2026/01/a-better-writer/\";s: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:4915:\"

RIP Scott Adams. Early Dilbert was the first cartoon I fell in love with, and early dilbert.com was one of the first websites I remember visiting. My dad would print out cartoons and put them on his cubicle wall. Between the Dilbert comics, books, 2600, and Wired, I was swimming between what felt like a radical transgressive world online and the reality of my dad putting on a suit and tie every day and working a giant cubicle farm programming computers.

\n\n\n\n

It’s probably underappreciated how Dilbert (and Office Space) made millions of better managers by making fun and teaching people what not to do.

\n\n\n\n

Scott could put in a few words things that could transform the way you think, reframe the world. One of his classics, from a now-gone Typepad blog, was The Day You Became A Better Writer, which I’ll reproduce here:

\n\n\n\n
\n\n\n\n

I went from being a bad writer to a good writer after taking a one-day course in “business writing.” I couldn’t believe how simple it was. I’ll tell you the main tricks here so you don’t have to waste a day in class.

\n\n\n\n

Business writing is about clarity and persuasion. The main technique is keeping things simple. Simple writing is persuasive. A good argument in five sentences will sway more people than a brilliant argument in a hundred sentences. Don’t fight it.

\n\n\n\n

Simple means getting rid of extra words. Don’t write, “He was very happy” when you can write “He was happy.” You think the word “very” adds something. It doesn’t. Prune your sentences.

\n\n\n\n

Humor writing is a lot like business writing. It needs to be simple. The main difference is in the choice of words. For humor, don’t say “drink” when you can say “swill.”

\n\n\n\n

Your first sentence needs to grab the reader. Go back and read my first sentence to this post. I rewrote it a dozen times. It makes you curious. That’s the key.

\n\n\n\n

Write short sentences. Avoid putting multiple thoughts in one sentence. Readers aren’t as smart as you’d think.

\n\n\n\n

Learn how brains organize ideas. Readers comprehend “the boy hit the ball” quicker than “the ball was hit by the boy.” Both sentences mean the same, but it’s easier to imagine the object (the boy) before the action (the hitting). All brains work that way. (Notice I didn’t say, “That is the way all brains work”?)

\n\n\n\n

That’s it. You just learned 80% of the rules of good writing. You’re welcome.

\n\n\n\n
\n\n\n\n

Powerful. Profound.

\n\n\n\n

Scott also said some not-great things, as the obituary notes. I’ll share something I posted internally at Automattic.

\n\n\n\n
\n

When I was younger, I used to have a more binary view of people, but as I’ve grown, read a ton of biographies, seen the press cycles, and been lucky enough to meet some idols and villains, I’ve become much more comfortable taking everyone as a flawed human being.

\n\n\n\n

I admire or learn from aspects, but that doesn’t mean I would 100% agree with everything. I don’t even 100% agree with my past self!

\n\n\n\n

One thing you’ll note in a lot of biographies is that people who have accomplished great achievements often have flaws or mistakes in equal measure.

\n
\n\n\n\n

Take what lessons you like from people.

\n\n\n\n

I love reading and writing about writing, and improving your writing is one of the best force multipliers for everything else you do in life. If you’d like to go further on this, the best book I’ve read on the subject is On Writing Well by William Zinsser. And if you want more Scott Adams, read this piece from his doppelgänger Scott Alexander.

\";s: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, 17 Jan 2026 06:48:07 +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: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:78:\"WordPress.org blog: WordPress Playground Brings Speed, Stability, and Momentum\";s: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=19673\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:81:\"https://wordpress.org/news/2026/01/wordpress-playground-speed-stability-momentum/\";s: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:10575:\"

WordPress Playground had a busy year in 2025, with updates that make it more capable for day-to-day development, plugin previews, and learning environments. The project’s latest year-in-review highlights progress across performance, compatibility, database support, and tooling, expanding what can be done in a WordPress environment that runs in the browser and through the command line.

\n\n\n\n

From faster load times to broader plugin support, the throughline is clear: Playground is moving beyond quick demos and into workflows that help developers and educators test, iterate, and share WordPress experiences more easily.

\n\n\n\n\n\n\n\n
\"\"
\n\n\n\n
\n\n\n\n
\n

Key Takeaways

\n\n\n\n
\n\n\n\n
    \n
  • Plugin previews are more reliable: 99% of the top 1,000 plugins can be installed and activated successfully, making demos and evaluations more trustworthy.
  • \n\n\n\n
  • Everything is faster: A performance upgrade reduced average response time by 42%, and further optimizations improved overall “time to first useful click.”
  • \n\n\n\n
  • Database tools work in browser: Improved database compatibility enabled tools like phpMyAdmin to be used directly on playground.wordpress.net.
    More practical tooling for real work: Testing configurations and previewing changes can happen in one place, without a complete local environment first.
  • \n\n\n\n
  • New visual gallery of blueprints: A new visual gallery of blueprints provides excellent starting points for various types of sites.
  • \n\n\n\n
  • Global adoption: Playground was used 1.4 million times globally, with growing documentation translations and community contributions.
  • \n
\n
\n\n\n\n

Reliable Plugin Previews and Experimentation

\n\n\n\n

A headline update from 2025 is the focus on compatibility. In testing with the top 1,000 plugins from the WordPress plugin directory, 99% installed and activated successfully. That matters because it raises confidence in what Playground is best known for: letting people try things quickly, without a complex setup, and with fewer surprises.

\n\n\n\n

This highlighted that Playground is increasingly useful as a general-purpose PHP sandbox. Alongside WordPress, it can support standard PHP tools and projects, which makes it easier to explore how WordPress fits into broader development workflows and to share reproducible environments with others.

\n\n\n\n

If you try something new and unexpected in Playground, the update encourages you to share what you learn in the #playground Slack channel, so the community can build a clearer picture of what works well today and what is improving next.

\n\n\n\n

Faster Load Times

\n\n\n\n

Speed was a central theme in 2025. A recent year-in-review report revealed a 42% reduction in average response time, and this is not just a single change. A series of improvements make Playground feel quicker in the moments people notice most, such as loading WordPress, opening wp-admin, and switching between tasks.

\n\n\n\n

Several behind-the-scenes updates were described in plain terms as “less waiting”: checks happen earlier, parts of the experience load in a smarter order, and more content is reused from cache, so repeat actions are snappier.

\n\n\n\n

For people using Playground to review a plugin, validate a bug fix, or teach a class, these improvements mean the same thing: faster feedback loops, with fewer pauses that break concentration.

\n\n\n\n

Better Tooling and Compatibility

\n\n\n\n

In 2025, Playground also became more “toolbox-like” in the browser. The update highlighted features that reduce context switching, such as editing files on the page, building and testing starter configurations (Blueprints) in a dedicated editor, and launching database tools such as phpMyAdmin and Adminer with a single click.

\n\n\n\n

On the database side, a significant compatibility upgrade was introduced to improve support for more complex database behavior. The practical outcome is that more WordPress sites and plugins behave as expected in Playground, and more developer tools can run inside the environment.

\n\n\n\n

Blueprints also advanced in ways that benefit both builders and sharers. The updates focus on making starter setups easier to create, browse, and reuse, especially when a demo requires content, media, or a specific configuration that should launch consistently.

\n\n\n\n

One of the clearest ways to see that progress is the WordPress Blueprints Gallery, a community library of ready-to-launch WordPress environments. From practical “building block” examples (such as starting with a specific login role) to demos that automatically install themes and plugins, to richer setups that generate posts and featured images via WP-CLI, the gallery demonstrates how quickly an idea can become a fully functional site that you can browse and share.

\n\n\n\n

Examples:

\n\n\n\n
\n
\n
\"\"
\n
\n\n\n\n
\n
\"\"
\n
\n\n\n\n
\n
\"\"
\n
\n
\n\n\n\n

For anyone who wants to experience the power of WordPress without the setup, the gallery serves as a strong reminder of what Playground makes possible: shareable, repeatable site experiences that work the same way every time — ideal for demos, workshops, testing, and “try it now” links.

\n\n\n\n

Clear adoption signals back all of this. The review reports 1.4 million uses globally, documentation translations in multiple languages, and growing integration across the plugin directory through Playground-powered previews. It also points to a steady increase in community contribution, from documentation and support to talks and real-world workflows built on top of Playground.

A huge thank you to everyone who tried Playground over the past year, whether you launched a quick demo, tested a change, taught a workshop, or helped make the documentation more accessible in your language. And if there’s anything that would make Playground even more helpful for your day-to-day work, the project actively welcomes ideas and feature requests via the WordPress Playground GitHub issues tracker.

\n\n\n\n

Looking Ahead

\n\n\n\n

As we closed out 2025 and now look forward to 2026, we can see several forward-looking initiatives, including work on MySQL binary protocol support (to enhance broader compatibility with MySQL tools) and continued exploration of debugging enhancements, such as expanded XDebug access.

\n\n\n\n

For anyone who last tried Playground as a quick demo environment, 2025’s updates suggested a shift in direction: Playground is increasingly positioned as a practical layer for testing, teaching, previewing, and reviewing WordPress, both in the browser and in local workflows.

\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:\"Thu, 15 Jan 2026 16:53:33 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Brett McSherry\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i: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:103:\"Open Channels FM: Matt Mullenweg on WooCommerce’s Future and Competitive Strengths in Online Commerce\";s: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=114249\";s: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:107:\"https://openchannels.fm/matt-mullenweg-on-woocommerces-future-and-competitive-strengths-in-online-commerce/\";s: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:171:\"In a special relaunch episode of Do the Woo, hosts discuss WooCommerce\'s evolution with Matt Mullenweg, exploring its advantages, community impact, and future innovations.\";s: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, 15 Jan 2026 12:20:43 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i: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:16:\"Matt: Do the Woo\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=151089\";s: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:33:\"https://ma.tt/2026/01/do-the-woo/\";s: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:530:\"

For my first podcast of the year with the WordPress community, I joined the new Do the Woo podcast! It started with a little technical difficulty but ended up being a great conversation about WooCommerce, WordPress, and AI.

\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:\"Thu, 15 Jan 2026 05:48: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:4:\"Matt\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:28;a:6:{s:4:\"data\";s:21:\"\n \n \n \n \n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:95:\"WPTavern: #200 – Corey Maass on His Real-Life AI Tools and Workflows in WordPress 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:48:\"https://wptavern.com/?post_type=podcast&p=202227\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:109:\"https://wptavern.com/podcast/200-corey-maass-on-his-real-life-ai-tools-and-workflows-in-wordpress-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:78591:\"
Transcript
\n

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

\n\n\n\n

Jukebox is a podcast which is dedicated to all things WordPress, the people, the events, the plugins, the blocks, the themes, and in this case real life AI tools and workflows in WordPress development.

\n\n\n\n

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

\n\n\n\n

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

\n\n\n\n

So on the podcast today, we have Corey Maass. Corey’s been building for the web since the late nineties, starting out in the early days of Photoshop and tables. Learning JavaScript, ASP Classic and PHP, and eventually falling into the world of WordPress around 2010. Since then, he’s taken on building SaaS apps, managing client projects, and experimenting with a growing number of productivity tools and frameworks.

\n\n\n\n

He’s joined us before, and today he’s here to share his perspective on what it’s been like adopting AI tools into his workflows, especially from the point of view of building projects for clients.

\n\n\n\n

Although AI has dominated headlines over the last couple of years, Corey brings a practical angle to the conversation. He discusses the evolution of his tech stack and how embracing AI tools like Cursor, Claude Code and GitHub Copilot have completely changed the way he builds software and manages projects, allowing him to work faster, automate code, review, and unlock creativity in places he hadn’t expected.

\n\n\n\n

We hear about how his journey with AI started, how he’s reimagined old projects using new tools, and how learning to interact with these models, sometimes granular, sometimes letting them run freely, has reshaped his daily workflow.

\n\n\n\n

Corey describes the shift from using AI to just save time, to using it as a sounding board for inspiration and idea generation, even weaving it into artistic endeavors like music production.

\n\n\n\n

Much of the discussion centers around how these advances have affected client work with Corey exploring the real world balance of responsibility, efficiency, and the changing nature of value for developers. Do clients care who, or what, wrote the code? Or just that it works? What does authentic creativity mean in an era where prompting and randomness a part of the toolkit?

\n\n\n\n

Whether you’re a developer, curious about what working alongside AI means, or just wondering about the future of tech, and WordPress, in an increasingly automated world, this episode is for you.

\n\n\n\n

If 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\n

And so without further delay, I bring you, Corey Maass.

\n\n\n\n

I am joined on the podcast by Corey Maass. Hello, Corey.

\n\n\n\n

[00:03:33] Corey Maass: Hello.

\n\n\n\n

[00:03:33] Nathan Wrigley: Very nice to have you with us. Corey’s been on the podcast several times before. He’s here today to talk about the subject, which almost nobody has touched during the year 2025, that’s AI.

\n\n\n\n

But actually I think we’ve got a curious angle because we’re not just going to touch it from a sort of more generic point of view, although we might. We’re going to talk about it from a client point of view and building things for clients and how, I guess, Corey is leveraging that to make life a little bit easier for himself. Let’s find out.

\n\n\n\n

First of all, Corey, would you just introduce yourself? Give us you a little bio, tell us about you.

\n\n\n\n

[00:04:04] Corey Maass: Absolutely, Corey Maass. I currently live in New Hampshire, which is in the northeast of the United States. I’ve been building for the web since 97, I think. Back in the day when we would do designs in Photoshop and then slice them up and put them in tables. And then I learned JavaScript, and I learned ASP Classic, and I learned PHP, and I got obsessed with building SaaS apps, you know, making websites actually do stuff instead of just look pretty. And then I found WordPress in about 2010 and it’s all been a wonderful, joyous, rollercoaster ride of happiness without exception.

\n\n\n\n

[00:04:45] Nathan Wrigley: That’s lovely. And I think we should end the podcast right there.

\n\n\n\n

[00:04:48] Corey Maass: And I met this wonderful guy named Nathan somewhere along the way, and my heart is full.

\n\n\n\n

[00:04:53] Nathan Wrigley: It does not get better than that. I really think we should end there. Congratulations, Corey Maass, we’ll see you next time. No, let’s get into it properly.

\n\n\n\n

[00:05:01] Corey Maass: And then the robots came.

\n\n\n\n

[00:05:03] Nathan Wrigley: That’s right. That’s what we are going to talk about. But you’ve been building for a long time. I mean, in terms of the internet, you really are like the heritage, aren’t you? 1997 was when people were just sort of starting out. I mean, there’s a few people that go maybe a little bit longer than that, but you’ve seen the whole thing.

\n\n\n\n

Seems like in the year 2023, something like that, maybe 2024, certainly 2025, we’ve now got the advent of companions, AI companions that are helping us to do things online and build websites and so on. And I’m kind of just curious, let’s talk about your stack and where it is at the moment, and then we’ll get into how that stack has changed. But just tell us what you’re using right now. And we’re recording that December, 2025. And no doubt that will change fairly soon.

\n\n\n\n

[00:05:45] Corey Maass: Still changes frequently. We’re chatting before we started recording and you said, have you updated Mac OS to this glass nonsense? And I went, absolutely. I bought into, to put myself in context, like I bought into the Apple ecosystem a few years ago. And I tend to, when they say update, I update. I might wait a day or two. Usually I will hear about, if something is truly crashing your computer, I’ll usually hear about it on Reddit or what have you. And so I might wait a day or a week, but I’m generally an early adopter is the point I’m trying to make.

\n\n\n\n

But with that said, I’m also a pragmatic developer. So I want to use the tools that are the most beneficial, but I’m also not cutting edge, bleeding edge on what model is the absolute best and all that kind of stuff. But I’m also not not going to use AI once it actually benefits me. So I’m probably somewhere on one side of the bell curve or the other, but I’m not bleeding edge.

\n\n\n\n

Anyway. So as of today, I am using Cursor as an IDE, but I am not using the AI in Cursor at all. I have been meaning to, but again, it’s pragmatically. I’m not trying to use things because they’re in front of me or what have you. So we can talk about why I wound up using Cursor. But what I generally am doing during the day is opening Terminal inside Cursor and using Claude Code almost exclusively. Which then, a buddy of mine has gotten me back into the process of actually doing pull requests, so that the code gets pushed to Git. And then I’m running Copilot, which is GitHub’s AI to do code reviews. That’s what I was trying to say. I’ve got Claude generally writing the code, and then I’ve got GitHub’s Copilot checking the code.

\n\n\n\n

[00:07:40] Nathan Wrigley: Okay. Yeah, so that’s where you’re at the moment. But historically, if we were to gaze back over the last year, let’s go with that, how often does that iteration change? How often do you move from one thing to another because the landscape has moved or something superior appears to have come along?

\n\n\n\n

[00:07:53] Corey Maass: Yeah, it’s kind of amazing. This is part of why I wanted to have this conversation is, for me it started pretty much in March. I went to Thailand for a few weeks visiting a buddy of mine there who’s a developer, he had to work. Like, every weekend we were running around looking at temples and stuff like that. During the week he had to work, and so I was left to entertain myself. And so doing my usual client work, which was still very clicky, clickly, because it’s still WordPress, and WordPress hasn’t quite crossed that bridge, though we’re working on it.

\n\n\n\n

But I said, okay, I want to use this time to start my AI journey. That’s where I said, let me subscribe to Cursor, 20 bucks a month, not unreasonable in the scheme of all of the software subscriptions that I have, and let me see what I can do.

\n\n\n\n

And I have an app called Timerdoro, which is a productivity timer app, Pomodoro and that kind of thing. Friends and I built it, now it’s got to be 20 years ago, and we’ve never figured out how to monetise. In fact, yesterday I finally just slapped some ads on it because I couldn’t stand it anymore. And, no, that’s not true. I found an ad network that I wanted to try. But that’s kind of a perfect indication of how I think of Timerdoro. Timerdoro, I have rewritten at least a dozen times in at least four different, using four different tech stacks because a lot of people use it.

\n\n\n\n

It has a hundred users a day or something, which is really cool. None of them want to give me any money, which I totally am fine with. It doesn’t cost me anything. But it gives me an opportunity to, here is a product that people are using, let me continue to play with it, tweak it, design it, totally rewrite it. And so I rewrote it again in March using Cursor, which was an okay experience.

\n\n\n\n

Looking back, I can see how much Cursor has improved, both the IDE and the models that are built in. And I have completely changed, because a big part of it is your own learning how to work with it. And so, at what level do you give it, build a productivity timer, go? Or do you say, install the following libraries, create the following files, make the classes look like this, name the methods and functions like this? Like, too granular, where it just does the typing for you. Versus, it totally conceptualises everything. And so you’ve got to fall somewhere in the middle, maybe, right? Or figure out where you are in the middle.

\n\n\n\n

And I generally, having written my own code for years and years, sure enough, was too granular. But I think that benefited me at the time. Whereas we’ve come a long way, where you can be more in the middle and something like Claude can figure it out.

\n\n\n\n

The buddy that I was visiting, coincidentally, has absolutely doubled down. So he follows, he always talks about Tech Dev Dan or something, Dev Dan, who is sort of the thought leader in AI that he follows. And so he signs up for anything that Dan puts out, classes or courses or videos. And then he tends to, my friend Robert tends to distill some of that down to me. And so I might or might not implement it.

\n\n\n\n

But then I’ve also got other colleagues in the WordPress world. I actually had a friend of mine come to me and be like, hey, will you kind of be my AI buddy as we figure out how to negotiate all of this changing landscape? I said, absolutely. And coincidentally, it has turned out that I’ve kind of been the Robert to him a little bit, where I am a little bit ahead of him, and a little more embracing of things than he is. And so we’ve all kind of, we all evolve, but we’re all kind of getting information from different sources.

\n\n\n\n

So somewhere along the way, I mean Reddit and Twitter were just absolutely blowing up nonstop Claude. Claude Code when that came out. And so I was actually a little slow on the uptake, meaning a month, because I just, I didn’t get it. Like, so many of these things, people are like AI, and you’re like, right, but where do I type? Where does the code go? Or, I want to use AI, I am doing air quotes here, how do I get a website on the internet where people can click on it? It’s actually not intuitive necessarily to make that leap until, again, Robert has explained some things to me of, because again, he’s much more up on the words where he’s like, I think it’s called a harness is the thing you type into versus, the model is the actual AI you’re interacting with.

\n\n\n\n

And so you’ve got TypingMind or you’ve got Claude, or you’ve got Terminal, but then you’ve got Claude, but you can actually use Claude with Gemini’s model if you want, or a Cursor. You know, if you go into the preferences, you can select which model. Do you want to use Open AI Opus, or do you want to use Gemini or do you want? And it was like, oh, right, okay, so there’s a thing you type into or interact with, and then there’s the actual model. But then, again, what are the patterns?

\n\n\n\n

And like I said, I’ve just recently started, so with my buddy, we’ve been rebuilding, I have a game that I’ve talked about for a while. Mexicantrain.online is the website. And so it’s an online version of the Domino game, Mexican Train. I built it during COVID and I talked about it at WordCamp US two years ago, because it was kind of an amazing, one of those projects that I built because my wife told me I should, so that our family could play, continue to play, during COVID. And then it turned into thousands of users, and so it just became this, organically became this nice thing that a lot of people use. And it’s run by donations, which cynically, I never would’ve thought actually works. But people continue to give, I mean it’s amazing.

\n\n\n\n

But it’s been a long time coming that it needs, the tech is now five years old. I needed to rebuild it. I approached my friend and said, hey, would you mind building this with me? Because we’ve kind of looked for a reason to work together. We worked together at a big WordPress agency five years, eight years ago, which is how we met, but we haven’t worked together since. And he’s gone very enterprise, and I tend to be still my freelancer self, working with individual clients directly and stuff like that.

\n\n\n\n

And so what’s been hand ringing, but good is he’s like, okay, we’re going to introduce pull requests because we’re going to have Copilot check our work, and we’re going to have full suite testing. And I tend to not, like I can do that stuff, and there’s the occasional project where I need to do it, but for the most part I’m a, make a change and push it to the internet and see what happens kind of developer. And so we’ve introduced more process, but again, it’s neat because I have to make myself be like, do what he tells you kid. And so then I’m learning better ways to use these tools to build more robust software.

\n\n\n\n

[00:14:31] Nathan Wrigley: Was there ever a moment where, I don’t know if you were always bullish about technology, especially AI, it’s entirely conceivable to imagine that any given person that you see could be extremely bullish about AI, you know, somewhere in the middle or extremely, a little bit allergic to it or what have you. Now, I don’t know if there was any point where you swung between those two extremes or anything like that. But I was just curious if there was an epiphany that you had, like if there’s a particular moment that you can remember where you thought to yourself, oh, this is curious, you know? This is not something we’ve seen before. And if you do have one of those, I’d love to know what it was.

\n\n\n\n

[00:15:07] Corey Maass: There’ve definitely been those moments where, mind blown, mind blown, mind blown. Even recently, Nano Banana the new image AI is mind bogglingly good. And so there hasn’t been one moment, there have been many moments because things like, I did pay for whatever the original ChatGPT was for a while. When it really became popular, I think last year, right? And so I said, well, let me pay 20 bucks a month. But I wasn’t using it. It wasn’t that good. It was definitely helpful, but again, it was more of a dumb typing companion. I need an email that says this. There’s your 20 lines. I didn’t have to think about it. I skim it, I edited a little, I might run it back through, and then I’d go, yep, good enough. Take out the em dashes so it doesn’t look like AI, paste, send.

\n\n\n\n

Treated it more like that. A year ago when I tried to have it right code, sorry robots, I love you. In the future, don’t murder me. You know, but a year ago, like the code that it was generating wasn’t great. It really was hallucinating a lot. Oh, you need to write a WordPress function that uses this hook. A quick Google determines that hook does not actually exist. Stop making stuff up. Whereas I very rarely encounter hallucinations these days.

\n\n\n\n

[00:16:21] Nathan Wrigley: Okay, that’s a profound realisation.

\n\n\n\n

[00:16:23] Corey Maass: Yeah, but to answer your question, like there were just these great moments of, like I had it write song lyrics and I was like, wow, these are surprisingly good. Or I remember early silly moments like we all had where I was like, take these song lyrics and rewrite them so that they’re in pirate speak or whatever, ha ha ha. Like this is a gimmick, right?

\n\n\n\n

But then, again, probably in March, working through my first project building Timerdoro again, using Cursor. Googling how to use Cursor, taking the time to watch videos to understand how better to use it. And then again, moving along throughout the year, these little moments of, oh, that’s amazing code or, wow, and in 45 seconds we had an entire authentication system with front end that a user can sign into and it all just works. The database is already created and all this stuff. And you’re like, oh, okay, wow, it’s getting more and more powerful.

\n\n\n\n

There’s always this thing in the back of my mind, I’m like, has it always been capable of this, meaning in the last year? And I’m just sort of taking, giving it more lead. Because again, I mean a big part of this is how we interact with it. And I keep thinking about scientists using it, or artists using it, because it’s the, little by little, again, we’re taking the collar off or, there’s a horse or a dog metaphor in here somewhere, I can’t quite. But giving it its own freedom to do what it wants, you know?

\n\n\n\n

And how far can you take that? Like I keep thinking about, again, like science, where if you could give a model enough information, could it conceivably jump ahead months or years in our own research? Now research needs to be done, and things need to be proven and all that kind of stuff, but like in terms of thinking, are there things that it can conceive of that we just can’t? Brian Eno, the musician. I think it was him. I want to say it was him. I’m going to pretend it was him.

\n\n\n\n

[00:18:14] Nathan Wrigley: He feels like the kind of character that it easily could be him. There’s a lot of technology in Brian Eno’s life, isn’t there?

\n\n\n\n

[00:18:20] Corey Maass: Even away from technology, he, I believe it was him, I have to Google this. He created a deck of cards that said, as a musician, you’re in the studio and you’re like, my creativity needs help, right? And so there’s this deck of cards where you’d flip over a card and it would say, play the melody backwards. Or you’d flip over a card and it would say, what if this piece of music was being performed underwater? Or, what if somebody had a gun to your head? These thought experiments, right?

\n\n\n\n

And you could actually look at that as, I don’t think anybody really would, but you could look at that as, oh, that’s not true creativity because something else is helping you do the work, right? As a human, if you’re a pure artist, it’s all supposed to come from your brain. You’re supposed to sit there in a dark room with a pen and a piece of paper. If it doesn’t come purely from your brain, then it’s not pure. And again, I don’t, it’s a weird example, but I don’t think most people would actually say that. They’d be like, it’s fine that you found random inspiration. Just like looking at nature, it’s going to inspire a painting or whatever, right?

\n\n\n\n

[00:19:22] Nathan Wrigley: Yeah, or looking at a previous painting will inspire your next painting.

\n\n\n\n

[00:19:26] Corey Maass: As long as in theory it’s not too derivative or whatever, right? So the interesting thing about AI that I keep trying to use, the way that I’m using it, even past writing code or what have you is, help me introduce that element of randomness, the flipping of a card. Next time you’re having your favorite AI model write an email, or do some creative writing, or come up with funny slogans for, like a lot of us are using it for. Help me come up with the tagline for the next SaaS landing page that I’m building or whatever. Introduce negatives. What is it not? Or say things like, have it write this in German and then translate it back to English or, write it like a 5-year-old would. Basically like help introduce that element of randomness and creativity.

\n\n\n\n

[00:20:08] Nathan Wrigley: It’s kind of interesting, the sort of through line that I’ve gathered from that is that at the beginning when you were using AI, correct me if I’m wrong, but it feels like the entire productivity gain, or the gain was a function of time. You were trying to reduce the amount of time a thing took to do. So, you know, if you want to, oh, I don’t know, modify the game that you were describing, this train game that you’ve got. You were trying to reduce the amount of time it would take to do the next iteration of that.

\n\n\n\n

But it sounds like in the last year to 18 months, something along those lines, the expectation has now shifted. I’m presuming that the time thing is now just in the background. That’s guaranteed all the time. It’s always going to be quicker than it would be for a human to do it. But you’ve now moved into this curious creativity phase, which for many people I think was almost like the Turing test. You know, it was the bit that the computers, you could never imagine that the computer would ever be able to approximate something like that. And there’s a whole philosophical thing in there, which is probably too deep for us to open.

\n\n\n\n

But it sounds like you are making use of that. You are using it to generate ideas, to come up with variations around a theme and relying on it to be creative. Now, if that’s the case, I wonder how long it will be before that becomes just the normal, in the same way that maybe the time function has become normal. I wonder how long it will be before we’re all just, well, yeah, the creativity piece, of course, go to a computer, go to an AI if you want ideas.

\n\n\n\n

I wonder what the next thing, the next sort of hurdle to fall is? Because it’s hard for me to imagine anything beyond creativity in all honesty. Once it’s got approximations and mastered that, I’m doing air quotes this time, if it’s mastered that, it’s difficult for me to imagine what the next domino to fall would be. But no doubt there is one.

\n\n\n\n

[00:21:49] Corey Maass: And that’s what I’m getting at with the science stuff. There’s definitely, I think we’ve sort of chosen not to talk about the negatives. There are plenty and, or we’re foreseeing plenty or fearing a lot of things. Optimistically, at least in terms of output, to me we’re looking at coworkers who can do things faster, or employees or, I’m hesitant to say people who work for us but, you know, work that gets done on our behalf faster than we can do it, and in a way that we are satisfied with, right? Writing code is black and white. That’s not true at all, but it’s much more black and white compared to like writing a song.

\n\n\n\n

[00:22:29] Nathan Wrigley: Yeah, that’s true. I think the, sorry to interrupt. I was just going to sort of establish that point a little bit more. I think you are absolutely right. The WordPress slogan, code is poetry, obviously kind of leans into this a little bit, but there is a kind of binary nature to it. When you finish it, it either works or it doesn’t to some extent. The goal is to do this thing, does it do this thing? No. Okay, something’s wrong in that. Something needs to be ironed out. The ones need to be zeros and the zeros need to be ones, whatever it may be.

\n\n\n\n

In the real world, things can be a lot more messy than that. So for the tech industry, it feels like the technology is perfectly aligned to satisfy the goals of that. But, I don’t know, let’s say you are a, let’s find something which would be a great example. Let’s say you are a psychoanalysts, or a therapist or something like that. It’s not quite so straightforward, but the industry that we are in, it lends itself heavily to great success in that arena. Right, sorry, that was my interruption over.

\n\n\n\n

[00:23:20] Corey Maass: No absolutely. Perfectly restated. The code, there are degrees of efficiency. There are, you’re taking into context all of the different elements. So like Claude might write a method but it needs to work well with the way that the database is set up or whatever, right? So there’s nuances. This is what we’ve made careers off of.

\n\n\n\n

But exactly as you say, at the end of the day, it needs to work, it needs to be performant, it needs to be sustainable code, a few things. You check off these boxes and good enough if nothing else. Versus like, I am also a music producer. I make dance music and I like the way that I make dance music. It probably could be made by AI, if I’m honest, but it won’t scratch that itch for me, and that’s fine, right? This is a thing that I will probably, I and my music colleagues will all continue to do, even in the face of AI, because that’s not the point. It’s not about a thing that does work. And we’re going to talk about a client project in a minute. We said we’d talk about that, right?

\n\n\n\n

I have a client who’s hired me to build a piece of software that needs to do a certain thing. And so with her blessing, I am co-writing it with Claude Code, having it checked by Copilot, but at the end of the day, she doesn’t care who writes it or what language it’s in or, dot, dot, dot. It has to do a thing. It has to let people do a certain kind of work, right?

\n\n\n\n

Different from music. I’m not, for me, bedroom producer, I’m not trying to make millions of sales. I’m not a pop recording artist who’s reliant on this stuff. And so for me, it’s about connecting with other humans after I produce a piece of, let’s call it art, which is, I think a stretch.

\n\n\n\n

But I’m also, I’ve always struggled with the actual mixing of the music. Like hearing all of the frequencies and optimising the output. Because there is, again, a right way, like it’s not, again, it’s not black and white, but it’s much closer to, there is a right way for a song to sound with infinite variations, but within a very narrow gap, right? So I could write any kind of song I want, but the way that it should sound when I release it on Bandcamp does have answers. And in fact, this morning, I had finished a mix of a song last night, different from writing it, I’m going back through and tweaking it to try to make it sound as best as it could so that when I send it to DJs and they play it on dance floors, everybody throws their hands in the air, right?

\n\n\n\n

I’ve always struggled with that. My ears aren’t good at hearing those kinds of things. I dropped the track into Gemini, and Gemini came back with a, you’ve got a peak of frequencies at around 5,000, so you should drop that by two db. Your kick and your base are competing, and so you should add a ducker to the base so that the kick comes through and that’ll actually save you four db of headroom when you’re mastering. Like, I mean it was.

\n\n\n\n

[00:26:09] Nathan Wrigley: It just gave you all the science, which is absolutely fascinating. That is genuinely interesting.

\n\n\n\n

[00:26:15] Corey Maass: It probably isn’t perfect, and it definitely can be subjective, like maybe I’m going for Lo-Fi House instead of Big Room House. But I gave it that information where I said, here’s the genre, make me sound like these other artists. And so it said, well, here’s sort of how to help guide you closer to their sound.

\n\n\n\n

[00:26:33] Nathan Wrigley: The interesting thing there, I think, is it gave you a new rabbit hole that should you wish to explore, you just got it prized open. And you wouldn’t have known what any of that was. And so you could probably map that into a million different scenarios, you know, music, art, whatever may be. And it will just give you something back and you’ll be, oh, there’s that universe of stuff to get interested in. You know, the headroom of the dbs and all of that kind of, I mean it means nothing to me, but I kind of grasped that there’s a thing there.

\n\n\n\n

Do you know, you said something really interesting earlier and it probably just slipped out of your mouth and you didn’t notice how interesting or profound it was. You said it wasn’t the point. And you were talking about making music and using AI for that isn’t the point. I think that’s going to become the metric of so much in the future. What’s the point of that thing?

\n\n\n\n

So as an example, if I want to go and see a band, I do not want to watch a video of a band where I have a suspicion that there was an AI involved and it created this video and the music. The point is I want to go and see a bunch of human beings who I know have struggled with their art and their discipline and, you know, failure and moderate success and all of that kind of stuff. I want to know that there was that soul searching going on in that musical arena.

\n\n\n\n

But curiously, when I go to a SaaS app, the point is, does it work? It’s really simple. Does it work? And do I care too much about how the functioning of it was achieved? Not really. The point is, does it work? And maybe we’ll be asking ourselves that question more. What is the point of the thing I’m about to do? Does it matter to me if AI was involved? On closer examination, yes it does. I’m going to avoid that thing. Or, no, it doesn’t. That’s fine. I’ll embrace that thing. It really landed with me what you said there. So that’s kind of curious. I wonder if I’ll start doing that more in my own life, examining the point of it. Is it a human enterprise, something extremely human and only for humans, or is it somewhere else on that spectrum? Yeah, interesting.

\n\n\n\n

[00:28:32] Corey Maass: An example just came to mind, which of course has now just gone out of my mind because I started thinking about six other things. But like I read a couple of graphic novels. That’s what it was, memes. I read a couple of graphic novels and some of it is, I read for the artistry. Some of it I read for the stories. There’s graphic novels where I actually really don’t like the artwork, but I like the storytelling. How would I feel about the art being generated by AI? Because the person who was writing the story couldn’t draw, but could tell a good story.

\n\n\n\n

Or the example that had come to mind were memes, or funny photos, right? I’m not a meme person. I generally don’t repost animated gifs, or can haz cheeseburger, or any of that stuff. Some of it’s cute or whatever, and I’m not against it, but it doesn’t tickle my sense of humor, right?

\n\n\n\n

But lately, I’ve long been proficient in Photoshop because like we said, I started in 97 when you were designing websites in Photoshop or whatever. And so for a long time, like I would say, so here’s a good example. One of my big clients is Seattle Magazine. And so we were doing, I don’t remember, there was some reference of Sasquatch, creatures that are most active in the Pacific Northwest, often around the Seattle area. They are real, by the way.

\n\n\n\n

But the joke was that our editor was writing his letter or something. And so I, quick, ran over to AI and said, here’s the picture of Bigfoot that everybody knows, walking across the stream bed or whatever. Here’s headshots of my editor. Put my editor in this photo. And it generated a photo of Jonathan as Sasquatch, like walking across the river. And it made us all laugh. And I think we did end up putting it in the magazine. I don’t remember.

\n\n\n\n

I would have done the same thing in Photoshop, much less effectively. Even 10 years before, I would’ve grabbed a copy of the original photo and done my best to Photoshop Jonathan into the photo, maybe he’s hiding behind a bush or something. I couldn’t actually change his body to be walking in that pose. Now I can.

\n\n\n\n

Is the effect the same? And again, we’re not talking about the negatives, or obvious negatives, about image generation of other people. Used in a harmless, funny way or day to day. Like, another good example. So on the Mexican Train website, one of the things that I wanted when I created mexicantrain.online was, again, this was about people connecting. This was my COVID project. And so I, a couple of years before, I’m chatting with a buddy online, I was joking about how I was eating Cheez-its, which we like never have in the house and how Cheez-its are just the best thing in the world, and they’re dangerous to have in the house. And a week later, a box of like 50 packs of Cheez-its arrived because he had shipped it to me as a joke.

\n\n\n\n

So I took a picture of me like looking absolutely exalted, elated, holding up Cheez-its. Oh my God, Cheez-its, right? And that’s what I put on the Mexican Train website as a like, hey, I’m Corey, I built this thing, because it was a very relatable photo. A funny little side story is that still, five years later, a lot of people who play Mexican Train daily or weekly using my website buy Cheez-its, or buy Cheez-its for each other as prizes and things like that. Like, it all became an inside joke.

\n\n\n\n

In building the new version, I wanted a new homepage. But that photo, I’ve actually lost the original file of it, and I only have a low res version. So I uploaded that into Gemini. I’m also more bald and my beard is longer. And so I uploaded the original photo and then a couple of photos of me more recently and said, hey, Gemini, using Nano Banana, create a new version of this. And also, like the original photo is very zoomed in. You could really just see my face. And so I was like, I want head and shoulders. And it did a beautiful job. Fixed the lighting. It looks almost a little too polished, frankly. And my wife looks at it and she’s like, I don’t know why, but I can tell that’s AI generated, like I can tell that’s not you. But to anybody else, it’s certainly close enough. I look at it and I’m like, it’s me but I’ve been photoshopped a little or, you know, it’s been cleaned up or something. But it’s close enough. But it’s a better photo that still conveys the same message, but it works better on the page, I think. But it’s not authentic, air quotes.

\n\n\n\n

[00:32:59] Nathan Wrigley: Yeah, that whole authenticity thing is going to be, well, I guess it’s going to be a question for everybody going forward, certainly in, you know, you can imagine politics and things like that. Just judging whether or not the politician that’s on your screen at the moment is in fact doing that thing.

\n\n\n\n

[00:33:12] Corey Maass: That’s the terrifying part is, what’s real anymore?

\n\n\n\n

[00:33:15] Nathan Wrigley: There’s no doubt that we are going to have to kind of work that through.

\n\n\n\n

When you are using your AI, and we will get onto your client bits in a minute. When you are using the AI, on what level do you feel that you are in some kind of relationship with it? That’s a very ephemeral question. But, do you view it as, so you described that a year ago it was less good. So in human terms you might say, okay, it’s more childlike or something like that. You know, it’s a smaller version of a human being. It’s less mature and what have you. Now it’s grown up, for want of a better word. It’s a little bit older perhaps, or more mature or whatever it may be. Do you think about it in any human terms?

\n\n\n\n

[00:33:48] Corey Maass: Oh, absolutely.

\n\n\n\n

[00:33:49] Nathan Wrigley: Isn’t that fascinating.

\n\n\n\n

[00:33:49] Corey Maass: So what’s funny is, we’ve had a few of these conversations lately. My neighbors have Alexa in their house and they changed it to respond to computer, and they will only refer to it as, it. They did not want it to be humanised dogmatically. Like, it’s important to them that this is not a companion, a creature, a whatever, right?

\n\n\n\n

I don’t care that much, and in fact, I enjoy playing with language. And I don’t see, the current state of how we’re interacting with our technology, I don’t have a problem with humanising it, or at least using certain pronouns and things like that.

\n\n\n\n

And that’s why I say that specifically, Claude is a, he, it’s a male name, male, Western English name, right? Or if nothing else, I’ve never met or heard of a woman named Claude. Claude has always been a he. But one of the funny things that happened working with my buddy Robert, is he, like I said, he introduced Copilot to do code reviews and we’re chatting, he’s one of my, the buddies that I have where, you know, we chat online all day, every day, ongoing conversation. And he just started saying she about Copilot. And I did too. I did notice it, but I’m like, I have no objection, reaction to this. I see no harm in it.

\n\n\n\n

I have no idea if we’re going to take this conversation way too far. The Octocat, that is the mascot of GitHub. I don’t know if the Octocat has a gender or pronouns or what have you. If you’re going to think of Copilot as some version of the Octocat, like I don’t, how you might get there, even subconsciously, right? But like just using Copilot, Robert started saying she, so I started saying she. And then he actually said after, Robert, after a couple of days was like, you know, by the way, I don’t know if you noticed, but I’d started saying she for Copilot. For some reason I got a, call it a feminine energy off of her. And I was like, yeah, I noticed. I could maybe pick up, perceive that too, if I’m going to overanalyse it. I mean it so doesn’t matter.

\n\n\n\n

So now Copilot is she and Claude is he. I’ve never thought to ask Copilot if they have preferred pronouns, which I guess would then actually get it into that like real world and societal conversations and philosophical, not to say that a gender discussion is philosophical but, you know what I mean? Like, actual consequences of real world issues, let’s call it that.

\n\n\n\n

[00:36:06] Nathan Wrigley: It is so interesting that a lot of things, the sort of anthropomorphic nature of it, so we’re trying to build robots at the minute, and in many cases we’re trying to build a version of a human being. You know, it’s got legs and arms and clearly in many cases that is the least plausible design for the thing it’s trying to achieve. But we have this notion that, well, if we get a human being out of robots, that’s going to be great. It will be able to do all the things that we can do.

\n\n\n\n

But equally, on some level, we’re trying to get it to approximate human intelligence, human creativity, and things like that. And that kind of leads me to this one final thing before we talk about your clients, and that is, at what point do we start learning from it?

\n\n\n\n

[00:36:43] Corey Maass: Aren’t we already? You’re constantly asking questions.

\n\n\n\n

[00:36:45] Nathan Wrigley: Well, that was exactly the question. Yeah, so it would appear that in the case of code, at least anyway, you know, you ask it to do a particular thing and it will come up with this, I mean you could ignore what it’s done and just play the output and interact with what it has achieved. But if you were to delve into the code, I suspect there is quite a lot of head scratching and looking at things and going, gosh, that’s interesting. Why has it done it that way? That’s curious. Oh, I should be doing it that way.

\n\n\n\n

[00:37:08] Corey Maass: Is it better than me, versus is it better than everybody? We don’t have a way to determine that. And that’s why I brought up the science stuff earlier. I’m like, okay, so if a bunch of scientists, let’s just be vague here, are in a laboratory, or in a think tank and are working together, but they’re also feeding everything that they’re thinking into an AI who is also thinking, at what point if, somebody comes up with a brand new concept or a new way to approach a medical issue or something like that, you’re like, oh, that’s amazing. I don’t think that’s been done before. What happens when that’s Claude or ChatGPT?

\n\n\n\n

Presumably, in that specific instance, like the same process of like, oh, that’s, I don’t think any of us have thought of that before, let’s go do some experiments to see if that actually works, kind of thing. What if it’s well beyond our comprehension? What if it’s, there’s a conclusion, words that are typed on a screen that are so far beyond anything that we’re doing? You think of Einstein or you think of these scientists who have done stuff that, you know, or even, I mean you could be as vague as like painters who died in poverty and obscurity, but we revere them today. Vincent Van Gogh of course comes to mind.

\n\n\n\n

[00:38:19] Nathan Wrigley: Yeah, it’s kind of curious because obviously each one of us is a little entity and we’re constrained by our biology. You know, we’ve got this finite capacity in our brain. You have a finite time span on earth so, you know, for much of that time, you are just basically a recipient of knowledge, if you like? You’re this sponge, which is sucking things in. And then for a period of time you’ll be able to regurgitate it. You know, if you have an accident, your capacity will be diminished. If you’re knocked on the head or something like that. But you’re bound in time and you are bound in capacity because of the size of the neural network that you’ve got in your head.

\n\n\n\n

And yet we’re now being confronted with this other thing, which can do things remarkably quickly, can have the entire corpus of more or less everything at its disposal at a moment’s notice. And it can, this version of the entity over there, inside that other box is exactly the same as this one over here. You know, they’re kind of replicas of each other. And then if you put those two together, they can do things in symbiosis at twice the speed than, basically they’ve got this whole load of stuff going on that we can’t hope to manage.

\n\n\n\n

And it’ll be so interesting being in relation with that, and how we start to learn from it because, when was the last time you actually went to a book or went to a human teacher in your adult life to learn something? You just sort of go to Google, don’t you? And you’ve trusted on a computer to serve up the information for you for a long time. We’ve now got a new route to that information. I wasn’t really going anywhere with that. It was more of a sort of thought process. Yeah, interesting. Okay, let’s move to your client then.

\n\n\n\n

You did allude to this a little while ago, and it sounded like, certainly for the one client that you’ve got, there’s no obstacle here. You are just building the stuff. The client is entirely happy. I presume you are taking on the responsibility if the things that you produce with the AI kind of backfires or something is not working correctly. Is that your estimation of sort of the future into 2026, 2027, that the clients basically don’t care?

\n\n\n\n

And if that’s the case, does it allow you to be more profitable because you are spending less time? Or more effective because you can do more complicated things? Or, do you sense that maybe we’re going to hit a point in the years that come where the clients start to, well, rebel is the wrong word, but you know what I mean, their expectations will be, well, it’s no longer, well, I know that Corey’s using AI, so my expectation’s going to go up in terms of his output, but also my expectation of his fee is going to go down as well? So there’s a lot in that question, but unpack bits however you choose.

\n\n\n\n

[00:40:47] Corey Maass: So answering part 2.6b first.

\n\n\n\n

[00:40:50] Nathan Wrigley: Yeah, thank you. Yeah, that’s helpful.

\n\n\n\n

[00:40:52] Corey Maass: The story is, I had a client who had software built, it didn’t work out. But that meant that, largely her budget had been spent and so she was left with software that was, didn’t do everything she needed it to and, or at least there was not a lot of budget leftover for, because it’s, when the rubber hits the road kind of thing. Going, oh wait, we didn’t think of this. Now that we’re actually using it every day, we need it to do this and this instead of this and this. You design in a bubble and then you actually need to use the thing. And there just wasn’t budget left over.

\n\n\n\n

And so when we started talking, she’s like, I need these few things fixed. I looked at it and was like, I can’t really maintain this. We really want to, I mean typical, this is going to sound like every developer is like, I have to build it from scratch my way. But in some sense, at least in order for me to maintain it, it needed to be rebuilt my way. But we kept looking at, what would that cost? And she’s like, I’ve already spent my budget and so we’re waiting for new clients to come in or lightning to strike so that Corey can do this.

\n\n\n\n

AI happened to be that lightning. And I went back to her and I said, I think we’re to the point now, this was just a couple months ago, that I can build it for probably half based on hours. Because we’re still, at least at the moment, going, okay, we’re charging X dollars per hour of Corey’s time which isn’t, has never been, or at least for a long, long time, has not been just me typing characters into an IDE, right? A code editor. You’re paying for Corey’s experience, you’re paying for Corey’s planning, you’re paying for conversations that we’re having in order to come to certain conclusions to figure out the software we’re going to build, blah, blah, blah.

\n\n\n\n

So thinking of it in that same context, it’s not just about me typing. And so now it’s not about me typing at all. And in fact, I’ve had friends now, and I’ve read this too where the sentiment, or a sentiment, of developers now is we are project managers. We are product designers, or acting as the client in classic agile project management style. We are code reviewers because we’re not, why should we take the time to write the code anymore? And again, this is why, part of why we introduced Copilot, because it’s like, oh, then if we can also not do that part of it.

\n\n\n\n

Humans are valuable. That was something that you inadvertently alluded to earlier, is that we are still currently, we think we’re steering the ship, telling AI what to do and controlling how we’re using it and stuff like that, but like we make mistakes just as much as AI does. We aren’t the stop gap we often think we are, because we often make mistakes, or we don’t know what we don’t know, like you said a minute ago about just googling everything and that kind of thing.

\n\n\n\n

So anyway, talked to the client, said, look I think we can build this for half the price. I’m willing to take the risk if you are. I’m very upfront about like, we’re building this with AI, which is part of why we can do this. And she said, great, let’s do it. And so it’s been a slightly different experience. We still had to have the conversations about what the product looks like, what it does, and stuff like that. But I was in fact able to get it going a lot faster than I would have before. And because this is client work, I’m checking it a lot more diligently. Because again, like you said, there’s liability, or at least I’m going to be the one that has to fix it, so I need to make sure that it’s written in a language that I understand, and it’s laid out in a way that I understand.

\n\n\n\n

And I was a little more opinionated because I want to make sure that files are in certain folders, which nobody, as we said at the beginning of the call, nobody cares about. Like, as long as the software works, nobody cares where the files are. But we’ve, over 30 years of development, we’ve developed certain patterns that just make it easier. So why shouldn’t we take the time to make it easier? And especially since I don’t have to do the work, I can say, hey, Claude, you put this file over here, put it over here instead. And Claude goes, sure. Why not? I don’t care.

\n\n\n\n

[00:44:47] Nathan Wrigley: I guess if we ever get to the point where the AI is literally doing everything, then all of that would go out the window, wouldn’t it? You wouldn’t ever need to care where that file was, so long as the AI had a hand in knowing where that was, and it could retrieve that information and modify things as it was. But it feels like we’re certainly still in that human diagnosis phase, where you need it to look a certain way. I’m doing air quotes again, the sort of old fashioned way, you know what I mean? The way you’ve always done it, so that when it puts something out, you, yourself can look at it and go, okay, this is comprehensible to me. I can understand and see if there’s been errors. But I would imagine it’s not going to be long until that moment has passed.

\n\n\n\n

[00:45:23] Corey Maass: With the new version of Mexican Train, treating it kind of like I talked about Timerdoro early on, I’m caring a lot less, and I’m forcing myself to care a lot less. I’ve got a working version, this is an online game that is important to people, and it’s not that it’s not important to me, but I am comfortable with taking a little more risk. And so I am letting it more freely do what it wants.

\n\n\n\n

What’s interesting is we are not to the point yet where, as you said, this box is the identical to this box. So I am finding that on certain days it’ll go, well, I’ll put the file here, and on other days it’ll say, put the file here. It doesn’t matter, right? At least with that example, it doesn’t matter. You want it to write performant code, so you want it to make choices where things like performance matter, but whether a file is in one directory or another does not have real impact on the performance of the game.

\n\n\n\n

But comprehension down the road, because this is where we overlap with humans. You’re like, okay, so Claude tomorrow needs to understand where things are. It still makes more sense to have a logical file structure so that Claude tomorrow can go, oh, it looks like all of these types of files are in this directory. And so we end up coming to some of the same conclusions that 30 years of human development has decided are the better patterns.

\n\n\n\n

[00:46:45] Nathan Wrigley: Okay. Yeah, that’s kind of interesting. I mean, I guess it was ultimately because it’s creating its own, I don’t know, it’s next word based upon the whole corpus of the human word written down on the internet. It’s probably going to make, draw some broadly similar conclusions.

\n\n\n\n

It sounds, from what you just said, you used the word like half, I think a minute ago when you were talking about maybe the budget or the time available. Sounds like you were at roughly 0.5, half of whatever the commodity was, budget or time or what have you. Is that roughly where you think you are at the moment compared to pre AI in terms of efficiency? And do you see that efficiency, again, time or money, whatever it may be, do you see that dynamic changing so that you eventually get to, I don’t know, 0.4, 0.3, 0.1 of the amount of time that you would’ve done? And do you have an expectation that, at the time that you are doing 0.1 of the work for the same outcome, that you’ll get 1.0 of the salary that you got? Or will you have to do, you know, the other 0.9 on other jobs?

\n\n\n\n

[00:47:43] Corey Maass: There’s a reason why developers really like starting new projects or rewriting them from scratch, right? Clean slate. And I think that that work, where you are in total control, in an empty directory, all technology at your fingertips, I see that quickly speeding up. I’ll tell you, one of the biggest hacks, I should have said this way up front, like the best value, because I’m finding a lot of people don’t know this, is screenshots will save you.

\n\n\n\n

Claude Code does not, there are ways around this, but largely Claude Code or other AIs do not know what things look like in the browser. So taking screenshots, dropping them in, you can now say, look, the columns are misaligned or whatever. But also, even text, like I am just constantly taking screenshots and throwing them in to Claude, right?

\n\n\n\n

So part of what I’m doing right now, I know there’s a better way to do this, but I haven’t stopped to figure it out yet, is, Copilot reviews the code and then spits out a bunch of comments, right? I am taking screenshots of each one of those comments and dropping it back into Claude and saying, here’s what Copilot said, fix it. But I don’t even really have to type any words because Claude just reads the words that are in the screenshot. So it takes me three seconds to take a screenshot, drop it into Claude, and then Claude goes, oh, it looks like Copilot said we should do this instead, that makes sense. Or even has come back and said, well, Copilot doesn’t understand the bigger context, so I’ll push back on this kind of thing, right?

\n\n\n\n

But I’m still copying, I’m still taking screenshots and pasting. There’s got to be a way, I fully intend to do this soon, to figure out how to have Claude just read those comments and so the two of them can work together. So I shouldn’t be involved until there’s, I want a system that comes back and says, Claude did all, made all these changes, Copilot made all these comments, Claude is cool with these and not with these. Overall, we’re good to go.

\n\n\n\n

[00:49:41] Nathan Wrigley: It’d be so interesting to set the two agents against each other, I don’t know, at bedtime on one evening, and to wake up in the morning and see quite how they’ve got along, if you know what I mean? You know, has it been this entirely, because obviously it’s built upon the corpus of human knowledge, it’d be interesting to see if it’s been this entirely productive experience, or if there has been some element of humanity creeping into that conversation where, you know, one of them throws their toys out the trolley halfway through and things like that. It’d be absolutely fascinating to see if they, you know, or if one just sort of, I don’t know, determines that maybe, oh, that AI’s doing a much better job than I am. I’m going to slow it down with some.

\n\n\n\n

[00:50:19] Corey Maass: Or level up or, yeah. So getting back to your question though, right? Nothing is the same as actual humans interacting with something. So if we’re talking about traditional software that humans are clicking on, and then that’s my second biggest point right now is, since we’re supposed to be talking about WordPress, WordPress is all about clicking, right? It’s all about interface. It’s all about, you’re signing into an admin so you think about how visual that is, and then in the admin, you’ve got this left menu with, here’s all your options, click, click, click, click. And then the design of the page, right?

\n\n\n\n

Every client wants the logo to be bigger. And so you can go into AI and say like, oh, where I’m at right now is, if I’m building something new, I can use AI, I can generate it if I’m building software. But trying to essentially retrofit into current existing WordPress sites, we’ve got all these features that require clicky clicky on buttons, and AI can’t do that readily or what have you.

\n\n\n\n

So I’m still spending a large part of my day signing into WordPress sites, clicking around actually making changes, reconnecting. When we post a story, it pushes to Facebook and so I’ve got to actually go in and connect and click through the screens and all that kind of stuff. Which at the end of the day, most of the changes that you’re making in UI correspond to things being saved in a database. So at some point we’re going to get to where AI knows, oh, for Beaver Builder, I can make this change, store it in the database in a certain shape, and Beaver Builder will know how to render that on the front end.

\n\n\n\n

I’m already finding that with ACF, for example, like I have ACF save field groups as JSON, a feature they’ve had for a decade. But because it’s in JSON, in text files, AI can read that and then go in and make changes or replicate it sideways because it says, oh, it wants the data to look, have this certain structure so I can create another file and make the data have this certain structure and does a great job. But there are 50,000 plugins. And I’m not about to let AI go and look at my database willy-nilly to say, oh, Elementor wants the data to be stored this way in the database, let me just start writing things to, you know? And so there’s still that disconnect right now.

\n\n\n\n

[00:52:53] Nathan Wrigley: Yeah, I think WordPress is doing a lot of work with things like the Abilities API and things like that to sort of surface what WordPress is capable of. And I would imagine, you know, you mentioned Beaver Builder and Elementor, I’m imagining that in a future, they’ll be writing what their capabilities are, and where they’re storing their information in such a way that the, hopefully anybody with any AI can kind of instruct the AI to do the thing, and it will know what the thing is.

\n\n\n\n

Absolutely fascinating. I’m so curious because you are doing a whole load of stuff that I’m just not doing. I was never really an out and out developer, I was kind of dangerous with code. But equally it does seem like folk like me, who are not really experimenting with this too much are getting, well, left behind is maybe one way of describing it, maybe we’re sort of enjoying it on some level as well. We’re enjoying watching other people do it, and we get to worry about what the societal impacts will be.

\n\n\n\n

[00:53:44] Corey Maass: It’s points of integration. Electric cars came along and most of us were like, I don’t want or can’t buy a Tesla. But then the Prius came out and everybody went, oh, I can buy a Toyota. That’s probably historically inaccurate. Maybe the Prius came out before Tesla, but you get my point.

\n\n\n\n

The people around me, my neighbors are teachers. One of them has no interest, has no reason to use AI other than like, oh, let me look up a recipe or something. Versus, the other neighbor who really wants to be cutting edge and also thinks that this stuff is really neat. Is constantly trying to figure out, how can I run, generate, bingo cards was the new thing? Have AI figure out how to do these bingo cards for my students, or what have you. And you get into the moral gray area of, who’s actually writing papers and then who’s actually grading them? And so basically you’ve got AI grading papers that were written by AI. And you can get into, like anything, there’s all these sort of side effects. But, again, trying to keep it upbeat, like there’s neat things.

\n\n\n\n

[00:54:44] Nathan Wrigley: Yeah. No, I think we’ve done a great job of kind of keeping it upbeat. You’ve just been relentlessly positive about it. You know, it’s obviously had a profound impact on your life, your capacity to do things. You sound like you’re infinitely curious about it as well. So it’s, maybe the life of a developer was something that wouldn’t have held the same level of excitement for the next decade or more. But this new technology getting injected and shaking everything up a bit, makes it so that you can do things that you might not have ever taken on, because the technical challenges or time might have been too difficult.

\n\n\n\n

[00:55:12] Corey Maass: Would I want to be a new developer? I don’t know. Again, I think things are, I’m trying to describe where I’m at now, where, again, like WordPress is still very clicky clicky, and that happens to be the majority of the work that I do professionally.

\n\n\n\n

I also think that, like I run a lot of websites for friends and for local nonprofits and stuff like that because there’s still something to be said for having a website. And the easiest way, so like we have a local, city owned, calling it a ski mountain is generous. You can technically ski on it. Most of the value to the community is there’s a tubing hill. So you get pulled up the hill in a tube and then you come screaming down the hill at 25 miles an hour. It’s freaking awesome.

\n\n\n\n

I volunteer there and so when we needed a new website, I said, let me make a new website, right? I don’t want to be, if I’m involved in a tubing accident, this is the pointed version of getting hit by a bus, the developer scenario of getting hit by a bus, right? Somebody else needs to be able to step in and maintain that. So the website can’t, the value of something like WordPress, a CMS software in general for generating websites, right. I can’t, and even, TMI, but the guy who had the previous website had built it all by hand, and so nobody else could begin to maintain it or make changes to it.

\n\n\n\n

And so for the new version, I was like, this is literally the best scenario for WordPress because I created the website and then I shot a video of how to update the website. And just a week ago, the head of the board in charge of it got in touch and said, hey, how do we make changes to the website? Do I have to send them to you? And I said, here’s a video, go give it a try. And if you get stuck, then absolutely contact me. But if there was any sort of running of scripts or FTPing into the server to make changes, or any of that stuff, like it would fall flat. And so you still need, at the moment, you still need clicky clicky.

\n\n\n\n

Shortly, as you said with the new API and stuff, there’ll be a little chat bot where you’ll say, look at this website. And the AI will go, oh, it looks like you’re using Beaver Builder with ACF, and you’ve got Yoast installed, dah, dah, dah. And then you’ll say, okay, we need to change the homepage to say the following things. And I think we’re going to go through, like any of this stuff, we’re going to go through a phase where it’s going to absolutely break the website and my phone will ring.

\n\n\n\n

But six months later, it’ll get better and better and better, and then using certain plugins. And I think, you talk about adoption, I think, if the plugins that lean into making AI be able to use their software well and quickly. So like I’m a big fan of Beaver Builder. So if Beaver Builder leans into enabling AI to interact with Beaver Builder, right? Then we are going to, just like any of the things in WordPress, there’s good and there’s bad, there’s favorites, there’s things that break over time. There’s all that kind of stuff, things that are maintained well and whatnot.

\n\n\n\n

And so we’re going to get to a point where certain stacks are going to work better with AI. And I think site creators like me are going to say, oh, I don’t want to maintain this website for our local ski hill more than I have to. But instead of them having to go in and click on things and adjust boxes on a screen, I’m going to use Beaver Builder, but maybe I give up, ACF will never let me down but let’s, hypothetically, ACF doesn’t work well with AI, but Meta Box does. So I might say, okay, I’m going to switch my AI friendly stack to be Beaver Builder with Meta Box, so that they can just go in and type something, it’ll all sort itself out more reliably. And I think that’s what we’re going to see over time.

\n\n\n\n

[00:58:59] Nathan Wrigley: Yeah, I think there’s been so many interesting predictions about what is coming. Most of my predictions have turned out to be just hot air, essentially, because the rate of change is so, so, very fast. But I do like the direction that WordPress is going in, where it’s being sort of agnostic of the AI, the actual API, for want of a better word. You know, it’s just going to hopefully be able to bind to any of those. I think that’s a curious direction, and it kind of leans into that, I guess the philosophy of something like WordPress as well. That it’s there for everybody and it’s not there to generate money for a particular company, be it Open AI or Gemini or what have you.

\n\n\n\n

We’ve probably hit the sweet spot in terms of the amount of time that we can give to this. What an interesting discussion though. So far ranging. We ended up with lots of sort of philosophical points, and lifestyle points and all sorts in there. But I think in the end we sort of wrestled it back to WordPress.

\n\n\n\n

So Corey, where can we find you? If somebody’s interested in sort of having a chat and wants to talk AI, where would you be online?

\n\n\n\n

[00:59:53] Corey Maass: Sure. Twitter, @coreymaass, is probably the social that I’m most active on. But also, Post Status, the WordPress community. Always love shouting that out. That’s been invaluable in my life and career. And then me as a developer, company, gelform.com. G-E-L-F-O-R-M .com. You can email me there if you want to yell at me or praise me or, but privately.

\n\n\n\n

[01:00:21] Nathan Wrigley: Okay. We will put all of those into the show notes so that anybody that wants to reach Corey can do that. Head to wptavern.com, search for Corey’s name. It’s a slightly unusual spelling. The surname, it’s C-O-R-E-Y, the Corey bit, but Maass is M-A-A-S-S. So search for that and you’ll be able to find him. Corey, thank you so much for chatting to me today.

\n\n\n\n

[01:00:39] Corey Maass: Thanks Nathan. Always a pleasure.

\n
\n\n\n\n

On the podcast today we have Corey Maass.

\n\n\n\n

Corey’s been building for the web since the late nineties, starting out in the early days of Photoshop and tables, learning JavaScript, ASP Classic, and PHP, and eventually falling into the world of WordPress around 2010. Since then, he’s taken on building SaaS apps, managing client projects, and experimenting with a growing number of productivity tools and frameworks. He’s joined us before, and today he’s here to share his perspective on what it’s been like adopting AI into his workflows, especially from the point of view of building projects for clients.

\n\n\n\n

Although AI has dominated headlines over the last couple of years, Corey brings a practical angle to the conversation. He discusses the evolution of his tech stack, and how embracing AI tools like Cursor, Claude Code, and GitHub Copilot have completely changed the way he builds software and manages projects, allowing him to work faster, automate code review, and unlock creativity in places he hadn’t expected.

\n\n\n\n

We hear about how his journey with AI started, how he’s reimagined old projects using new tools, and how learning to interact with these models, sometimes granular, sometimes letting them run freely, has reshaped his daily workflow. Corey describes the shift from using AI just to save time, to using it as a sounding board for inspiration and idea generation, even weaving it into artistic endeavours like music production.

\n\n\n\n

Much of the discussion centres around how these advances have affected client work, with Corey exploring the real-world balance of responsibility, efficiency, and the changing nature of value for developers. Do clients care who, or what, wrote the code, or just that it works? What does authentic creativity mean in an era where prompting and randomness are part of the toolkit?

\n\n\n\n

Whether you’re a developer curious about what ‘working alongside AI’ means ‌or just wondering about the future of tech and WordPress in an increasingly automated world, this episode is for you.

\n\n\n\n

Useful links

\n\n\n\n

Corey on X

\n\n\n\n

Corey’s Gelform website

\n\n\n\n

Cursor

\n\n\n\n

Claude Code

\n\n\n\n

GitHub Copilot

\n\n\n\n

Timerdoro

\n\n\n\n

TypingMind

\n\n\n\n

Gemini

\n\n\n\n

ChatGPT

\n\n\n\n

Corey’s Mexican Train game

\n\n\n\n

IndyDevDan

\n\n\n\n

Nano Banana

\n\n\n\n

Seattle Magazine

\n\n\n\n

Beaver Builder

\n\n\n\n

Elementor

\n\n\n\n

Abilities API

\n\n\n\n

Yoast

\n\n\n\n

ACF

\n\n\n\n

Meta Box

\";s: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, 14 Jan 2026 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:\"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: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:31:\"Matt: Remembering Jesus Ornelas\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=151082\";s: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:48:\"https://ma.tt/2026/01/remembering-jesus-ornelas/\";s: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:2494:\"

Today we honored the passing of Jesus Ornelas, the father of my friend Rene, whom I’ve known for 28 years now. At the service outpouring of love expressed in words, music, and presence was so powerful. Alongside his biological sons, I said a few words, which are as follows.

\n\n\n\n

My memories of Mr. Ornelas begin with seeing him, without fail, drive Rene halfway across town twice a day to attend HSPVA to support his artistic calling, even though his own predilection was for handicraft. The tireless devotion of a father working to create a better life for his son.

\n\n\n\n

I remember fondly when we would gather at Woodlawn, three houses on the same street, his sly smile and contentment seeing all of his family so close together. Gosh, looking back, we were so poor, but only in money. We were rich in love and family. My memories of those times are not what we lacked, but the abundance of what we had together, which was time, friendship, and some pretty darn good food.

\n\n\n\n

Mrs. Ornelas, your love and devotion to your husband through these twenty one years of dementia is an inspiration to us all who love a partner and a testament to the human spirit. Su amor y devoción hacia su esposo a lo largo de estos veinte uno años de demencia son una inspiración para todos nosotros que amamos a una pareja y un testimonio del espíritu humano.

\n\n\n\n

To Jesse, Eddie, and Rene, I will say that how you live as men is a testament to the example your father set. I can’t imagine how proud he must be looking down at this room, seeing how he came from such challenging conditions in Mexico to build a life for you all here in Houston and see every generation grow and prosper even more. Rene, I hope our fathers are together, cracking a beer and smiling as they look down on our lives.

\n\n\n\n

Though his corporal form is no longer with us, everyone here will keep him alive by remembering and embodying his best qualities. We don’t need a bracelet to remind us What Would Jesus Do in those invisible acts of service for loved ones.

\n\n\n\n

May his memory be a blessing to all of us, and let our actions, seen and unseen, honor his legacy.

\";s: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, 14 Jan 2026 04:30:16 +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:30;a:6:{s:4:\"data\";s:21:\"\n \n \n \n \n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:80:\"Open Channels FM: Do the Woo Live with Matt Mullenweg Kicks Off January 14, 2026\";s: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=114095\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:86:\"https://openchannels.fm/do-the-woo-live-with-matt-mullenweg-kicks-off-january-14-2026/\";s: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:167:\"On January 14, 2026, at 15:00 UTC, the Do the Woo podcast returns live with hosts Katie Keith and James Kemp, featuring Matt Mullenweg discussing WooCommerce\'s future.\";s: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, 13 Jan 2026 13:55:51 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:31;a:6:{s:4:\"data\";s:21:\"\n \n \n \n \n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:94:\"Open Channels FM: Making Accessibility Fun and Brain-Friendly for Web Developers and Designers\";s: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=114100\";s: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://openchannels.fm/making-accessibility-fun-and-brain-friendly-for-web-developers-and-designers/\";s: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:193:\"In this episode, Anne Bovelett chats with Gehirngerecht founders Nina Jameson and Tobias Roppelt, discussing their mission to promote digital accessibility through engaging workshops and tools.\";s: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, 13 Jan 2026 12:22:34 +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:20:\"Matt: Shorter Speech\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=151076\";s: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://ma.tt/2026/01/shorter-speech/\";s: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:898:\"

One of the great WordPress blogs is Quote Investigator. In their investigation into the original source of “If I had more time, I would have written a shorter letter,” I came across this great variation from Woodrow Wilson on the amount of time he spent preparing speeches.

\n\n\n\n
\n

“That depends on the length of the speech,” answered the President. “If it is a ten-minute speech it takes me all of two weeks to prepare it; if it is a half-hour speech it takes me a week; if I can talk as long as I want to it requires no preparation at all. I am ready now.”

\n
\n\n\n\n

So true.

\";s: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, 13 Jan 2026 07:47: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: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: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:14:\"Matt: Matt 4.2\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=151053\";s: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:31:\"https://ma.tt/2026/01/matt-4-2/\";s: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:5175:\"

It’s that time of the year again for a new version release. Forty-two is a fun number, of course, famous from The Hitchhiker’s Guide to the Galaxy.

\n\n\n\n

I’m in Miami, where I’m attending a conference by Richard Saul Wurman. I decided that it would be a great way to fill my brain on my birthday. Since New Year’s, I’ve been in warm climates and had lots of dips in the ocean. Had a small birthday dinner a few days ago and my friends surprised me with a beautiful “HappyBdayMattic” cake.

\n\n\n\n

This last year was particularly challenging, especially at the beginning. However, it just kept getting better, and particularly WordCamp US in August was inspiring. The warmth and support of the WordPress community pulled me out of the funk I had been in. It was also when I kicked off the habit of daily blogging, which led to 2025 being the highest number of words (34.7k) I’ve posted since 2004! I traveled 209k miles, about a third lower than last year, spending longer stretches in 45 cities and 16 countries.

\n\n\n\n

One of my biggest lessons of the year was learning how to ask for help. I’m usually the person others come to, and I carry a lot of responsibility on my shoulders from my friends and loved ones, and for the companies and communities I’m lucky enough to be part of. I’ve had some bad experiences asking for help in the past, as well. Now, how I see it is that it might not always work, but if you don’t ask for help, you also don’t give people the chance to step up. This year, the support of several friends got me through some really tough spots.

\n\n\n\n

A joy of this year was seeing my godchildren grow up, close friends starting families, and the Audrey Scholars program. There’s a Walt Disney quote I just found out about that I love: “I do not make films primarily for children. I make them for the child in all of us, whether we be six or sixty.” Kids can’t help but remind you how important it is to maintain that childlike sense of curiosity.

\n\n\n\n

A random new thing I’ve adopted this year is coconut water. I’ve been trying to hydrate with electrolytes, especially first thing in the morning, and it’s a great natural source of minerals.

\n\n\n\n

My main goals this year are to keep up daily writing, post some of my archive photos, finally visit Rome and bring my family, swim more, and be the best leader for Automattic and the WordPress community through the incredible changes and opportunities of the AI era.

\n\n\n\n

Even though I have several decades of history now, I find myself looking forward far more than back. Great words to live by I just learned from Jeffrey Katzenberg, apparently originally from Doug Ivester.

\n\n\n\n
\n

Never let your memories be greater than your dreams.

\n
\n\n\n\n

That said, it is a funny time to revisit my original version-number birthday post, 2.2, which is exactly 20 years old now.

\n\n\n\n

I wish everyone a wonderful 2026!

\n\n\n\n

All birthday posts: 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sun, 11 Jan 2026 18:54: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: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: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:25:\"Matt: Classical Accordian\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=151049\";s: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:42:\"https://ma.tt/2026/01/classical-accordian/\";s: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:\"

So my new obsession is a Ukrainian-born musician, Alexander Hrustevich, who plays a type of chromatic Russian accordion called a Bayan. He plays incredible transcriptions of classical pieces, replicating the parts of an entire orchestra with just two hands. If you’re familiar with Vivaldi’s Four Seasons, you know the Presto for Summer is one of the most challenging parts. Listen to this, it’s just a bit under three minutes.

\n\n\n\n
\n\n
\n\n\n\n

Here’s the 14 minute version which is beautiful to hear the dynamic range that’s possible.

\n\n\n\n

I’ve always loved the sound of a big pipe organ and the resonance and feel of the bayan. It is really quite remarkable, and it’s been very enjoyable having a playlist of Alexander’s music in the background as I work. This Bach-Fantasia and Fugue in G minor BWV 542 is also quite good.

\n\n\n\n

My 42nd birthday is tomorrow! Working on a post for y’all.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sun, 11 Jan 2026 04:20: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:4:\"Matt\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:35;a:6:{s:4:\"data\";s:21:\"\n \n \n \n \n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Matt: Mad Ones\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=151045\";s: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:31:\"https://ma.tt/2026/01/mad-ones/\";s: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:487:\"
\n

The only people for me are the mad ones. The ones who are mad to live, mad to talk, mad to be saved, desirous of everything at the same time, the ones who never yawn or say a commonplace thing, but burn, burn, burn, like fabulous yellow roman candles exploding like spiders across the stars.

\n
\n\n\n\n

— Jack Kerouac, On the Road

\";s: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, 10 Jan 2026 07:57:28 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s: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: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:15:\"Matt: Small Hit\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=151039\";s: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:32:\"https://ma.tt/2026/01/small-hit/\";s: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:1146:\"

The NY Times has a profile of John Ternus as a possible successor to Tim Cook that has a number of ridiculous lines; it’s quite bad, but this is one of my favorites:

\n\n\n\n
\n

Apple has had many small hits under Mr. Cook and continues to be one of the most profitable companies in the world. 

\n
\n\n\n\n

Goodness! I would love to have a hit someday as the small as the ones Apple has had under Cook. Apple Watch sells more than the entire Swiss watch industry. Airpods are the most popular headphones in the world. Their market cap is bigger than the GDP of all but four countries in the world.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 09 Jan 2026 05:45:44 +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: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:60:\"Open Channels FM: Eight Years and 1.53 Million Seconds Later\";s: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=113805\";s: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://openchannels.fm/eight-years-and-1-53-million-seconds-later/\";s: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:137:\"With enough words spoken to fill the Harry Potter series three times over, BobWP shares some fun numbers on this 8th year of the podcast.\";s: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, 08 Jan 2026 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:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:38;a:6:{s:4:\"data\";s:21:\"\n \n \n \n \n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"Matt: Beeper &amp; Day One\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=151033\";s: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://ma.tt/2026/01/beeper-day-one/\";s: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:447:\"

Pankil Shah writes I replaced WhatsApp, Telegram, and Messenger with this one app. (It’s Beeper.) And Wirecutter picks the 3 best journaling apps of 2026. (It’s Day One.)

\";s: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, 08 Jan 2026 05:37:01 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s: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: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:111:\"WPTavern: #199 – Brian Coords on WooCommerce’s Challenges and Innovations in a Changing WordPress Landscape\";s: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=202139\";s: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:122:\"https://wptavern.com/podcast/199-brian-coords-on-woocommerces-challenges-and-innovations-in-a-changing-wordpress-landscape\";s: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:60076:\"
Transcript
\n

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

\n\n\n\n

Jukebox is a podcast which is dedicated to all things WordPress, the people, the events, the plugins, the blocks, the themes, and in this case, WooCommerce’s challenges and innovations in a changing WordPress landscape.

\n\n\n\n

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

\n\n\n\n

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

\n\n\n\n

So on the podcast today, we have Brian Coords.

\n\n\n\n

Brian has been active in the WordPress space for over a decade, starting out in agencies, building and managing websites, and is now a developer advocate at WooCommerce, bridging the gap between woo’s internal engineers and the wider developer community. His journey includes being a high school teacher, working for nonprofits, and writing for the WP Tavern before landing his role at Automatic.

\n\n\n\n

If you’re interested in where WooCommerce and WordPress itself are headed, this episode will help as Brian shares insights on WordPress’s evolving focus, the importance of embracing AI, and how a slower pace of change can be a strength in any open source ecosystem.

\n\n\n\n

He talks about the massive rebrand at WooCommerce, the challenges and opportunities in competing with SaaS giants, and the unique developer relations role that balances his technical experience with communication skills.

\n\n\n\n

We get into how the team Brian works with supports developers and agencies with documentation, office hours, and feedback loops, and how WooCommerce’s global Reach makes for a complex but thriving ecosystem.

\n\n\n\n

There’s discussion about recent marketing efforts, the realities of open source support, and the surprising diversity of WooCommerce users worldwide.

\n\n\n\n

Towards the end, we look ahead to what’s coming for WooCommerce, which is greater integration with block based editing in WordPress Core, major investments in AI to streamline store management, and the future landscape of online shopping.

\n\n\n\n

If you want to hear how WooCommerce and WordPress are responding to a rapidly changing tech environment, this episode is for you.

\n\n\n\n

If 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\n

And so without further delay, I bring you Brian Coords.

\n\n\n\n

I am joined on the podcast by Brian Cords. Hello Brian.

\n\n\n\n

[00:03:09] Brian Coords: Hey, thank you for having me.

\n\n\n\n

[00:03:11] Nathan Wrigley: You’re very welcome. I have a lot of respect for Brian. I’m hoping that by the end of this podcast you also have a lot of respect for Brian.

\n\n\n\n

Brian has been kind of part of my browsing on the internet and WordPress journey, I want to say, for five or six years, something along those lines, I’ve known about you and followed your stuff. Pretty much everything that you’ve done. I’m really pleased that you’ve come on the podcast to talk to me today about WooCommerce.

\n\n\n\n

Those people that don’t know Brian, I’m going to give you an opportunity just to introduce yourself. So would you mind, I know it’s a banal question, but little potted bio, couple of minutes about your WordPress journey, or you can talk about the guitars in the background if you prefer.

\n\n\n\n

[00:03:47] Brian Coords: Yeah, nobody wants to hear me talk about or play a guitar.

\n\n\n\n

Yeah, so I’m Brian. I’m a developer advocate at WooCommerce, so I work on sort of the community side, bridging the gap between the community of developers that build on top of WooCommerce or build stores with WooCommerce, and then our internal engineers and make sure that communication channel stays open.

\n\n\n\n

But before that, I spent probably 10 years working at a WordPress agency. So building sites, managing team of developers, doing all the kind of work that a WordPress agency does and sort of lived through that time from early page builders all the way until the last few years in the rise of the block editor. So I kind of have that personal experience of what it’s like just selling WordPress websites for a living.

\n\n\n\n

And before that, my career went through a whole bunch of different places. Was a high school teacher, worked at nonprofit, all sorts of different things. So happy to be at Automattic, where I get to sort of teach, sort of build websites and just hang out with people.

\n\n\n\n

[00:04:44] Nathan Wrigley: I had no idea that you were a high school teacher. I have enormous respect for anybody who takes on a role in public education. So that’s interesting.

\n\n\n\n

So I’m going to segue a little bit. This question’s just occurred to me from everything that you’ve just said, given that you’ve been in the space of WordPress for the last 10 years, more.

\n\n\n\n

So it’s a bit of a peculiar one, but are you as excited about it as a project as you were, let’s say, 10 years ago? Do you still think that it’s got the future that you probably thought it had a decade ago?

\n\n\n\n

[00:05:13] Brian Coords: Yeah, I mean that’s a good question. I would say overall, yes, I am excited about it. I think that if there’s any concerns about WordPress or things to be not excited or scared about, it has nothing to do with WordPress and has everything to do with the internet as we know it, and AI and everything changing and economics and all these other sorts of things.

\n\n\n\n

The project itself, it seems to, I would say over the last year, really narrowed its focus on what it thinks its role is. And I think it’s adopted the AI change really well, and that’s made me very excited. I think it understands, you know, I think some of the things about WordPress is sometimes the day to day, you feel like the decisions are a little confusing, but if you look at it over the long term, it’s half the internet. So clearly the decisions tend to work out in the long run. So I think I still have faith in the project.

\n\n\n\n

[00:06:01] Nathan Wrigley: I find that the slow pace of change is actually one of its greatest strengths, but it takes an awful lot of mulling it over and sitting down and being calm with yourself to think, why hasn’t it got all these features? Why is it not keeping track of this, that, and the other thing that’s going on on the internet? But broadly, when you look back at any 2, 3, 4, 5 year period, I think usually that was the right decision, although it feels like it might not have been the right decision when that moment is passing.

\n\n\n\n

[00:06:32] Brian Coords: Yeah, there’s a lot of people who look at a lot of decisions, like say the block editor and they say, well, why didn’t they just take Elementor and stick that in Core and stuff, you know? Regardless of the fact that Elementor is a successful business that probably doesn’t want their software stolen and taken into Core. But I think if you look at it now you, a lot of those decisions would’ve seemed a little crazy.

\n\n\n\n

And the fact that it doesn’t throw everything and that it just throws the kind of basic foundational layer, and then it allows something like Elementor or any of these other page builders to be successful businesses and do their thing. The fact that it empowers that to exist, or it empowers all the other builders to exist, or it empowers WooCommerce or all these other plugins to exist, is a testament to the fact that it didn’t try to be everything to everyone, and it just kind of stayed in its lane as a foundational layer. And so I think it’s, it doesn’t feel like it’s doing that much, but it’s working out well for everyone in the ecosystem.

\n\n\n\n

[00:07:24] Nathan Wrigley: We don’t want to get into this, in fact, I’m going to insist that we don’t get into this. But I think it is a really interesting time with the tsunami of things that are going on with AI to see how a CMS can cope with the future with AI as a possible tool to do everything. To do every single thing that would be required in building a website. It’ll be interesting to see how the project goes.

\n\n\n\n

And, you know, there’s a lot going on there, and I think this is one of those moments where we have to just sort of sit down and be calm and see what the teams are doing and just have faith. I think at least that’s my position anyway. So you don’t have to respond to that if you don’t want to.

\n\n\n\n

[00:08:00] Brian Coords: Yeah, I’m just overwhelmed by AI sometimes on my day-to-day work. And so I do have to remind myself the only thing you can do is sit and go slow and just see what happens, because I don’t think we can predict it.

\n\n\n\n

[00:08:11] Nathan Wrigley: No, I think you would be right. So when you joined Automattic, how long ago was that now? Roughly.

\n\n\n\n

[00:08:16] Brian Coords: Almost a year. Early this year.

\n\n\n\n

[00:08:18] Nathan Wrigley: Yeah. Did you have intuitions at that point that WooCommerce was where you were going to end up? Was that where you were heading or is that just sort of serendipity?

\n\n\n\n

[00:08:26] Brian Coords: No, well, not really. When I first started, I kind of was all over the place. I was here at WP Tavern for a few weeks as part of that trial writing project. I did some work with wordpress.com and kind of got to see behind the scenes of that, and I had friends at all different parts of the company.

\n\n\n\n

What I knew that I wanted to do was developer advocacy or what some people call developer relations. I knew that that’s where the role that I wanted, but I don’t think I would’ve thought of Woo. But then when the opportunity came up, there was a lot that I really liked about WooCommerce that I thought it had such a strong idea of what the product is, who the customers are. They had just done that rebrand where they had the new logo and the new colours and the new design. It felt like the whole company was kind of just doing really cool things.

\n\n\n\n

So once the opportunity came up, I’ll be honest, I didn’t build a lot of WooCommerce stores before I joined. So other than being kind of afraid of learning all of this stuff it was, definitely it made sense once the opportunity came up.

\n\n\n\n

[00:09:22] Nathan Wrigley: Yeah. With the sort of WooCommerce side of things, are you happy with that move? You know, you’ve got your feet onto the table now and you feel that’s where you’re going to stay, I guess, for the near future.

\n\n\n\n

[00:09:32] Brian Coords: Yeah, definitely. What’s interesting about Automattic is over the last year, since I joined it’s been kind of a turbulent year at the company, but one of the things they’ve been really trying to do is centralise things and be more consistent.

\n\n\n\n

So in WooCommerce, there’s a lot of stuff that WooCommerce would go off and do, and it would be kind of different from say, Core WordPress or wordpress.com or WordPress VIP, or all these different kind of parts of WordPress inside of Automattic.

\n\n\n\n

And over the last year, they’ve tried to kind of centralise and say, why do we have three different plugins that are doing similar things. Or why can’t we streamline all of this or have everybody working on the same stuff. So WooCommerce has been doing a lot of work really towards Core WordPress, and making the Core WordPress experience better so that WooCommerce can use those tools instead of doing it.

\n\n\n\n

So in a weird way, I’ve actually gotten to collaborate a lot more with some of the other sides of the company and people who do this job but are not in WooCommerce. There’s a whole team that has people like, let’s see, Ryan Welcher, Justin Tadlock, Jonathan Bossenger, that whole group. So it’s kind of nice. We’re in our little Woo bubble too, but then I get to work with them and learn from them, and work on Core WordPress too. So it’s kind of, it’s been nice. We’ve kind of brought everyone a little closer, I think.

\n\n\n\n

[00:10:42] Nathan Wrigley: It is kind of interesting over the last 18 months or so, having spoken to quite a few Automatticians, it does feel like the landscape inside the company has changed. I don’t think we need to go into that, but it is interesting you saying that, because feels there was some realignment and moving around, and decisions about which teams were going to collaborate more with which teams. And that seems like what you are saying as well, so there we go.

\n\n\n\n

So on the WooCommerce side of things, you mentioned that you are a developer, well, you said developer advocate, developer relations, kind of the same term really. For anybody listening to this who doesn’t know what that is, basically, what is the job contract that you’ve got there? What is your role?

\n\n\n\n

[00:11:19] Brian Coords: Yeah, so we cover a few different things. From a high level, it really is, we’re there to help developers inside the company know what developers outside the company are doing and vice versa. So if you’re building stores with WooCommerce or you’re building extensions to sell in the marketplace, you know, like plugins that add-on to WooCommerce, or you’re working at one of our partner companies like Stripe and Google and Snapchat and Reddit and all these companies that integrate with WooCommerce, our job is to make sure that you have access to good documentation and good examples.

\n\n\n\n

We make sure that when a new version of WooCommerce comes out, which is every five weeks, that we publish all the release notes, and make sure that that information is, you know what’s coming, what’s changing, what’s different. We do some video content, we do some office hours hangouts in a community Slack, we keep an eye on the repo for community contributions. So it’s a lot of different things, but it’s really just, at the end of the day like, hey, does this help developers on either side of the wall move forward basically?

\n\n\n\n

[00:12:19] Nathan Wrigley: Do you have to be technical in order to carry out your role, or would there be any scope for somebody in your position to be non-technical? Let’s say, you’re a marketing person or something like that. Is there any aspect of that to it? Or is everybody doing your kind of role a technical person with a background in coding and what have you?

\n\n\n\n

[00:12:37] Brian Coords: It’s a unique role and it’s kind of a long debate inside of the developer relations community is, does this team go in an engineering department or does it go in the marketing department?

\n\n\n\n

So for example, at Automattic there is another developer relations team that handles a lot of that WordPress Core stuff that I was talking about, and they’re kind of a little more attached to engineering.

\n\n\n\n

For our team, we’re part of the WooCommerce marketing department. So of course that’s going to change a little bit of what we work on, how our decisions are made, that sort of stuff. I don’t think it changes that much, and in some ways it gives us access to a lot of cool stuff like their design team, which is really nice to have.

\n\n\n\n

So it goes both ways, but you really have to be a unique person where you have to be a good communicator, and you have to have some amount of technical experience. You kind of really need both, because at the end of the day we look at a new version of WooCommerce and it’s, oh, we changed this API and it’s going to affect developers in this way. It’s like, I need to be able to communicate that. I need to be able to understand it. I need to be able to know what the implications of that are. So it’s kind of both.

\n\n\n\n

[00:13:35] Nathan Wrigley: Do you produce this content in multiple languages or is it kind of English first and then it gets translated in some other department, or indeed does it get translated into another language, do you know?

\n\n\n\n

[00:13:45] Brian Coords: No, I think pretty much English first. There is a lot of stuff that is translated for, I would say on the, what we call like the merchant side, sort of like the user side. So if you’re looking for extensions in the marketplace, that’s available in a lot of different languages. The software itself is translated, but the developer stuff is pretty much English only. Because we’re a really small team. Like when we look at, there’s only, at any time, three or four of us working on this for software that’s on whatever, 8% of the internet, so English only for now.

\n\n\n\n

[00:14:13] Nathan Wrigley: Yeah, the reason I ask, maybe you were present at State of the Word where Matt went through a bunch of statistics. And it was curious to see, for the first time, so WordPress more broadly, not WooCommerce specifically, but WordPress more broadly is now used on non-English websites more than it is on English websites. And so if we’d have had this interview a week ago, that question probably would not have arisen.

\n\n\n\n

But I’m guessing that WooCommerce goes along for the ride there. I’m guessing it’s not just on English speaking websites, I’m guessing WooCommerce is just literally in more or less every part of the world, in every locale and every jurisdiction. There are people who are using your code, but probably not speaking English.

\n\n\n\n

[00:14:52] Brian Coords: That’s definitely the case. So we have a free Slack, that’s the WooCommerce Community Slack, and it’s more than 30,000 people in there. It’s all over. You can definitely tell that people are coming from all over the world.

\n\n\n\n

One of the weird things about e-commerce is it’s very geographically based because the currency matters. The payment provider that handles the payments matters. The shipping options matter. So there are certain places where you can only use WooCommerce because you want to use the custom bank payment provider that’s only in this one country, that sort of stuff.

\n\n\n\n

So because of how diverse the types of integrations you would need, yeah, WooCommerce is very global. That was one of the things that really surprised me was finding out that, oh yeah, there’s payment providers you’ve never heard of, and banks you’ve never heard of, and shipping companies you’ve never heard of and they need to integrate.

\n\n\n\n

[00:15:40] Nathan Wrigley: And tax. So much tax, I’m sure.

\n\n\n\n

[00:15:43] Brian Coords: Oh my, yeah.

\n\n\n\n

[00:15:45] Nathan Wrigley: I’m sure it gets brutal. I don’t know exactly when the time was, but it feels like about, I’m going to say 18 months or something, when Woo underwent a fairly significant rebranding. So from a marketing point of view, the logo changed, the colour palette changed, the website changed.

\n\n\n\n

I didn’t really notice until that moment when it did change that it needed to have changed, if you know what I mean? It just always looked fine to me. But the moment it changed, I kind of got a sense that, oh, okay, this is real now. We’ve kind of identified that there are these SaaS players, so you know, we don’t need to name them, we all know who they are, where you pay your monthly fee and you get a shop and yada, yada, yada. But I don’t know if that’s a part of the roadmap.

\n\n\n\n

And summing it up as more serious, obviously that’s trivial and a bit, really not the right term, but do you know what I mean? It feels like WooCommerce has, I don’t know, grown up a little bit over the last 18 months and realises the, I don’t want to use the word fight, but I’m going to, the fight that it’s in with the SaaS players.

\n\n\n\n

[00:16:41] Brian Coords: Yeah, I think that was the intention of that rebrand. So I think the goal was to go from saying, hey, we’re a WordPress plugin that lets you sell things. To saying, we’re an e-commerce solution, and we happen to run on WordPress. It’s kind of just a different framing.

\n\n\n\n

But one of the big things is a huge investment in marketing. And so the marketing team has gotten really big. We have a pretty killer CMO. There’s a ton of investment into different types of ads and demand generation and leads and all this stuff that I kind of don’t understand, a lot of like acronyms that are thrown around that I don’t fully track. But it’s a huge investment to basically reposition WooCommerce as something that feels a bit more modern and, not a SaaS, but kind of can sit there next to the SaaS. So when a company is looking at the options and they’re saying, oh, do we want to use Magento or BigCommerce or Shopify or WooCommerce, we look like we belong there, and it looks like it’s an option.

\n\n\n\n

[00:17:36] Nathan Wrigley: Yeah, it’s kind of curious that there’s, real money has to be spent on this endeavor because, I was in London just a few weeks ago and I walked onto the Tube, you know, the underground train network. And the platform that I was on, the first thing that I saw when I walked onto the platform was this huge ad for Shopify. And then I looked left and I looked right and it was Shopify ads all the way down. They’d obviously, I mean I can only imagine how expensive that real estate is.

\n\n\n\n

But the same thing would be true on radio, on TV, online, on print. These companies have gigantic, I mean truly eye watering budgets. And I don’t know if the WooCommerce side has to be a bit more guerrilla or if you also have a fairly gigantic budget. I don’t know if you’re able to peel any of that back. It sounds like marketing’s not really your thing, but maybe there’s bit of interest there.

\n\n\n\n

[00:18:25] Brian Coords: Yeah, I mean since we’re in the team, we see a lot of it. We did an event earlier this year where our marketing team walked through some of this stuff, so I can maybe give you a link to put in the show notes. We kind of wrote it, did a write up about that very concept. Because we get asked that a lot, why am I seeing Squarespace and Shopify ads everywhere? And it’s, you know, obviously if you look at the size of the companies, it’s a fact, like a whole factor difference, like we’re not anywhere near the size of those companies.

\n\n\n\n

And part of the issue is that you don’t just go to woocommerce.com and hand us money, you know? The Core plugin is free so the way we monetise is a lot different. You can run it anywhere. You can, a lot of people that run WooCommerce, they’re not paying us in any way because they’re using their own payment providers and those sorts of things.

\n\n\n\n

So it is definitely more of a challenge. But this past year, that’s why the rebrand started, that’s why they’ve been investing in it. And it’s been kind of cool. There’s a lot of podcast ads that we’ve been running and LinkedIn ads and all these sorts of things. And part of the issue too is that our target market is just much more narrowly defined, and so WooCommerce is much more customisable. It’s extensible. You can do whatever you want with it. And that’s just a different value proposition then you would say to somebody who just wants the easy SaaS solution.

\n\n\n\n

So it’s a lot of things, but it’s kind of just knowing who we want and targeting directly to them. And so you probably won’t see ads on the Tube at any time, but for certain areas you’re going to start seeing really targeted ads for people at the places that would actually really benefit from having WooCommerce.

\n\n\n\n

[00:19:51] Nathan Wrigley: That was the thought that I had about seeing the Shopify, in this case, ad on the London underground was just how much the audience, the eyeballs that were actually staring at that had no interest in it at all. And so almost like the bottomless pit of money that they must have to throw at these things. And obviously it sounds like you are targeting people.

\n\n\n\n

Are you kind of like riding on the coattails of WordPress in general? In other words, are you targeting existing WordPress users in the hope that they’ll think, okay, yeah, we’ve got a WordPress site, now it’s time to upgrade to WooCommerce, or is it a bit more scatter gone, you need a website, you need e-commerce, we’re your solution?

\n\n\n\n

[00:20:26] Brian Coords: Yeah, I mean that’s an interesting question because I think when WordPress was growing, it was a lot easier to target inside of WordPress, and I think now we’re seeing all the big companies reevaluate that. So I would say the ads that I see a lot are, you know, Hostinger, Elementor, wordpress.com. And I think a lot of them are realising now, you know, we need to target outside.

\n\n\n\n

So for example, WooCommerce this year, we go to all the WordCamps, but we started going to e-commerce expos that are trade shows that are not anything to do with WordPress. It’s just for people in the commerce industry and partnering with companies that are in the marketing and commerce side. And so, yeah, it really is about branching out and finding those new areas.

\n\n\n\n

I think all WordPress companies are going to kind of have to start facing that as well because WordPress is 43% of the web. It’s like, how much bigger realistically can you get, once we pass 50%? I mean that’s, it’s pretty hard to grow at that point.

\n\n\n\n

[00:21:19] Nathan Wrigley: Did you attend any of those events? The sort of expos for e-commerce more generally?

\n\n\n\n

[00:21:23] Brian Coords: No.

\n\n\n\n

[00:21:24] Nathan Wrigley: Yeah, I was going to follow up with a question about whether or not there was brand recognition. At those events, if you’ve got a WooCommerce stall, I was curious as to know what proportion of the public would walk past a WooCommerce sign and go, yeah, yeah, I know what that is, I’ve got complete familiarity with it. I feel like some of the SaaS ones, maybe they’ve done that job so well that that brand recognition is there, but maybe that work still needs to be done on the Woo side, I’m not sure.

\n\n\n\n

[00:21:49] Brian Coords: There’s definitely not going to be the same level of brand awareness. I think, like you said, like guerrilla marketing is definitely part of it. One of the things they do at these is they’ll find a local store that uses Woo and use them for swag. So they’ll get really good swag. They did like homemade, like embroidery things and all this sort of stuff. And so they end up getting very popular because of how cool the swag is, and how meaningful it is, and it supports a local merchant. But yeah, it’s a big battle, you know, to raise that brand awareness.

\n\n\n\n

[00:22:18] Nathan Wrigley: Okay, let’s just turn a bit more to your Dev Rel stuff. And you were saying that, well, I don’t need to repeat what you said. You said a little while ago, who it is that you are interfacing with out in the real world.

\n\n\n\n

How does that work? Like, do you just sort of put content out there and tutorials out there and videos out there and change logs out there, and kind of hope that the people that need it get to see it somehow? Or is there more of an endeavor of, I don’t know, providing the bat phone, for want of a better word, to agencies and people so that they can communicate directly with you? How does that whole thing work?

\n\n\n\n

[00:22:48] Brian Coords: Yeah, so it’s interesting because there’s definitely different audiences that we have. So we have developers who are building extensions and are, you know, they’re selling WooCommerce plugins basically. And so we have them that we need to communicate with. And then we have the agencies and the agencies are building WooCommerce stores for people. So they’re setting up WooCommerce.

\n\n\n\n

And those two audiences, they both need some of the same information, but they also need a lot of different information. And so we’ve kind of seen a lot of change over the last year.

\n\n\n\n

Automattic has launched a program called Automattic for Agencies. I’m not sure if you’ve seen this. It’s kind of like an agency program where you sign up and you get access to extensions, you can get affiliate fees, you can get kickbacks on payments, volume, all that sort of stuff.

\n\n\n\n

So that side has really, sort of owned the agency space. And so what’s nice is we can go to them with any new information. We could say, hey, just pass this along to your audience in your next newsletter, that sort of thing. But really, if we want to have the conversations, I would say the Slack is the most common and we never lack for feedback. We get plenty of feedback. We do a monthly office hours in Slack or sometimes on Zoom, where developers will come and share their questions, that sort of thing. So we get tons of feedback. But yeah, it’s really just about being present there, being present on Twitter. We’re ramping up YouTube, because YouTube’s really important right now. And we’re just, like I said, small team and trying to hit all of those different content areas.

\n\n\n\n

[00:24:13] Nathan Wrigley: My sort of follow up question there really was going to be something about shouting into the void and I wondered if that, it was in fact what was happening. But it sounds from what you are saying is if, no, there is an actual loop there. You put stuff out and you get feedback. I mean I’m guessing, from the sounds of it, there’s maybe more feedback than you can actually cope with, which is intriguing. I had an intuition that would be the other way around.

\n\n\n\n

[00:24:32] Brian Coords: Yeah, I mean it definitely depends on, sometimes you get feedback that’s kind of the same. We know what people want, and we’re trying to work as fast as we can to make the changes that developers and the community want. And sometimes you put out a feature and it doesn’t resonate.

\n\n\n\n

But generally when we do calls for testing of a new feature we’ll post, all right, we have a new feature coming, it’s in experimental mode, here’s how to turn it on and then let us know if it’s working for you, if it’s working with your plugin and stuff. We definitely have a pretty healthy group that will take the time to contribute back, let us know if things are working. I mean it’s an open source project. We get community pull requests. We get people, they need a feature, they build it and submit it and, you know, hopefully we merge it. And so the feedback loop is definitely there.

\n\n\n\n

But if you’re, the thing that I’ve learned about WordPress is that I think it’s like an iceberg and like 90% of the WordPress community, they’re not really listening to WordPress content, and they’re not listening, they’re not even tracking WordPress in general. And so I think there’s probably a much broader community that we’re not getting access to, and they’re just living their daily lives and just building stores and stuff. And so I would love to find more of those groups. I think Facebook is probably a place that we haven’t even touched yet, and I’m sure a lot of them are there. There’s definitely work to be done there.

\n\n\n\n

[00:25:46] Nathan Wrigley: Yeah, I think that was maybe the piece that I was thinking. Is that Woo is the biggest solution out there. If memory serves, Woo is the biggest e-commerce platform out there. It kind of dwarfs all the others. I don’t even know if WooCommerce is bigger than the rest of them combined but, you know, it’s on that kind of level.

\n\n\n\n

And yet, if you were to have a, I don’t know, a Shopify store or something, there is probably like a little submit feedback button in the UI somewhere, and you can talk to the support representatives, and they’ll have the answer specifically because they know exactly what the platform does.

\n\n\n\n

But the jigsaw puzzle over on the Woo side is, yeah, it must be much more messy, much more kind of difficult to wrangle everything. You know, you’ve got people, end users who are using WooCommerce. You’ve got developers who are building plugins. You’ve got agencies who are building on behalf of clients. You’ve got people who are building rival things so you’re in direct competition with people in the plugin space who are building rivals to WooCommerce. It’s just, well, messy. But that’s open source, right?

\n\n\n\n

[00:26:44] Brian Coords: I mean that’s exactly what it is. You know, we have, you have WooCommerce support, right? And our support team is really great. Every time I go to a conference and one of our support engineers is there, I’m always pointing to them to answer all the questions because they know the product so deeply.

\n\n\n\n

But if you imagine the, you know, most WooCommerce stores will come to us for support, but there’s no financial relationship. If they’re not using our hosting company or they’re not using Woo Payments, or they’re not using extensions that they bought in the marketplace, maybe they bought their extensions just off the internet or something, there’s a good chance they might not be paying us any money at all. And yet, you know, we’re going to support them and make sure that they’re having a good experience, because that’s kind of the goal of it. So it’s definitely a bit of the Wild West out there.

\n\n\n\n

[00:27:28] Nathan Wrigley: There must be some kind of strange tension there as well. I mean, you’ve described it very eloquently and I think you’ve stepped around that beautifully, but that is a peculiar thing, isn’t it, that you would not have to deal with elsewhere? The fact that you may very well be dealing with rivals. You may well be dealing with people who are using up your time, but like you said, they have no relationship with you financially at all, but they built something, third party thing on top of the WooCommerce ecosystem, and I guess that’s just the broader philanthropic goal of something like WooCommerce. You’ve just got to step up and be there.

\n\n\n\n

[00:28:00] Brian Coords: Yeah, I mean I think wordpress.com probably has a lot of the same things because if you Google WordPress, you know, you’re probably going to end up on wordpress.com, even if you’re not their customer.

\n\n\n\n

On the flip side though, you know, the benefit of being open source is that, like I said, we get community contributions. We get a lot of eyes on the software. A lot of people, they give us feedback, they give us code, they give us all sorts of things. So it is a bit of a trade off.

\n\n\n\n

But I think it’s kind of worth it for the software to just exist freely and for everybody who runs on it, to always kind of know deep down that they own their store and they can do whatever they want with it, and they can put it wherever they want, and Automattic or WordPress or WooCommerce is never really going to take that away from them or take them down, you know?

\n\n\n\n

[00:28:38] Nathan Wrigley: Yeah, I’d be curious to know what proportion of Woo kind of props up the broader WordPress project, if you know what I mean? I don’t think we need to go into that, and I don’t know if there’s any data out there anywhere, but there must be a lot of money sloshing around inside the WooCommerce ecosystem. It’d be interesting to know what proportion the broader WordPress ecosystem was was made up of just Woo stuff. That’d be an interesting thing to dig into.

\n\n\n\n

[00:29:01] Brian Coords: When I worked at an agency, the kind of rule was if you wanted to make money making websites, you did websites that made money. So e-commerce was a big part. People, you know, their website’s more critical to their business, so they’re going to be buying more plugins, they’re going to be paying more developers, they’re going to be using more tools. So I think that’s part of it. E-commerce isn’t the only way websites make money. There’s definitely a lot of other things, big publishers and that sort of stuff. But yeah, it’s definitely a big part of the community.

\n\n\n\n

[00:29:26] Nathan Wrigley: Well, big and not going anywhere. Speaking of going places though, what’s coming up in the near future? So when we’re recording this, it’s kind of the middle of December. I imagine this episode will hit in the beginning of 2026 at some point. Roughly around that kind of time, what’s the thinking? What are the, some of the top level items that people may not know about? What’s the stuff that you’re working on? Roadmap stuff, I guess.

\n\n\n\n

[00:29:46] Brian Coords: Yeah, I would say the big things that I’ve seen that are really the big focus right now is, number one is really making WooCommerce closer to WordPress Core, which means making WordPress Core a little better. So WooCommerce has been pretty ahead of the curve of transitioning to blocks, using block templates and block based everything. So, I mean you can do your whole WooCommerce store in the block editor, which gives you a lot of kind of design freedom. But that means if we need something better in the block editor, we’ve got to commit that up to the block editor and make Gutenberg better. So there’s a lot of work to improve a lot of stuff inside of Gutenberg so that your WooCommerce experience is better.

\n\n\n\n

So that’s been a lot of the focus. And so we’re, there’s a lot of cool stuff coming around just new blocks, new block designs, patterns, things you can do to really customise the visual aspects of your store. And then the second big thing, I think that is taking up everybody’s mental space is AI. You can’t not talk about it. So it’s, that’s the other piece.

\n\n\n\n

[00:30:42] Nathan Wrigley: Okay, despite the fact that it consumes all the air in the room, it is so fascinating. Do you have any insight into some of the things that may be on the agenda for a WooCommerce store owner in the near future? The kind of things that you are thinking of. Even if they’re just aspirational for a WooCommerce store owner. I’d be curious to hear your thoughts on that.

\n\n\n\n

[00:31:01] Brian Coords: Yeah, I think there’s two different aspects of it that are really going to be important. One is managing your store. So we have right now in beta what’s called an MCP server in Woo. And what it basically lets you do is open up, you know, ChatGPT or Claude or something and say, log into my WooCommerce store and update all my products, put them on sale, change out the pictures, write better copy for them. It kind of lets AI log into your store and do things for you.

\n\n\n\n

And so that’s in beta right now, and it’s pretty cool. I’ve been using it. It’s pretty neat. I’ve been setting up some demo stores for people, and I just go, all right, log in and make me, you know, 50 fake sweaters with a nice description in different colours. And it does it. It’s kind of mind blowing.

\n\n\n\n

[00:31:43] Nathan Wrigley: Do you trust it at this point? And I don’t mean, you know, the broader kind of debate about AI and whether it’s trustworthy. I mean, in terms of the store, you know, do you trust it to update all of the particular product lines and what have you, or update the images? Do you feel that if you’ve given that prompt, you can sort of sit back and go, okay, that is definitely being done?

\n\n\n\n

[00:32:02] Brian Coords: I haven’t done it on a live site, I will say. The nice thing too is you can have it ask you for permission every single time, and you can kind of see what it’s going to do. That obviously kind of ruins the whole efficiency part of it, but it can do that. So I think it’s early days.

\n\n\n\n

But I do think, once you start interacting where you don’t have to actually log in and click a bunch of buttons, and you can just tell your computer what you want it to do, I think it’s going to be hard to come back from that. I think people are going to start expecting it. But I, yeah that’s, I mean we’re not doing that on the live, on any live sites, I hope not.

\n\n\n\n

[00:32:32] Nathan Wrigley: So that was half of it by the sounds of it. That was one of the threads. What was the other one?

\n\n\n\n

[00:32:35] Brian Coords: The other one, I think is about how people are going to be shopping in the future. And I think showing up, obviously all these chat companies, they need to make money, and we know that they’re going to start showing ads and they’re going to start wanting to do the same thing when you go to Google, and you look up something and it gives you some shopping recommendations and shows you some products you might want to buy and some ads. You know, we’re going to start seeing that in our chat bots and stuff.

\n\n\n\n

And so I think it’s going to be important for people that have WooCommerce stores, they want their products to show up there, and they want their ads to show up there, and they want to make sure that people who are using AI to get product recommendations, which my wife does all the time, that they’re going to show up there. So I think that’s the other half of it.

\n\n\n\n

[00:33:13] Nathan Wrigley: Yeah. Do you know it’s really curious, the whole, what we might have called SEO, which is fast giving way, I think, to AI. It’s kind of curious. I think there’s like a whole section where the discovery of the website is going to be everything. So an example might be apparel. I don’t suppose anybody’s just going to buy a blouse or a shirt based upon some text that they saw in a chat bot, but getting to that page and saying, find me, locally to me, find me a place which sells, I don’t know, affordable shirts for work, or something along those lines. And have a recommendation, which gets you to the WooCommerce store.

\n\n\n\n

But for more utilitarian things, just the stuff that you don’t really care about like, I want to buy a bunch of nuts and bolts, or hammers, or spanners, or whatever it may be, I feel like there’ll be a point where the store itself, obviously all of that commerce will take place in the store, but it will be invisible to you as a user. You’ll just tell the AI, buy these things, I need 50, or even just repeat the order from last month for these things, and it’ll just magically happen in the background. You’ll get a receipt via email, and WooCommerce will have handled it. The site will have been notified in some way, but you’ll have had no interaction. So it’s kind of scary, but interesting at the same time.

\n\n\n\n

[00:34:23] Brian Coords: I think one of the thing, I think Google’s the best example because I think WordPress and Google have this really symbiotic relationship because we make the websites and they provide the traffic. And I think it’s been good for both of them. They want a bunch of websites to send people to, and we want them sending people to our websites. And so I think Google’s a great example.

\n\n\n\n

But they’ve had product recommendations that you can connect to your WooCommerce store, you know, for a while now. It’s kind of in some ways not really that different from just Googling something. Google shows you some products and then you click through and you buy it.

\n\n\n\n

If it becomes that seamless where you don’t even have to realise you’re going to a website, which I think is possible, I also wonder, will people want to do that? Will they feel as trustworthy? Maybe, maybe not. But either way, that is probably going to be the case.

\n\n\n\n

And so that’s going to require a lot of these, the discussion’s already happening. They have these payment protocols and things, and we’re starting to see the very beginning of it. So it’s kind of interesting to be inside of WooCommerce because the companies that do all this stuff, the Stripes and the PayPals and the Googles and stuff, these are partners that they work closely with. And you get to see a little behind the scenes of them trying to figure this out in real time, you know?

\n\n\n\n

[00:35:28] Nathan Wrigley: Yeah, it kind of speaks to trust really, doesn’t it? So the repeat order thing through a ChatGPT style interface or whatever that looks like in the future, be it voice or speaking to a camera or whatever it may be, I could totally see myself ordering the, I don’t know, the groceries or the toothpaste or whatever it is that, I really don’t need to see that thing. I don’t need to go to a shopping checkout. I just need to know that my next pack of toothpaste is going to arrive reliably tomorrow morning. That’s all I need to know. I feel like there is, there’s a there there, if you know what I mean? Despite the fact that we’re so wedded to this interface of, go to the website, look at the pictures, click the cart number, click how many you want, go to the cart, proceed with the checkout, dah, dah, dah. Most of that is going to be obsolete for the utilitarian stuff, I think. I don’t know. We’ll see.

\n\n\n\n

[00:36:15] Brian Coords: I feel like Amazon’s been trying that for a while, but I still have to check it because I feel like we return 30% of the things we buy at Amazon. It comes, it’s the wrong size, it doesn’t look anything like the picture, all that sort of stuff. Hopefully those problems still get solved, before we get to the point where I’m not even going to look at what I ordered. I think we still have a lot of time there.

\n\n\n\n

[00:36:33] Nathan Wrigley: Well, so even if that interface isn’t quite as radical as I just suggested, but even if there’s like a back and forth between the AI and the website. I don’t know, I ask for a particular thing, and then the chat interface or whatever it may be shows me a picture from the website or something along those lines. This whole scraping of the website and surfacing the content of the website, and then I can make those decisions based upon what I see. Maybe it’ll be a bit more back and forward, and far less of the AI, and more of the AI meets human kind of interface.

\n\n\n\n

[00:37:01] Brian Coords: Yeah, and I think a lot of it is, it’ll feel like magic to the end user with an AI, but really it’s just going to be a ton of code and protocols and extensions and things. Under the hood, that’s going to be a ton of manual work, getting all that stuff there. But I think with WooCommerce especially, most of the Woo stores I come across, they’re very weird, I guess is the best way to put it. They’re unique products, you know? They’re often not selling the toothpaste and that sort of stuff. Or if they are, they’re selling the very interesting toothpaste that you can only buy from this one company.

\n\n\n\n

So I think that’s what’s fun about it, is I think it’ll really be for people looking for those weird, unique products, and the kind of stuff you’re not going to get on Amazon or you’re not going to get on a basic walmart.com or something. So yeah, I think it’ll be interesting to see where this goes.

\n\n\n\n

[00:37:44] Nathan Wrigley: Do you know if Automattic, or WordPress more generally, do you know if it’s investing anything in its own AI? Everything at the moment, all the oxygen seems to be being consumed by the, let’s say, four big players that we’ve all heard of. We don’t need to name the names, we all know who they are. But it’d be curious as to whether a company obviously deeply rooted in tech, like Automattic is inventing, creating those kind of things. That’d be a curious shift.

\n\n\n\n

[00:38:07] Brian Coords: Yeah, I mean you can see it already. Telex is a product that’s come out from Automattic. It lets you build blocks. They have a AI site builder. If you go to wordpress.com, a good amount of people are actually, the first thing they do is use this AI site builder that gets you kind of from zero to like a pretty decent starting site. And then you can go in and the block editor and customise everything.

\n\n\n\n

Is Automattic training their own models and stuff? I don’t think so, or at least I don’t know. But, I mean there’s a bunch of stuff happening, that’s the public facing stuff, which is building websites. There’s stuff around WooCommerce, there’s stuff around support. Our support is very heavily leaned into AI and it’s actually very good. There’s all sorts of these other places.

\n\n\n\n

And then there’s a ton of stuff internally in the company that we have because, you know, when you work with a thousand people, there’s a lot of information there. And so we have internal stuff that’s kind of like search through all of our, you know, internal dialogue and find this conversation and summarise it for me. And so it’s all there. It’ll be interesting to see which ones end up becoming good products.

\n\n\n\n

[00:39:05] Nathan Wrigley: Well, it sounds like exciting times. It sounds like you’ve landed in the right part of Automattic for you at least anyway. Yeah, fascinating times. The year 2026 for e-commerce, and WooCommerce more specifically, looks very, very bright.

\n\n\n\n

Can we just ask you, before we go, where would be the best place to find you if anybody wants to reach out and say hi?

\n\n\n\n

[00:39:23] Brian Coords: Yeah, definitely. So if you are interested in WooCommerce, you can go to developer.woo.com. That’s kind of our developer blog and it has, it’ll take you to like the docs, it’ll take you to the community Slack, it’ll take you to our email newsletter and all that sort of stuff. That’s developer.woo.com.

\n\n\n\n

For me, it’s my name, briancoords.com, and I’m mostly active on Twitter and YouTube these days. I tried all the other social networks, but everyone in WordPress stays on Twitter, so that’s where I’ll be for the foreseeable future.

\n\n\n\n

[00:39:47] Nathan Wrigley: So Brian is, as you would imagine it’s spelled, but Coords has two O’s. So it’s C-O-O-R-D-S. I’ll put all of the links in the show notes so that anything that Brian mentioned can be found there, wptavern.com. Search for Brian’s name and you will be able to find that episode. So Brian Coords, thank you so much for chatting to me today.

\n\n\n\n

[00:40:05] Brian Coords: Yeah. Thank you.

\n
\n\n\n\n

On the podcast today we have Brian Coords.

\n\n\n\n

Brian has been active in the WordPress space for over a decade, starting out in agencies building and managing websites, and is now a developer advocate at WooCommerce, bridging the gap between Woo’s internal engineers and the wider developer community. His journey includes being a high school teacher, working for nonprofits, and writing for the WP Tavern, before landing his role at Automattic.

\n\n\n\n

If you’re interested in where WooCommerce, and WordPress itself, are headed, this episode will help, as Brian shares insights on WordPress’s evolving focus, the importance of embracing AI, and how a slower pace of change can be a strength in any open source ecosystem.

\n\n\n\n

He talks about the massive rebrand at WooCommerce, the challenges and opportunities in competing with SaaS giants, and the unique developer relations role that balances his technical experience with communication skills.

\n\n\n\n

We get into how the team Brian works with supports developers and agencies with documentation, office hours, and feedback loops, and how WooCommerce’s global reach makes for a complex but thriving ecosystem. There’s discussion about recent marketing efforts, the realities of open source support, and the surprising diversity of WooCommerce users worldwide.

\n\n\n\n

Towards the end, we look ahead to what’s coming for WooCommerce, which is greater integration with block-based editing in WordPress Core, major investments in AI to streamline store management, and the future landscape of online shopping.

\n\n\n\n

If you want to hear how WooCommerce and WordPress are responding to a rapidly changing tech environment, this episode is for you.

\n\n\n\n

Useful links

\n\n\n\n

 briancoords.com 

\n\n\n\n

WooCommerce

\n\n\n\n

 State of the Word 2025

\n\n\n\n

 WooCommerce Community Slack

\n\n\n\n

Automattic for Agencies

\n\n\n\n

WooPayments

\n\n\n\n

 Telex

\n\n\n\n

Woo Developer Blog

\";s: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 Jan 2026 15:09:35 +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: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:20:\"Matt: Find My 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:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=151027\";s: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://ma.tt/2026/01/find-my-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:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:1244:\"

The best part about blogging is the comments, and after I posted “I wish that when you use Find My to find your iPhone, it would also flash the flashlight, which would be great for finding it in a bag or a dark room.” Michael Wender and David Artiss jumped in that it’s already there!

\n\n\n\n

Apple support says if you touch and hold it will flash the light! Now I haven’t been able to get this to work yet, perhaps because when I did, I got a notice that Precision Finding, which uses ultra-wideband (UWB) frequencies to help you find your phone or Airtag, which is magical, isn’t available in all regions. I’m currently stranded in St. Martin because of airspace issues with Venezuela, and apparently, this is one of the countries, like Indonesia, where UWB doesn’t work.

\n\n\n\n

Update: Hours later, the press-and-hold thing now flashes the light, so it must have been a heisenbug.

\";s: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 Jan 2026 04:30:48 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s: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: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:80:\"Open Channels FM: How to Spot a Committed Business Partner (and Avoid Red Flags)\";s: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=113510\";s: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://openchannels.fm/how-to-spot-a-committed-business-partner-and-avoid-red-flags/\";s: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:199:\"Successful partnerships hinge on genuine commitment, proactive engagement, and collaborative effort, requiring integration across teams and mutual benefits beyond mere visibility for lasting success.\";s: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, 05 Jan 2026 10:44:23 +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:42;a:6:{s:4:\"data\";s:21:\"\n \n \n \n \n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:21:\"Matt: Find My Upgrade\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=151013\";s: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:38:\"https://ma.tt/2026/01/find-my-upgrade/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:192:\"


I wish that when you use Find My to find your iPhone, it would also flash the flashlight, which would be great for finding it in a bag or a dark room. 

\";s: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, 05 Jan 2026 05:58:40 +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: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:21:\"Matt: Jackson Kiddard\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=151002\";s: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:38:\"https://ma.tt/2026/01/jackson-kiddard/\";s: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:809:\"
\n

Anything that annoys you is teaching you patience.

\n\n\n\n

Anyone who abandons you is teaching you how to stand up on your own two feet.

\n\n\n\n

Anything that angers you is teaching you forgiveness and compassion.

\n\n\n\n

Anything that has power over you is teaching you how to take your power back.

\n\n\n\n

Anything you hate is teaching you unconditional love.

\n\n\n\n

Anything you fear is teaching you the courage to overcome your fear.

\n\n\n\n

Anything you can’t control is teaching you how to let go.

\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:\"Sun, 04 Jan 2026 07:26: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: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: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:15:\"Matt: Two Links\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=150994\";s: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:32:\"https://ma.tt/2026/01/two-links/\";s: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:514:\"

They’re both long reads, but worthwhile.

\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:\"Sat, 03 Jan 2026 03:30:01 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s: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: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:20:\"Matt: Happy New Year\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=150981\";s: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:39:\"https://ma.tt/2026/01/happy-new-year-3/\";s: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:2306:\"

I rang in the new year with an unexpected trip to St. Barts with friends.

\n\n\n\n

I resolved in 2025 to watch more films. It’s an art form I have many friends in, and when we have hung out, I’ve realized how shallow my understanding of the film canon is. I have a lot of catch-up to do, and it also requires a lifestyle change, as I’m usually at a laptop. Making space to enjoy a film for a few hours was a departure from my regular routines.

\n\n\n\n

I watched 72 movies last year! This definitely came at the cost of books finished, if I look at my stats. But I’ve begun to really appreciate the contours of what I love about a movie now.

\n\n\n\n

This is a long lead to recommend the movie Jay Kelly, which streams on Netflix with George Clooney and Adam Sandler. After seeing many great and terrible movies, old and new, I really appreciated what they did with this film, and it was one of the rare ones I watched entirely or in sections several times, gaining new appreciation for what they pulled off.

\n\n\n\n

It starts with a “One-er,” which is a continuous shot with no cuts that moves between a number of different scenes in a really slick way. (Excellent episode of The Studio about this!) It’s a film way of showing off, as it must be incredibly hard to have hundreds of people all pulling off something flawlessly for a long period of time, not unlike a Broadway show.

\n\n\n\n

Jay Kelly is George Clooney playing himself, which, as he says, is the hardest thing to do. There are meta-levels of reality and fiction, and so many allusions and callbacks, the entire thing is a work of art. You learn to appreciate what actors do and how film is made while watching a film being made in such a nice way.

\n\n\n\n

So that is my recommendation for the year. In older movies, I really enjoyed Kate & Leopold, which also features an amazing Sting song that is impossible to find on streaming services.

\";s: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, 02 Jan 2026 06:00:07 +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: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:100:\"Open Channels FM: Building Successful Collaboration Through Communication in WordPress Release Teams\";s: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=113371\";s: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:107:\"https://openchannels.fm/building-successful-collaboration-through-communication-in-wordpress-release-teams/\";s: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:378:\"In the world of open source, communication stands out as a key factor for successful collaboration. WordPress release teams unite contributors from all around the globe, bringing together a remarkable diversity of experiences, cultures, and time zones. While technical prowess is important, it is the way team members connect and exchange information that truly shapes […]\";s: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, 31 Dec 2025 14:36: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:11:\"Abha Thakor\";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:60:\"Open Channels FM: Do the Woo / Open Channels FM 2025 Pathway\";s: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=113788\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:65:\"https://openchannels.fm/do-the-woo-open-channels-fm-2025-pathway/\";s: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:95:\"For Open Channels FM 2025 has been a windy pathway that has led to a sweet spot for us in 2026.\";s: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, 30 Dec 2025 10:17:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:48;a:6:{s:4:\"data\";s:21:\"\n \n \n \n \n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:16:\"Matt: Riley Walz\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=150936\";s: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:33:\"https://ma.tt/2025/12/riley-watz/\";s: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:730:\"

The writer Aadil Pickle has a great profile of one of my favorite hackers, “Training the Idea Muscle” on Riley Walz. Riley epitomizes the term “high agency,” and I’ve been continually impressed with his ability to rapidly code novel ideas and interfaces on top of public or reverse-engineered data. He’s a hacker, artist, and provocateur.

\n\n\n\n

I’m enjoying this slower time of the year, and it looks like this will be the warmest Christmas I can remember in Houston; it was 80° F today! Makes me appreciate what Christmas in the southern hemisphere must be like.

\";s: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, 24 Dec 2025 00:32:15 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s: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: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:139:\"Gutenberg Times: Roadmap for WordPress 7.0 and schedule, commands for the Command Palette, Gutenberg 22.3, and more — Weekend Edition 353\";s: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=43471\";s: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:143:\"https://gutenbergtimes.com/roadmap-for-wordpress-7-0-and-schedule-commands-for-the-command-palette-gutenberg-22-3-and-more-weekend-edition-353/\";s: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:26914:\"

Hi there,

\n\n\n\n

Welcome to our last edition for the year 2025. I am not ready to reflect on the whole year, however, I am excited for 2026. There will be many new features coming to WordPress with the three major releases and also plenty of bug fixes and quality-of-life enhancement towards consistency.

\n\n\n\n

The first edition for 2026 will have to wait a bit and it is scheduled for January 24, 2026, roughly a month from now, due to my vacation and training schedule.

\n\n\n\n

I wish you and yours wonderful Holidays and a happy, prosperous and healthy New Year! \"🤶\"\"🎄\"\"🎁\"\"🎆\"\"🎇\"

\n\n\n\n

Yours, \"💕\"
Birgit

\n\n\n\n\n\n

Steve Burge and Dan Knauss interviewed me for the PublishPress podcast. We covered WordPress 6.9’s six new blocks (accordion, term query, time to read, math, comment count, and comment link) plus editorial notes for team collaboration. The release marks a restart after Automattic’s contribution pause.

\n\n\n\n

WordPress 7.0 ( April 9, 2025) will bring template management improvements and a tabs block. The AI team is building foundational infrastructure—Abilities API, MCP Adapter, PHP AI SDK, and experiments plugin—enabling plugins to integrate with AI assistants. Real-time collaborative editing remains in development, facing technical hosting challenges. The recording is available on YouTube.

\n\n\n
\n
\n\n
\n
\n\n\n

Roadmap WordPress 7.0 and two more releases in 2026

\n\n\n\n

In his lates post, Matias Ventura, lead architect of Gutenberg, laid out the plan for WordPress 7.0. It’s aspirational and not all the items will make it into the next major version of WordPress. The very detailed plan covers the project’s shift into Phase 3: Collaboration, a vision for real-time co-editing, and enhanced communication through site notes. Ventura underscores the modernization of the administrative experience via a unified design system and expanded DataViews. By integrating a standardized AI API and advancing responsive editing tools, WordPress 7.0 aims to unify the design and development process. Ultimately, the release promises to deliver a more cohesive and performant platform through refined navigation and versatile new core blocks. Here are the broad topics of the plan.

\n\n\n\n\n\n\n\n

Jonathan Desrosiers also published the proposed schedule of the 2026 releases. Following the schedule, we have two more dates to put on our calendars: Beta 1 for WordPress 7.0 will be on February 19, and RC 1 is scheduled for March 19, 2026.

\n\n\n\n
\"Table
\n\n\n\n

Provided the Release squad approves this schedule. I also can offer a timeline for the WordPress 7.0 Source of Truth: First draft will be available for public preview on February 26, 2026, and the post will be published on March 26, 2026.

\n\n\n\n
\n

\"🎙\" The latest episode is Gutenberg Changelog #125 – WordPress 6.9, Gutenberg 22.1 and Gutenberg 22.2 with JC Palmes, WebDev Studios

\n\n\n\n
\"Gutenberg
\n\n\n
\n
\n\n
\n
\n\n\n\n

Gutenberg 22.3 and beyond

\n\n\n\n

Hector Prieto led the release of Gutenberg 22.3 (December 17). In his release post he highlighted:

\n\n\n\n
    \n
  1. Dedicated Fonts page for easier typography management
  2. \n\n\n\n
  3. Image editing improvements
  4. \n\n\n\n
  5. Responsive Grid block
  6. \n\n\n\n
  7. Other highlights
  8. \n
\n\n\n\n
\n\n\n\n

Dave Smith, core conditrbutor on the GGutenbergProject explains in his video
The changes leveling up Navigation in WordPress 7.0,He wrote in tthedescription: “Navigation is one of the most important — and most frustrating — parts of building a WordPress site.In this video, I walk you through what’s changing, why it matters, and show the real work already underway — including early prototypes and demos.” Check it out.

\n\n\n
\n
\n\n
\n
\n\n\n

Plugins and Tools for #nocode site builders

\n\n\n\n

Jamie Marsland is at it again with short videos and teaching you new skills. In his latest video “How to Create a High-Converting Landing Page With WordPress (Free Blueprint)” he gives you step -y -tep instructions for an easy way to create high-converting WordPress landing pages using only core blocks. He built a distraction-free landing page based on the StoryBrand methodology, so each section has a clear purpose and guides visitors through a simple story as they scroll.

\n\n\n
\n
\n\n
\n
\n\n\n

Sarah Perez, consumer tech editor at TechCrunch, reported that “WordPress’s vibe-coding experiment, Telex, is now being used” and it features Automattic’s AI tool for natural language web development. Introduced at the “State of the Word” event, Telex allows users to create complex Gutenberg blocks, like pricing calculators and logo carousels, without coding. Perez highlights how “vibe coding” makes site building accessible for non-tech users, enabling them to create professional results. With the new Abilities API, Telex marks WordPress’s move toward AI-driven workflows that streamline the design process.

\n\n\n\n
\n\n\n\n

Courtney Robertson Developer advocate at GoDaddy released the plugin Post Formats for Block Themes, which brings back old-school post formats to modern WordPress block themes. It restores useful features for galleries, quotes, and videos often missing in newer themes. You’ll find smart auto-detection, unique block patterns for each format, and a handy Chat Log block for easy transcripts. By combining these classic tools with today’s full-site editing, this plugin helps creators maintain a great design and add variety in a simple and accessible way.

\n\n\n\n
\n\n\n\n

Valentin Grenier, a WordPress developer from Toulouse, France, just dropped his first plugin: Simple block animations. It’s a cool, lightweight tool for adding some fun scroll-triggered visual effects to your Gutenberg blocks without needing to mess with any custom code. You get five different animation types, like fades and slides,, thatyou can tweak with durations and delays. Built using the Intersection Observer API and good old native CSS, it keeps things running smoothly by loading assets only when they’re needed while also being mindful of motion preferences to make it accessible.

\n\n\n\n

What’s new in WordPress Playground

\n\n\n\n

Felyph Centra posted a few video on WordPressTV to showcase various features of WordPress Playground

\n\n\n\n

Previewing GitHub branches with WordPress Playground. This video demonstrates a method to streamline development reviews. This technique addresses the common pain point of needing complex local environments or relying on static screenshots to share work in progress.

\n\n\n\n

Introduction to WordPress Playground landing page. The new landing page explains the capabilities of the platform and what is possible with WordPress Playground.

\n\n\n\n

Using WordPress Playground to work with AI agents. Centra shared how you can use the WordPress Playground to integrate with AI agents. with an example that uses GitHub Copilot agents. Using this flow it executes small tasks for a plugin, such as refactoring code or updating documentation. WordPress Playground can serve as a base to validate the AI agent’s code changes using E2E tests.

\n\n\n\n

In the post Action required: github-proxy.com shutdown Centra lays out the migration to switch over from a third-party proxy server to Playground’s built -n CORS handling. Your existing blueprints are safe, though. If you worked with Blueprints you can also learn how to reference GitHub repos, folders and files with native Playground resources.

\n\n\n

“Keeping up with Gutenberg—Index- Index 2025”
A chronological list of the WordPress Make Blog posts from various teams involved in Gutenberg development: Design, Theme Review Team, Core Editor, Core JS, Core CSS, Test, and Meta team from Jan. 2024 on. Updated by yours truly. 

\n\n

The previous years are also available:
2020 | 2021 | 2022 | 2023 | 2024

\n\n\n

Building Blocks and Tools for the Block editor

\n\n\n\n

In this week’s livestream JuanMa Garrido explored how to create commands for the Commands Palette. WordPress 6.9 brought the Command Palette to the whole WordPress space and not just restrict it to the Site Editor. Now all plugin developer can register commands together with their plugin’s features.

\n\n\n
\n
\n\n
\n
\n\n\n
\n\n\n\n

Justin Tadlock published the monthly roundup on What’s new for developers? (December 2025), noting WordPress 6.9 “Gene” and pointing to the 6.9 Field Guide and State of the Word. Highlights include the new AI Experiments plugin, Breadcrumbs block improvements heading toward stability, and an experimental Tabs block. Tooling updates cover WPCS 3.3.0, Data Views/Forms and Field API enhancements, @wordpress/boot routing, and a visibility key rename. Themes and Playground also saw notable updates.

\n\n\n\n

Ryan Welcher shot a video What’s New For WordPress Developers – December 2025, covering the parts of the blog post.

\n\n\n\n
\"\"
\n\n\n\n
\n\n\n\n

As a reader of this newsletter you might already know about WordPress Studio, the fast, free, open-source local development tool, that’s based on WordPress Playground. Nick Diego recorded a Getting Started with WordPress Studio video and walks you through creating local sites, configuring your environment, and using the tools that come bundled with the app. You’ll also learn how to unlock advanced features with a free WordPress.com account, including syncing with WordPress.com and Pressable, sharing live preview links, and using the built-in AI Assistant to accelerate development. Whether you build plugins, create themes, or manage client projects, Studio helps you work faster and smarter.

\n\n\n
\n
\n\n
\n
\n\n\n
\n\n\n\n

In her post, Build Custom Event Lists & Grids With One Block: Event Query Loop Block Ultimate Guide, Lesley Sim shared a comprehensive tutorial for managing EventKoi’s specialized query block within WordPress. The post details how to create custom list and grid layouts using various query parameters, such as date ranges and recurring event instances, without any coding. By explaining the block’s internal structure and the flexible Event Data block, Sim illustrates how users can achieve precise design control and dynamic content display.

\n\n\n\n
\n\n\n\n

In his latest post for the WordPress Developer Blog, Word Switcher: Extending Core Blocks with Interactivity, JuanMa Garrido provides a practical guide for beginners on enhancing standard WordPress blocks using native tools. Garrido demonstrates how to combine the Format API for editor controls, the HTML API for server-side processing, and the Interactivity API for frontend animations. Developers learn to create a “word switcher” effect that cycles through text variations without relying on heavy external libraries. This approach ensures a lightweight, performant, and professional workflow that bridges the gap between simple content entry and modern, reactive web design.

\n\n\n

Need a plugin .zip from Gutenberg’s master branch?
Gutenberg Times provides daily build for testing and review.

\n\n
\"\"
\n\n

Now also available via WordPress Playground. There is no need for a test site locally or on a server. Have you been using it? Email me with your experience.

\n\n\n
\n\n\n\n

Questions? Suggestions? Ideas?
Don’t hesitate to send them via email or
send me a message on WordPress Slack or Twitter @bph.

\n\n\n\n
\n\n\n\n

For questions to be answered on the Gutenberg Changelog,
send them to changelog@gutenbergtimes.com

\n\n\n

\n\n

Featured Image:

\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:\"Sat, 20 Dec 2025 18:35:49 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:18:\"Birgit Pauli-Haack\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}}}}}}}}}}}}s:4:\"type\";i:128;s:7:\"headers\";a:9:{s:6:\"server\";s:5:\"nginx\";s:4:\"date\";s:29:\"Mon, 02 Feb 2026 13:05:20 GMT\";s:12:\"content-type\";s:8:\"text/xml\";s:13:\"last-modified\";s:29:\"Mon, 02 Feb 2026 13:00:23 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:1760643936;s:21:\"cache_expiration_time\";i:1770080721;s:23:\"__cache_expiration_time\";i:1770080721;}','off'),(146,'_site_transient_timeout_feed_mod_d117b5738fbd35bd8c0391cda1f2b5d9','1770080721','off'),(147,'_site_transient_feed_mod_d117b5738fbd35bd8c0391cda1f2b5d9','1770037521','off'),(148,'_transient_timeout_dash_v2_88ae138922fe95674369b1cb3d215a2b','1770080721','off'),(149,'_transient_dash_v2_88ae138922fe95674369b1cb3d215a2b','','off'),(150,'_site_transient_timeout_available_translations','1770048359','off'),(151,'_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.11\";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.11/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.7\";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.7/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.27\";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.27/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:3:\"6.9\";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:59:\"https://downloads.wordpress.org/translation/core/6.9/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.7\";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.7/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.28\";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.28/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-01 10:38:20\";s:12:\"english_name\";s:9:\"Bulgarian\";s:11:\"native_name\";s:18:\"Български\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-22 13:20:54\";s:12:\"english_name\";s:20:\"Bengali (Bangladesh)\";s:11:\"native_name\";s:15:\"বাংলা\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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.8\";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.8/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-31 20:55:25\";s:12:\"english_name\";s:7:\"Catalan\";s:11:\"native_name\";s:7:\"Català\";s:7:\"package\";s:59:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-11 21:36:34\";s:12:\"english_name\";s:5:\"Czech\";s:11:\"native_name\";s:9:\"Čeština\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-30 16:47:55\";s:12:\"english_name\";s:5:\"Welsh\";s:11:\"native_name\";s:7:\"Cymraeg\";s:7:\"package\";s:59:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-29 07:47:58\";s:12:\"english_name\";s:6:\"Danish\";s:11:\"native_name\";s:5:\"Dansk\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-10-23 12:01:47\";s:12:\"english_name\";s:16:\"German (Austria)\";s:11:\"native_name\";s:21:\"Deutsch (Österreich)\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-11-28 08:11:27\";s:12:\"english_name\";s:20:\"German (Switzerland)\";s:11:\"native_name\";s:17:\"Deutsch (Schweiz)\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:5:\"de_DE\";a:8:{s:8:\"language\";s:5:\"de_DE\";s:7:\"version\";s:3:\"6.9\";s:7:\"updated\";s:19:\"2026-02-01 03:08:02\";s:12:\"english_name\";s:6:\"German\";s:11:\"native_name\";s:7:\"Deutsch\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-02-01 03:06:27\";s:12:\"english_name\";s:15:\"German (Formal)\";s:11:\"native_name\";s:13:\"Deutsch (Sie)\";s:7:\"package\";s:69:\"https://downloads.wordpress.org/translation/core/6.9/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:14:\"de_CH_informal\";a:8:{s:8:\"language\";s:14:\"de_CH_informal\";s:7:\"version\";s:3:\"6.9\";s:7:\"updated\";s:19:\"2025-11-28 08:08:17\";s:12:\"english_name\";s:30:\"German (Switzerland, Informal)\";s:11:\"native_name\";s:21:\"Deutsch (Schweiz, Du)\";s:7:\"package\";s:71:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"dsb\";a:8:{s:8:\"language\";s:3:\"dsb\";s:7:\"version\";s:5:\"6.2.8\";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.8/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-18 14:30:43\";s:12:\"english_name\";s:5:\"Greek\";s:11:\"native_name\";s:16:\"Ελληνικά\";s:7:\"package\";s:59:\"https://downloads.wordpress.org/translation/core/6.9/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_CA\";a:8:{s:8:\"language\";s:5:\"en_CA\";s:7:\"version\";s:3:\"6.9\";s:7:\"updated\";s:19:\"2025-11-25 13:30:15\";s:12:\"english_name\";s:16:\"English (Canada)\";s:11:\"native_name\";s:16:\"English (Canada)\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-24 12:51:19\";s:12:\"english_name\";s:21:\"English (New Zealand)\";s:11:\"native_name\";s:21:\"English (New Zealand)\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:5:\"en_GB\";a:8:{s:8:\"language\";s:5:\"en_GB\";s:7:\"version\";s:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-30 11:47:57\";s:12:\"english_name\";s:12:\"English (UK)\";s:11:\"native_name\";s:12:\"English (UK)\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-13 06:27:29\";s:12:\"english_name\";s:22:\"English (South Africa)\";s:11:\"native_name\";s:22:\"English (South Africa)\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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_AU\";a:8:{s:8:\"language\";s:5:\"en_AU\";s:7:\"version\";s:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-23 16:40:44\";s:12:\"english_name\";s:19:\"English (Australia)\";s:11:\"native_name\";s:19:\"English (Australia)\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:2:\"eo\";a:8:{s:8:\"language\";s:2:\"eo\";s:7:\"version\";s:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-27 10:24:57\";s:12:\"english_name\";s:9:\"Esperanto\";s:11:\"native_name\";s:9:\"Esperanto\";s:7:\"package\";s:59:\"https://downloads.wordpress.org/translation/core/6.9/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_CL\";a:8:{s:8:\"language\";s:5:\"es_CL\";s:7:\"version\";s:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-12 22:21:48\";s:12:\"english_name\";s:15:\"Spanish (Chile)\";s:11:\"native_name\";s:17:\"Español de Chile\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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_CR\";a:8:{s:8:\"language\";s:5:\"es_CR\";s:7:\"version\";s:3:\"6.9\";s:7:\"updated\";s:19:\"2025-10-01 22:54:47\";s:12:\"english_name\";s:20:\"Spanish (Costa Rica)\";s:11:\"native_name\";s:22:\"Español de Costa Rica\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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_MX\";a:8:{s:8:\"language\";s:5:\"es_MX\";s:7:\"version\";s:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-05 13:30:31\";s:12:\"english_name\";s:16:\"Spanish (Mexico)\";s:11:\"native_name\";s:19:\"Español de México\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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_AR\";a:8:{s:8:\"language\";s:5:\"es_AR\";s:7:\"version\";s:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-07 17:17:39\";s:12:\"english_name\";s:19:\"Spanish (Argentina)\";s:11:\"native_name\";s:21:\"Español de Argentina\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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_ES\";a:8:{s:8:\"language\";s:5:\"es_ES\";s:7:\"version\";s:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-30 19:24:13\";s:12:\"english_name\";s:15:\"Spanish (Spain)\";s:11:\"native_name\";s:8:\"Español\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:5:\"es_PE\";a:8:{s:8:\"language\";s:5:\"es_PE\";s:7:\"version\";s:6:\"6.9-RC\";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:65:\"https://downloads.wordpress.org/translation/core/6.9-RC/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_VE\";a:8:{s:8:\"language\";s:5:\"es_VE\";s:7:\"version\";s:5:\"6.4.7\";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.7/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.8\";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.8/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.12\";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.12/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.18\";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.18/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.23\";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.23/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_CO\";a:8:{s:8:\"language\";s:5:\"es_CO\";s:7:\"version\";s:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-13 04:21:30\";s:12:\"english_name\";s:18:\"Spanish (Colombia)\";s:11:\"native_name\";s:20:\"Español de Colombia\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:2:\"et\";a:8:{s:8:\"language\";s:2:\"et\";s:7:\"version\";s:5:\"6.5.7\";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.7/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:6:\"6.9-RC\";s:7:\"updated\";s:19:\"2025-11-05 21:53:17\";s:12:\"english_name\";s:6:\"Basque\";s:11:\"native_name\";s:7:\"Euskara\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9-RC/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_IR\";a:8:{s:8:\"language\";s:5:\"fa_IR\";s:7:\"version\";s:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-25 18:17:43\";s:12:\"english_name\";s:7:\"Persian\";s:11:\"native_name\";s:10:\"فارسی\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:5:\"fa_AF\";a:8:{s:8:\"language\";s:5:\"fa_AF\";s:7:\"version\";s:6:\"6.9-RC\";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:65:\"https://downloads.wordpress.org/translation/core/6.9-RC/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:2:\"fi\";a:8:{s:8:\"language\";s:2:\"fi\";s:7:\"version\";s:3:\"6.9\";s:7:\"updated\";s:19:\"2025-11-29 11:04:04\";s:12:\"english_name\";s:7:\"Finnish\";s:11:\"native_name\";s:5:\"Suomi\";s:7:\"package\";s:59:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-10-03 04:54:28\";s:12:\"english_name\";s:15:\"French (Canada)\";s:11:\"native_name\";s:19:\"Français du Canada\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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.7\";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.7/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-10 11:15:06\";s:12:\"english_name\";s:15:\"French (France)\";s:11:\"native_name\";s:9:\"Français\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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.27\";s:7:\"updated\";s:19:\"2025-12-20 19:08:53\";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.27/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.8\";s:7:\"updated\";s:19:\"2025-10-21 16:35:04\";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.8/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-02-01 13:15:26\";s:12:\"english_name\";s:8:\"Galician\";s:11:\"native_name\";s:6:\"Galego\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-09 11:14:55\";s:12:\"english_name\";s:8:\"Gujarati\";s:11:\"native_name\";s:21:\"ગુજરાતી\";s:7:\"package\";s:59:\"https://downloads.wordpress.org/translation/core/6.9/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.8\";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.8/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.7\";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.7/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-31 09:13:17\";s:12:\"english_name\";s:8:\"Croatian\";s:11:\"native_name\";s:8:\"Hrvatski\";s:7:\"package\";s:59:\"https://downloads.wordpress.org/translation/core/6.9/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.8\";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.8/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-26 09:03:23\";s:12:\"english_name\";s:9:\"Hungarian\";s:11:\"native_name\";s:6:\"Magyar\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-16 11:21:47\";s:12:\"english_name\";s:10:\"Indonesian\";s:11:\"native_name\";s:16:\"Bahasa Indonesia\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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.28\";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.28/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-02-01 12:46:02\";s:12:\"english_name\";s:7:\"Italian\";s:11:\"native_name\";s:8:\"Italiano\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-30 13:49:01\";s:12:\"english_name\";s:8:\"Japanese\";s:11:\"native_name\";s:9:\"日本語\";s:7:\"package\";s:59:\"https://downloads.wordpress.org/translation/core/6.9/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.28\";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.28/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-26 09:51:27\";s:12:\"english_name\";s:8:\"Georgian\";s:11:\"native_name\";s:21:\"ქართული\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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.8\";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.8/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:6:\"6.9-RC\";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:62:\"https://downloads.wordpress.org/translation/core/6.9-RC/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.23\";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.23/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-31 11:41:21\";s:12:\"english_name\";s:7:\"Kannada\";s:11:\"native_name\";s:15:\"ಕನ್ನಡ\";s:7:\"package\";s:59:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-16 00:49:25\";s:12:\"english_name\";s:6:\"Korean\";s:11:\"native_name\";s:9:\"한국어\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-29 23:40:05\";s:12:\"english_name\";s:16:\"Kurdish (Sorani)\";s:11:\"native_name\";s:13:\"كوردی‎\";s:7:\"package\";s:60:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-01 21:45:29\";s:12:\"english_name\";s:6:\"Kyrgyz\";s:11:\"native_name\";s:16:\"Кыргызча\";s:7:\"package\";s:60:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-13 06:21:23\";s:12:\"english_name\";s:3:\"Lao\";s:11:\"native_name\";s:21:\"ພາສາລາວ\";s:7:\"package\";s:59:\"https://downloads.wordpress.org/translation/core/6.9/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:6:\"6.9-RC\";s:7:\"updated\";s:19:\"2025-09-27 20:51:17\";s:12:\"english_name\";s:10:\"Lithuanian\";s:11:\"native_name\";s:15:\"Lietuvių kalba\";s:7:\"package\";s:65:\"https://downloads.wordpress.org/translation/core/6.9-RC/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:3:\"6.9\";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:59:\"https://downloads.wordpress.org/translation/core/6.9/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.11\";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.11/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-26 17:47:09\";s:12:\"english_name\";s:9:\"Malayalam\";s:11:\"native_name\";s:18:\"മലയാളം\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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.7\";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.7/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-07 14:17:20\";s:12:\"english_name\";s:7:\"Marathi\";s:11:\"native_name\";s:15:\"मराठी\";s:7:\"package\";s:59:\"https://downloads.wordpress.org/translation/core/6.9/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.17\";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.17/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-02-01 08:57:36\";s:12:\"english_name\";s:19:\"Norwegian (Bokmål)\";s:11:\"native_name\";s:13:\"Norsk bokmål\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:6:\"6.9-RC\";s:7:\"updated\";s:19:\"2025-11-07 08:26:32\";s:12:\"english_name\";s:6:\"Nepali\";s:11:\"native_name\";s:18:\"नेपाली\";s:7:\"package\";s:65:\"https://downloads.wordpress.org/translation/core/6.9-RC/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:5:\"nl_NL\";a:8:{s:8:\"language\";s:5:\"nl_NL\";s:7:\"version\";s:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-29 08:00:28\";s:12:\"english_name\";s:5:\"Dutch\";s:11:\"native_name\";s:10:\"Nederlands\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:12:\"nl_NL_formal\";a:8:{s:8:\"language\";s:12:\"nl_NL_formal\";s:7:\"version\";s:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-29 08:00:04\";s:12:\"english_name\";s:14:\"Dutch (Formal)\";s:11:\"native_name\";s:20:\"Nederlands (Formeel)\";s:7:\"package\";s:69:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-02-02 08:54:38\";s:12:\"english_name\";s:15:\"Dutch (Belgium)\";s:11:\"native_name\";s:20:\"Nederlands (België)\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:\"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.27\";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.27/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-01 09:45:52\";s:12:\"english_name\";s:6:\"Polish\";s:11:\"native_name\";s:6:\"Polski\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-02 18:21:27\";s:12:\"english_name\";s:19:\"Portuguese (Brazil)\";s:11:\"native_name\";s:20:\"Português do Brasil\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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_AO\";a:8:{s:8:\"language\";s:5:\"pt_AO\";s:7:\"version\";s:5:\"6.4.7\";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.7/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:5:\"pt_PT\";a:8:{s:8:\"language\";s:5:\"pt_PT\";s:7:\"version\";s:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-02 10:17:43\";s:12:\"english_name\";s:21:\"Portuguese (Portugal)\";s:11:\"native_name\";s:10:\"Português\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-02 00:03:57\";s:12:\"english_name\";s:27:\"Portuguese (Portugal, AO90)\";s:11:\"native_name\";s:17:\"Português (AO90)\";s:7:\"package\";s:67:\"https://downloads.wordpress.org/translation/core/6.9/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: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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-29 12:52:48\";s:12:\"english_name\";s:8:\"Romanian\";s:11:\"native_name\";s:8:\"Română\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-29 03:22:33\";s:12:\"english_name\";s:7:\"Russian\";s:11:\"native_name\";s:14:\"Русский\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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.18\";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.18/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-01 04:57:17\";s:12:\"english_name\";s:6:\"Slovak\";s:11:\"native_name\";s:11:\"Slovenčina\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:6:\"6.9-RC\";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:63:\"https://downloads.wordpress.org/translation/core/6.9-RC/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-10-29 11:19:02\";s:12:\"english_name\";s:9:\"Slovenian\";s:11:\"native_name\";s:13:\"Slovenščina\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-24 16:29:39\";s:12:\"english_name\";s:8:\"Albanian\";s:11:\"native_name\";s:5:\"Shqip\";s:7:\"package\";s:59:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-03 15:37:44\";s:12:\"english_name\";s:7:\"Serbian\";s:11:\"native_name\";s:23:\"Српски језик\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-29 08:15:39\";s:12:\"english_name\";s:7:\"Swedish\";s:11:\"native_name\";s:7:\"Svenska\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-11-16 17:19:56\";s:12:\"english_name\";s:7:\"Swahili\";s:11:\"native_name\";s:9:\"Kiswahili\";s:7:\"package\";s:59:\"https://downloads.wordpress.org/translation/core/6.9/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.12\";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.12/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-13 08:39:22\";s:12:\"english_name\";s:7:\"Tagalog\";s:11:\"native_name\";s:7:\"Tagalog\";s:7:\"package\";s:59:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-12 14:35:24\";s:12:\"english_name\";s:7:\"Turkish\";s:11:\"native_name\";s:8:\"Türkçe\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-29 23:09:01\";s:12:\"english_name\";s:6:\"Uighur\";s:11:\"native_name\";s:16:\"ئۇيغۇرچە\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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.18\";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.18/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-09-01 09:12:13\";s:12:\"english_name\";s:10:\"Vietnamese\";s:11:\"native_name\";s:14:\"Tiếng Việt\";s:7:\"package\";s:59:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-02 00:32:44\";s:12:\"english_name\";s:16:\"Chinese (Taiwan)\";s:11:\"native_name\";s:12:\"繁體中文\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-06 20:16:48\";s:12:\"english_name\";s:15:\"Chinese (China)\";s:11:\"native_name\";s:12:\"简体中文\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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.8\";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.8/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'),(153,'theme_mods_twentytwentyfive','a:1:{s:18:\"custom_css_post_id\";i:-1;}','auto'),(154,'_transient_wp_styles_for_blocks','a:2:{s:4:\"hash\";s:32:\"7fd09879fbd531b73d40fe17062a7523\";s:6:\"blocks\";a:53:{s:11:\"core/button\";s:0:\"\";s:14:\"core/site-logo\";s:0:\"\";s:18:\"core/post-template\";s:0:\"\";s:18:\"core/term-template\";s:0:\"\";s:12:\"core/columns\";s:769:\":root :where(.wp-block-columns-is-layout-flow) > :first-child{margin-block-start: 0;}:root :where(.wp-block-columns-is-layout-flow) > :last-child{margin-block-end: 0;}:root :where(.wp-block-columns-is-layout-flow) > *{margin-block-start: var(--wp--preset--spacing--50);margin-block-end: 0;}:root :where(.wp-block-columns-is-layout-constrained) > :first-child{margin-block-start: 0;}:root :where(.wp-block-columns-is-layout-constrained) > :last-child{margin-block-end: 0;}:root :where(.wp-block-columns-is-layout-constrained) > *{margin-block-start: var(--wp--preset--spacing--50);margin-block-end: 0;}:root :where(.wp-block-columns-is-layout-flex){gap: var(--wp--preset--spacing--50);}:root :where(.wp-block-columns-is-layout-grid){gap: var(--wp--preset--spacing--50);}\";s:14:\"core/pullquote\";s:306:\":root :where(.wp-block-pullquote){font-size: var(--wp--preset--font-size--xx-large);font-weight: 300;line-height: 1.2;padding-top: var(--wp--preset--spacing--30);padding-bottom: var(--wp--preset--spacing--30);}:root :where(.wp-block-pullquote p:last-of-type){margin-bottom: var(--wp--preset--spacing--30);}\";s:32:\"c48738dcb285a3f6ab83acff204fc486\";s:106:\":root :where(.wp-block-pullquote cite){font-size: var(--wp--preset--font-size--small);font-style: normal;}\";s:11:\"core/avatar\";s:57:\":root :where(.wp-block-avatar img){border-radius: 100px;}\";s:12:\"core/buttons\";s:665:\":root :where(.wp-block-buttons-is-layout-flow) > :first-child{margin-block-start: 0;}:root :where(.wp-block-buttons-is-layout-flow) > :last-child{margin-block-end: 0;}:root :where(.wp-block-buttons-is-layout-flow) > *{margin-block-start: 16px;margin-block-end: 0;}:root :where(.wp-block-buttons-is-layout-constrained) > :first-child{margin-block-start: 0;}:root :where(.wp-block-buttons-is-layout-constrained) > :last-child{margin-block-end: 0;}:root :where(.wp-block-buttons-is-layout-constrained) > *{margin-block-start: 16px;margin-block-end: 0;}:root :where(.wp-block-buttons-is-layout-flex){gap: 16px;}:root :where(.wp-block-buttons-is-layout-grid){gap: 16px;}\";s:9:\"core/code\";s:427:\":root :where(.wp-block-code){background-color: var(--wp--preset--color--accent-5);color: var(--wp--preset--color--contrast);font-family: var(--wp--preset--font-family--fira-code);font-size: var(--wp--preset--font-size--medium);font-weight: 300;padding-top: var(--wp--preset--spacing--40);padding-right: var(--wp--preset--spacing--40);padding-bottom: var(--wp--preset--spacing--40);padding-left: var(--wp--preset--spacing--40);}\";s:24:\"core/comment-author-name\";s:169:\":root :where(.wp-block-comment-author-name){color: var(--wp--preset--color--accent-4);font-size: var(--wp--preset--font-size--small);margin-top: 5px;margin-bottom: 0px;}\";s:32:\"c0002c260f8238c4212f3e4c369fc4f7\";s:143:\":root :where(.wp-block-comment-author-name a:where(:not(.wp-element-button))){color: var(--wp--preset--color--accent-4);text-decoration: none;}\";s:32:\"1e7c38b45537b325dbbbaec17a301676\";s:112:\":root :where(.wp-block-comment-author-name a:where(:not(.wp-element-button)):hover){text-decoration: underline;}\";s:20:\"core/comment-content\";s:178:\":root :where(.wp-block-comment-content){font-size: var(--wp--preset--font-size--medium);margin-top: var(--wp--preset--spacing--30);margin-bottom: var(--wp--preset--spacing--30);}\";s:17:\"core/comment-date\";s:127:\":root :where(.wp-block-comment-date){color: var(--wp--preset--color--contrast);font-size: var(--wp--preset--font-size--small);}\";s:32:\"c83ca7b3e52884c70f7830c54f99b318\";s:114:\":root :where(.wp-block-comment-date a:where(:not(.wp-element-button))){color: var(--wp--preset--color--contrast);}\";s:22:\"core/comment-edit-link\";s:90:\":root :where(.wp-block-comment-edit-link){font-size: var(--wp--preset--font-size--small);}\";s:32:\"41d70710612536a90e368c12bcb0efea\";s:119:\":root :where(.wp-block-comment-edit-link a:where(:not(.wp-element-button))){color: var(--wp--preset--color--contrast);}\";s:23:\"core/comment-reply-link\";s:91:\":root :where(.wp-block-comment-reply-link){font-size: var(--wp--preset--font-size--small);}\";s:32:\"13c96340dbf37700add1f4c5cae19f3e\";s:120:\":root :where(.wp-block-comment-reply-link a:where(:not(.wp-element-button))){color: var(--wp--preset--color--contrast);}\";s:23:\"core/post-comments-form\";s:565:\":root :where(.wp-block-post-comments-form){font-size: var(--wp--preset--font-size--medium);padding-top: var(--wp--preset--spacing--40);padding-bottom: var(--wp--preset--spacing--40);}:root :where(.wp-block-post-comments-form textarea, .wp-block-post-comments-form input:not([type=submit])){border-radius:.25rem; border-color: var(--wp--preset--color--accent-6) !important;}:root :where(.wp-block-post-comments-form input[type=checkbox]){margin:0 .2rem 0 0 !important;}:root :where(.wp-block-post-comments-form label){font-size: var(--wp--preset--font-size--small);}\";s:24:\"core/comments-pagination\";s:182:\":root :where(.wp-block-comments-pagination){font-size: var(--wp--preset--font-size--medium);margin-top: var(--wp--preset--spacing--40);margin-bottom: var(--wp--preset--spacing--40);}\";s:29:\"core/comments-pagination-next\";s:98:\":root :where(.wp-block-comments-pagination-next){font-size: var(--wp--preset--font-size--medium);}\";s:32:\"core/comments-pagination-numbers\";s:101:\":root :where(.wp-block-comments-pagination-numbers){font-size: var(--wp--preset--font-size--medium);}\";s:33:\"core/comments-pagination-previous\";s:102:\":root :where(.wp-block-comments-pagination-previous){font-size: var(--wp--preset--font-size--medium);}\";s:14:\"core/post-date\";s:124:\":root :where(.wp-block-post-date){color: var(--wp--preset--color--accent-4);font-size: var(--wp--preset--font-size--small);}\";s:32:\"ac0d4e00f5ec22d14451759983e5bd43\";s:133:\":root :where(.wp-block-post-date a:where(:not(.wp-element-button))){color: var(--wp--preset--color--accent-4);text-decoration: none;}\";s:32:\"0ae6ffd1b886044c2da62d75d05ab13d\";s:102:\":root :where(.wp-block-post-date a:where(:not(.wp-element-button)):hover){text-decoration: underline;}\";s:25:\"core/post-navigation-link\";s:94:\":root :where(.wp-block-post-navigation-link){font-size: var(--wp--preset--font-size--medium);}\";s:15:\"core/post-terms\";s:158:\":root :where(.wp-block-post-terms){font-size: var(--wp--preset--font-size--small);font-weight: 600;}:root :where(.wp-block-post-terms a){white-space: nowrap;}\";s:15:\"core/post-title\";s:0:\"\";s:32:\"bb496d3fcd9be3502ce57ff8281e5687\";s:92:\":root :where(.wp-block-post-title a:where(:not(.wp-element-button))){text-decoration: none;}\";s:32:\"12380ab98fdc81351bb32a39bbfc9249\";s:103:\":root :where(.wp-block-post-title a:where(:not(.wp-element-button)):hover){text-decoration: underline;}\";s:10:\"core/quote\";s:1315:\":root :where(.wp-block-quote){border-color: currentColor;border-width: 0 0 0 2px;border-style: solid;font-size: var(--wp--preset--font-size--large);font-weight: 300;margin-right: 0;margin-left: 0;padding-top: var(--wp--preset--spacing--30);padding-right: var(--wp--preset--spacing--40);padding-bottom: var(--wp--preset--spacing--30);padding-left: var(--wp--preset--spacing--40);}:root :where(.wp-block-quote-is-layout-flow) > :first-child{margin-block-start: 0;}:root :where(.wp-block-quote-is-layout-flow) > :last-child{margin-block-end: 0;}:root :where(.wp-block-quote-is-layout-flow) > *{margin-block-start: var(--wp--preset--spacing--30);margin-block-end: 0;}:root :where(.wp-block-quote-is-layout-constrained) > :first-child{margin-block-start: 0;}:root :where(.wp-block-quote-is-layout-constrained) > :last-child{margin-block-end: 0;}:root :where(.wp-block-quote-is-layout-constrained) > *{margin-block-start: var(--wp--preset--spacing--30);margin-block-end: 0;}:root :where(.wp-block-quote-is-layout-flex){gap: var(--wp--preset--spacing--30);}:root :where(.wp-block-quote-is-layout-grid){gap: var(--wp--preset--spacing--30);}:root :where(.wp-block-quote.has-text-align-right ){border-width: 0 2px 0 0;}:root :where(.wp-block-quote.has-text-align-center ){border-width: 0;border-inline: 0; padding-inline: 0;}\";s:32:\"1de7a22e22013106efc5be82788cb6c0\";s:176:\":root :where(.wp-block-quote cite){font-size: var(--wp--preset--font-size--small);font-style: normal;font-weight: 300;}:root :where(.wp-block-quote cite sub){font-size: 0.65em}\";s:21:\"core/query-pagination\";s:107:\":root :where(.wp-block-query-pagination){font-size: var(--wp--preset--font-size--medium);font-weight: 500;}\";s:11:\"core/search\";s:380:\":root :where(.wp-block-search .wp-block-search__label, .wp-block-search .wp-block-search__input, .wp-block-search .wp-block-search__button){font-size: var(--wp--preset--font-size--medium);line-height: 1.6;}:root :where(.wp-block-search .wp-block-search__input){border-radius:3.125rem;padding-left:1.5625rem;padding-right:1.5625rem;border-color:var(--wp--preset--color--accent-6);}\";s:32:\"14fa6a3d0cfbde171cbc0fb04aa8a6cf\";s:138:\":root :where(.wp-block-search .wp-element-button,.wp-block-search .wp-block-button__link){border-radius: 3.125rem;margin-left: 1.125rem;}\";s:32:\"05993ee2f3de94b5d1350998a7e9b6b0\";s:130:\":root :where(.wp-block-search .wp-element-button:hover,.wp-block-search .wp-block-button__link:hover){border-color: transparent;}\";s:14:\"core/separator\";s:148:\":root :where(.wp-block-separator){border-color: currentColor;border-width: 0 0 1px 0;border-style: solid;color: var(--wp--preset--color--accent-6);}\";s:17:\"core/site-tagline\";s:86:\":root :where(.wp-block-site-tagline){font-size: var(--wp--preset--font-size--medium);}\";s:15:\"core/site-title\";s:75:\":root :where(.wp-block-site-title){font-weight: 700;letter-spacing: -.5px;}\";s:32:\"f513d889cf971b13995cc3fffed2f39b\";s:92:\":root :where(.wp-block-site-title a:where(:not(.wp-element-button))){text-decoration: none;}\";s:32:\"22c37a317cc0ebd50155b5ad78564f37\";s:103:\":root :where(.wp-block-site-title a:where(:not(.wp-element-button)):hover){text-decoration: underline;}\";s:21:\"core/term-description\";s:90:\":root :where(.wp-block-term-description){font-size: var(--wp--preset--font-size--medium);}\";s:15:\"core/navigation\";s:84:\":root :where(.wp-block-navigation){font-size: var(--wp--preset--font-size--medium);}\";s:32:\"25289a01850f5a0264ddb79a9a3baf3d\";s:92:\":root :where(.wp-block-navigation a:where(:not(.wp-element-button))){text-decoration: none;}\";s:32:\"026c04da08398d655a95047f1f235d97\";s:103:\":root :where(.wp-block-navigation a:where(:not(.wp-element-button)):hover){text-decoration: underline;}\";s:9:\"core/list\";s:52:\":root :where(.wp-block-list li){margin-top: 0.5rem;}\";s:12:\"core/heading\";s:0:\"\";s:14:\"core/paragraph\";s:0:\"\";s:10:\"core/group\";s:0:\"\";s:11:\"core/column\";s:0:\"\";}}','on'); +/*!40000 ALTER TABLE `wp_options` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_postmeta` +-- + +DROP TABLE IF EXISTS `wp_postmeta`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `wp_postmeta` ( + `meta_id` bigint unsigned NOT NULL AUTO_INCREMENT, + `post_id` bigint unsigned NOT NULL DEFAULT '0', + `meta_key` varchar(255) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL, + `meta_value` longtext COLLATE utf8mb4_unicode_520_ci, + PRIMARY KEY (`meta_id`), + KEY `post_id` (`post_id`), + KEY `meta_key` (`meta_key`(191)) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_postmeta` +-- + +LOCK TABLES `wp_postmeta` WRITE; +/*!40000 ALTER TABLE `wp_postmeta` DISABLE KEYS */; +INSERT INTO `wp_postmeta` VALUES (1,2,'_wp_page_template','default'),(2,3,'_wp_page_template','default'); +/*!40000 ALTER TABLE `wp_postmeta` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_posts` +-- + +DROP TABLE IF EXISTS `wp_posts`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `wp_posts` ( + `ID` bigint unsigned NOT NULL AUTO_INCREMENT, + `post_author` bigint unsigned NOT NULL DEFAULT '0', + `post_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `post_date_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `post_content` longtext COLLATE utf8mb4_unicode_520_ci NOT NULL, + `post_title` text COLLATE utf8mb4_unicode_520_ci NOT NULL, + `post_excerpt` text COLLATE utf8mb4_unicode_520_ci NOT NULL, + `post_status` varchar(20) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT 'publish', + `comment_status` varchar(20) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT 'open', + `ping_status` varchar(20) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT 'open', + `post_password` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', + `post_name` varchar(200) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', + `to_ping` text COLLATE utf8mb4_unicode_520_ci NOT NULL, + `pinged` text COLLATE utf8mb4_unicode_520_ci NOT NULL, + `post_modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `post_modified_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `post_content_filtered` longtext COLLATE utf8mb4_unicode_520_ci NOT NULL, + `post_parent` bigint unsigned NOT NULL DEFAULT '0', + `guid` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', + `menu_order` int NOT NULL DEFAULT '0', + `post_type` varchar(20) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT 'post', + `post_mime_type` varchar(100) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', + `comment_count` bigint NOT NULL DEFAULT '0', + PRIMARY KEY (`ID`), + KEY `post_name` (`post_name`(191)), + KEY `type_status_date` (`post_type`,`post_status`,`post_date`,`ID`), + KEY `post_parent` (`post_parent`), + KEY `post_author` (`post_author`), + KEY `type_status_author` (`post_type`,`post_status`,`post_author`) +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_posts` +-- + +LOCK TABLES `wp_posts` WRITE; +/*!40000 ALTER TABLE `wp_posts` DISABLE KEYS */; +INSERT INTO `wp_posts` VALUES (1,1,'2026-02-02 13:05:02','2026-02-02 13:05:02','\n

Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

\n','Hello world!','','publish','open','open','','hello-world','','','2026-02-02 13:05:02','2026-02-02 13:05:02','',0,'https://_FQDN_/?p=1',0,'post','',1),(2,1,'2026-02-02 13:05:02','2026-02-02 13:05:02','\n

This 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

Hi 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.)

\n\n
\n\n\n\n

...or something like this:

\n\n\n\n
\n\n

The 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.

\n\n
\n\n\n\n

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','','','2026-02-02 13:05:02','2026-02-02 13:05:02','',0,'https://_FQDN_/?page_id=2',0,'page','',0),(3,1,'2026-02-02 13:05:02','2026-02-02 13:05:02','\n

Who we are

\n\n\n

Suggested text: Our website address is: https://_FQDN_.

\n\n\n

Comments

\n\n\n

Suggested 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\n

An 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\n

Media

\n\n\n

Suggested 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\n

Cookies

\n\n\n

Suggested 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\n

If 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\n

When 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\n

If 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\n

Embedded content from other websites

\n\n\n

Suggested 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\n

These 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\n

Who we share your data with

\n\n\n

Suggested text: If you request a password reset, your IP address will be included in the reset email.

\n\n\n

How long we retain your data

\n\n\n

Suggested 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\n

For 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\n

What rights you have over your data

\n\n\n

Suggested 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\n

Where your data is sent

\n\n\n

Suggested text: Visitor comments may be checked through an automated spam detection service.

\n\n','Privacy Policy','','draft','closed','open','','privacy-policy','','','2026-02-02 13:05:02','2026-02-02 13:05:02','',0,'https://_FQDN_/?page_id=3',0,'page','',0),(4,1,'2026-02-02 13:05:19','0000-00-00 00:00:00','','Auto Draft','','auto-draft','open','open','','','','','2026-02-02 13:05:19','0000-00-00 00:00:00','',0,'https://_FQDN_/?p=4',0,'post','',0),(5,0,'2026-02-02 13:06:07','2026-02-02 13:06:07','','Navigation','','publish','closed','closed','','navigation','','','2026-02-02 13:06:07','2026-02-02 13:06:07','',0,'https://_FQDN_/?p=5',0,'wp_navigation','',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 = utf8 */; +CREATE TABLE `wp_term_relationships` ( + `object_id` bigint unsigned NOT NULL DEFAULT '0', + `term_taxonomy_id` bigint unsigned NOT NULL DEFAULT '0', + `term_order` int 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); +/*!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 = utf8 */; +CREATE TABLE `wp_term_taxonomy` ( + `term_taxonomy_id` bigint unsigned NOT NULL AUTO_INCREMENT, + `term_id` bigint unsigned NOT NULL DEFAULT '0', + `taxonomy` varchar(32) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', + `description` longtext COLLATE utf8mb4_unicode_520_ci NOT NULL, + `parent` bigint unsigned NOT NULL DEFAULT '0', + `count` bigint NOT NULL DEFAULT '0', + PRIMARY KEY (`term_taxonomy_id`), + UNIQUE KEY `term_id_taxonomy` (`term_id`,`taxonomy`), + KEY `taxonomy` (`taxonomy`) +) 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_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); +/*!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 = utf8 */; +CREATE TABLE `wp_termmeta` ( + `meta_id` bigint unsigned NOT NULL AUTO_INCREMENT, + `term_id` bigint unsigned NOT NULL DEFAULT '0', + `meta_key` varchar(255) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL, + `meta_value` longtext COLLATE utf8mb4_unicode_520_ci, + 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 = utf8 */; +CREATE TABLE `wp_terms` ( + `term_id` bigint unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(200) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', + `slug` varchar(200) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', + `term_group` bigint NOT NULL DEFAULT '0', + PRIMARY KEY (`term_id`), + KEY `slug` (`slug`(191)), + KEY `name` (`name`(191)) +) 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_terms` +-- + +LOCK TABLES `wp_terms` WRITE; +/*!40000 ALTER TABLE `wp_terms` DISABLE KEYS */; +INSERT INTO `wp_terms` VALUES (1,'Uncategorized','uncategorized',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 = utf8 */; +CREATE TABLE `wp_usermeta` ( + `umeta_id` bigint unsigned NOT NULL AUTO_INCREMENT, + `user_id` bigint unsigned NOT NULL DEFAULT '0', + `meta_key` varchar(255) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL, + `meta_value` longtext COLLATE utf8mb4_unicode_520_ci, + PRIMARY KEY (`umeta_id`), + KEY `user_id` (`user_id`), + KEY `meta_key` (`meta_key`(191)) +) ENGINE=InnoDB AUTO_INCREMENT=21 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'),(17,1,'wp_user-settings','libraryContent=browse'),(18,1,'wp_user-settings-time','1770037514'),(19,1,'wp_dashboard_quick_press_last_post_id','4'),(20,1,'community-events-location','a:1:{s:2:\"ip\";s:11:\"10.90.131.0\";}'); +/*!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 = utf8 */; +CREATE TABLE `wp_users` ( + `ID` bigint unsigned NOT NULL AUTO_INCREMENT, + `user_login` varchar(60) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', + `user_pass` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', + `user_nicename` varchar(50) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', + `user_email` varchar(100) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', + `user_url` varchar(100) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', + `user_registered` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `user_activation_key` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', + `user_status` int NOT NULL DEFAULT '0', + `display_name` varchar(250) COLLATE utf8mb4_unicode_520_ci 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$GYFxGJ4LGaOJBk3BIaaUJOlJB0CONSBbvj1MlZO46IdnEAGksQd4y','admin','gmo@geneve.ch','https://_FQDN_','2026-02-02 13:05:02','',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 */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2026-02-02 14:09:36 diff --git a/docker-compose.yaml b/docker-compose.yaml index 1822f0b..a55c410 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -3,9 +3,8 @@ services: wordpress: image: wordpress:latest extra_hosts: - #- "wp-dev.gmolab.net:172.31.10.15" - "${HOST_NAME}:${HOST_IP}" - container_name: wp-site + container_name: ${WP_SITE} volumes: - /home/docker/wp/wp-site:/var/www/html - ./config/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini @@ -17,38 +16,35 @@ services: WORDPRESS_TABLE_PREFIX: wp_ depends_on: - db -# - phpmyadmin + - phpmyadmin restart: always ports: - 8080:80 db: - image: mysql:8.0 - container_name: wp-db + image: mysql:8.4.8 + container_name: ${WP_DB} volumes: - /home/docker/wp/wp-db:/var/lib/mysql # This is optional!!! - - ./dump-db/${ENVIRONMENT}-db:/docker-entrypoint-initdb.d - # # # + - ./dump-db/:/docker-entrypoint-initdb.d environment: MYSQL_DATABASE: wordpress MYSQL_USER: wpuser MYSQL_PASSWORD: wppassword MYSQL_ROOT_PASSWORD: rootpassword - -# - MYSQL_ROOT_PASSWORD=pa55w0rd -# - MYSQL_USER=root -# - MYSQL_PASSWORD=pa55w0rd4wp -# - MYSQL_DATABASE=wordpress restart: always ports: - 3306:3306 + + healthcheck: + test: ["CMD", "mysqladmin", "ping", "-h", "localhost"] + timeout: 5s + retries: 10 phpmyadmin: depends_on: - db - #image: phpmyadmin/phpmyadmin:latest - #image: arm64v8/phpmyadmin:5.2.3 image: ${PHPADMIN_IMAGE} container_name: wp-phpmyadmin restart: always @@ -58,7 +54,7 @@ services: PMA_HOST: db PMA_USER: root PMA_PASSWORD: rootpassword - #MYSQL_ROOT_PASSWORD: pa55w0rd + #volumes: # db_data: \ No newline at end of file diff --git a/docker-compose.yaml.old1 b/docker-compose.yaml.old1 deleted file mode 100644 index 5306801..0000000 --- a/docker-compose.yaml.old1 +++ /dev/null @@ -1,46 +0,0 @@ -name: gmo -services: - wp-site: - image: wordpress:latest - extra_hosts: - - "wp.vdglab.net:10.10.8.104" - container_name: wp-site - volumes: - - /home/docker/wp/wp-site:/var/www/html - - ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini - # - ./wp-config.php:/var/www/html/wp-config.php - environment: - WORDPRESS_DB_HOST: wp-db - WORDPRESS_DB_NAME: wordpress - WORDPRESS_DB_USER: wpuser - WORDPRESS_DB_PASSWORD: wppassword - WORDPRESS_TABLE_PREFIX: wp_ - WORDPRESS_CONFIG_EXTRA: | - define('WP_HOME', 'https://wp.vdglab.net'); - define('WP_SITEURL', 'https://wp.vdglab.net'); - if (!empty($$_SERVER['HTTP_X_FORWARDED_PROTO']) && $$_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') { - $$_SERVER['HTTPS'] = 'on'; - } - depends_on: - - wp-db - restart: always - ports: - - 8008:80 - - wp-db: - image: mysql:8.0 - container_name: wp-db - volumes: - - /home/docker/wp/wp-db:/var/lib/mysql - # This is optional!!! - - ./dump-db/${ENVIRONMENT}-db:/docker-entrypoint-initdb.d - # # # - environment: - MYSQL_DATABASE: wordpress - MYSQL_USER: wpuser - MYSQL_PASSWORD: wppassword - MYSQL_ROOT_PASSWORD: rootpassword - restart: always - ports: - - 3306:3306 - diff --git a/dump-db/.gitkeep b/dump-db/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/dump-db/gmolab-db/wp-dev.sql b/dump-db/gmolab-db/wp-dev.sql deleted file mode 100644 index 8904fcc..0000000 --- a/dump-db/gmolab-db/wp-dev.sql +++ /dev/null @@ -1,444 +0,0 @@ --- -------------------------------------------------------- --- Hôte: wordpress.gmolab.net --- Version du serveur: 10.11.11-MariaDB-log - MariaDB Server --- SE du serveur: Linux --- HeidiSQL Version: 12.14.1.1 --- -------------------------------------------------------- - -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET NAMES utf8 */; -/*!50503 SET NAMES utf8mb4 */; -/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; -/*!40103 SET TIME_ZONE='+00:00' */; -/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; -/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; -/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; - - --- Listage de la structure de la base pour wordpress -DROP DATABASE IF EXISTS `wordpress`; -CREATE DATABASE IF NOT EXISTS `wordpress` /*!40100 DEFAULT CHARACTER SET utf8mb3 COLLATE utf8mb3_bin */; -USE `wordpress`; - --- Listage de la structure de table wordpress. wp_commentmeta -DROP TABLE IF EXISTS `wp_commentmeta`; -CREATE TABLE IF NOT EXISTS `wp_commentmeta` ( - `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, - `comment_id` bigint(20) unsigned NOT NULL DEFAULT 0, - `meta_key` varchar(255) DEFAULT NULL, - `meta_value` longtext DEFAULT NULL, - PRIMARY KEY (`meta_id`), - KEY `comment_id` (`comment_id`), - KEY `meta_key` (`meta_key`(191)) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; - --- Listage des données de la table wordpress.wp_commentmeta : ~0 rows (environ) - --- Listage de la structure de table wordpress. wp_comments -DROP TABLE IF EXISTS `wp_comments`; -CREATE TABLE IF NOT EXISTS `wp_comments` ( - `comment_ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, - `comment_post_ID` bigint(20) unsigned NOT NULL DEFAULT 0, - `comment_author` tinytext NOT NULL, - `comment_author_email` varchar(100) NOT NULL DEFAULT '', - `comment_author_url` varchar(200) NOT NULL DEFAULT '', - `comment_author_IP` varchar(100) NOT NULL DEFAULT '', - `comment_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `comment_date_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `comment_content` text NOT NULL, - `comment_karma` int(11) NOT NULL DEFAULT 0, - `comment_approved` varchar(20) NOT NULL DEFAULT '1', - `comment_agent` varchar(255) NOT NULL DEFAULT '', - `comment_type` varchar(20) NOT NULL DEFAULT 'comment', - `comment_parent` bigint(20) unsigned NOT NULL DEFAULT 0, - `user_id` bigint(20) unsigned NOT NULL DEFAULT 0, - PRIMARY KEY (`comment_ID`), - KEY `comment_post_ID` (`comment_post_ID`), - KEY `comment_approved_date_gmt` (`comment_approved`,`comment_date_gmt`), - KEY `comment_date_gmt` (`comment_date_gmt`), - KEY `comment_parent` (`comment_parent`), - KEY `comment_author_email` (`comment_author_email`(10)) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; - --- Listage des données de la table wordpress.wp_comments : ~1 rows (environ) -INSERT INTO `wp_comments` (`comment_ID`, `comment_post_ID`, `comment_author`, `comment_author_email`, `comment_author_url`, `comment_author_IP`, `comment_date`, `comment_date_gmt`, `comment_content`, `comment_karma`, `comment_approved`, `comment_agent`, `comment_type`, `comment_parent`, `user_id`) VALUES - (1, 1, 'A WordPress Commenter', 'wapuu@wordpress.example', 'https://wordpress.org/', '', '2026-01-10 06:24:23', '2026-01-10 06:24:23', 'Hi, this is a comment.\nTo get started with moderating, editing, and deleting comments, please visit the Comments screen in the dashboard.\nCommenter avatars come from Gravatar.', 0, '1', '', 'comment', 0, 0); - --- Listage de la structure de table wordpress. wp_links -DROP TABLE IF EXISTS `wp_links`; -CREATE TABLE IF NOT EXISTS `wp_links` ( - `link_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, - `link_url` varchar(255) NOT NULL DEFAULT '', - `link_name` varchar(255) NOT NULL DEFAULT '', - `link_image` varchar(255) NOT NULL DEFAULT '', - `link_target` varchar(25) NOT NULL DEFAULT '', - `link_description` varchar(255) NOT NULL DEFAULT '', - `link_visible` varchar(20) NOT NULL DEFAULT 'Y', - `link_owner` bigint(20) unsigned NOT NULL DEFAULT 1, - `link_rating` int(11) NOT NULL DEFAULT 0, - `link_updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `link_rel` varchar(255) NOT NULL DEFAULT '', - `link_notes` mediumtext NOT NULL, - `link_rss` varchar(255) NOT NULL DEFAULT '', - PRIMARY KEY (`link_id`), - KEY `link_visible` (`link_visible`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; - --- Listage des données de la table wordpress.wp_links : ~0 rows (environ) - --- Listage de la structure de table wordpress. wp_options -DROP TABLE IF EXISTS `wp_options`; -CREATE TABLE IF NOT EXISTS `wp_options` ( - `option_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, - `option_name` varchar(191) NOT NULL DEFAULT '', - `option_value` longtext NOT NULL, - `autoload` varchar(20) NOT NULL DEFAULT 'yes', - PRIMARY KEY (`option_id`), - UNIQUE KEY `option_name` (`option_name`), - KEY `autoload` (`autoload`) -) ENGINE=InnoDB AUTO_INCREMENT=183 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; - --- Listage des données de la table wordpress.wp_options : ~156 rows (environ) -INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload`) VALUES - (1, 'cron', 'a:10:{i:1768031663;a:1:{s:17:"wp_update_plugins";a:1:{s:32:"40cd750bba9870f18aada2478b24840a";a:3:{s:8:"schedule";s:10:"twicedaily";s:4:"args";a:0:{}s:8:"interval";i:43200;}}}i:1768033463;a:1:{s:16:"wp_update_themes";a:1:{s:32:"40cd750bba9870f18aada2478b24840a";a:3:{s:8:"schedule";s:10:"twicedaily";s:4:"args";a:0:{}s:8:"interval";i:43200;}}}i:1768033482;a:1:{s:34:"wp_privacy_delete_old_export_files";a:1:{s:32:"40cd750bba9870f18aada2478b24840a";a:3:{s:8:"schedule";s:6:"hourly";s:4:"args";a:0:{}s:8:"interval";i:3600;}}}i:1768069506;a:1:{s:21:"wp_update_user_counts";a:1:{s:32:"40cd750bba9870f18aada2478b24840a";a:3:{s:8:"schedule";s:10:"twicedaily";s:4:"args";a:0:{}s:8:"interval";i:43200;}}}i:1768073063;a:1:{s:16:"wp_version_check";a:1:{s:32:"40cd750bba9870f18aada2478b24840a";a:3:{s:8:"schedule";s:10:"twicedaily";s:4:"args";a:0:{}s:8:"interval";i:43200;}}}i:1768112682;a:2:{s:30:"wp_site_health_scheduled_check";a:1:{s:32:"40cd750bba9870f18aada2478b24840a";a:3:{s:8:"schedule";s:6:"weekly";s:4:"args";a:0:{}s:8:"interval";i:604800;}}s:32:"recovery_mode_clean_expired_keys";a:1:{s:32:"40cd750bba9870f18aada2478b24840a";a:3:{s:8:"schedule";s:5:"daily";s:4:"args";a:0:{}s:8:"interval";i:86400;}}}i:1768112717;a:2:{s:19:"wp_scheduled_delete";a:1:{s:32:"40cd750bba9870f18aada2478b24840a";a:3:{s:8:"schedule";s:5:"daily";s:4:"args";a:0:{}s:8:"interval";i:86400;}}s:25:"delete_expired_transients";a:1:{s:32:"40cd750bba9870f18aada2478b24840a";a:3:{s:8:"schedule";s:5:"daily";s:4:"args";a:0:{}s:8:"interval";i:86400;}}}i:1768112721;a:1:{s:30:"wp_scheduled_auto_draft_delete";a:1:{s:32:"40cd750bba9870f18aada2478b24840a";a:3:{s:8:"schedule";s:5:"daily";s:4:"args";a:0:{}s:8:"interval";i:86400;}}}i:1768631140;a:1:{s:30:"wp_delete_temp_updater_backups";a:1:{s:32:"40cd750bba9870f18aada2478b24840a";a:3:{s:8:"schedule";s:6:"weekly";s:4:"args";a:0:{}s:8:"interval";i:604800;}}}s:7:"version";i:2;}', 'on'), - (2, 'siteurl', 'https://wp-dev.gmolab.net', 'on'), - (3, 'home', 'https://wp-dev.gmolab.net', 'on'), - (4, 'blogname', 'Wordpress Dev', 'on'), - (5, 'blogdescription', '', 'on'), - (6, 'users_can_register', '0', 'on'), - (7, 'admin_email', 'gilles.mouchet@gmail.com', 'on'), - (8, 'start_of_week', '1', 'on'), - (9, 'use_balanceTags', '0', 'on'), - (10, 'use_smilies', '1', 'on'), - (11, 'require_name_email', '1', 'on'), - (12, 'comments_notify', '1', 'on'), - (13, 'posts_per_rss', '10', 'on'), - (14, 'rss_use_excerpt', '0', 'on'), - (15, 'mailserver_url', 'mail.example.com', 'on'), - (16, 'mailserver_login', 'login@example.com', 'on'), - (17, 'mailserver_pass', '', 'on'), - (18, 'mailserver_port', '110', 'on'), - (19, 'default_category', '1', 'on'), - (20, 'default_comment_status', 'open', 'on'), - (21, 'default_ping_status', 'open', 'on'), - (22, 'default_pingback_flag', '1', 'on'), - (23, 'posts_per_page', '10', 'on'), - (24, 'date_format', 'd.m.Y', 'on'), - (25, 'time_format', 'H:i', 'on'), - (26, 'links_updated_date_format', 'F j, Y g:i a', 'on'), - (27, 'comment_moderation', '0', 'on'), - (28, 'moderation_notify', '1', 'on'), - (29, 'permalink_structure', '', 'on'), - (30, 'rewrite_rules', '', 'on'), - (31, 'hack_file', '0', 'on'), - (32, 'blog_charset', 'UTF-8', 'on'), - (33, 'moderation_keys', '', 'off'), - (34, 'active_plugins', 'a:0:{}', 'on'), - (35, 'category_base', '', 'on'), - (36, 'ping_sites', 'https://rpc.pingomatic.com/', 'on'), - (37, 'comment_max_links', '2', 'on'), - (38, 'gmt_offset', '0', 'on'), - (39, 'default_email_category', '1', 'on'), - (40, 'recently_edited', '', 'off'), - (41, 'template', 'twentytwentyfive', 'on'), - (42, 'stylesheet', 'twentytwentyfive', 'on'), - (43, 'comment_registration', '0', 'on'), - (44, 'html_type', 'text/html', 'on'), - (45, 'use_trackback', '0', 'on'), - (46, 'default_role', 'subscriber', 'on'), - (47, 'db_version', '60717', 'on'), - (48, 'uploads_use_yearmonth_folders', '1', 'on'), - (49, 'upload_path', '', 'on'), - (50, 'blog_public', '1', 'on'), - (51, 'default_link_category', '2', 'on'), - (52, 'show_on_front', 'posts', 'on'), - (53, 'tag_base', '', 'on'), - (54, 'show_avatars', '1', 'on'), - (55, 'avatar_rating', 'G', 'on'), - (56, 'upload_url_path', '', 'on'), - (57, 'thumbnail_size_w', '150', 'on'), - (58, 'thumbnail_size_h', '150', 'on'), - (59, 'thumbnail_crop', '1', 'on'), - (60, 'medium_size_w', '300', 'on'), - (61, 'medium_size_h', '300', 'on'), - (62, 'avatar_default', 'mystery', 'on'), - (63, 'large_size_w', '1024', 'on'), - (64, 'large_size_h', '1024', 'on'), - (65, 'image_default_link_type', 'none', 'on'), - (66, 'image_default_size', '', 'on'), - (67, 'image_default_align', '', 'on'), - (68, 'close_comments_for_old_posts', '0', 'on'), - (69, 'close_comments_days_old', '14', 'on'), - (70, 'thread_comments', '1', 'on'), - (71, 'thread_comments_depth', '5', 'on'), - (72, 'page_comments', '0', 'on'), - (73, 'comments_per_page', '50', 'on'), - (74, 'default_comments_page', 'newest', 'on'), - (75, 'comment_order', 'asc', 'on'), - (76, 'sticky_posts', 'a:0:{}', 'on'), - (77, 'widget_categories', 'a:0:{}', 'on'), - (78, 'widget_text', 'a:0:{}', 'on'), - (79, 'widget_rss', 'a:0:{}', 'on'), - (80, 'uninstall_plugins', 'a:0:{}', 'off'), - (81, 'timezone_string', '', 'on'), - (82, 'page_for_posts', '0', 'on'), - (83, 'page_on_front', '0', 'on'), - (84, 'default_post_format', '0', 'on'), - (85, 'link_manager_enabled', '0', 'on'), - (86, 'finished_splitting_shared_terms', '1', 'on'), - (87, 'site_icon', '0', 'on'), - (88, 'medium_large_size_w', '768', 'on'), - (89, 'medium_large_size_h', '0', 'on'), - (90, 'wp_page_for_privacy_policy', '3', 'on'), - (91, 'show_comments_cookies_opt_in', '1', 'on'), - (92, 'admin_email_lifespan', '1783578263', 'on'), - (93, 'disallowed_keys', '', 'off'), - (94, 'comment_previously_approved', '1', 'on'), - (95, 'auto_plugin_theme_update_emails', 'a:0:{}', 'off'), - (96, 'auto_update_core_dev', 'enabled', 'on'), - (97, 'auto_update_core_minor', 'enabled', 'on'), - (98, 'auto_update_core_major', 'enabled', 'on'), - (99, 'wp_force_deactivated_plugins', 'a:0:{}', 'on'), - (100, 'wp_attachment_pages_enabled', '0', 'on'), - (101, 'wp_notes_notify', '1', 'on'), - (102, 'initial_db_version', '60717', 'on'), - (103, 'wp_user_roles', 'a:5:{s:13:"administrator";a:2:{s:4:"name";s:13:"Administrator";s:12:"capabilities";a:61:{s:13:"switch_themes";b:1;s:11:"edit_themes";b:1;s:16:"activate_plugins";b:1;s:12:"edit_plugins";b:1;s:10:"edit_users";b:1;s:10:"edit_files";b:1;s:14:"manage_options";b:1;s:17:"moderate_comments";b:1;s:17:"manage_categories";b:1;s:12:"manage_links";b:1;s:12:"upload_files";b:1;s:6:"import";b:1;s:15:"unfiltered_html";b:1;s:10:"edit_posts";b:1;s:17:"edit_others_posts";b:1;s:20:"edit_published_posts";b:1;s:13:"publish_posts";b:1;s:10:"edit_pages";b:1;s:4:"read";b:1;s:8:"level_10";b:1;s:7:"level_9";b:1;s:7:"level_8";b:1;s:7:"level_7";b:1;s:7:"level_6";b:1;s:7:"level_5";b:1;s:7:"level_4";b:1;s:7:"level_3";b:1;s:7:"level_2";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;s:17:"edit_others_pages";b:1;s:20:"edit_published_pages";b:1;s:13:"publish_pages";b:1;s:12:"delete_pages";b:1;s:19:"delete_others_pages";b:1;s:22:"delete_published_pages";b:1;s:12:"delete_posts";b:1;s:19:"delete_others_posts";b:1;s:22:"delete_published_posts";b:1;s:20:"delete_private_posts";b:1;s:18:"edit_private_posts";b:1;s:18:"read_private_posts";b:1;s:20:"delete_private_pages";b:1;s:18:"edit_private_pages";b:1;s:18:"read_private_pages";b:1;s:12:"delete_users";b:1;s:12:"create_users";b:1;s:17:"unfiltered_upload";b:1;s:14:"edit_dashboard";b:1;s:14:"update_plugins";b:1;s:14:"delete_plugins";b:1;s:15:"install_plugins";b:1;s:13:"update_themes";b:1;s:14:"install_themes";b:1;s:11:"update_core";b:1;s:10:"list_users";b:1;s:12:"remove_users";b:1;s:13:"promote_users";b:1;s:18:"edit_theme_options";b:1;s:13:"delete_themes";b:1;s:6:"export";b:1;}}s:6:"editor";a:2:{s:4:"name";s:6:"Editor";s:12:"capabilities";a:34:{s:17:"moderate_comments";b:1;s:17:"manage_categories";b:1;s:12:"manage_links";b:1;s:12:"upload_files";b:1;s:15:"unfiltered_html";b:1;s:10:"edit_posts";b:1;s:17:"edit_others_posts";b:1;s:20:"edit_published_posts";b:1;s:13:"publish_posts";b:1;s:10:"edit_pages";b:1;s:4:"read";b:1;s:7:"level_7";b:1;s:7:"level_6";b:1;s:7:"level_5";b:1;s:7:"level_4";b:1;s:7:"level_3";b:1;s:7:"level_2";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;s:17:"edit_others_pages";b:1;s:20:"edit_published_pages";b:1;s:13:"publish_pages";b:1;s:12:"delete_pages";b:1;s:19:"delete_others_pages";b:1;s:22:"delete_published_pages";b:1;s:12:"delete_posts";b:1;s:19:"delete_others_posts";b:1;s:22:"delete_published_posts";b:1;s:20:"delete_private_posts";b:1;s:18:"edit_private_posts";b:1;s:18:"read_private_posts";b:1;s:20:"delete_private_pages";b:1;s:18:"edit_private_pages";b:1;s:18:"read_private_pages";b:1;}}s:6:"author";a:2:{s:4:"name";s:6:"Author";s:12:"capabilities";a:10:{s:12:"upload_files";b:1;s:10:"edit_posts";b:1;s:20:"edit_published_posts";b:1;s:13:"publish_posts";b:1;s:4:"read";b:1;s:7:"level_2";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;s:12:"delete_posts";b:1;s:22:"delete_published_posts";b:1;}}s:11:"contributor";a:2:{s:4:"name";s:11:"Contributor";s:12:"capabilities";a:5:{s:10:"edit_posts";b:1;s:4:"read";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;s:12:"delete_posts";b:1;}}s:10:"subscriber";a:2:{s:4:"name";s:10:"Subscriber";s:12:"capabilities";a:2:{s:4:"read";b:1;s:7:"level_0";b:1;}}}', 'on'), - (104, 'fresh_site', '1', 'off'), - (105, 'user_count', '1', 'off'), - (106, 'widget_block', 'a:6:{i:2;a:1:{s:7:"content";s:19:"";}i:3;a:1:{s:7:"content";s:154:"

Recent Posts

";}i:4;a:1:{s:7:"content";s:227:"

Recent Comments

";}i:5;a:1:{s:7:"content";s:146:"

Archives

";}i:6;a:1:{s:7:"content";s:150:"

Categories

";}s:12:"_multiwidget";i:1;}', 'auto'), - (107, 'sidebars_widgets', 'a:4:{s:19:"wp_inactive_widgets";a:0:{}s:9:"sidebar-1";a:3:{i:0;s:7:"block-2";i:1;s:7:"block-3";i:2;s:7:"block-4";}s:9:"sidebar-2";a:2:{i:0;s:7:"block-5";i:1;s:7:"block-6";}s:13:"array_version";i:3;}', 'auto'), - (108, 'widget_pages', 'a:1:{s:12:"_multiwidget";i:1;}', 'auto'), - (109, 'widget_calendar', 'a:1:{s:12:"_multiwidget";i:1;}', 'auto'), - (110, 'widget_archives', 'a:1:{s:12:"_multiwidget";i:1;}', 'auto'), - (111, 'widget_media_audio', 'a:1:{s:12:"_multiwidget";i:1;}', 'auto'), - (112, 'widget_media_image', 'a:1:{s:12:"_multiwidget";i:1;}', 'auto'), - (113, 'widget_media_gallery', 'a:1:{s:12:"_multiwidget";i:1;}', 'auto'), - (114, 'widget_media_video', 'a:1:{s:12:"_multiwidget";i:1;}', 'auto'), - (115, 'widget_meta', 'a:1:{s:12:"_multiwidget";i:1;}', 'auto'), - (116, 'widget_search', 'a:1:{s:12:"_multiwidget";i:1;}', 'auto'), - (117, 'widget_recent-posts', 'a:1:{s:12:"_multiwidget";i:1;}', 'auto'), - (118, 'widget_recent-comments', 'a:1:{s:12:"_multiwidget";i:1;}', 'auto'), - (119, 'widget_tag_cloud', 'a:1:{s:12:"_multiwidget";i:1;}', 'auto'), - (120, 'widget_nav_menu', 'a:1:{s:12:"_multiwidget";i:1;}', 'auto'), - (121, 'widget_custom_html', 'a:1:{s:12:"_multiwidget";i:1;}', 'auto'), - (122, '_transient_wp_core_block_css_files', 'a:2:{s:7:"version";s:3:"6.9";s:5:"files";a:584:{i:0;s:31:"accordion-heading/style-rtl.css";i:1;s:35:"accordion-heading/style-rtl.min.css";i:2;s:27:"accordion-heading/style.css";i:3;s:31:"accordion-heading/style.min.css";i:4;s:28:"accordion-item/style-rtl.css";i:5;s:32:"accordion-item/style-rtl.min.css";i:6;s:24:"accordion-item/style.css";i:7;s:28:"accordion-item/style.min.css";i:8;s:29:"accordion-panel/style-rtl.css";i:9;s:33:"accordion-panel/style-rtl.min.css";i:10;s:25:"accordion-panel/style.css";i:11;s:29:"accordion-panel/style.min.css";i:12;s:23:"accordion/style-rtl.css";i:13;s:27:"accordion/style-rtl.min.css";i:14;s:19:"accordion/style.css";i:15;s:23:"accordion/style.min.css";i:16;s:23:"archives/editor-rtl.css";i:17;s:27:"archives/editor-rtl.min.css";i:18;s:19:"archives/editor.css";i:19;s:23:"archives/editor.min.css";i:20;s:22:"archives/style-rtl.css";i:21;s:26:"archives/style-rtl.min.css";i:22;s:18:"archives/style.css";i:23;s:22:"archives/style.min.css";i:24;s:20:"audio/editor-rtl.css";i:25;s:24:"audio/editor-rtl.min.css";i:26;s:16:"audio/editor.css";i:27;s:20:"audio/editor.min.css";i:28;s:19:"audio/style-rtl.css";i:29;s:23:"audio/style-rtl.min.css";i:30;s:15:"audio/style.css";i:31;s:19:"audio/style.min.css";i:32;s:19:"audio/theme-rtl.css";i:33;s:23:"audio/theme-rtl.min.css";i:34;s:15:"audio/theme.css";i:35;s:19:"audio/theme.min.css";i:36;s:21:"avatar/editor-rtl.css";i:37;s:25:"avatar/editor-rtl.min.css";i:38;s:17:"avatar/editor.css";i:39;s:21:"avatar/editor.min.css";i:40;s:20:"avatar/style-rtl.css";i:41;s:24:"avatar/style-rtl.min.css";i:42;s:16:"avatar/style.css";i:43;s:20:"avatar/style.min.css";i:44;s:21:"button/editor-rtl.css";i:45;s:25:"button/editor-rtl.min.css";i:46;s:17:"button/editor.css";i:47;s:21:"button/editor.min.css";i:48;s:20:"button/style-rtl.css";i:49;s:24:"button/style-rtl.min.css";i:50;s:16:"button/style.css";i:51;s:20:"button/style.min.css";i:52;s:22:"buttons/editor-rtl.css";i:53;s:26:"buttons/editor-rtl.min.css";i:54;s:18:"buttons/editor.css";i:55;s:22:"buttons/editor.min.css";i:56;s:21:"buttons/style-rtl.css";i:57;s:25:"buttons/style-rtl.min.css";i:58;s:17:"buttons/style.css";i:59;s:21:"buttons/style.min.css";i:60;s:22:"calendar/style-rtl.css";i:61;s:26:"calendar/style-rtl.min.css";i:62;s:18:"calendar/style.css";i:63;s:22:"calendar/style.min.css";i:64;s:25:"categories/editor-rtl.css";i:65;s:29:"categories/editor-rtl.min.css";i:66;s:21:"categories/editor.css";i:67;s:25:"categories/editor.min.css";i:68;s:24:"categories/style-rtl.css";i:69;s:28:"categories/style-rtl.min.css";i:70;s:20:"categories/style.css";i:71;s:24:"categories/style.min.css";i:72;s:19:"code/editor-rtl.css";i:73;s:23:"code/editor-rtl.min.css";i:74;s:15:"code/editor.css";i:75;s:19:"code/editor.min.css";i:76;s:18:"code/style-rtl.css";i:77;s:22:"code/style-rtl.min.css";i:78;s:14:"code/style.css";i:79;s:18:"code/style.min.css";i:80;s:18:"code/theme-rtl.css";i:81;s:22:"code/theme-rtl.min.css";i:82;s:14:"code/theme.css";i:83;s:18:"code/theme.min.css";i:84;s:22:"columns/editor-rtl.css";i:85;s:26:"columns/editor-rtl.min.css";i:86;s:18:"columns/editor.css";i:87;s:22:"columns/editor.min.css";i:88;s:21:"columns/style-rtl.css";i:89;s:25:"columns/style-rtl.min.css";i:90;s:17:"columns/style.css";i:91;s:21:"columns/style.min.css";i:92;s:33:"comment-author-name/style-rtl.css";i:93;s:37:"comment-author-name/style-rtl.min.css";i:94;s:29:"comment-author-name/style.css";i:95;s:33:"comment-author-name/style.min.css";i:96;s:29:"comment-content/style-rtl.css";i:97;s:33:"comment-content/style-rtl.min.css";i:98;s:25:"comment-content/style.css";i:99;s:29:"comment-content/style.min.css";i:100;s:26:"comment-date/style-rtl.css";i:101;s:30:"comment-date/style-rtl.min.css";i:102;s:22:"comment-date/style.css";i:103;s:26:"comment-date/style.min.css";i:104;s:31:"comment-edit-link/style-rtl.css";i:105;s:35:"comment-edit-link/style-rtl.min.css";i:106;s:27:"comment-edit-link/style.css";i:107;s:31:"comment-edit-link/style.min.css";i:108;s:32:"comment-reply-link/style-rtl.css";i:109;s:36:"comment-reply-link/style-rtl.min.css";i:110;s:28:"comment-reply-link/style.css";i:111;s:32:"comment-reply-link/style.min.css";i:112;s:30:"comment-template/style-rtl.css";i:113;s:34:"comment-template/style-rtl.min.css";i:114;s:26:"comment-template/style.css";i:115;s:30:"comment-template/style.min.css";i:116;s:42:"comments-pagination-numbers/editor-rtl.css";i:117;s:46:"comments-pagination-numbers/editor-rtl.min.css";i:118;s:38:"comments-pagination-numbers/editor.css";i:119;s:42:"comments-pagination-numbers/editor.min.css";i:120;s:34:"comments-pagination/editor-rtl.css";i:121;s:38:"comments-pagination/editor-rtl.min.css";i:122;s:30:"comments-pagination/editor.css";i:123;s:34:"comments-pagination/editor.min.css";i:124;s:33:"comments-pagination/style-rtl.css";i:125;s:37:"comments-pagination/style-rtl.min.css";i:126;s:29:"comments-pagination/style.css";i:127;s:33:"comments-pagination/style.min.css";i:128;s:29:"comments-title/editor-rtl.css";i:129;s:33:"comments-title/editor-rtl.min.css";i:130;s:25:"comments-title/editor.css";i:131;s:29:"comments-title/editor.min.css";i:132;s:23:"comments/editor-rtl.css";i:133;s:27:"comments/editor-rtl.min.css";i:134;s:19:"comments/editor.css";i:135;s:23:"comments/editor.min.css";i:136;s:22:"comments/style-rtl.css";i:137;s:26:"comments/style-rtl.min.css";i:138;s:18:"comments/style.css";i:139;s:22:"comments/style.min.css";i:140;s:20:"cover/editor-rtl.css";i:141;s:24:"cover/editor-rtl.min.css";i:142;s:16:"cover/editor.css";i:143;s:20:"cover/editor.min.css";i:144;s:19:"cover/style-rtl.css";i:145;s:23:"cover/style-rtl.min.css";i:146;s:15:"cover/style.css";i:147;s:19:"cover/style.min.css";i:148;s:22:"details/editor-rtl.css";i:149;s:26:"details/editor-rtl.min.css";i:150;s:18:"details/editor.css";i:151;s:22:"details/editor.min.css";i:152;s:21:"details/style-rtl.css";i:153;s:25:"details/style-rtl.min.css";i:154;s:17:"details/style.css";i:155;s:21:"details/style.min.css";i:156;s:20:"embed/editor-rtl.css";i:157;s:24:"embed/editor-rtl.min.css";i:158;s:16:"embed/editor.css";i:159;s:20:"embed/editor.min.css";i:160;s:19:"embed/style-rtl.css";i:161;s:23:"embed/style-rtl.min.css";i:162;s:15:"embed/style.css";i:163;s:19:"embed/style.min.css";i:164;s:19:"embed/theme-rtl.css";i:165;s:23:"embed/theme-rtl.min.css";i:166;s:15:"embed/theme.css";i:167;s:19:"embed/theme.min.css";i:168;s:19:"file/editor-rtl.css";i:169;s:23:"file/editor-rtl.min.css";i:170;s:15:"file/editor.css";i:171;s:19:"file/editor.min.css";i:172;s:18:"file/style-rtl.css";i:173;s:22:"file/style-rtl.min.css";i:174;s:14:"file/style.css";i:175;s:18:"file/style.min.css";i:176;s:23:"footnotes/style-rtl.css";i:177;s:27:"footnotes/style-rtl.min.css";i:178;s:19:"footnotes/style.css";i:179;s:23:"footnotes/style.min.css";i:180;s:23:"freeform/editor-rtl.css";i:181;s:27:"freeform/editor-rtl.min.css";i:182;s:19:"freeform/editor.css";i:183;s:23:"freeform/editor.min.css";i:184;s:22:"gallery/editor-rtl.css";i:185;s:26:"gallery/editor-rtl.min.css";i:186;s:18:"gallery/editor.css";i:187;s:22:"gallery/editor.min.css";i:188;s:21:"gallery/style-rtl.css";i:189;s:25:"gallery/style-rtl.min.css";i:190;s:17:"gallery/style.css";i:191;s:21:"gallery/style.min.css";i:192;s:21:"gallery/theme-rtl.css";i:193;s:25:"gallery/theme-rtl.min.css";i:194;s:17:"gallery/theme.css";i:195;s:21:"gallery/theme.min.css";i:196;s:20:"group/editor-rtl.css";i:197;s:24:"group/editor-rtl.min.css";i:198;s:16:"group/editor.css";i:199;s:20:"group/editor.min.css";i:200;s:19:"group/style-rtl.css";i:201;s:23:"group/style-rtl.min.css";i:202;s:15:"group/style.css";i:203;s:19:"group/style.min.css";i:204;s:19:"group/theme-rtl.css";i:205;s:23:"group/theme-rtl.min.css";i:206;s:15:"group/theme.css";i:207;s:19:"group/theme.min.css";i:208;s:21:"heading/style-rtl.css";i:209;s:25:"heading/style-rtl.min.css";i:210;s:17:"heading/style.css";i:211;s:21:"heading/style.min.css";i:212;s:19:"html/editor-rtl.css";i:213;s:23:"html/editor-rtl.min.css";i:214;s:15:"html/editor.css";i:215;s:19:"html/editor.min.css";i:216;s:20:"image/editor-rtl.css";i:217;s:24:"image/editor-rtl.min.css";i:218;s:16:"image/editor.css";i:219;s:20:"image/editor.min.css";i:220;s:19:"image/style-rtl.css";i:221;s:23:"image/style-rtl.min.css";i:222;s:15:"image/style.css";i:223;s:19:"image/style.min.css";i:224;s:19:"image/theme-rtl.css";i:225;s:23:"image/theme-rtl.min.css";i:226;s:15:"image/theme.css";i:227;s:19:"image/theme.min.css";i:228;s:29:"latest-comments/style-rtl.css";i:229;s:33:"latest-comments/style-rtl.min.css";i:230;s:25:"latest-comments/style.css";i:231;s:29:"latest-comments/style.min.css";i:232;s:27:"latest-posts/editor-rtl.css";i:233;s:31:"latest-posts/editor-rtl.min.css";i:234;s:23:"latest-posts/editor.css";i:235;s:27:"latest-posts/editor.min.css";i:236;s:26:"latest-posts/style-rtl.css";i:237;s:30:"latest-posts/style-rtl.min.css";i:238;s:22:"latest-posts/style.css";i:239;s:26:"latest-posts/style.min.css";i:240;s:18:"list/style-rtl.css";i:241;s:22:"list/style-rtl.min.css";i:242;s:14:"list/style.css";i:243;s:18:"list/style.min.css";i:244;s:22:"loginout/style-rtl.css";i:245;s:26:"loginout/style-rtl.min.css";i:246;s:18:"loginout/style.css";i:247;s:22:"loginout/style.min.css";i:248;s:19:"math/editor-rtl.css";i:249;s:23:"math/editor-rtl.min.css";i:250;s:15:"math/editor.css";i:251;s:19:"math/editor.min.css";i:252;s:18:"math/style-rtl.css";i:253;s:22:"math/style-rtl.min.css";i:254;s:14:"math/style.css";i:255;s:18:"math/style.min.css";i:256;s:25:"media-text/editor-rtl.css";i:257;s:29:"media-text/editor-rtl.min.css";i:258;s:21:"media-text/editor.css";i:259;s:25:"media-text/editor.min.css";i:260;s:24:"media-text/style-rtl.css";i:261;s:28:"media-text/style-rtl.min.css";i:262;s:20:"media-text/style.css";i:263;s:24:"media-text/style.min.css";i:264;s:19:"more/editor-rtl.css";i:265;s:23:"more/editor-rtl.min.css";i:266;s:15:"more/editor.css";i:267;s:19:"more/editor.min.css";i:268;s:30:"navigation-link/editor-rtl.css";i:269;s:34:"navigation-link/editor-rtl.min.css";i:270;s:26:"navigation-link/editor.css";i:271;s:30:"navigation-link/editor.min.css";i:272;s:29:"navigation-link/style-rtl.css";i:273;s:33:"navigation-link/style-rtl.min.css";i:274;s:25:"navigation-link/style.css";i:275;s:29:"navigation-link/style.min.css";i:276;s:33:"navigation-submenu/editor-rtl.css";i:277;s:37:"navigation-submenu/editor-rtl.min.css";i:278;s:29:"navigation-submenu/editor.css";i:279;s:33:"navigation-submenu/editor.min.css";i:280;s:25:"navigation/editor-rtl.css";i:281;s:29:"navigation/editor-rtl.min.css";i:282;s:21:"navigation/editor.css";i:283;s:25:"navigation/editor.min.css";i:284;s:24:"navigation/style-rtl.css";i:285;s:28:"navigation/style-rtl.min.css";i:286;s:20:"navigation/style.css";i:287;s:24:"navigation/style.min.css";i:288;s:23:"nextpage/editor-rtl.css";i:289;s:27:"nextpage/editor-rtl.min.css";i:290;s:19:"nextpage/editor.css";i:291;s:23:"nextpage/editor.min.css";i:292;s:24:"page-list/editor-rtl.css";i:293;s:28:"page-list/editor-rtl.min.css";i:294;s:20:"page-list/editor.css";i:295;s:24:"page-list/editor.min.css";i:296;s:23:"page-list/style-rtl.css";i:297;s:27:"page-list/style-rtl.min.css";i:298;s:19:"page-list/style.css";i:299;s:23:"page-list/style.min.css";i:300;s:24:"paragraph/editor-rtl.css";i:301;s:28:"paragraph/editor-rtl.min.css";i:302;s:20:"paragraph/editor.css";i:303;s:24:"paragraph/editor.min.css";i:304;s:23:"paragraph/style-rtl.css";i:305;s:27:"paragraph/style-rtl.min.css";i:306;s:19:"paragraph/style.css";i:307;s:23:"paragraph/style.min.css";i:308;s:35:"post-author-biography/style-rtl.css";i:309;s:39:"post-author-biography/style-rtl.min.css";i:310;s:31:"post-author-biography/style.css";i:311;s:35:"post-author-biography/style.min.css";i:312;s:30:"post-author-name/style-rtl.css";i:313;s:34:"post-author-name/style-rtl.min.css";i:314;s:26:"post-author-name/style.css";i:315;s:30:"post-author-name/style.min.css";i:316;s:25:"post-author/style-rtl.css";i:317;s:29:"post-author/style-rtl.min.css";i:318;s:21:"post-author/style.css";i:319;s:25:"post-author/style.min.css";i:320;s:33:"post-comments-count/style-rtl.css";i:321;s:37:"post-comments-count/style-rtl.min.css";i:322;s:29:"post-comments-count/style.css";i:323;s:33:"post-comments-count/style.min.css";i:324;s:33:"post-comments-form/editor-rtl.css";i:325;s:37:"post-comments-form/editor-rtl.min.css";i:326;s:29:"post-comments-form/editor.css";i:327;s:33:"post-comments-form/editor.min.css";i:328;s:32:"post-comments-form/style-rtl.css";i:329;s:36:"post-comments-form/style-rtl.min.css";i:330;s:28:"post-comments-form/style.css";i:331;s:32:"post-comments-form/style.min.css";i:332;s:32:"post-comments-link/style-rtl.css";i:333;s:36:"post-comments-link/style-rtl.min.css";i:334;s:28:"post-comments-link/style.css";i:335;s:32:"post-comments-link/style.min.css";i:336;s:26:"post-content/style-rtl.css";i:337;s:30:"post-content/style-rtl.min.css";i:338;s:22:"post-content/style.css";i:339;s:26:"post-content/style.min.css";i:340;s:23:"post-date/style-rtl.css";i:341;s:27:"post-date/style-rtl.min.css";i:342;s:19:"post-date/style.css";i:343;s:23:"post-date/style.min.css";i:344;s:27:"post-excerpt/editor-rtl.css";i:345;s:31:"post-excerpt/editor-rtl.min.css";i:346;s:23:"post-excerpt/editor.css";i:347;s:27:"post-excerpt/editor.min.css";i:348;s:26:"post-excerpt/style-rtl.css";i:349;s:30:"post-excerpt/style-rtl.min.css";i:350;s:22:"post-excerpt/style.css";i:351;s:26:"post-excerpt/style.min.css";i:352;s:34:"post-featured-image/editor-rtl.css";i:353;s:38:"post-featured-image/editor-rtl.min.css";i:354;s:30:"post-featured-image/editor.css";i:355;s:34:"post-featured-image/editor.min.css";i:356;s:33:"post-featured-image/style-rtl.css";i:357;s:37:"post-featured-image/style-rtl.min.css";i:358;s:29:"post-featured-image/style.css";i:359;s:33:"post-featured-image/style.min.css";i:360;s:34:"post-navigation-link/style-rtl.css";i:361;s:38:"post-navigation-link/style-rtl.min.css";i:362;s:30:"post-navigation-link/style.css";i:363;s:34:"post-navigation-link/style.min.css";i:364;s:27:"post-template/style-rtl.css";i:365;s:31:"post-template/style-rtl.min.css";i:366;s:23:"post-template/style.css";i:367;s:27:"post-template/style.min.css";i:368;s:24:"post-terms/style-rtl.css";i:369;s:28:"post-terms/style-rtl.min.css";i:370;s:20:"post-terms/style.css";i:371;s:24:"post-terms/style.min.css";i:372;s:31:"post-time-to-read/style-rtl.css";i:373;s:35:"post-time-to-read/style-rtl.min.css";i:374;s:27:"post-time-to-read/style.css";i:375;s:31:"post-time-to-read/style.min.css";i:376;s:24:"post-title/style-rtl.css";i:377;s:28:"post-title/style-rtl.min.css";i:378;s:20:"post-title/style.css";i:379;s:24:"post-title/style.min.css";i:380;s:26:"preformatted/style-rtl.css";i:381;s:30:"preformatted/style-rtl.min.css";i:382;s:22:"preformatted/style.css";i:383;s:26:"preformatted/style.min.css";i:384;s:24:"pullquote/editor-rtl.css";i:385;s:28:"pullquote/editor-rtl.min.css";i:386;s:20:"pullquote/editor.css";i:387;s:24:"pullquote/editor.min.css";i:388;s:23:"pullquote/style-rtl.css";i:389;s:27:"pullquote/style-rtl.min.css";i:390;s:19:"pullquote/style.css";i:391;s:23:"pullquote/style.min.css";i:392;s:23:"pullquote/theme-rtl.css";i:393;s:27:"pullquote/theme-rtl.min.css";i:394;s:19:"pullquote/theme.css";i:395;s:23:"pullquote/theme.min.css";i:396;s:39:"query-pagination-numbers/editor-rtl.css";i:397;s:43:"query-pagination-numbers/editor-rtl.min.css";i:398;s:35:"query-pagination-numbers/editor.css";i:399;s:39:"query-pagination-numbers/editor.min.css";i:400;s:31:"query-pagination/editor-rtl.css";i:401;s:35:"query-pagination/editor-rtl.min.css";i:402;s:27:"query-pagination/editor.css";i:403;s:31:"query-pagination/editor.min.css";i:404;s:30:"query-pagination/style-rtl.css";i:405;s:34:"query-pagination/style-rtl.min.css";i:406;s:26:"query-pagination/style.css";i:407;s:30:"query-pagination/style.min.css";i:408;s:25:"query-title/style-rtl.css";i:409;s:29:"query-title/style-rtl.min.css";i:410;s:21:"query-title/style.css";i:411;s:25:"query-title/style.min.css";i:412;s:25:"query-total/style-rtl.css";i:413;s:29:"query-total/style-rtl.min.css";i:414;s:21:"query-total/style.css";i:415;s:25:"query-total/style.min.css";i:416;s:20:"query/editor-rtl.css";i:417;s:24:"query/editor-rtl.min.css";i:418;s:16:"query/editor.css";i:419;s:20:"query/editor.min.css";i:420;s:19:"quote/style-rtl.css";i:421;s:23:"quote/style-rtl.min.css";i:422;s:15:"quote/style.css";i:423;s:19:"quote/style.min.css";i:424;s:19:"quote/theme-rtl.css";i:425;s:23:"quote/theme-rtl.min.css";i:426;s:15:"quote/theme.css";i:427;s:19:"quote/theme.min.css";i:428;s:23:"read-more/style-rtl.css";i:429;s:27:"read-more/style-rtl.min.css";i:430;s:19:"read-more/style.css";i:431;s:23:"read-more/style.min.css";i:432;s:18:"rss/editor-rtl.css";i:433;s:22:"rss/editor-rtl.min.css";i:434;s:14:"rss/editor.css";i:435;s:18:"rss/editor.min.css";i:436;s:17:"rss/style-rtl.css";i:437;s:21:"rss/style-rtl.min.css";i:438;s:13:"rss/style.css";i:439;s:17:"rss/style.min.css";i:440;s:21:"search/editor-rtl.css";i:441;s:25:"search/editor-rtl.min.css";i:442;s:17:"search/editor.css";i:443;s:21:"search/editor.min.css";i:444;s:20:"search/style-rtl.css";i:445;s:24:"search/style-rtl.min.css";i:446;s:16:"search/style.css";i:447;s:20:"search/style.min.css";i:448;s:20:"search/theme-rtl.css";i:449;s:24:"search/theme-rtl.min.css";i:450;s:16:"search/theme.css";i:451;s:20:"search/theme.min.css";i:452;s:24:"separator/editor-rtl.css";i:453;s:28:"separator/editor-rtl.min.css";i:454;s:20:"separator/editor.css";i:455;s:24:"separator/editor.min.css";i:456;s:23:"separator/style-rtl.css";i:457;s:27:"separator/style-rtl.min.css";i:458;s:19:"separator/style.css";i:459;s:23:"separator/style.min.css";i:460;s:23:"separator/theme-rtl.css";i:461;s:27:"separator/theme-rtl.min.css";i:462;s:19:"separator/theme.css";i:463;s:23:"separator/theme.min.css";i:464;s:24:"shortcode/editor-rtl.css";i:465;s:28:"shortcode/editor-rtl.min.css";i:466;s:20:"shortcode/editor.css";i:467;s:24:"shortcode/editor.min.css";i:468;s:24:"site-logo/editor-rtl.css";i:469;s:28:"site-logo/editor-rtl.min.css";i:470;s:20:"site-logo/editor.css";i:471;s:24:"site-logo/editor.min.css";i:472;s:23:"site-logo/style-rtl.css";i:473;s:27:"site-logo/style-rtl.min.css";i:474;s:19:"site-logo/style.css";i:475;s:23:"site-logo/style.min.css";i:476;s:27:"site-tagline/editor-rtl.css";i:477;s:31:"site-tagline/editor-rtl.min.css";i:478;s:23:"site-tagline/editor.css";i:479;s:27:"site-tagline/editor.min.css";i:480;s:26:"site-tagline/style-rtl.css";i:481;s:30:"site-tagline/style-rtl.min.css";i:482;s:22:"site-tagline/style.css";i:483;s:26:"site-tagline/style.min.css";i:484;s:25:"site-title/editor-rtl.css";i:485;s:29:"site-title/editor-rtl.min.css";i:486;s:21:"site-title/editor.css";i:487;s:25:"site-title/editor.min.css";i:488;s:24:"site-title/style-rtl.css";i:489;s:28:"site-title/style-rtl.min.css";i:490;s:20:"site-title/style.css";i:491;s:24:"site-title/style.min.css";i:492;s:26:"social-link/editor-rtl.css";i:493;s:30:"social-link/editor-rtl.min.css";i:494;s:22:"social-link/editor.css";i:495;s:26:"social-link/editor.min.css";i:496;s:27:"social-links/editor-rtl.css";i:497;s:31:"social-links/editor-rtl.min.css";i:498;s:23:"social-links/editor.css";i:499;s:27:"social-links/editor.min.css";i:500;s:26:"social-links/style-rtl.css";i:501;s:30:"social-links/style-rtl.min.css";i:502;s:22:"social-links/style.css";i:503;s:26:"social-links/style.min.css";i:504;s:21:"spacer/editor-rtl.css";i:505;s:25:"spacer/editor-rtl.min.css";i:506;s:17:"spacer/editor.css";i:507;s:21:"spacer/editor.min.css";i:508;s:20:"spacer/style-rtl.css";i:509;s:24:"spacer/style-rtl.min.css";i:510;s:16:"spacer/style.css";i:511;s:20:"spacer/style.min.css";i:512;s:20:"table/editor-rtl.css";i:513;s:24:"table/editor-rtl.min.css";i:514;s:16:"table/editor.css";i:515;s:20:"table/editor.min.css";i:516;s:19:"table/style-rtl.css";i:517;s:23:"table/style-rtl.min.css";i:518;s:15:"table/style.css";i:519;s:19:"table/style.min.css";i:520;s:19:"table/theme-rtl.css";i:521;s:23:"table/theme-rtl.min.css";i:522;s:15:"table/theme.css";i:523;s:19:"table/theme.min.css";i:524;s:24:"tag-cloud/editor-rtl.css";i:525;s:28:"tag-cloud/editor-rtl.min.css";i:526;s:20:"tag-cloud/editor.css";i:527;s:24:"tag-cloud/editor.min.css";i:528;s:23:"tag-cloud/style-rtl.css";i:529;s:27:"tag-cloud/style-rtl.min.css";i:530;s:19:"tag-cloud/style.css";i:531;s:23:"tag-cloud/style.min.css";i:532;s:28:"template-part/editor-rtl.css";i:533;s:32:"template-part/editor-rtl.min.css";i:534;s:24:"template-part/editor.css";i:535;s:28:"template-part/editor.min.css";i:536;s:27:"template-part/theme-rtl.css";i:537;s:31:"template-part/theme-rtl.min.css";i:538;s:23:"template-part/theme.css";i:539;s:27:"template-part/theme.min.css";i:540;s:24:"term-count/style-rtl.css";i:541;s:28:"term-count/style-rtl.min.css";i:542;s:20:"term-count/style.css";i:543;s:24:"term-count/style.min.css";i:544;s:30:"term-description/style-rtl.css";i:545;s:34:"term-description/style-rtl.min.css";i:546;s:26:"term-description/style.css";i:547;s:30:"term-description/style.min.css";i:548;s:23:"term-name/style-rtl.css";i:549;s:27:"term-name/style-rtl.min.css";i:550;s:19:"term-name/style.css";i:551;s:23:"term-name/style.min.css";i:552;s:28:"term-template/editor-rtl.css";i:553;s:32:"term-template/editor-rtl.min.css";i:554;s:24:"term-template/editor.css";i:555;s:28:"term-template/editor.min.css";i:556;s:27:"term-template/style-rtl.css";i:557;s:31:"term-template/style-rtl.min.css";i:558;s:23:"term-template/style.css";i:559;s:27:"term-template/style.min.css";i:560;s:27:"text-columns/editor-rtl.css";i:561;s:31:"text-columns/editor-rtl.min.css";i:562;s:23:"text-columns/editor.css";i:563;s:27:"text-columns/editor.min.css";i:564;s:26:"text-columns/style-rtl.css";i:565;s:30:"text-columns/style-rtl.min.css";i:566;s:22:"text-columns/style.css";i:567;s:26:"text-columns/style.min.css";i:568;s:19:"verse/style-rtl.css";i:569;s:23:"verse/style-rtl.min.css";i:570;s:15:"verse/style.css";i:571;s:19:"verse/style.min.css";i:572;s:20:"video/editor-rtl.css";i:573;s:24:"video/editor-rtl.min.css";i:574;s:16:"video/editor.css";i:575;s:20:"video/editor.min.css";i:576;s:19:"video/style-rtl.css";i:577;s:23:"video/style-rtl.min.css";i:578;s:15:"video/style.css";i:579;s:19:"video/style.min.css";i:580;s:19:"video/theme-rtl.css";i:581;s:23:"video/theme-rtl.min.css";i:582;s:15:"video/theme.css";i:583;s:19:"video/theme.min.css";}}', 'on'), - (125, 'theme_mods_twentytwentyfive', 'a:1:{s:18:"custom_css_post_id";i:-1;}', 'auto'), - (126, '_transient_wp_styles_for_blocks', 'a:2:{s:4:"hash";s:32:"7fd09879fbd531b73d40fe17062a7523";s:6:"blocks";a:53:{s:11:"core/button";s:0:"";s:14:"core/site-logo";s:0:"";s:18:"core/post-template";s:0:"";s:18:"core/term-template";s:0:"";s:12:"core/columns";s:769:":root :where(.wp-block-columns-is-layout-flow) > :first-child{margin-block-start: 0;}:root :where(.wp-block-columns-is-layout-flow) > :last-child{margin-block-end: 0;}:root :where(.wp-block-columns-is-layout-flow) > *{margin-block-start: var(--wp--preset--spacing--50);margin-block-end: 0;}:root :where(.wp-block-columns-is-layout-constrained) > :first-child{margin-block-start: 0;}:root :where(.wp-block-columns-is-layout-constrained) > :last-child{margin-block-end: 0;}:root :where(.wp-block-columns-is-layout-constrained) > *{margin-block-start: var(--wp--preset--spacing--50);margin-block-end: 0;}:root :where(.wp-block-columns-is-layout-flex){gap: var(--wp--preset--spacing--50);}:root :where(.wp-block-columns-is-layout-grid){gap: var(--wp--preset--spacing--50);}";s:14:"core/pullquote";s:306:":root :where(.wp-block-pullquote){font-size: var(--wp--preset--font-size--xx-large);font-weight: 300;line-height: 1.2;padding-top: var(--wp--preset--spacing--30);padding-bottom: var(--wp--preset--spacing--30);}:root :where(.wp-block-pullquote p:last-of-type){margin-bottom: var(--wp--preset--spacing--30);}";s:32:"c48738dcb285a3f6ab83acff204fc486";s:106:":root :where(.wp-block-pullquote cite){font-size: var(--wp--preset--font-size--small);font-style: normal;}";s:11:"core/avatar";s:57:":root :where(.wp-block-avatar img){border-radius: 100px;}";s:12:"core/buttons";s:665:":root :where(.wp-block-buttons-is-layout-flow) > :first-child{margin-block-start: 0;}:root :where(.wp-block-buttons-is-layout-flow) > :last-child{margin-block-end: 0;}:root :where(.wp-block-buttons-is-layout-flow) > *{margin-block-start: 16px;margin-block-end: 0;}:root :where(.wp-block-buttons-is-layout-constrained) > :first-child{margin-block-start: 0;}:root :where(.wp-block-buttons-is-layout-constrained) > :last-child{margin-block-end: 0;}:root :where(.wp-block-buttons-is-layout-constrained) > *{margin-block-start: 16px;margin-block-end: 0;}:root :where(.wp-block-buttons-is-layout-flex){gap: 16px;}:root :where(.wp-block-buttons-is-layout-grid){gap: 16px;}";s:9:"core/code";s:427:":root :where(.wp-block-code){background-color: var(--wp--preset--color--accent-5);color: var(--wp--preset--color--contrast);font-family: var(--wp--preset--font-family--fira-code);font-size: var(--wp--preset--font-size--medium);font-weight: 300;padding-top: var(--wp--preset--spacing--40);padding-right: var(--wp--preset--spacing--40);padding-bottom: var(--wp--preset--spacing--40);padding-left: var(--wp--preset--spacing--40);}";s:24:"core/comment-author-name";s:169:":root :where(.wp-block-comment-author-name){color: var(--wp--preset--color--accent-4);font-size: var(--wp--preset--font-size--small);margin-top: 5px;margin-bottom: 0px;}";s:32:"c0002c260f8238c4212f3e4c369fc4f7";s:143:":root :where(.wp-block-comment-author-name a:where(:not(.wp-element-button))){color: var(--wp--preset--color--accent-4);text-decoration: none;}";s:32:"1e7c38b45537b325dbbbaec17a301676";s:112:":root :where(.wp-block-comment-author-name a:where(:not(.wp-element-button)):hover){text-decoration: underline;}";s:20:"core/comment-content";s:178:":root :where(.wp-block-comment-content){font-size: var(--wp--preset--font-size--medium);margin-top: var(--wp--preset--spacing--30);margin-bottom: var(--wp--preset--spacing--30);}";s:17:"core/comment-date";s:127:":root :where(.wp-block-comment-date){color: var(--wp--preset--color--contrast);font-size: var(--wp--preset--font-size--small);}";s:32:"c83ca7b3e52884c70f7830c54f99b318";s:114:":root :where(.wp-block-comment-date a:where(:not(.wp-element-button))){color: var(--wp--preset--color--contrast);}";s:22:"core/comment-edit-link";s:90:":root :where(.wp-block-comment-edit-link){font-size: var(--wp--preset--font-size--small);}";s:32:"41d70710612536a90e368c12bcb0efea";s:119:":root :where(.wp-block-comment-edit-link a:where(:not(.wp-element-button))){color: var(--wp--preset--color--contrast);}";s:23:"core/comment-reply-link";s:91:":root :where(.wp-block-comment-reply-link){font-size: var(--wp--preset--font-size--small);}";s:32:"13c96340dbf37700add1f4c5cae19f3e";s:120:":root :where(.wp-block-comment-reply-link a:where(:not(.wp-element-button))){color: var(--wp--preset--color--contrast);}";s:23:"core/post-comments-form";s:565:":root :where(.wp-block-post-comments-form){font-size: var(--wp--preset--font-size--medium);padding-top: var(--wp--preset--spacing--40);padding-bottom: var(--wp--preset--spacing--40);}:root :where(.wp-block-post-comments-form textarea, .wp-block-post-comments-form input:not([type=submit])){border-radius:.25rem; border-color: var(--wp--preset--color--accent-6) !important;}:root :where(.wp-block-post-comments-form input[type=checkbox]){margin:0 .2rem 0 0 !important;}:root :where(.wp-block-post-comments-form label){font-size: var(--wp--preset--font-size--small);}";s:24:"core/comments-pagination";s:182:":root :where(.wp-block-comments-pagination){font-size: var(--wp--preset--font-size--medium);margin-top: var(--wp--preset--spacing--40);margin-bottom: var(--wp--preset--spacing--40);}";s:29:"core/comments-pagination-next";s:98:":root :where(.wp-block-comments-pagination-next){font-size: var(--wp--preset--font-size--medium);}";s:32:"core/comments-pagination-numbers";s:101:":root :where(.wp-block-comments-pagination-numbers){font-size: var(--wp--preset--font-size--medium);}";s:33:"core/comments-pagination-previous";s:102:":root :where(.wp-block-comments-pagination-previous){font-size: var(--wp--preset--font-size--medium);}";s:14:"core/post-date";s:124:":root :where(.wp-block-post-date){color: var(--wp--preset--color--accent-4);font-size: var(--wp--preset--font-size--small);}";s:32:"ac0d4e00f5ec22d14451759983e5bd43";s:133:":root :where(.wp-block-post-date a:where(:not(.wp-element-button))){color: var(--wp--preset--color--accent-4);text-decoration: none;}";s:32:"0ae6ffd1b886044c2da62d75d05ab13d";s:102:":root :where(.wp-block-post-date a:where(:not(.wp-element-button)):hover){text-decoration: underline;}";s:25:"core/post-navigation-link";s:94:":root :where(.wp-block-post-navigation-link){font-size: var(--wp--preset--font-size--medium);}";s:15:"core/post-terms";s:158:":root :where(.wp-block-post-terms){font-size: var(--wp--preset--font-size--small);font-weight: 600;}:root :where(.wp-block-post-terms a){white-space: nowrap;}";s:15:"core/post-title";s:0:"";s:32:"bb496d3fcd9be3502ce57ff8281e5687";s:92:":root :where(.wp-block-post-title a:where(:not(.wp-element-button))){text-decoration: none;}";s:32:"12380ab98fdc81351bb32a39bbfc9249";s:103:":root :where(.wp-block-post-title a:where(:not(.wp-element-button)):hover){text-decoration: underline;}";s:10:"core/quote";s:1315:":root :where(.wp-block-quote){border-color: currentColor;border-width: 0 0 0 2px;border-style: solid;font-size: var(--wp--preset--font-size--large);font-weight: 300;margin-right: 0;margin-left: 0;padding-top: var(--wp--preset--spacing--30);padding-right: var(--wp--preset--spacing--40);padding-bottom: var(--wp--preset--spacing--30);padding-left: var(--wp--preset--spacing--40);}:root :where(.wp-block-quote-is-layout-flow) > :first-child{margin-block-start: 0;}:root :where(.wp-block-quote-is-layout-flow) > :last-child{margin-block-end: 0;}:root :where(.wp-block-quote-is-layout-flow) > *{margin-block-start: var(--wp--preset--spacing--30);margin-block-end: 0;}:root :where(.wp-block-quote-is-layout-constrained) > :first-child{margin-block-start: 0;}:root :where(.wp-block-quote-is-layout-constrained) > :last-child{margin-block-end: 0;}:root :where(.wp-block-quote-is-layout-constrained) > *{margin-block-start: var(--wp--preset--spacing--30);margin-block-end: 0;}:root :where(.wp-block-quote-is-layout-flex){gap: var(--wp--preset--spacing--30);}:root :where(.wp-block-quote-is-layout-grid){gap: var(--wp--preset--spacing--30);}:root :where(.wp-block-quote.has-text-align-right ){border-width: 0 2px 0 0;}:root :where(.wp-block-quote.has-text-align-center ){border-width: 0;border-inline: 0; padding-inline: 0;}";s:32:"1de7a22e22013106efc5be82788cb6c0";s:176:":root :where(.wp-block-quote cite){font-size: var(--wp--preset--font-size--small);font-style: normal;font-weight: 300;}:root :where(.wp-block-quote cite sub){font-size: 0.65em}";s:21:"core/query-pagination";s:107:":root :where(.wp-block-query-pagination){font-size: var(--wp--preset--font-size--medium);font-weight: 500;}";s:11:"core/search";s:380:":root :where(.wp-block-search .wp-block-search__label, .wp-block-search .wp-block-search__input, .wp-block-search .wp-block-search__button){font-size: var(--wp--preset--font-size--medium);line-height: 1.6;}:root :where(.wp-block-search .wp-block-search__input){border-radius:3.125rem;padding-left:1.5625rem;padding-right:1.5625rem;border-color:var(--wp--preset--color--accent-6);}";s:32:"14fa6a3d0cfbde171cbc0fb04aa8a6cf";s:138:":root :where(.wp-block-search .wp-element-button,.wp-block-search .wp-block-button__link){border-radius: 3.125rem;margin-left: 1.125rem;}";s:32:"05993ee2f3de94b5d1350998a7e9b6b0";s:130:":root :where(.wp-block-search .wp-element-button:hover,.wp-block-search .wp-block-button__link:hover){border-color: transparent;}";s:14:"core/separator";s:148:":root :where(.wp-block-separator){border-color: currentColor;border-width: 0 0 1px 0;border-style: solid;color: var(--wp--preset--color--accent-6);}";s:17:"core/site-tagline";s:86:":root :where(.wp-block-site-tagline){font-size: var(--wp--preset--font-size--medium);}";s:15:"core/site-title";s:75:":root :where(.wp-block-site-title){font-weight: 700;letter-spacing: -.5px;}";s:32:"f513d889cf971b13995cc3fffed2f39b";s:92:":root :where(.wp-block-site-title a:where(:not(.wp-element-button))){text-decoration: none;}";s:32:"22c37a317cc0ebd50155b5ad78564f37";s:103:":root :where(.wp-block-site-title a:where(:not(.wp-element-button)):hover){text-decoration: underline;}";s:21:"core/term-description";s:90:":root :where(.wp-block-term-description){font-size: var(--wp--preset--font-size--medium);}";s:15:"core/navigation";s:84:":root :where(.wp-block-navigation){font-size: var(--wp--preset--font-size--medium);}";s:32:"25289a01850f5a0264ddb79a9a3baf3d";s:92:":root :where(.wp-block-navigation a:where(:not(.wp-element-button))){text-decoration: none;}";s:32:"026c04da08398d655a95047f1f235d97";s:103:":root :where(.wp-block-navigation a:where(:not(.wp-element-button)):hover){text-decoration: underline;}";s:9:"core/list";s:52:":root :where(.wp-block-list li){margin-top: 0.5rem;}";s:12:"core/heading";s:0:"";s:14:"core/paragraph";s:0:"";s:10:"core/group";s:0:"";s:11:"core/column";s:0:"";}}', 'on'), - (128, 'recovery_keys', 'a:0:{}', 'off'), - (129, '_site_transient_timeout_available_translations', '1768037106', 'off'), - (130, '_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.11";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.11/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.7";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.7/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.27";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.27/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:3:"6.9";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:59:"https://downloads.wordpress.org/translation/core/6.9/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.7";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.7/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.28";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.28/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:3:"6.9";s:7:"updated";s:19:"2025-12-01 10:38:20";s:12:"english_name";s:9:"Bulgarian";s:11:"native_name";s:18:"Български";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9/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:3:"6.9";s:7:"updated";s:19:"2026-01-02 14:58:47";s:12:"english_name";s:20:"Bengali (Bangladesh)";s:11:"native_name";s:15:"বাংলা";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9/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.8";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.8/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:3:"6.9";s:7:"updated";s:19:"2026-01-07 17:22:08";s:12:"english_name";s:7:"Catalan";s:11:"native_name";s:7:"Català";s:7:"package";s:59:"https://downloads.wordpress.org/translation/core/6.9/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:3:"6.9";s:7:"updated";s:19:"2025-12-11 21:36:34";s:12:"english_name";s:5:"Czech";s:11:"native_name";s:9:"Čeština";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9/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:3:"6.9";s:7:"updated";s:19:"2026-01-06 10:29:49";s:12:"english_name";s:5:"Welsh";s:11:"native_name";s:7:"Cymraeg";s:7:"package";s:59:"https://downloads.wordpress.org/translation/core/6.9/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:3:"6.9";s:7:"updated";s:19:"2025-11-18 15:47:02";s:12:"english_name";s:6:"Danish";s:11:"native_name";s:5:"Dansk";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9/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:3:"6.9";s:7:"updated";s:19:"2025-10-23 12:01:47";s:12:"english_name";s:16:"German (Austria)";s:11:"native_name";s:21:"Deutsch (Österreich)";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9/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_DE";a:8:{s:8:"language";s:5:"de_DE";s:7:"version";s:3:"6.9";s:7:"updated";s:19:"2026-01-03 05:13:15";s:12:"english_name";s:6:"German";s:11:"native_name";s:7:"Deutsch";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9/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:3:"6.9";s:7:"updated";s:19:"2026-01-03 05:12:05";s:12:"english_name";s:15:"German (Formal)";s:11:"native_name";s:13:"Deutsch (Sie)";s:7:"package";s:69:"https://downloads.wordpress.org/translation/core/6.9/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:5:"de_CH";a:8:{s:8:"language";s:5:"de_CH";s:7:"version";s:3:"6.9";s:7:"updated";s:19:"2025-11-28 08:11:27";s:12:"english_name";s:20:"German (Switzerland)";s:11:"native_name";s:17:"Deutsch (Schweiz)";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9/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:3:"6.9";s:7:"updated";s:19:"2025-11-28 08:08:17";s:12:"english_name";s:30:"German (Switzerland, Informal)";s:11:"native_name";s:21:"Deutsch (Schweiz, Du)";s:7:"package";s:71:"https://downloads.wordpress.org/translation/core/6.9/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:3:"dsb";a:8:{s:8:"language";s:3:"dsb";s:7:"version";s:5:"6.2.8";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.8/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:3:"6.9";s:7:"updated";s:19:"2025-12-18 14:30:43";s:12:"english_name";s:5:"Greek";s:11:"native_name";s:16:"Ελληνικά";s:7:"package";s:59:"https://downloads.wordpress.org/translation/core/6.9/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_CA";a:8:{s:8:"language";s:5:"en_CA";s:7:"version";s:3:"6.9";s:7:"updated";s:19:"2025-11-25 13:30:15";s:12:"english_name";s:16:"English (Canada)";s:11:"native_name";s:16:"English (Canada)";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9/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_ZA";a:8:{s:8:"language";s:5:"en_ZA";s:7:"version";s:3:"6.9";s:7:"updated";s:19:"2025-12-13 06:27:29";s:12:"english_name";s:22:"English (South Africa)";s:11:"native_name";s:22:"English (South Africa)";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9/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_AU";a:8:{s:8:"language";s:5:"en_AU";s:7:"version";s:3:"6.9";s:7:"updated";s:19:"2025-12-23 16:40:44";s:12:"english_name";s:19:"English (Australia)";s:11:"native_name";s:19:"English (Australia)";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9/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_NZ";a:8:{s:8:"language";s:5:"en_NZ";s:7:"version";s:3:"6.9";s:7:"updated";s:19:"2025-12-24 12:51:19";s:12:"english_name";s:21:"English (New Zealand)";s:11:"native_name";s:21:"English (New Zealand)";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9/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:5:"en_GB";a:8:{s:8:"language";s:5:"en_GB";s:7:"version";s:3:"6.9";s:7:"updated";s:19:"2025-12-30 11:47:57";s:12:"english_name";s:12:"English (UK)";s:11:"native_name";s:12:"English (UK)";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9/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:2:"eo";a:8:{s:8:"language";s:2:"eo";s:7:"version";s:3:"6.9";s:7:"updated";s:19:"2026-01-05 12:15:44";s:12:"english_name";s:9:"Esperanto";s:11:"native_name";s:9:"Esperanto";s:7:"package";s:59:"https://downloads.wordpress.org/translation/core/6.9/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_CL";a:8:{s:8:"language";s:5:"es_CL";s:7:"version";s:3:"6.9";s:7:"updated";s:19:"2025-12-12 22:21:48";s:12:"english_name";s:15:"Spanish (Chile)";s:11:"native_name";s:17:"Español de Chile";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9/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_CR";a:8:{s:8:"language";s:5:"es_CR";s:7:"version";s:3:"6.9";s:7:"updated";s:19:"2025-10-01 22:54:47";s:12:"english_name";s:20:"Spanish (Costa Rica)";s:11:"native_name";s:22:"Español de Costa Rica";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9/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_MX";a:8:{s:8:"language";s:5:"es_MX";s:7:"version";s:3:"6.9";s:7:"updated";s:19:"2026-01-05 13:30:31";s:12:"english_name";s:16:"Spanish (Mexico)";s:11:"native_name";s:19:"Español de México";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9/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_AR";a:8:{s:8:"language";s:5:"es_AR";s:7:"version";s:3:"6.9";s:7:"updated";s:19:"2026-01-07 17:17:39";s:12:"english_name";s:19:"Spanish (Argentina)";s:11:"native_name";s:21:"Español de Argentina";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9/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_ES";a:8:{s:8:"language";s:5:"es_ES";s:7:"version";s:3:"6.9";s:7:"updated";s:19:"2026-01-07 19:47:18";s:12:"english_name";s:15:"Spanish (Spain)";s:11:"native_name";s:8:"Español";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9/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:5:"es_PE";a:8:{s:8:"language";s:5:"es_PE";s:7:"version";s:6:"6.9-RC";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:65:"https://downloads.wordpress.org/translation/core/6.9-RC/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_VE";a:8:{s:8:"language";s:5:"es_VE";s:7:"version";s:5:"6.4.7";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.7/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.8";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.8/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.12";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.12/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.18";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.18/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.23";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.23/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_CO";a:8:{s:8:"language";s:5:"es_CO";s:7:"version";s:3:"6.9";s:7:"updated";s:19:"2025-12-13 04:21:30";s:12:"english_name";s:18:"Spanish (Colombia)";s:11:"native_name";s:20:"Español de Colombia";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9/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:2:"et";a:8:{s:8:"language";s:2:"et";s:7:"version";s:5:"6.5.7";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.7/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:6:"6.9-RC";s:7:"updated";s:19:"2025-11-05 21:53:17";s:12:"english_name";s:6:"Basque";s:11:"native_name";s:7:"Euskara";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9-RC/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_IR";a:8:{s:8:"language";s:5:"fa_IR";s:7:"version";s:3:"6.9";s:7:"updated";s:19:"2025-12-25 18:17:43";s:12:"english_name";s:7:"Persian";s:11:"native_name";s:10:"فارسی";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9/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:5:"fa_AF";a:8:{s:8:"language";s:5:"fa_AF";s:7:"version";s:6:"6.9-RC";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:65:"https://downloads.wordpress.org/translation/core/6.9-RC/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:2:"fi";a:8:{s:8:"language";s:2:"fi";s:7:"version";s:3:"6.9";s:7:"updated";s:19:"2025-11-29 11:04:04";s:12:"english_name";s:7:"Finnish";s:11:"native_name";s:5:"Suomi";s:7:"package";s:59:"https://downloads.wordpress.org/translation/core/6.9/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:3:"6.9";s:7:"updated";s:19:"2025-10-03 04:54:28";s:12:"english_name";s:15:"French (Canada)";s:11:"native_name";s:19:"Français du Canada";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9/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.7";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.7/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:3:"6.9";s:7:"updated";s:19:"2025-12-10 11:15:06";s:12:"english_name";s:15:"French (France)";s:11:"native_name";s:9:"Français";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9/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.27";s:7:"updated";s:19:"2025-12-20 19:08:53";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.27/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.8";s:7:"updated";s:19:"2025-10-21 16:35:04";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.8/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:3:"6.9";s:7:"updated";s:19:"2025-11-18 15:51:09";s:12:"english_name";s:8:"Galician";s:11:"native_name";s:6:"Galego";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9/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:3:"6.9";s:7:"updated";s:19:"2025-12-09 11:14:55";s:12:"english_name";s:8:"Gujarati";s:11:"native_name";s:21:"ગુજરાતી";s:7:"package";s:59:"https://downloads.wordpress.org/translation/core/6.9/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.8";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.8/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.7";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.7/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:3:"6.9";s:7:"updated";s:19:"2026-01-06 08:46:03";s:12:"english_name";s:8:"Croatian";s:11:"native_name";s:8:"Hrvatski";s:7:"package";s:59:"https://downloads.wordpress.org/translation/core/6.9/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.8";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.8/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:3:"6.9";s:7:"updated";s:19:"2026-01-07 20:36:41";s:12:"english_name";s:9:"Hungarian";s:11:"native_name";s:6:"Magyar";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9/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:3:"6.9";s:7:"updated";s:19:"2025-12-16 09:07:30";s:12:"english_name";s:10:"Indonesian";s:11:"native_name";s:16:"Bahasa Indonesia";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9/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.28";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.28/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:3:"6.9";s:7:"updated";s:19:"2025-12-01 17:48:46";s:12:"english_name";s:7:"Italian";s:11:"native_name";s:8:"Italiano";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9/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:3:"6.9";s:7:"updated";s:19:"2026-01-08 15:07:02";s:12:"english_name";s:8:"Japanese";s:11:"native_name";s:9:"日本語";s:7:"package";s:59:"https://downloads.wordpress.org/translation/core/6.9/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.28";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.28/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:3:"6.9";s:7:"updated";s:19:"2025-11-25 08:25:07";s:12:"english_name";s:8:"Georgian";s:11:"native_name";s:21:"ქართული";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9/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.8";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.8/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:6:"6.9-RC";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:62:"https://downloads.wordpress.org/translation/core/6.9-RC/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.23";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.23/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:3:"6.9";s:7:"updated";s:19:"2025-12-31 11:41:21";s:12:"english_name";s:7:"Kannada";s:11:"native_name";s:15:"ಕನ್ನಡ";s:7:"package";s:59:"https://downloads.wordpress.org/translation/core/6.9/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:3:"6.9";s:7:"updated";s:19:"2025-12-16 00:49:25";s:12:"english_name";s:6:"Korean";s:11:"native_name";s:9:"한국어";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9/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:3:"6.9";s:7:"updated";s:19:"2025-12-08 08:55:07";s:12:"english_name";s:16:"Kurdish (Sorani)";s:11:"native_name";s:13:"كوردی‎";s:7:"package";s:60:"https://downloads.wordpress.org/translation/core/6.9/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:3:"6.9";s:7:"updated";s:19:"2026-01-01 21:45:29";s:12:"english_name";s:6:"Kyrgyz";s:11:"native_name";s:16:"Кыргызча";s:7:"package";s:60:"https://downloads.wordpress.org/translation/core/6.9/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:6:"6.9-RC";s:7:"updated";s:19:"2025-09-27 20:51:17";s:12:"english_name";s:10:"Lithuanian";s:11:"native_name";s:15:"Lietuvių kalba";s:7:"package";s:65:"https://downloads.wordpress.org/translation/core/6.9-RC/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:3:"6.9";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:59:"https://downloads.wordpress.org/translation/core/6.9/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.11";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.11/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:3:"6.9";s:7:"updated";s:19:"2026-01-08 17:14:11";s:12:"english_name";s:9:"Malayalam";s:11:"native_name";s:18:"മലയാളം";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9/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.7";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.7/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:3:"6.9";s:7:"updated";s:19:"2026-01-07 14:17:20";s:12:"english_name";s:7:"Marathi";s:11:"native_name";s:15:"मराठी";s:7:"package";s:59:"https://downloads.wordpress.org/translation/core/6.9/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.17";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.17/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:3:"6.9";s:7:"updated";s:19:"2026-01-09 10:58:47";s:12:"english_name";s:19:"Norwegian (Bokmål)";s:11:"native_name";s:13:"Norsk bokmål";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9/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:6:"6.9-RC";s:7:"updated";s:19:"2025-11-07 08:26:32";s:12:"english_name";s:6:"Nepali";s:11:"native_name";s:18:"नेपाली";s:7:"package";s:65:"https://downloads.wordpress.org/translation/core/6.9-RC/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:5:"nl_BE";a:8:{s:8:"language";s:5:"nl_BE";s:7:"version";s:3:"6.9";s:7:"updated";s:19:"2025-11-28 09:40:20";s:12:"english_name";s:15:"Dutch (Belgium)";s:11:"native_name";s:20:"Nederlands (België)";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9/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:12:"nl_NL_formal";a:8:{s:8:"language";s:12:"nl_NL_formal";s:7:"version";s:3:"6.9";s:7:"updated";s:19:"2025-11-18 15:26:13";s:12:"english_name";s:14:"Dutch (Formal)";s:11:"native_name";s:20:"Nederlands (Formeel)";s:7:"package";s:69:"https://downloads.wordpress.org/translation/core/6.9/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_NL";a:8:{s:8:"language";s:5:"nl_NL";s:7:"version";s:3:"6.9";s:7:"updated";s:19:"2025-12-16 18:13:25";s:12:"english_name";s:5:"Dutch";s:11:"native_name";s:10:"Nederlands";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9/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.27";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.27/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:3:"6.9";s:7:"updated";s:19:"2025-12-01 09:45:52";s:12:"english_name";s:6:"Polish";s:11:"native_name";s:6:"Polski";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9/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:3:"6.9";s:7:"updated";s:19:"2025-12-02 18:21:27";s:12:"english_name";s:19:"Portuguese (Brazil)";s:11:"native_name";s:20:"Português do Brasil";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9/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_AO";a:8:{s:8:"language";s:5:"pt_AO";s:7:"version";s:5:"6.4.7";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.7/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:5:"pt_PT";a:8:{s:8:"language";s:5:"pt_PT";s:7:"version";s:3:"6.9";s:7:"updated";s:19:"2025-12-02 10:17:43";s:12:"english_name";s:21:"Portuguese (Portugal)";s:11:"native_name";s:10:"Português";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9/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:3:"6.9";s:7:"updated";s:19:"2025-12-02 00:03:57";s:12:"english_name";s:27:"Portuguese (Portugal, AO90)";s:11:"native_name";s:17:"Português (AO90)";s:7:"package";s:67:"https://downloads.wordpress.org/translation/core/6.9/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: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:3:"6.9";s:7:"updated";s:19:"2025-12-09 09:48:35";s:12:"english_name";s:8:"Romanian";s:11:"native_name";s:8:"Română";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9/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:3:"6.9";s:7:"updated";s:19:"2026-01-02 08:03:19";s:12:"english_name";s:7:"Russian";s:11:"native_name";s:14:"Русский";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9/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.18";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.18/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:3:"6.9";s:7:"updated";s:19:"2025-12-01 04:57:17";s:12:"english_name";s:6:"Slovak";s:11:"native_name";s:11:"Slovenčina";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9/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:6:"6.9-RC";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:63:"https://downloads.wordpress.org/translation/core/6.9-RC/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:3:"6.9";s:7:"updated";s:19:"2025-10-29 11:19:02";s:12:"english_name";s:9:"Slovenian";s:11:"native_name";s:13:"Slovenščina";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9/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:3:"6.9";s:7:"updated";s:19:"2025-12-24 16:29:39";s:12:"english_name";s:8:"Albanian";s:11:"native_name";s:5:"Shqip";s:7:"package";s:59:"https://downloads.wordpress.org/translation/core/6.9/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:3:"6.9";s:7:"updated";s:19:"2025-12-03 15:37:44";s:12:"english_name";s:7:"Serbian";s:11:"native_name";s:23:"Српски језик";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9/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:3:"6.9";s:7:"updated";s:19:"2025-11-27 15:18:03";s:12:"english_name";s:7:"Swedish";s:11:"native_name";s:7:"Svenska";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9/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:3:"6.9";s:7:"updated";s:19:"2025-11-16 17:19:56";s:12:"english_name";s:7:"Swahili";s:11:"native_name";s:9:"Kiswahili";s:7:"package";s:59:"https://downloads.wordpress.org/translation/core/6.9/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.12";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.12/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:3:"6.9";s:7:"updated";s:19:"2025-12-13 08:39:22";s:12:"english_name";s:7:"Tagalog";s:11:"native_name";s:7:"Tagalog";s:7:"package";s:59:"https://downloads.wordpress.org/translation/core/6.9/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:3:"6.9";s:7:"updated";s:19:"2025-11-26 15:28:41";s:12:"english_name";s:7:"Turkish";s:11:"native_name";s:8:"Türkçe";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9/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:3:"6.9";s:7:"updated";s:19:"2025-12-24 03:42:11";s:12:"english_name";s:6:"Uighur";s:11:"native_name";s:16:"ئۇيغۇرچە";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9/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.18";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.18/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:3:"6.9";s:7:"updated";s:19:"2025-09-01 09:12:13";s:12:"english_name";s:10:"Vietnamese";s:11:"native_name";s:14:"Tiếng Việt";s:7:"package";s:59:"https://downloads.wordpress.org/translation/core/6.9/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:3:"6.9";s:7:"updated";s:19:"2025-12-02 00:32:44";s:12:"english_name";s:16:"Chinese (Taiwan)";s:11:"native_name";s:12:"繁體中文";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9/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:3:"6.9";s:7:"updated";s:19:"2026-01-06 20:16:48";s:12:"english_name";s:15:"Chinese (China)";s:11:"native_name";s:12:"简体中文";s:7:"package";s:62:"https://downloads.wordpress.org/translation/core/6.9/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.8";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.8/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'), - (137, '_site_transient_timeout_browser_02fda1affcd5709310468f0c807cbf58', '1768631120', 'off'), - (138, '_site_transient_browser_02fda1affcd5709310468f0c807cbf58', 'a:10:{s:4:"name";s:6:"Safari";s:7:"version";s:4:"26.2";s:8:"platform";s:9:"Macintosh";s:10:"update_url";s:29:"https://www.apple.com/safari/";s:7:"img_src";s:43:"http://s.w.org/images/browsers/safari.png?1";s:11:"img_src_ssl";s:44:"https://s.w.org/images/browsers/safari.png?1";s:15:"current_version";s:2:"11";s:7:"upgrade";b:0;s:8:"insecure";b:0;s:6:"mobile";b:0;}', 'off'), - (140, '_site_transient_timeout_php_check_1acb597dbed5836aa1afac035245ce8b', '1768631121', 'off'), - (141, '_site_transient_php_check_1acb597dbed5836aa1afac035245ce8b', 'a:5:{s:19:"recommended_version";s:3:"8.3";s:15:"minimum_version";s:6:"7.2.24";s:12:"is_supported";b:1;s:9:"is_secure";b:1;s:13:"is_acceptable";b:1;}', 'off'), - (145, 'can_compress_scripts', '1', 'on'), - (146, '_site_transient_timeout_community-events-70078f230d7ed91f16b98bc2a607aad7', '1768069522', 'off'), - (147, '_site_transient_community-events-70078f230d7ed91f16b98bc2a607aad7', 'a:4:{s:9:"sandboxed";b:0;s:5:"error";N;s:8:"location";a:1:{s:2:"ip";s:11:"172.31.10.0";}s:6:"events";a:5:{i:0;a:10:{s:4:"type";s:6:"meetup";s:5:"title";s:72:"WPMI Gennaio | Il mondo dei gestionali con WordPress fra sogni e realtà";s:3:"url";s:64:"https://www.meetup.com/wordpress-meetup-milano/events/312164902/";s:6:"meetup";s:23:"WordPress Meetup Milano";s:10:"meetup_url";s:47:"https://www.meetup.com/wordpress-meetup-milano/";s:4:"date";s:19:"2026-01-15 19:00:00";s:8:"end_date";s:19:"2026-01-15 20:30:00";s:20:"start_unix_timestamp";i:1768500000;s:18:"end_unix_timestamp";i:1768505400;s:8:"location";a:4:{s:8:"location";s:13:"Milano, Italy";s:7:"country";s:2:"it";s:8:"latitude";d:45.478127000000001;s:9:"longitude";d:9.2287630000000007;}}i:1;a:10:{s:4:"type";s:6:"meetup";s:5:"title";s:34:"#9 Thema wird noch bekannt gegeben";s:3:"url";s:57:"https://www.meetup.com/luzern-wordpress/events/310923965/";s:6:"meetup";s:33:"WordPress Meetup Luzern (Lucerne)";s:10:"meetup_url";s:40:"https://www.meetup.com/luzern-wordpress/";s:4:"date";s:19:"2026-02-02 19:15:00";s:8:"end_date";s:19:"2026-02-02 21:15:00";s:20:"start_unix_timestamp";i:1770056100;s:18:"end_unix_timestamp";i:1770063300;s:8:"location";a:4:{s:8:"location";s:19:"Luzern, Switzerland";s:7:"country";s:2:"ch";s:8:"latitude";d:47.043982999999997;s:9:"longitude";d:8.3051119999999994;}}i:2;a:10:{s:4:"type";s:8:"wordcamp";s:5:"title";s:18:"WordCamp Nice 2026";s:3:"url";s:31:"https://nice.wordcamp.org/2026/";s:6:"meetup";N;s:10:"meetup_url";N;s:4:"date";s:19:"2026-03-06 00:00:00";s:8:"end_date";s:19:"2026-03-06 00:00:00";s:20:"start_unix_timestamp";i:1772751600;s:18:"end_unix_timestamp";i:1772751600;s:8:"location";a:4:{s:8:"location";s:12:"Nice, France";s:7:"country";s:2:"FR";s:8:"latitude";d:43.694567900000003;s:9:"longitude";d:7.2831986999999998;}}i:3;a:10:{s:4:"type";s:8:"wordcamp";s:5:"title";s:20:"WordCamp Torino 2026";s:3:"url";s:33:"https://torino.wordcamp.org/2026/";s:6:"meetup";N;s:10:"meetup_url";N;s:4:"date";s:19:"2026-05-08 00:00:00";s:8:"end_date";s:19:"2026-05-09 00:00:00";s:20:"start_unix_timestamp";i:1778191200;s:18:"end_unix_timestamp";i:1778277600;s:8:"location";a:4:{s:8:"location";s:14:"Torino (Italy)";s:7:"country";s:2:"IT";s:8:"latitude";d:45.050186600000004;s:9:"longitude";d:7.6688508999999998;}}i:4;a:10:{s:4:"type";s:6:"meetup";s:5:"title";s:35:"#10 Thema wird noch bekannt gegeben";s:3:"url";s:57:"https://www.meetup.com/luzern-wordpress/events/310924012/";s:6:"meetup";s:33:"WordPress Meetup Luzern (Lucerne)";s:10:"meetup_url";s:40:"https://www.meetup.com/luzern-wordpress/";s:4:"date";s:19:"2026-05-11 19:15:00";s:8:"end_date";s:19:"2026-05-11 21:15:00";s:20:"start_unix_timestamp";i:1778519700;s:18:"end_unix_timestamp";i:1778526900;s:8:"location";a:4:{s:8:"location";s:19:"Luzern, Switzerland";s:7:"country";s:2:"ch";s:8:"latitude";d:47.043982999999997;s:9:"longitude";d:8.3051119999999994;}}}}', 'off'), - (148, '_site_transient_timeout_feed_9bbd59226dc36b9b26cd43f15694c5c3', '1768069522', 'off'), - (149, '_site_transient_feed_9bbd59226dc36b9b26cd43f15694c5c3', 'a:6:{s:5:"child";a:1:{s:0:"";a:1:{s:3:"rss";a:1:{i:0;a:6:{s:4:"data";s:3:"\n\n\n";s:7:"attribs";a:1:{s:0:"";a:1:{s:7:"version";s:3:"2.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:1:{s:7:"channel";a:1:{i:0;a:6:{s:4:"data";s:52:"\n \n \n \n \n \n \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:8:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:14:"WordPress News";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:26:"https://wordpress.org/news";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:59:"The latest news about WordPress and the WordPress community";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:13:"lastBuildDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Wed, 10 Dec 2025 17:16:49 +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:"language";a:1:{i:0;a:5:{s:4:"data";s:5:"en-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:9:"generator";a:1:{i:0;a:5:{s:4:"data";s:40:"https://wordpress.org/?v=7.0-alpha-61437";s: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:"image";a:1:{i:0;a:6:{s:4:"data";s:11:"\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:3:"url";a:1:{i:0;a:5:{s:4:"data";s:29:"https://s.w.org/favicon.ico?2";s: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:"title";a:1:{i:0;a:5:{s:4:"data";s:14:"WordPress News";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:26:"https://wordpress.org/news";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:5:"width";a:1:{i:0;a:5:{s:4:"data";s:2:"32";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:6:"height";a:1:{i:0;a:5:{s:4:"data";s:2:"32";s: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:"item";a:10:{i:0;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:40:"2026 Global Partner Program Announcement";s: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:63:"https://wordpress.org/news/2025/12/2026-global-partner-program/";s: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, 10 Dec 2025 17:16:48 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s: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=19534";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:412:"Become a driving force behind WordPress innovation by joining the Global Community Sponsorship Program: a comprehensive initiative that supports the events and people powering our open source mission. As a Global Sponsor, your organization gains meaningful visibility across the international WordPress ecosystem while helping to fund events that foster growth, collaboration, and community. Why Choose […]";s: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:"Harmony Romo";s: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:11388:"\n

Become a driving force behind WordPress innovation by joining the Global Community Sponsorship Program: a comprehensive initiative that supports the events and people powering our open source mission. As a Global Sponsor, your organization gains meaningful visibility across the international WordPress ecosystem while helping to fund events that foster growth, collaboration, and community.

\n\n\n\n
\n\n\n\n

Why Choose Global Sponsorship?

\n\n\n\n

Instead of managing multiple individual sponsorships, this streamlined program consolidates your efforts into one efficient and impactful partnership.

\n\n\n\n

Efficiency and Simplified Administration

\n\n\n\n

Skip the complexity of coordinating invoice payments with numerous volunteer teams. Our centralized approach saves time and resources. In 2026, sponsors will benefit from:

\n\n\n\n
    \n
  • A dedicated Slack channel for direct communication with the WordPress Community Support team and Community Program Managers
  • \n\n\n\n
  • Monthly updates listing upcoming WordPress events, their current planning stages, and scheduled dates
  • \n
\n\n\n\n

Expanded Reach and Impact

\n\n\n\n

Your sponsorship amplifies your presence worldwide, ensuring consistent visibility across global WordPress community events.

\n\n\n\n

Stability and Reliability

\n\n\n\n

Your commitment strengthens locally organized events by providing predictable funding that supports venues, logistics, and growth.

\n\n\n\n

Flexible Branding Options

\n\n\n\n

Adapt across your portfolio—Global Sponsors can represent different brands at different events (subject to approval and advance notice).

\n\n\n\n

Program Benefits

\n\n\n\n
Global LeaderRegional PowerhouseCommunity Builder




Best for:
Established brands seeking global reach and year-round visibility.Companies aiming for regional dominance and strong brand recognition.Organizations supporting the next generation of WordPress education.
Sponsorship payable in full or through quarterly installments$180,000$110,000$60,000
Top tier sponsorship benefits at all local WordCamp events (excludes flagships) with priority access to claim a sponsor table at in-person WordPress events✔
Option to feature multiple brands across events✔
Dedicated sponsor landing page✔✔
Complimentary WordPress event tickets for your team✔✔
Recognition across all WordPress events✔✔
Sponsor Spotlight post on WordPress.org/news featuring highlights from recent WordCampsQuarterlyAnnually
Inclusion of your company logo in signage and materials for WordPress Campus Connect eventsAll signage & materials for the year (digital and printed)Signage & materials for 5 events per year (printed only)All signage & materials for the year (digital and printed)
Opportunity to be featured in an exclusive digital binder for WordPress Campus Connect event organizersPriority placement (logos & text)Feature listing (text only)Feature listing (text only)
Regular recognition in monthly education buzz report✔
\n\n\n\n

How Sponsorship Funds Are Used

\n\n\n\n

Global Sponsorship funds directly support:

\n\n\n\n
    \n
  • Local WordPress events worldwide (venue rental, catering, A/V, and more)
  • \n\n\n\n
  • Meetup.com license fees for over 671 WordPress Meetup groups globally
  • \n\n\n\n
  • Administrative costs like insurance, banking, and annual financial audits that ensure transparent operations
  • \n
\n\n\n\n

Your partnership helps sustain the community that powers more than 43% of the web. Together, we can keep the WordPress project thriving and expanding for years to come.

\n\n\n\n
\n

If your company is interested in joining the Global Sponsorship program or you would like to know more, please reach out.

\n\n\n\n\n\n\n\n\n\n\n\n

Please see Rules for Sponsor Materials for more details about terms of sponsorship. Please also see our sample sponsorship agreement.

\n
\n\n\n\n

If you’d like to go one step further, please consider donating directly to the WordPress Foundation. We operate lean—every dollar goes toward keeping WordPress free, supporting education, and funding the community that makes the web a better place. In short, your donation helps us keep the lights on and the mission alive.

\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:"19534";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:65:"\n \n \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:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:54:"State of the Word 2025: Innovation Shaped by Community";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:45:"https://wordpress.org/news/2025/12/sotw-2025/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Wed, 03 Dec 2025 18:26: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: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:"";}i:2;a:5:{s:4:"data";s:17:"state of the word";s: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=19447";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:354:"State of the Word 2025 brought the WordPress community together for an afternoon that felt both reflective and forward-moving, blending stories of global growth with technical milestones and glimpses of the future. This year also marked the twentieth State of the Word since the first address in 2006, a milestone noted in the WordPress history […]";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:9:"enclosure";a:2:{i:0;a:5:{s:4:"data";s:0:"";s:7:"attribs";a:1:{s:0:"";a:3:{s:3:"url";s:59:"https://wordpress.org/news/files/2025/12/Telex-demo-776.mp4";s:6:"length";s:8:"29136831";s:4:"type";s:9:"video/mp4";}}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:0:"";s:7:"attribs";a:1:{s:0:"";a:3:{s:3:"url";s:53:"https://wordpress.org/news/files/2025/12/wapu-513.mp4";s:6:"length";s:9:"102323371";s:4:"type";s:9:"video/mp4";}}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:"Nicholas Garofalo";s: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:36376:"\n
\n\n
\n\n\n\n

State of the Word 2025 brought the WordPress community together for an afternoon that felt both reflective and forward-moving, blending stories of global growth with technical milestones and glimpses of the future. This year also marked the twentieth State of the Word since the first address in 2006, a milestone noted in the WordPress history book Milestones: The Story of WordPress as the beginning of a tradition that has helped the project tell its own story.

\n\n\n\n

From the outset, the keynote carried a sense of momentum shaped by thousands of contributors, educators, students, and creators whose steady participation continues to define the open web. It was a reminder that WordPress is more than software. It is a community writing its future together.

\n\n\n\n
\n

What we have is more than code. It’s momentum, it’s culture, and it’s a system that lets people learn by doing and lead by showing up.  — Mary Hubbard, WordPress Executive Director

\n
\n\n\n\n

Mary opened the evening by reflecting on her first full year as Executive Director, a year spent listening deeply and seeing firsthand how people across regions learn, contribute, and lead. Her remarks grounded the keynote in the lived reality of a community that grows because people invest in one another, teach openly, and build trust through contribution.

\n\n\n\n
\n

I’ve met people using WordPress to unlock new careers. I’ve met contributors who started a single translation or forum post and are now leading major pieces of the project. In LatAm, Europe, and the States, I’ve seen students get access to WordPress tools and start building faster than we could have ever imagined. I’ve watched communities build in public, resolve disagreements in the open, and collaborate across languages and time zones.

\n
\n\n\n\n

That reflection offered a clear reminder of what makes WordPress resilient through change: a culture of showing up, learning by doing, and supporting others along the way. The project moves forward because people choose to participate in ways both large and small, strengthening the foundation that has carried WordPress for more than two decades.

\n\n\n\n

With that foundation in place, the keynote moved through a series of stories and demonstrations that highlighted where WordPress stands today and where it is headed next — from a historic live release of WordPress 6.9 to expanding global education pathways, emerging AI capabilities, and deeper collaboration across the entire ecosystem.

\n\n\n\n

WordPress by the Numbers

\n\n\n\n

Project Cofounder Matt Mullenweg began with a wide-angle view of the project’s growth. WordPress powers over 43% of the web, with 60.5% of the CMS market. Shopify, its nearest competitor, holds 6.8%. Among the top 1,000 websites, WordPress’s share climbed to 49.4%, up 2.3% from the previous year.

\n\n\n\n
Globe graphic noting 43% of websites and 60.5% CMS market share
\n\n\n\n

Multilingual usage continued its strong rise. Over 56% of WordPress sites now run in languages other than English. Japan stood out, with WordPress powering 58.5% of all Japanese websites and 83% of the CMS market. Japanese became the second most-used language on WordPress at 5.82%. Spanish followed, then German, French, and Brazilian Portuguese.

\n\n\n\n

The plugin ecosystem saw explosive growth. The directory surpassed 60,000 plugins, and plugin downloads were on pace to reach 2.1 billion by year-end. Over 1,500 themes have been released this year as well.

\n\n\n\n

Contributors also hit new highs. The 6.8 release included 921 contributors, the largest group yet. WordPress 6.8 saw 79.5 million downloads, up 13%, and WordPress 6.9 included contributions from 230 first-time contributors and more than 340 enhancements and fixes.

\n\n\n\n

A Release Moment to Remember

\n\n\n\n

This year’s keynote delivered something WordPress had never attempted before: a live on-stage release of WordPress 6.9.

\n\n\n\n
WordPress 6.9 Gene album cover art
\n\n\n\n

Mary set the moment up earlier in the program, calling WordPress 6.9 “fast, polished, and built for collaboration.” She explained that it reflected a year of intentional iteration, improved workflows, and deeper cross-team participation. 

\n\n\n\n

Matt took the stage with some of the release leads, the release button in hand. The room counted down, and then WordPress 6.9 shipped live, instantly updating millions of sites around the world. It was both a celebration and a testament to the reliability and trust the WordPress community has built into its release processes. Shipping a major version of WordPress in real time, on stage, without drama, is something the early contributors could hardly have imagined.

\n\n\n\n
Photo of WordPress release leads pressing the button to release 6.9
\n\n\n\n

That reflection connected back to WordPress’s origin story. Matt talked about discovering the B2 forums, asking questions, and eventually reaching the point where he could answer someone else’s. That transition from learner to contributor remains at the heart of the project today. Two decades later, WordPress has grown from those early interactions into a platform that can ship a major release in front of the world, powered by thousands of contributors building together.

\n\n\n\n

WordPress and the Future of AI

\n\n\n\n

As the keynote shifted toward the future, Matt acknowledged what has become an essential truth of the moment: it would be impossible to talk about the next chapter of WordPress without talking about AI. He reminded the audience that in 2022, long before ChatGPT entered global conversation, he encouraged the community to “learn AI deeply.” The speed of change since then, he said, has exceeded every expectation, and WordPress has been preparing for it in ways both visible and behind the scenes.

\n\n\n\n
Timeline of AI: 2022 ChatGPT launches, 2023 GPT-4 and Claude launches, 2024 Multimodel and video generation, 2025 AI everywhere
\n\n\n\n

Matt introduced one of the most important architectural developments of the year: the Abilities API and the MCP adapter. The Abilities API defines what WordPress can do in a structured way that AI systems can interpret, while the MCP adapter exposes those abilities through a shared protocol. This means AI agents — whether built by individuals, companies, or larger platforms — can understand and interact with WordPress safely and predictably. Instead of relying on one-off integrations or brittle interfaces, WordPress now participates in a broader ecosystem of tools that can query its capabilities and perform tasks using a standard, governed approach.

\n\n\n\n

Matt then highlighted how developers are already using AI in their everyday work through tools like Cursor, Claude Code, and next-generation CLIs. These tools can explore entire codebases, generate documentation, produce tests, refactor large components, and even coordinate sequences of WP-CLI commands. For many developers, they expand what a single person can accomplish in an afternoon. They don’t eliminate the need for human judgment — they amplify it.

\n\n\n\n

With that foundation laid, Matt turned the audience’s attention to Telex, the experimental environment designed to turn natural-language prompts into Gutenberg Blocks. Telex has already moved beyond experimentation and into real use. Matt showed examples from community creator Nick Hamze, who uses Telex to power micro-business tools that represent practical, revenue-generating workflows that previously required custom engineering.

\n\n\n\n
\n\n\n\n

Matt then widened the lens to show what companies across the ecosystem are building with AI. Hostinger’s Kodee can generate a complete WordPress site from a single description. Elementor AI demonstrated similarly rapid creation inside its own editor, producing full sections and layouts in seconds. WordPress.com showcased how its AI tools help users draft, rewrite, and refine content while keeping language aligned with the site’s voice. Yoast demonstrated how AI can support SEO workflows by generating structured suggestions and improving readability. Together, these examples illustrated that AI is not arriving in one place — it is arriving everywhere.

\n\n\n\n

Experimental browsers can navigate WP Admin autonomously, performing tasks such as clicking buttons, opening menus, changing settings, and performing multi-step tasks without requiring any custom plugins or APIs. This raised a key question that Matt encouraged the community to consider: Which AI capabilities should live inside WordPress itself, and which should remain external, operating through the browser or operating system?

\n\n\n\n

Matt closed the section by discussing WordPress-specific AI benchmarks and evaluation suites. These shared tests will measure how well AI systems understand and execute WordPress tasks, from enabling plugins to navigating WP Admin to modifying content and settings. The goal is to create a foundation where future AI tools behave predictably and responsibly across the entire ecosystem, giving creators confidence that intelligent tools understand the platform deeply.

\n\n\n\n

A Global Community Growing Together

\n\n\n\n

Mary then returned to the stage to celebrate the ecosystem that supports WordPress’s growth. Across continents, diverse groups of people have hosted WordPress events, training new contributors and welcoming newcomers into the project. WordCamp growth in 2025 reflected that: more than 81 WordCamps across 39 countries, powered by over 5,000 volunteers and attended by nearly 100,000 people, with sixteen more events still underway.

\n\n\n\n
\n\n\n\n

Education played a major role in this community expansion. Learn.WordPress.org served over 1.5 million learners this year, with clearer pathways into more structured programs like Campus Connect and WordPress Credits. This bridging was deliberate. Many learners arrive through tutorials or workshops but need clearer guidance on how to deepen their skills. By reshaping navigation and improving wayfinding across WordPress.org, the project began closing that gap.

\n\n\n\n

She spotlighted Costa Rica’s Universidad Fidélitas, where WordPress moved beyond extracurricular interest into formal academic integration. Long before signing an agreement with the WordPress Foundation, their students were hosting WordCamp San José, forming student clubs, and treating WordPress as a crucial part of digital literacy and professional development.

\n\n\n\n
Students of the WordPress Fidélitas Club
\n\n\n\n

Wapuu appeared across events as a familiar companion and a cultural thread running through contributor tools and community projects. Its presence was a reminder that creativity and playfulness are as essential to open source as documentation or code.

\n\n\n\n
Various Wapuu artwork examples
\n\n\n\n

Matt highlighted the story of Youth Day in Managua, Nicaragua. Seventy-five young people spent a full day building their first WordPress sites. Sessions were taught by teenagers, for teenagers. They learned to pick themes, customize layouts, create contact forms, and publish content. Contribution often starts with a simple moment of confidence, and those early sparks can shape entire careers.

\n\n\n\n
\n\n\n\n

Together, these moments illustrated a project expanding not just in numbers, but in depth, diversity, and global reach. WordPress is growing because communities are finding their own ways to embrace it.

\n\n\n\n

What’s New in WordPress 6.9

\n\n\n\n

Joining virtually, WordPress Lead Architect, Matías Ventura, shifted the keynote from vision to practice. Matías offered a detailed walkthrough of what makes WordPress 6.9 one of the most refined, collaborative, and forward-looking releases the project has shipped in years. He returned to the four familiar lenses of creation — writing, designing, building, and developing — and showed how each evolved in this release cycle.

\n\n\n\n

He began with notes in the Block Editor, one of the most anticipated features. Notes allow collaborators to comment directly on individual blocks in a post or page. When a note is selected, the surrounding content subtly fades, helping contributors stay focused on context. Because notes are built on WordPress’s native comment system, they integrate seamlessly with existing communication workflows, including email notifications. Matías highlighted that notes development exemplified collaboration at its best, with contributors from various companies working together to bring the feature to life.

\n\n\n\n
\n\n
\n\n\n\n

From there, he turned to refinements across the writing and design experience. Editor interactions feel smoother and more consistent. Patterns behave more predictably. Spacing and typography controls are clearer, more organized, and more intuitive. Together these capabilioties make the experience of writing and designing inside WordPress calmer, more reliable, and more empowering.

\n\n\n\n

Block bindings now provide a more intuitive, visual way to connect blocks to dynamic data sources. Users can switch or remove bindings with a single click, and developers can register additional sources to support custom workflows. This work lays the foundation for a future where dynamic data flows more naturally through blocks, enabling site creators to build richer interfaces without writing code.

\n\n\n\n

On the developer front, Matías focused on three foundational upgrades that represent major steps forward in how WordPress will evolve over the coming years.

\n\n\n\n
    \n
  • The first was the Abilities API, a unified registry that describes what WordPress can do — across PHP, REST endpoints, the command palette, and future AI-driven interactions.
  • \n\n\n\n
  • The HTML API introduces new ways of working with and modifying HTML server-side. The API ensures safer, more reliable handling, lowering the barrier for theme and block developers who work with dynamic or structured markup.
  • \n\n\n\n
  • The Interactivity API delivers smoother, faster interactions without requiring heavy JavaScript frameworks. Improved routing, better state management, and clearer conventions help developers create rich, modern interfaces without leaving the WordPress philosophy of simplicity and flexibility.
  • \n
\n\n\n\n

After Matías wrapped his presentation, Matt stepped back in to highlight several developments that build on the foundations of 6.9 and strengthen the overall WordPress ecosystem. He pointed first to the Plugin Check Plugin, a tool designed to help developers align with current WordPress standards and catch common issues early, making plugins more reliable for users and easier to maintain over time. Matt then spoke about ongoing progress in Data Liberation, noting improvements to the WordPress importer that make it easier for people to bring their content into WordPress without disruption or loss, an important step toward ensuring the open web remains portable and resilient. He also highlighted advances across the Playground ecosystem, including WordPress Studio, the Playground CLI, and an expanding set of Blueprints. These allow developers and learners to spin up complete WordPress environments in seconds, test ideas, and experiment without servers or configuration. Matt closed this portion by emphasizing work on safer updates, which help WordPress avoid partial installs and ensure that updates complete smoothly even in less predictable hosting conditions, reinforcing WordPress’s commitment to stability as the platform continues to grow.

\n\n\n\n

Matt emphasized that WordPress 6.9 is not defined by any single headline feature, but by a broad spectrum of refinements across the entire experience. It is a release that deepens reliability, expands capability, and sets the stage for future innovation.

\n\n\n\n

Insights from the AI Panel

\n\n\n\n

The keynote transitioned into a live AI panel moderated by Mary Hubbard. The panel brought together four perspectives from across the ecosystem: James LePage (Automattic), Felix Arntz (Google), and Jeff Paul (Fueled, FKA 10up), and Matt Mullenweg. Their conversation touched on the philosophy, practice, and future of AI inside WordPress — not as a distant trend, but as an active part of the project’s evolution.

\n\n\n\n

A central theme was AI’s ability to amplify human creativity. James LePage put it plainly:

\n\n\n\n
\n

It’s not that we’re going to just add sparkle buttons everywhere. We’re going to do some crazy stuff here — things we’re going to build into the way you interact with creating content, with expressing yourself digitally. We want to give you more power, more control, and make you more effective at creating.

\n
\n\n\n\n

Jeff Paul echoed this sentiment, emphasizing that AI should make developers more productive by handling repetitive work and freeing them to focus on higher-level decisions. Felix Arntz expanded the idea further, describing how Google sees AI as a way to make the web more accessible and intuitive, especially for new creators who may not have formal technical training.

\n\n\n\n
From left to right: Mary Hubbard, Matt Mullenweg, Jeff Paul, Felix Arntz, James LePage
\n\n\n\n

Looking ahead, the panelists predicted deeper contextual integrations, AI-assisted debugging and scaffolding for developers, and workflows where agents can take on sequences of tasks while remaining directed by human decisions. They also highlighted the importance of standards, shared protocols, and privacy-focused design as essential components of WordPress’s long-term approach.

\n\n\n\n
\n

The next 20 years looks like WordPress remaining what it is today, which is the center of the open web.

\n
\n\n\n\n

The panel closed on a forward-looking but steady note. AI is accelerating, but WordPress is designing its foundations with flexibility and values that endure. The tools may change, but the commitment to openness, agency, and creative freedom remains the compass.

\n\n\n\n

Questions That Push Us Forward

\n\n\n\n

Matt introduced the Q&A as one of his favorite parts of State of the Word because it reveals what people are imagining, struggling with, or eager to build.

\n\n\n\n
Q&A
\n\n\n\n

The first question addressed the growing interconnectedness of today’s web. What happens, a participant asked, when a major provider like Cloudflare goes down? As tools and agents rely more heavily on external services, failures can cascade. Matt acknowledged that outages are increasingly visible, but also argued that each one strengthens the system.

\n\n\n\n
\n

“Every failure, every edge case, everything that you never imagined is just another opportunity to find that new edge case,” he said. Resilience is not avoidance of failure, but the ability to grow stronger after it.

\n
\n\n\n\n

Another question focused on the longevity of web content. With platforms shutting down or links breaking over time, how can creators ensure their work endures? Matt pointed to the Internet Archive as one of the great stabilizers of the open web. He highlighted a new plugin that automatically scans posts and replaces dead links with archived versions, helping preserve the historical fabric of the web even as individual services come and go.

\n\n\n\n

The next question turned to real-time collaboration inside WordPress. A participant asked how co-editing fits into the future of WordPress and how these tools might help creators work more confidently. Matt talked about how collaboration tools can support people who are just starting their creative journeys — whether they are entrepreneurs, students, or first-time site builders. He described real-time editing as part of a broader vision of WordPress “just doing the work for you” in high-pressure or early-stage creative moments.

\n\n\n\n

The final question considered long-term decision-making. Matt noted that predicting what will change is difficult, but identifying what will remain the same is much easier. For WordPress, he said, the invariant is clear: people will always want agency, openness, and the ability to publish on their own terms. These values guide decisions not only in the present, but across decades of future evolution.

\n\n\n\n

TBPN Podcast Appearance

\n\n\n\n
\n\n
\n\n\n\n

After the Q&A, the keynote shifted gears with a live crossover segment featuring TBPN (the Technology Business Programming Network), a tech-focused podcast. The segment introduced a lively, unscripted energy into the room.

\n\n\n\n

The hosts kicked things off by asking Matt what the “word of the year” should be. He chose “freedom”, connecting it directly to the core philosophy of open source. He described open source licenses as a kind of “bill of rights for software,” giving users inalienable rights that no company can revoke. In a world increasingly shaped by software platforms and digital ecosystems, these freedoms form the heart of what keeps the web open and accessible.

\n\n\n\n

Conversation then moved to Beeper, the multi-network messaging client. Asked whether Beeper aims to “tear down walled gardens,” Matt rejected that framing. Instead, he offered a more collaborative metaphor: bringing gardens together. Most people have friends and colleagues scattered across WhatsApp, Instagram, LinkedIn, Messenger, and SMS. Beeper doesn’t replace those apps — it brings messages together into a unified interface..

\n\n\n\n

The conversation eventually returned to publishing. Matt referenced the same principle he noted earlier: the importance of identifying what won’t change. For WordPress, he said, that means doubling down on freedom, agency, and the ability to publish without gatekeepers. Even as AI evolves, even as platforms shift, even as new tools emerge, these are the values that will guide the project forward.

\n\n\n\n

Building the Web We Believe In

\n\n\n\n

As the keynote drew to a close, Matt returned to a message that had threaded through every section of the evening. The future of WordPress is not arriving from outside forces — it is being crafted, questioned, tested, and expanded by the people who show up. Contributors, students, educators, community organizers, designers, developers, business owners, and first-time site builders all play a role in shaping the platform.

\n\n\n\n

He spoke about the opportunities ahead: new tools that expand what creators can build, collaborative features that make teamwork feel natural, and AI systems that enhance creativity rather than diminish it. Across continents, generations, and skill levels, people are discovering WordPress as a path to learning, empowerment, and expression.

\n\n\n\n

The values that brought the project this far remain the ones that will carry it forward: freedom, participation, learning, and community. These aren’t abstract principles. They are lived every day in the decisions contributors make, the ideas they pursue, and the care they bring to the work.

\n\n\n\n

Future Events

\n\n\n\n

If you’re feeling inspired to revisit past moments from the project’s annual address, the State of the Word YouTube playlist offers a look back at years of community milestones and product progress. The excitement continues into 2026, with major WordPress events already on the horizon: WordCamp Asia in Mumbai, India,WordCamp Europe in Kraków, Poland, and WordCamp US in Phoenix. We hope to see you there as the community continues building what comes next.

\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:"19447";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:66:"\n \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:24:"WordPress 6.9 “Gene”";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:40:"https://wordpress.org/news/2025/12/gene/";s: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, 02 Dec 2025 20:12: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:8:"category";a:4:{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: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:2;a:5:{s:4:"data";s:3:"6.9";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: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=19398";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:495:"WordPress 6.9, code-named "Gene," brings major upgrades to how teams collaborate and create. The Notes feature introduces block-level commenting to streamline reviewing and polishing content, navigating across the entire dashboard with the Command Palette is now faster for power users, and the new Abilities API provides a standardized way to open the door for AI-powered and automated workflows. Combined with all the performance and accessibility improvements, 6.9 is one to write home about.";s: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:"Matt Mullenweg";s: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:79691:"\n
WordPress 6.9 Release Edition Featured Image
\n\n\n\n

Each WordPress release celebrates an artist who has made an indelible mark on the world of music. WordPress 6.9, code-named “Gene,” honors the American Jazz pianist Gene Harris. 

\n\n\n\n

A piano veteran, self taught at the age of six, Harris infused mainstream jazz with elements of soul, blues, and gospel, creating a warm, signature sound that is both elegant and iconic. Harris’ bluesy jazz lived at the intersection of worlds, weaving a rich landscape of texture and mood, with a thread of soulfulness that ignited listeners.

\n\n\n\n

Welcome to WordPress 6.9

\n\n\n\n

WordPress 6.9 brings major upgrades to how teams collaborate and create. The new Notes feature introduces block-level commenting when writing posts and pages that streamlines reviews, while the expanded Command Palette makes it faster for power users to navigate and operate across the entire dashboard. The new Abilities API provides a standardized, machine-readable permissions system that opens the door for next generation AI-powered and automated workflows. This release also delivers notable performance improvements for faster page loads and adds several practical new blocks alongside a more visual drag and drop to help creators build richer, more dynamic content.

\n\n\n\n

Download WordPress 6.9 “Gene”

\n\n\n\n

Introducing Notes: Seamless, Block-Level Collaboration

\n\n\n\n

Collaborate Smarter : Leave Feedback Right Where You’re Working

\n\n\n\n

With notes attached directly to blocks in the post editor, your team can stay aligned, track changes, and turn feedback into action all in one place. Whether you’re working on copy or refining design in your posts or pages, collaboration happens seamlessly on the canvas itself.

\n\n\n\n
View of people interacting with notes in a post.
\n\n\n\n

Command Palette Throughout the Dashboard

\n\n\n\n

Your tools are always at hand.

\n\n\n\n

Access the Command Palette from any part of the dashboard, whether you’re writing your latest post, deep in design in the Site Editor, or browsing your plugins. Everything you need, just a few keystrokes away.

\n\n\n\n
Command palette showing the ability to navigate across different parts of the site, including templates, Settings, and all posts.
\n\n\n\n

Fit text to container

\n\n\n\n

Content that adapts.

\n\n\n\n

There’s a new typography option for text-based blocks that’s been added to the Paragraph and Heading blocks. This new option automatically adjusts font size to fill its container perfectly, making it ideal for banners, callouts, and standout moments in your design.

\n\n\n\n
"Novem" text selected and stretching across the interface.
\n\n\n\n

The Abilities API

\n\n\n\n

Unlocking the next generation of site interactions.

\n\n\n\n

WordPress 6.9 lays the groundwork for the future of automation with the unified Abilities API. By creating a standardized registry for site functionality, developers can now register, validate, and execute actions consistently across any context—from PHP and REST endpoints to AI agents—paving the way for smarter, more connected WordPress experiences.

\n\n\n\n
Abstract view of circles around a plugin icon with sparkles, indicating AI functionality.
\n\n\n\n

Accessibility Improvements

\n\n\n\n

More than 30 accessibility fixes sharpen the core WordPress experience. These updates improve screen reader announcements, hide unnecessary CSS-generated content from assistive tech, fix cursor placement issues, and make sure typing focus stays put even when users click an autocomplete suggestion.

\n\n\n\n

Performance enhancements

\n\n\n\n

WordPress 6.9 delivers significant frontend performance enhancements, optimizing the site loading experience for visitors. 6.9 boasts an improved LCP (Largest Contentful Paint) through on-demand block styles for classic themes, minifying block theme styles, and increasing the limit for inline styles – removing blockages to page rendering and clearing the rendering path by deprioritizing non-critical scripts. This release comes with many more performance boosts, including optimized database queries, refined caching, improved spawning of WP Cron, and a new template enhancement output buffer that opens the door for more future optimizations.

\n\n\n\n

And much more

\n\n\n\n

For a comprehensive overview of all the new features and enhancements in WordPress 6.9, please visit the feature-showcase website.

\n\n\n\n

Check out What’s New

\n\n\n\n

Learn more about WordPress 6.9

\n\n\n\n

Learn WordPress is a free resource for new and experienced WordPress users. Learn is stocked with how-to videos on using various features in WordPress, interactive workshops for exploring topics in-depth, and lesson plans for diving deep into specific areas of WordPress.

\n\n\n\n

Read the WordPress 6.9 Release Notes for information on installation, enhancements, fixed issues, release contributors, learning resources, and the list of file changes.

\n\n\n\n

Explore the WordPress 6.9 Field Guide. Learn about the changes in this release with detailed developer notes to help you build with WordPress.

\n\n\n\n

The 6.9 release squad

\n\n\n\n

Every release comes to you from a dedicated team of enthusiastic contributors who help keep things on track and moving smoothly. The team that has led 6.9 is a cross-functional group of contributors who are always ready to champion ideas, remove blockers, and resolve issues.

\n\n\n\n\n\n\n\n

Thank you, contributors

\n\n\n\n

The mission of WordPress is to democratize publishing and embody the freedoms that come with open source. A global and diverse community of people collaborating to strengthen the software supports this effort.

\n\n\n\n

WordPress 6.9 reflects the tireless efforts and passion of more than 900+ contributors in countries all over the world. This release also welcomed over 279 first-time contributors!

\n\n\n\n

Their collaboration delivered more than 340 enhancements and fixes, ensuring a stable release for all – a testament to the power and capability of the WordPress open source community.

\n\n\n\n

2046 · Aakash Verma · Aaron Jorbin · Aaron Robertshaw · Aarti Chauhan · Aashish Sharma · aatospaja · Abdur Rahman Emon · Abu Hurayra · Adam Harley (Kawauso) · Adam Silverstein · Adam Zieliński · Aditya Bansode · Aditya Dhade · aditya shah · Aditya Singh · aduth · agulbra · Ahmed · Ahmed Kabir Chaion · ajaxStardust · Ajit Bohra · Akanshu Singh · Akeda Bagus · Aki Hamano · Akira Tachibana · Akramul Hasan · Akshat Kakkad · Akshay Dhere · Akshaya Rane · Albert Juhé Lluveras · alejandrogonzalvo · Alex Cuadra · Alex Lende · Alex Lion (阿力獅) · Alex Stine · Alexandre Buffet · Alexei Samarschi · Alexis Pandaan · alordiel · Alvaro Gómez · Amber Hinds · Amin · Aminul Islam · Aminul Islam Alvi · Amit Bhosale · Amy Kamala · Anatol Broder · Anders Norén · Andrea Fercia · Andrea Roenning · Andrei Draganescu · Andrew Hoyer · Andrew Nacin · Andrew Ozz · Andrew Serong · André Maneiro · Andy Fragen · Anita C · Ankit K Gupta · Ankit Kumar Shah · Ankit Panchal · Anne McCarthy · Anne-Mieke Bovelett · Anton Vlasenko · Antonio Sejas · Anuj Singh · Anveshika Srivastava · apmeyer · Ari Stathopoulos · Arkadiusz Rzadkowolski · Armando · Artemio Morales · Arthur Chu · Artur Piszek · ArtZ91 · asafm7 · asdofindia · Ashish Kumar (Ashfame) · Ashraful Haque Akash · askapache · Aslam Doctor · Aurooba Ahmed · aut0poietic · Axel DUCORON · Ayesh Karunaratne · Azhar Deraiya · Béryl de La Grandière · bartnv · bchecketts · Beee · Ben Dwyer · Benazeer · Benjamin Denis · Benjamin Zekavica · Benny · Benoit Chantre · Bernhard Kau · Bernhard Reiter · Bernie Reiter · bgermann · bhattaganesh · Bhavesh Desai · BiDbMAK · Bigul Malayi · Birgir Erlendsson (birgire) · Birgit Pauli-Haack · Bishal Shrestha · bobbyleenoblestudios · BogdanUngureanu · bonger · Boro Sitnikovski · Brad Griffin · brad hogan · Brad Jorsch · bradshawtm · Brandon Hubbard · Brandon Kraft · Brandon Zhang · Brennan Goewert · brhodes · Brian Alexander · Brian Coords · Brian Gardner · Brian Haas · brumack · Bryan Schneidewind · bshuchter · burnuser · byteninjaa0 · Cédric Chevillard · Callum Bridgford-Whittick · Calvin Alkan · Carlo Cannas · Carlos Bravo · Carlos G. P. · CarlSteffen · Carolina Nymark · Carolina Romo · Catalin Ciobanu · catgofire · cbirdsong · ccharel · Chad Butler · Chad Chadbourne · Chakrapani Gautam · Chi-Hsuan Huang · Chillifish · ChloeD · Chouby · Chris Zarate · chriscct7 · chrisdotdotdot · chrismattix · christinecooper · Christoph Daum · Christy Nyiri · cikrimcin · Ciprian Popescu · cjhaas · ckoerner · claimableperch · Code Amp · codebuddy · coleatkinson1 · Colin Stewart · ColinD · Cooper Dalrymple · Coralie Tixeront · Corey Salzano · Corey Worrell · Cornwell · Cory Hughart · Courtney Robertson · cucocreative · Cullen Whitmore · Cyrille37 · Daan van den Bergh · Dakota Chichester · damchtlv · Damir · Damon Cook · Dan Cameron · Dan Waldschmidt · Daniel Bachhuber · Daniel Iser · Daniel Richards · Daniele Scasciafratte · daniellacatus · danielmorell · Danny Schmarsel · dannyreaktiv · Darren Ethier (nerrad) · Darshit Rajyaguru · Dave Ryan · daveguitaruno · David Aguilera · David Arenas · David Artiss · David Baumwald · David Calhoun · David Herrera · David Levine · David Perez · David Riviera · David Smith · DavidB · dawidadach · Dean Sas · Debabrata Karfa · DEBARGHYA BANERJEE · Denis de Bernardy · Denis Žoljom · Dennis Ploetner · Dennis Snell · Dennys Dionigi · Densi Nakum · derekherman · Devasheesh Kaul · Dhananjay Kuber · Dhrumil Kumbhani · Dhruval Shah · Dhruvang21 · Dhruvik Malaviya · diebombe · Dilip Bheda · Dilip Modhavadiya · Dion Hulse · divinenephron · dj.cowan · Dominik Schilling · dominiquepijnenburg · donalirl · doughamlin · DougMelvin · drawcard · dretzlaff · Drew Jaynes · Drivingralle · dsawyers · dustintechsmith · eclev91 · eduwass · Ehti · elialum · Eliezer Peña · Ella van Durpe · Elvis Morales · emaildano · Emerson Maningo · Emilie LEBRUN · Emran Ahmed · Enaan Farhan · Enrico Battocchi · Enrique Sánchez · epeicher · Eric · Eric Andrew Lewis · Erick Hitter · Erik · Erik Joling · Eshaan Dabasiya · ethanscorey · Evan Mullins · Even Tobiesen · Fabian Kägy · Fabian Todt · Faisal Ahammad · Faisal Alvi · fakhriaz · Falguni Desai · Felix Arntz · Felix Renicks · Fellyph Cintra · Florian TIAR · Francisco Torres · Francisco Vera · FrogDesk Strategy · Fumiki Takahashi · Gael Denysiak · Gajendra Singh · Gan Eng Chin · Garrett Hyder · Gary Jones · Gary Pendergast · Gaurang Dabhi · Gautam Mehta · Gennady Kovshenin · George Mamadashvili · George Stephanis · Georgi Stoyanov · gernberg · giuliorubelli · Glen Davies · Gopal Krishnan · Grant M. Kinney · Greg Ziółkowski · Guido · Guido Scialfa · Guillaume TURPIN · Gulamdastgir Momin · H. Adam Lenz · H. Kabir · hanimbarek · hanneslsm · Hans-Gerd Gerhards · Hardik Raval · Hareesh S · Harsh Gajipara · Harshal Kadu · harshbhonsle08 · harshdeepgill · Harun · Helen Hou-Sandi · HelgaTheViking · Hidenori ISHIKAWA · Hilay Trivedi · Himani Panchal · Himanshu Pathak · Hiroshi Sato · Hit Bhalodia · Hitendra Chopda · Hitesh Talpada · Hozefa Saleh · Hrohh · hugod · hugosolar · humanify · huubl · Huzaifa Al Mesbah · Héctor Prieto · Ian Dunn · ignatiusjeroe · Igor Radovanov · ikriv · imokweb · Imran · Indira Biswas · Ipstenu (Mika Epstein) · Iqbal Hossain · Isabel Brison · Ishika Bansal · Ivan Ottinger · Jabe · Jacob Cassidy · Jagir Bahesh · Jaimin Prajapati · Jakaria Istauk · Jake Spurlock · jakeparis · James Koster · James LePage · James Monroe · James Sansbury · James Titus · Jamie · Jamie Burchell · Jamie Marsland · janthiel · Jarda Snajdr · jarekmorawski · Jarkko Saltiola · Jason Adams · Jason LeMahieu (MadtownLems) · Jason Sauerwald · Javier Casares · Jay McPartland · Jayaram · Jaydip · Jean-Baptiste Audras · Jeff Chi · Jeff Matson · Jeff Ong · Jeff Paul · Jeffrey de Wit · Jeffro · jeflopo · Jenny Dupuy · Jeremiah Bratton · Jeremy Felt · Jeremy Massel · Jeroen Schmit · jeryj · Jesin A · jessedyck · Jessica Lyschik · Jigar Bhanushali · Jigar Panchal · jikamens · jnweaver · Joan Namunina · JoAnne Obata · JochenT · jodamo5 · Joe Dolson · Joe Hoyle · Joe McGill · Joen Asmussen · Johannes Jülg · John Blackbourn · John Brand · John Godley · John James Jacoby · John Parris · John Regan · JohnVieth · Jon Surrell · Jonathan Bossenger · Jonathan Champ · Jonathan Desrosiers · Joni Erkkilä · Jonny Harris · Jono Alderson · jordesign · Jorge Costa · Jos Velasco · Joseph Scott · Josh Habdas · Joshua Goode · jrmd · Juan Aldasoro · Juan Cook · JuanMa Garrido · juliengardair · Juliette Reinders Folmer · Justin Ahinon · Justin Tadlock · Jyotirmoy Roy · K. Adam White · Kai Hao · Kailey (trepmal) · Kaito Hanamori · Kakoma · Kalpesh · Karin Christen · Karol Manijak · Karthick Murugan · Karthikeya Bethu · Kaspars · Kat Hagan · Kateryna K. a11n · Kathryn Presner · Katrina Massey · Kausar Alam · Kaushik Domadiya · Kawshar Ahmed · kaygee79 · Kazuto Takeshita · Kelly Choyce-Dwan · Kelly Hoffman · Kelly Mears · Ken Gagne · Kerfred · Kerry Liu · kesselb · Kevin Leary · Khoi Pro · Khushi Patel · killerbishop · Kingsley Felix · Kira Schroder · Kishan Jasani · kitchin · Kjell Reigstad · kkmuffme · Kleor · Knut Sparhell · Konstantin Obenland · Konstantinos Xenos · kpapazov · kprocyszyn · krishaamer · Krunal Bhimajiyani · Krupa Nanda · kshaner · kub1x · kubiq · kunalpuri123 · Kush Sharma · Kushagra Goyal · Lachezar Gadzhev · lakrisgubben · Lakshyajeet Singh Goyal · Lalit Kumawat · Lance Willett · Laura Byrne · Lauri Saarni · ldanielgiuliani · Lee Willis · leedxw · leemon · Lena Morita · Leonidas Milosis · Levin Baria · lgseo · LilGames · liviopv · logiclink · LogicRays Technologies · lordandy1984 · Lovro Hrust · Lucas Martins · Luigi Teschio · luisherranz · LukasFritzeDev · Lukasz · Luke Cavanagh · maccyd · Madhavi Shah · Madhu Dollu · Maggie Cabrera · Maikuolan · manfcarlo · manhatthien98 · Manuel Camargo · Manzoor Wani · maorb · Marc · Marc Armengou · Marcio Duarte · Marco Ciampini · Marcus · Marcus Kazmierczak · marian1 · Marie · Marin Atanasov · Mario Santos · mariohamann · mariushosting · Marty · MartyThornley · Mary Baum · Mary Hubbard · Mat Lipe · mathiscode · Matias Benedetto · Matias Ventura · Matt Mullenweg · Matt Robinson · Matt West · Matteo Enna · Matthias Pfefferle · mattryanwalker · Max Schmeling · Maxime Pertici · Mayank Tripathi · Mayur Prajapati · Md Abdullah Al Arif · Md Abdullah Al Fahad · Md Abul Bashar · MD ISMAIL · MD Kawsar Chowdhury · Md Masum Molla Alhaz · Md Obidullah (obiPlabon) · Md Rashed Hossain · Md Sabbir Hossain · Md. Najmul Islam · Md.Mehedi Hasan · mdmoreau · mdviralsampat · Meet Makadia · megane9988 · Meher Bala · Mel Choyce-Dwan · Micha Krapp · Michael Burridge · Michael Keck · Michael Nelson · Michael Sumner · michaelreetz · Michal Czaplinski · Michelle Schulp Hunt · Miguel Fonseca · Miguel Lezama · Mikael Korpela · Mike · Mike Fitzpatrick · Mike Hansen · Mike Jolley · Mike McAlister · Mike Ritter · Mikin Chauhan · Milan Ricoul · Minal Diwan · Miroku · missveronica · Mitchell Austin · mkeck · mlaetitia1986 · mleray · mleraygp · Mobarak Ali · Mohammad Rockeybul Alam · Mohammed Kateregga · Moses Cursor Ssebunya · mrwweb · mtg169 · mujuonly · Mukesh Panchal · Mukul Singh · Mumtahina Faguni · Núria Nadal i Rovira · Naman Vyas · NANI SAMIREDDY · Narendra Sishodiya · Naresh Bheda · Nasim Miah · Nate Finch · Naveen Dwivedi · Navneet Kaur · Nazar Hotsa · Nazmul Hosen · Ned Zimmerman · nexbridge · Nextendweb · Neycho Kalaydzhiev · Nick · Nick · Nick Diego · Nick Halsey · nickbrazilian · nickjbedford · nickpagz · nickwilmot · Nico · nidhidhandhukiya · Niels Lange · nigelnelles · Nik Tsekouras · Nikan Radan · Nikunj Hatkar · Nimesh · Nino Mihovilic · Ninos · Noah Allen · Noel Santos · Noruzzaman · nosilver4u · oceantober · oferlaor · okat · Okawa Yasuno · Olga Gleckler · Oliver Campion · Omar Alshaker · Ophelia Rose · Optimizing Matters · owi · Paal Joachim Romdahl · Pablo Honey · Palak Patel · Paragon Initiative Enterprises · Parin Panjari · Parth vataliya · Partho Hore · Pascal Birchler · Patel Jaymin · Patricia BT · Patrick Lumumba · Patrick Piwowarczyk · Paul · Paul Bearne · Paul Biron · Paul Bonneau · Paul Kevan · Paulo Trentin · paulstanos · pcarvalho · Pedro Figueroa · Per Egil Roksvaag · Peter Ingersoll · Peter Westwood · Peter Wilson · petitphp · Philip John · Philip Sola · Philipp Bammes · Phill · piskvorky · Pooja Bhimani · poojapadamad · porg · Prabhat Mishra · Praful Patel · Pranjal Pratap Singh · Prasad Karmalkar · prasadgupte · Prashant Baldha · Pratik Londhe · Presskopp · prettyboymp · puggan · quentinr64600 · Rachel Baker · Rafiqul Islam · Raluca · Ramanan · Rami Yushuvaev · Ramon Ahnert · Ramon Corrales · Ramon James · Ravi Chudasama · Ravi Gadhiya · rcrdortiz · Rehan Ali · Rejaul Alom Khan · Remy Perona · Renato Alves · renishsurani · retrofox · Rezwan Shiblu · Riad Benguella · riadev · Rich Tabor · Richard Korthuis · Riddhi Dave · Rinat · Rinkal Pagdar · Rishabh Gupta · Rishav Dutta · Rishit Gupta · Risto Jovanovic · Ritoban · Robert Anderson · Robert Chapin · Robert Ghetau · Robert O\'Rourke · Robmcclel · Rodrigo Primo · roelof · Rolly Bueno · Ronak prajapati · Room 34 Creative Services, LLC · Rostislav Wolný · Rotem Gelbart · Rufaro Madamombe · Rutvik Bhambhi · Ryan McCue · Ryan Welcher · S Page · Sören Wünsch · Sabbir Ahmed · Sabbir Sam · SACHINRAJ CP · Sahil Jadhav · Sainath Poojary · Sajjad Hossain Sagor · sakibmoon · Sam · sam_a · Samir Malpande · Sampat Viral · Samuel Paget · Samuel Wood (Otto) · Sandeep Dahiya · Sandip Sinh · Sandy McFadden · Sarah Norris · sarah semark · Sarthak Nagoshe · Satish Prajapati · saurabh.dhariwal · Saxon Fletcher · scholdstrom · Scott Buscemi · Scott Kingsley Clark · Scott Reilly · Scott Taylor · scribu · Sebastian Pisula · Seif Radwane · Sergey Biryukov · Seth Rubenstein · SH Sajal Chowdhury · Shadi G شادي جـ · Shail Mehta · Shalin Shah · Shane Muirhead · Shashank Jain · Shashank Shekhar · Shazzad Hossain Khan · Sheri Grey · Shipon Karmakar · Shreya Shrivastava · Shubham Patil · Shyamsundar Gadde · sidharthpandita · siliconforks · Silpa TA · simonefontana · Slava Abakumov · smerriman · Sneha Patil · Sophie Dimitrov · Sourabh Jain · Sourav Pahwa · Soyeb Salar · Spenser Hale · spstrap · Sridhar Katakam · stankea · Stanko Metodiev · staurand · Stefan Pasch · Stefan Velthuys · Stephen Bernhardt · Stephen Harris · Steve Dufresne · strarsis · Subrata Sarkar · Sudip Dadhaniya · Sujan Sarkar · Sukhendu Sekhar Guria · Sumit Bagthariya · SunilPrajapati · sunnykasera · sunyatasattva (a11n) · supernovia · SuzuKube · svedish · Svetoslav Marinov · Sybre Waaijer · syhussaini · T4ng · Taco Verdonschot · Takashi Irie · Takuro · Tammie Lister · tatof · tecnogaming · Tetsuro Higuchi · tharsheblows · thelmachido a11n · ThemeAWESOME · theMikeD · Thomas Kräftner · Thorsten Frommen · Till Krüss · Tim Havinga · Tim Sheehan · Timo Tijhof · Timothée Brosille · Timothée Moulin · Timothy Jacobs · TJarrett · Tobias Bäthge · Tobias Zimpel · tobifjellner (Tor-Bjorn “Tobi” Fjellner) · Tom de Visser · Tom J Nowell · Tomoki Shimomura · Toni Viemerö · Tonya Mork · Toro_Unit (Hiroshi Urabe) · Torsten Landsiedel · Travis Smith · traxus · Trevor Mills · tristanleboss · Troy Chaplin · Trupti Kanzariya · tsteel · Tung Du · Tushar Bharti · Tushar Patel · Tussendoor B.V. · Ugyen Dorji · Umesh Nevase · Umesh Singh · Unsal Korkmaz · upadalavipul · Utsav Ladani · Utsav tilava · Valentin Grenier · Vape tsimshatsui · vbbp · Vedansh Mishra · Vegard S. · vgnavada · Vicente Canales · vidugupta · Vijendra Jat · Viktor Szépe · Vinit · Vipul Ghori · Vipul Gupta · Vipul Patil · Vishit Shah · vladimiraus · vortfu · Vrishabh Jasani · Walter Ebert · WebMan Design | Oliver Juhas · websupporter · webwrotter · Weston Ruter · whaze · widhy980 · Will Skora · wplmillet · xate · xavilc · xerpa43 · xipasduarte · Yagnik Sangani · Yash · Yash B · Yash Jawale · Yogesh Bhutkar · YogieAnamCara · Yui · Zebulan Stanphill · Zeel Thakkar · Zunaid Amin · Łukasz Strączyński · 耗子

\n\n\n\n

More than 71 locales have fully translated WordPress 6.9 into their language. Community translators are working hard to ensure more translations are on their way. Thank you to everyone who helps make WordPress available in 200+ languages.

\n\n\n\n

Last but not least, thanks to the volunteers who contribute to the support forums by answering questions from WordPress users worldwide.

\n\n\n\n

Get involved

\n\n\n\n

Participation in WordPress goes far beyond coding. And learning more and getting involved is easy.  Discover the teams that come together to Make WordPress and use this interactive tool to help you decide which is right for you.

\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:"19398";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:75:"\n \n \n \n \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:33:"WordPress 6.9 Release Candidate 3";s: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://wordpress.org/news/2025/11/wordpress-6-9-release-candidate-3/";s: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, 25 Nov 2025 15:33:10 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:7:{i:0;a:5:{s:4:"data";s:11:"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:"";}i:1;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: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:"";}i:3;a:5:{s:4:"data";s:3:"6.9";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:5:{s:4:"data";s:11:"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:"";}i:5;a:5:{s:4:"data";s:18:"release candidates";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: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=19373";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:366:"The third Release Candidate (“RC3”) for WordPress 6.9 is ready for download and testing! This version of the WordPress software is under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, it’s recommended that you evaluate RC3 on a test server and site. Reaching this phase […]";s: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:"Amy Kamala";s: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:8039:"\n

The third Release Candidate (“RC3”) for WordPress 6.9 is ready for download and testing!

\n\n\n\n

This version of the WordPress software is under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, it’s recommended that you evaluate RC3 on a test server and site.

\n\n\n\n

Reaching this phase of the release cycle is an important milestone. While release candidates are considered ready for release, testing remains crucial to ensure that everything in WordPress 6.9 is the highest quality possible.

\n\n\n\n

You can test WordPress 6.9 RC3 in four ways:

\n\n\n\n
PluginInstall and activate the WordPress Beta Tester plugin on a WordPress install. (Select the “Bleeding edge” channel and “Beta/RC Only” stream.)
Direct DownloadDownload the RC3 version (zip). and install it on a WordPress website.
Command LineUse this WP-CLI command:
wp core update --version=6.9-RC3
WordPress PlaygroundUse the 6.9 WordPress Playground instance to test the software directly in your browser.  No setup is required – just click and go! 
\n\n\n\n

The scheduled final release date for WordPress 6.9 is December 2, 2025. The full release schedule can be found here. Your help testing RC versions is vital to making this release as stable and powerful as possible.

\n\n\n\n

Please continue checking the Make WordPress Core blog for 6.9-related posts in the coming weeks for more information.

\n\n\n\n

What’s in WordPress 6.9 RC3?

\n\n\n\n

Want to look deeper into the details and technical notes for this release? Take a look at the WordPress 6.9 Field Guide. For technical information related to issues addressed since RC2, you can browse the following links:

\n\n\n\n\n\n\n\n

How you can contribute

\n\n\n\n

WordPress is open source software made possible by a passionate community of people collaborating on and contributing to its development. The resources below outline various ways you can get involved with the world’s most popular open source web platform, regardless of your technical expertise.

\n\n\n\n

Get involved in testing

\n\n\n\n

Testing for issues is crucial to the development of any software. It’s also a meaningful way for anyone to contribute. 

\n\n\n\n

Your help testing the WordPress 6.9 RC3 prerelease is key to ensuring that the final release is the best it can be. While testing the upgrade process is essential, trying out new features is equally important. This detailed guide will walk you through testing features in WordPress 6.9. For those new to testing, follow this general testing guide for more details on getting set up.

\n\n\n\n

If you encounter an issue, please report it to the Alpha/Beta/RC area of the support forums or directly to WordPress Trac if you are comfortable writing a reproducible bug report. You can also check your issue against a list of known bugs.

\n\n\n\n

Curious about testing releases in general?  Follow along with the testing initiatives in Make Core and join the #core-test channel on Making WordPress Slack..

\n\n\n\n

Update your theme or plugin

\n\n\n\n

For plugin and theme authors, your products play an integral role in extending the functionality and value of WordPress for all users.

\n\n\n\n

Thanks for continuing to test your themes and plugins with the WordPress 6.9 prereleases. If you haven’t yet, please conclude your testing and update the “Tested up to” version in your theme and plugin readme files to 6.9.

\n\n\n\n

If you find compatibility issues, please post detailed information in the support forum.

\n\n\n\n

Test on your hosting platforms

\n\n\n\n

Web hosts provide vital infrastructure for supporting WordPress and its users. Testing on hosting systems helps inform the development process while ensuring that WordPress and hosting platforms are fully compatible, free of errors, optimized for the best possible user experience, and that updates roll out to customer sites without issue.

\n\n\n\n

Want to test WordPress on your hosting system? Get started with configuring distributed hosting tests here

\n\n\n\n

Help translate WordPress

\n\n\n\n

Do you speak a language other than English? ¿Español? Français? Русский? 日本語? हिन्दी? বাংলা? मराठी? ಕನ್ನಡ? You can help translate WordPress into more than 100 languages.

\n\n\n\n

An RC3 haiku

\n\n\n\n

Some folks make money,

\n\n\n\n

some folks make time to travel,

\n\n\n\n

and we Make WordPress.

\n\n\n\n

Props to @akshayar, @davidbaumwald, @westonruter, @ellatrix, @mobarak and @tacoverdo for proofreading and review.

\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:"19373";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:69:"\n \n \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:33:"WordPress 6.9 Release Candidate 2";s: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://wordpress.org/news/2025/11/wordpress-6-9-release-candidate-2/";s: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, 18 Nov 2025 15:26: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:8:"category";a:5:{i:0;a:5:{s:4:"data";s:11:"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:"";}i:1;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: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:"";}i:3;a:5:{s:4:"data";s:3:"6.9";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:5:{s:4:"data";s:7:"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=19350";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:367:"The second Release Candidate (“RC2”) for WordPress 6.9 is ready for download and testing! This version of the WordPress software is under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, it’s recommended that you evaluate RC2 on a test server and site. Reaching this phase […]";s: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:"Akshaya Rane";s: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:10595:"\n

The second Release Candidate (“RC2”) for WordPress 6.9 is ready for download and testing!

\n\n\n\n

This version of the WordPress software is under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, it’s recommended that you evaluate RC2 on a test server and site.

\n\n\n\n

Reaching this phase of the release cycle is an important milestone. While release candidates are considered ready for release, testing remains crucial to ensure that everything in WordPress 6.9 is the best it can be.

\n\n\n\n

You can test WordPress 6.9 RC2 in four ways:

\n\n\n\n
PluginInstall and activate the WordPress Beta Tester plugin on a WordPress install. (Select the “Bleeding edge” channel and “Beta/RC Only” stream).
Direct DownloadDownload the RC2 version (zip) and install it on a WordPress website.
Command LineUse the following WP-CLI command:
wp core update --version=6.9-RC2
WordPress PlaygroundUse the 6.9 RC2 WordPress Playground instance to test the software directly in your browser without the need for a separate site or setup.
\n\n\n\n

The scheduled final release date for WordPress 6.9 is December 2, 2025. The full release schedule can be found here. Your help testing RC versions is vital to making this release as stable and powerful as possible.

\n\n\n\n

Please continue checking the Make WordPress Core blog for 6.9-related posts in the coming weeks for more information.

\n\n\n\n

What’s in WordPress 6.9 RC2?

\n\n\n\n

Get a recap of WordPress 6.9’s highlighted features in the Beta 1 announcement. For more technical information related to issues addressed since RC1, you can browse the following links:

\n\n\n\n\n\n\n\n

Want to look deeper into the details and technical notes for this release? These recent posts cover some of the latest updates:

\n\n\n\n\n\n\n\n

How you can contribute

\n\n\n\n

WordPress is open source software made possible by a passionate community of people collaborating on and contributing to its development. The resources below outline various ways you can help the world’s most popular open source web platform, regardless of your technical expertise.

\n\n\n\n

Get involved in testing

\n\n\n\n

Testing for issues is crucial to the development of any software. It’s also a meaningful way for anyone to contribute. 

\n\n\n\n

Your help testing the WordPress 6.9 RC2 version is key to ensuring that the final release is the best it can be. While testing the upgrade process is essential, trying out new features is equally important. This detailed guide will walk you through testing features in WordPress 6.9. For those new to testing, follow this general testing guide for more details on getting set up.

\n\n\n\n

If you encounter an issue, please report it to the Alpha/Beta area of the support forums or directly to WordPress Trac if you are comfortable writing a reproducible bug report.  You can also check your issue against a list of known bugs

\n\n\n\n

Curious about testing releases in general?  Follow along with the testing initiatives in Make Core and join the#core-test channel on Making WordPress Slack.

\n\n\n\n

Update your theme or plugin

\n\n\n\n

For plugin and theme authors, your products play an integral role in extending the functionality and value of WordPress for all users.

\n\n\n\n

Thanks for continuing to test your themes and plugins with the WordPress 6.9 beta releases. If you haven’t yet, make sure to conclude your testing and update the “Tested up to” version in your plugin’s readme file to 6.9.

\n\n\n\n

If you find compatibility issues, please post detailed information to the support forum.

\n\n\n\n

Test on your hosting platforms

\n\n\n\n

Web hosts provide vital infrastructure for supporting WordPress and its users. Testing on hosting systems helps inform the development process while ensuring that WordPress and hosting platforms are fully compatible, free of errors, optimized for the best possible user experience, and that updates roll out to customer sites without issue.

\n\n\n\n

Want to test WordPress on your hosting system? Get started with configuring distributed hosting tests here.

\n\n\n\n

Help translate WordPress

\n\n\n\n

Do you speak a language other than English? ¿Español? Français? Русский? 日本語? हिन्दी? বাংলা? मराठी? ಕನ್ನಡ?  You can help translate WordPress into more than 100 languages. This release milestone (RC2) also marks the hard string freeze point of the 6.9 release cycle.

\n\n\n\n

An RC2 haiku

\n\n\n\n

A calm hillside sighs,
Work of many now complete —
RC2 stays true.

\n\n\n\n

Props to @amykamala, @annezazu, @davidbaumwald, @westonruter and @joedolson for proofreading and review.

\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:"19350";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:75:"\n \n \n \n \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:33:"WordPress 6.9 Release Candidate 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:4:"link";a:1:{i:0;a:5:{s:4:"data";s:69:"https://wordpress.org/news/2025/11/wordpress-6-9-release-candidate-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:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Tue, 11 Nov 2025 15:34:48 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:7:{i:0;a:5:{s:4:"data";s:11:"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:"";}i:1;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: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:"";}i:3;a:5:{s:4:"data";s:3:"6.9";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:5:{s:4:"data";s:11:"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:"";}i:5;a:5:{s:4:"data";s:18:"release candidates";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: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=19317";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 first Release Candidate (“RC1”) for WordPress 6.9 is ready for download and testing! This version of the WordPress software is still under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, it’s recommended to evaluate RC1 on a test server and site. WordPress 6.9 RC1 […]";s: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:"Amy Kamala";s: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:9479:"\n

The first Release Candidate (“RC1”) for WordPress 6.9 is ready for download and testing!

\n\n\n\n

This version of the WordPress software is still under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, it’s recommended to evaluate RC1 on a test server and site.

\n\n\n\n

WordPress 6.9 RC1 can be tested using any of the following methods:

\n\n\n\n
PluginInstall and activate the WordPress Beta Tester plugin on a WordPress install. (Select the “Bleeding edge” channel and “Beta/RC Only” stream.)
Direct DownloadDownload the RC1 version (zip) and install it on a WordPress website.
Command LineUse this WP-CLI command:
wp core update --version=6.9-RC1
WordPress PlaygroundUse the 6.9 RC1 WordPress Playground instance to test the software directly in your browser. No setup is required – just click and go! 
\n\n\n\n

The scheduled final release date for WordPress 6.9 is December 2, 2025. The full release schedule can be found here. Your help testing Beta and RC versions is vital to making this release as stable and powerful as possible.

\n\n\n\n

Please continue checking the Make WordPress Core blog for 6.9-related posts in the coming weeks for more information.

\n\n\n\n

What’s in WordPress 6.9 RC1?

\n\n\n\n

Check out the Beta 1 announcement for details on WordPress 6.9.

\n\n\n\n

You can browse the technical details for all issues addressed since Beta 4 using these links:

\n\n\n\n\n\n\n\n

Want to know more about this release? Here are some highlights:

\n\n\n\n
    \n
  • Site Editor improvements and Refined content creation\n
      \n
    • Ability to hide blocks
    • \n\n\n\n
    • New blocks
    • \n\n\n\n
    • Notes on blocks
    • \n\n\n\n
    • Universal command palette in wp-admin
    • \n
    \n
  • \n\n\n\n
  • Developer updates\n
      \n
    • Updates to dataviews and dataforms components
    • \n\n\n\n
    • New abilities API
    • \n\n\n\n
    • Updates to interactivity API
    • \n\n\n\n
    • Updates to block binding API
    • \n
    \n
  • \n\n\n\n
  • Performance Improvements\n
      \n
    • Improved script and style handling
    • \n\n\n\n
    • Optimized queries and caching
    • \n\n\n\n
    • Added ability to handle “fetchpriority” in ES Modules and Import Maps
    • \n\n\n\n
    • Standardizing output buffering
    • \n
    \n
  • \n
\n\n\n\n

The final release is on track for December 2nd. As always, a successful release depends on your confirmation during testing. So please download and test!

\n\n\n\n

How you can contribute

\n\n\n\n

WordPress is open source software made possible by a passionate community of people collaborating on and contributing to its development. The resources below outline various ways you can help the world’s most popular open source web platform, regardless of your technical expertise.

\n\n\n\n

Get involved in testing

\n\n\n\n

Testing for issues is crucial to the development of any software. It’s also a meaningful way for anyone to contribute. 

\n\n\n\n

Your help testing the WordPress 6.9 RC1 version is key to ensuring that the final release is the best it can be. While testing the upgrade process is essential, trying out new features is equally important. This detailed guide will walk you through testing features in WordPress 6.9.

\n\n\n\n

Calls for testing

\n\n\n\n

Thank you to everyone who helps test the following enhancements and bug fixes:

\n\n\n\n\n\n\n\n

If you encounter an issue, please report it to the Alpha/Beta area of the support forums, or directly to WordPress Trac if you are comfortable writing a reproducible bug report. You can also check your issue against a list of known bugs.

\n\n\n\n

Thank you to everyone who helps with testing!

\n\n\n\n

Update your theme or plugin

\n\n\n\n

For plugin and theme authors, your products play an integral role in extending the functionality and value of WordPress for all users.

\n\n\n\n

Thanks for continuing to test your themes and plugins with the WordPress 6.9 beta releases. With RC1, you’ll want to conclude your testing and update the “Tested up to” version in your plugin’s readme file to 6.9.

\n\n\n\n

If you find compatibility issues, please post detailed information to the support forum.

\n\n\n\n

Test on your hosting platforms

\n\n\n\n

Web hosts provide vital infrastructure for supporting WordPress and its users. Testing on hosting systems helps inform the development process while ensuring that WordPress and hosting platforms are fully compatible, free of errors, optimized for the best possible user experience, and that updates roll out to customer sites without issue.

\n\n\n\n

Want to test WordPress on your hosting system? Get started with configuring distributed hosting tests here. Thank you to all web hosts who help test WordPress!

\n\n\n\n

Curious about testing releases in general? Follow along with the testing initiatives in Make Core and join the #core-test channel on Making WordPress Slack.

\n\n\n\n

An RC1 haiku

\n\n\n\n

As the sun rises,

\n\n\n\n

RC1 breaks its cocoon

\n\n\n\n

and emerges strong.

\n\n\n\n

Props to @akshayar, @davidbaumwald, @jeffpaul, @desrosj, @westonruter, @ellatrix, @priethor, @krupajnanda and @cbravobernal for proofreading and review.

\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:"19317";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:72:"\n \n \n \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:20:"WordPress 6.9 Beta 3";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:56:"https://wordpress.org/news/2025/11/wordpress-6-9-beta-3/";s: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, 04 Nov 2025 15:34:27 +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:6:{i:0;a:5:{s:4:"data";s:11:"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:"";}i:1;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: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:"";}i:3;a:5:{s:4:"data";s:3:"6.9";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:5:{s:4:"data";s:11:"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:"";}i:5;a:5:{s:4:"data";s:7:"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=19263";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:347:"WordPress 6.9 Beta 3 is available for download and testing! This beta version of the WordPress software is still under development. Please don’t install, run, or test this version of WordPress on production or mission-critical websites. Instead, you can evaluate Beta 3 on a test server and site. WordPress 6.9 Beta 3 can be tested […]";s: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:"Amy Kamala";s: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:5454:"\n

WordPress 6.9 Beta 3 is available for download and testing!

\n\n\n\n

This beta version of the WordPress software is still under development. Please don’t install, run, or test this version of WordPress on production or mission-critical websites. Instead, you can evaluate Beta 3 on a test server and site.

\n\n\n\n

WordPress 6.9 Beta 3 can be tested using any of the following methods:

\n\n\n\n
PluginInstall and activate the WordPress Beta Tester plugin on a WordPress install. (Select the “Bleeding edge” channel and “Beta/RC Only” stream.)
Direct DownloadDownload the Beta 3 version (zip) and install it on a WordPress website.
Command LineUse this WP-CLI command:
wp core update --version=6.9-beta3
WordPress PlaygroundUse the 6.9 Beta 3 WordPress Playground instance to test the software directly in your browser.  No setup is required – just click and go! 
\n\n\n\n

\n\n\n\n

The final release of WordPress 6.9 is scheduled for December 2, 2025, and the release schedule can be found here. Your help testing Beta and RC versions is vital to making this release as stable and powerful as possible. Thank you to everyone who helps with testing!

\n\n\n\n

Please continue checking the Make WordPress Core blog for 6.9-related posts in the coming weeks for more information.

\n\n\n\n

Find out what’s new in WordPress 6.9: Read the Beta 1 announcement for details and highlights.

\n\n\n\n

How to test this release

\n\n\n\n

Your help testing the WordPress 6.9 Beta 3 version is key to ensuring that everything in the release is the best it can be. While testing the upgrade process is essential, trying out new features is equally as important. This detailed guide provides a walk through on testing features in WordPress 6.9.

\n\n\n\n

If you encounter an issue, please report it to the Alpha/Beta area of the support forums, or directly to WordPress Trac if you are comfortable writing a reproducible bug report. You can also check your issue against a list of known bugs.

\n\n\n\n

Curious about testing releases in general? Follow along with the testing initiatives in Make Core and join the #core-test channel on Making WordPress Slack.

\n\n\n\n

Beta 3 updates and highlights

\n\n\n\n

WordPress 6.9 Beta 3 contains more than 80 updates and fixes since the Beta 2 release.

\n\n\n\n

Each beta cycle focuses on bug fixes, and more are on the way with your testing! You can browse the technical details for all issues addressed since Beta 2 using these links:

\n\n\n\n\n\n\n\n

A Beta 3 haiku

\n\n\n\n

Code is poetry,

\n\n\n\n

and poetry is magic.

\n\n\n\n

So code is magic.

\n\n\n\n

Props to @akshayar , @jeffpaul, @krupajnanda, @mosescursor, and @westonruter for proofreading and review.

\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:"19263";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:69:"\n \n \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:20:"WordPress 6.9 Beta 2";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:56:"https://wordpress.org/news/2025/10/wordpress-6-9-beta-2/";s: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, 28 Oct 2025 15:23:27 +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:5:{i:0;a:5:{s:4:"data";s:11:"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:"";}i:1;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:2;a:5:{s:4:"data";s:3:"6-9";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:5:{s:4:"data";s:11:"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:"";}i:4;a:5:{s:4:"data";s:7:"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=19253";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:334:"WordPress 6.9 Beta 2 is now ready for testing! This beta version of the WordPress software is under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites.  Instead, you should evaluate Beta 2 on a test server and site. You can test WordPress 6.9 Beta 2 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:"Akshaya Rane";s: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:5125:"\n

WordPress 6.9 Beta 2 is now ready for testing!

\n\n\n\n

This beta version of the WordPress software is under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites.  Instead, you should evaluate Beta 2 on a test server and site.

\n\n\n\n

You can test WordPress 6.9 Beta 2 in any of the following ways:

\n\n\n\n
PluginInstall and activate the WordPress Beta Tester plugin on a WordPress install. (Select the “Bleeding edge” channel and “Beta/RC Only” stream.)
Direct DownloadDownload the Beta 2 version (zip) and install it on a WordPress website.
Command LineUse this WP-CLI command:
wp core update --version=6.9-beta2
WordPress PlaygroundUse the 6.9 Beta 2 WordPress Playground instance to test the software directly in your browser.  No setup is required–just click and go! 
\n\n\n\n

The scheduled final release date for WordPress 6.9 is December 2, 2025.  The full release schedule can be found here. Your help testing Beta and RC versions is vital to making this release as stable and powerful as possible. Do check the Make WordPress Core blog for 6.9-related posts in the coming weeks for more information. Thank you to everyone who contributes by testing! 

\n\n\n\n

Catch up on what’s new in WordPress 6.9: Read the Beta 1 announcement for details and highlights.

\n\n\n\n

How to test this release

\n\n\n\n

Your help testing the WordPress 6.9 Beta 2 version is key to ensuring everything in the release is the best it can be. While testing the upgrade process is essential, trying out new features is equally important.  This detailed guide will walk you through testing features in WordPress 6.9.

\n\n\n\n

If you encounter an issue, please report it to the Alpha/Beta area of the support forums or directly to WordPress Trac if you are comfortable writing a reproducible bug report. You can also check your issue against a list of known bugs.

\n\n\n\n

Curious about testing releases in general? Follow along with the testing initiatives in Make Core and join the #core-test channel on Making WordPress Slack.

\n\n\n\n

Beta 2 updates and highlights

\n\n\n\n

WordPress 6.9 Beta 2 contains more than 33 Editor updates and fixes since the Beta 1 release, including 28 tickets for WordPress core.

\n\n\n\n

Each beta cycle focuses on bug fixes; more are on the way with your help through testing. You can browse the technical details for all issues addressed since Beta 1 using these links:

\n\n\n\n\n\n\n\n

A Beta 2 haiku

\n\n\n\n

Morning dew returns,

\n\n\n\n

Small fixes bloom in silence—

\n\n\n\n

Code finds its balance.

\n\n\n\n

Props to @davidbaumwald, @wildworks , @krupajnanda & @mosescursor for proofreading and review.

\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:"19253";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: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:23:"WordPress 6.8.3 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:59:"https://wordpress.org/news/2025/09/wordpress-6-8-3-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, 30 Sep 2025 19:31:04 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s: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=19204";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:372:"WordPress 6.8.3 is now available! This is a security release that features two fixes. Because this is a security release, it is recommended that you update your sites immediately. You can download WordPress 6.8.3 from WordPress.org, or visit your WordPress Dashboard, click “Updates”, and then click “Update Now”. If you have sites that support automatic […]";s: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:4937:"\n

WordPress 6.8.3 is now available!

\n\n\n\n

This is a security release that features two fixes.

\n\n\n\n

Because this is a security release, it is recommended that you update your sites immediately.

\n\n\n\n

You can download WordPress 6.8.3 from WordPress.org, or visit your WordPress Dashboard, click “Updates”, and then click “Update Now”. If you have sites that support automatic background updates, the update process will begin automatically.

\n\n\n\n

The next major release will be version 6.9, which is planned for December 2nd, 2025.
For more information on WordPress 6.8.3, please visit the version page on the HelpHub site.

\n\n\n\n

Security updates included in this release

\n\n\n\n

The security team would like to thank the following people for responsibly reporting vulnerabilities, and allowing them to be fixed in this release:

\n\n\n\n
    \n
  • A data exposure issue where authenticated users could access some restricted content. Independently reported by Mike Nelson, Abu Hurayra, Timothy Jacobs, and Peter Wilson.
  • \n\n\n\n
  • A cross-site scripting (XSS) vulnerability requiring an authenticated user role that affects the nav menus. Reported by Phill Savage.
  • \n
\n\n\n\n

As a courtesy, these fixes have also been made available to all branches eligible to receive security fixes (currently through 4.7). As a reminder, only the most recent version of WordPress is actively supported.

\n\n\n\n

Thank you to these WordPress contributors

\n\n\n\n

This release was led by John Blackbourn.

\n\n\n\n

In addition to the security researchers and release squad members mentioned above, WordPress 6.8.3 would not have been possible without the contributions of the following people:

\n\n\n\n

Aaron Jorbin, Abu Hurayra, Adam Zieliński, Alex Concha, Andrei Draganescu, David Baumwald, Ehtisham Siddiqui, Ian Dunn, Jake Spurlock, Jb Audras, Joe Hoyle, John Blackbourn, Jon Surrell, Jonathan Desrosiers, Michael Nelson, Peter Wilson, Phill, Robert Anderson, Ryan McCue, Scott Reilly, Timothy Jacobs, vortfu, Weston Ruter

\n\n\n\n

How to contribute

\n\n\n\n

To get involved in WordPress core development, head over to Trac, pick a ticket, and join the conversation in the #core Slack channel. Need help? Check out the Core Contributor Handbook.

\n\n\n\n

Props to Ehtisham Siddiqui, John Blackbourn, Paul Kevan, Jonathan Desrosiers, Aaron Jorbin, Weston Ruter for reviewing.

\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:"19204";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: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:57:"Portland Welcomes WordCamp US 2025: A Community Gathering";s: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:63:"https://wordpress.org/news/2025/08/portland-welcomes-wcus-2025/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Sat, 30 Aug 2025 03:03: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: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: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:2;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=19074";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:405:"A full house of attendees gathered in Portland, Oregon, for WordCamp US 2025, with thousands more tuning in online. Over four days, the flagship WordPress event brought together contributors, innovators, and community members for collaboration, inspiration, and discovery. WordPress is so unique because we’re not just a product; we’re a movement. Matt Mullenweg, WordPress Cofounder […]";s: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:69049:"\n\n\n

A full house of attendees gathered in Portland, Oregon, for WordCamp US 2025, with thousands more tuning in online. Over four days, the flagship WordPress event brought together contributors, innovators, and community members for collaboration, inspiration, and discovery.

\n\n\n\n
\n

WordPress is so unique because we’re not just a product; we’re a movement.

Matt Mullenweg, WordPress Cofounder
\n
\n\n\n\n

The WordPress event began with a dedicated Contributor Day and continued with a Showcase Day and two days of sessions filled with talks, panels, workshops, and community celebrations. WordPress Cofounder Matt Mullenweg joined a diverse lineup of speakers, panelists, and workshop leaders who brought fresh perspectives to the open web from across the globe.

\n\n\n\n

Set against the vibrant backdrop of Portland — with its iconic bridges, coffee culture, and creative energy — the Sponsor Hall buzzed as companies across the WordPress ecosystem demoed new products, shared insights, and connected with attendees. Each day offered opportunities to refuel with local flavors and international favorites, turning mealtimes into lively hubs of networking and idea-sharing.

\n\n\n\n

A Global Gathering in Portland

\n\n\n\n

WordCamp US is the annual gathering point for the WordPress community — where collaboration, creativity, and innovation intersect. This year in Portland, the event delivered an expansive program that reached every corner of the ecosystem.

\n\n\n\n

Here’s what attendees experienced:

\n\n\n\n
    \n
  • Engaging Sessions Across Tracks – Keynotes, presentations, and discussions explored the evolving web and the role of open source in shaping it.
  • \n\n\n\n
  • A Global Speaker Lineup – Voices from across continents brought local stories and global visions to the stage.
  • \n\n\n\n
  • Wide-Ranging Topics – From AI in WordPress development to accessibility, design systems, content strategy, education, and case studies of WordPress at scale.
  • \n\n\n\n
  • Hands-On Learning Opportunities – Workshops provided practical takeaways, empowering attendees to apply new skills immediately.
  • \n\n\n\n
  • A Community Built on Collaboration – Whether contributing code, exploring business strategies, or sharing creative projects, attendees found space to learn, grow, and celebrate open source together.
  • \n
\n\n\n\n

New contributors took their first steps into open source, seasoned developers explored cutting-edge AI integrations, and agencies and product teams shared strategies for scaling WordPress to meet modern needs. Beyond the technical, conversations around inclusivity, sustainability, and education underscored WordPress’s role as a tool for empowerment and positive change.

\n\n\n\n

In hallways, coffee lines, and evening meetups, attendees found the “hallway track” alive and well, spontaneous moments of connection that often became the most memorable part of the experience. Whether reconnecting with longtime collaborators or meeting someone new, these small interactions reinforced the heart of WordCamp US: a community that thrives on openness, generosity, and shared purpose.

\n\n\n\n

Contributor Day: Collaboration at the Core

\n\n\n\n

The conference opened on Tuesday, August 26, with a vibrant Contributor Day. Nearly 300 contributors filled the space, including more than 120 first-time participants who were onboarded across 19 teams. Developers, designers, translators, marketers, and community organizers worked side by side, representing WordPress expertise.

\n\n\n\n

Throughout the day, contributors tackled everything from improving accessibility and performance to refining documentation to enhancing translation tools. Beyond technical contributions, teams like Marketing and Community focused on outreach, mentoring, and shaping future-facing initiatives. Remote participants joined via dedicated channels, reinforcing the inclusive nature of WordPress’s global community. By day’s end, the collective energy was clear: WordPress continues to be built by and for everyone.

\n\n\n\n\n\n\n\n

The mix of experience in the room made this year especially notable. First-time contributors were paired with seasoned table leads who guided them through their first steps into open source contribution. Longtime contributors reconnected with their teams and advanced ongoing initiatives, while new voices added fresh perspectives and momentum. The spirit of mentorship was woven throughout, ensuring that Contributor Day was productive and welcoming.

\n\n\n\n

The results spoke for themselves:

\n\n\n\n
    \n
  • Polyglots translated more than 12,000 strings, expanding WordPress’s accessibility worldwide.
  • \n\n\n\n
  • The Community team celebrated the approval of two brand-new local meetups.
  • \n\n\n\n
  • The Training team achieved its objective of updating outdated course thumbnails.
  • \n\n\n\n
  • The Core team worked through a live bug scrub, with 9 committers and 16 contributors collaborating on improvements.
  • \n\n\n\n
  • The Documentation team completed numerous content updates to keep resources fresh and reliable.
  • \n
\n\n\n\n

Momentum carried through every table, with participants reporting measurable progress and a renewed sense of shared purpose. Contributor Day once again highlighted the unique power of collaboration in shaping the open web, proving that every contribution matters through code, translations, training, or community building.

\n\n\n\n

Showcase Day: WordPress in Action

\n\n\n\n

Wednesday, August 27, was the popular Showcase Day, spotlighting real-world innovation in WordPress. Initially expected to draw about 250 participants, Showcase Day welcomed more than 800 attendees — a powerful sign of how much energy and curiosity the community brought to Portland. The sessions demonstrated how WordPress powers meaningful work across industries from nonprofits to newsrooms, agencies to global enterprises, while staying true to open source values.

\n\n\n\n

The day opened with a keynote by Amy Sample Ward: The Tech That Comes Next. Drawing from their co-authored book with Afua Bruce, Amy highlighted the inequities embedded in today’s technologies — from dataset bias to accessibility gaps — and challenged attendees to rethink how tools are funded, built, and deployed. Their talk invited technologists, funders, and community leaders to imagine a more equitable digital future, rooted in collaboration and shared responsibility.

\n\n\n\n
\n\n
\n\n\n\n

From there, Joeleen Kennedy of Human Made shared how Full Site Editing (FSE) shapes the refresh of Wikimedia’s ongoing user experience. Her session Modernizing at Scale detailed how FSE is simplifying workflows, improving accessibility, and making the multilingual platform more sustainable for the long term. Attendees gained a behind-the-scenes look at how one of the world’s largest open knowledge platforms is leveraging WordPress innovation.

\n\n\n\n

Josh Bryant took the stage to explore what happens when Gutenberg leaves the WP-Admin dashboard. His talk, Reimagining WordPress Editing, walked through embedding the block editor into a standalone React application to support Dow Jones’s newsroom workflows. From decoupling Gutenberg to managing custom data stores, the session showcased advanced techniques for scaling editorial tools while maintaining the flexibility of the WordPress ecosystem.

\n\n\n\n

Hands-on learning was a hallmark of Showcase Day, with Jamie Marsland’s workshop leading participants through building and launching their own professional portfolio sites — no coding required. Attendees left with a fully functioning site, demonstrating WordPress’s continued ability to empower anyone, anywhere, to publish online.

\n\n\n\n

In the afternoon, Jeffrey Paul’s session Scalable, Ethical AI addressed one of the most pressing topics in today’s digital world: how to integrate AI without sacrificing ownership, privacy, or open standards. Walking participants through practical use cases with ClassifAI and local LLMs, Paul emphasized how WordPress can help content creators harness AI while maintaining autonomy over their data.

\n\n\n\n

The day closed with a forward-looking community highlight: WordPress Campus Connect. Panelists Destiny Kanno, Andrés Parra, Javier Montes de Blas, Mauricio Barrantes, and Elineth Morera Campos shared how this initiative brings WordPress into classrooms and universities worldwide. Student Andrés Parra received a scholarship to attend WordCamp. During the panel, Elineth also announced that Fidélitas University will begin offering its students a WordPress Credits program starting in October 2025, making it a mandatory addition sometime in 2026, enabling them to contribute directly to WordPress as part of their studies.

\n\n\n\n

By connecting students and educators with the open web, Campus Connect is building the next generation of contributors and innovators, ensuring that WordPress remains both a learning tool and a pathway to opportunity.

\n\n\n\n

Taken together, Showcase Day affirmed that WordPress is more than just a CMS — it is a platform for equitable technology, global collaboration, cutting-edge enterprise solutions, and the future of digital education. WordPress has the power to be both a platform and a community tool for education, equity, and innovation.

\n\n\n\n

Presentation Days: Learning, Inspiration, and Connection

\n\n\n\n

The first full day of sessions at WordCamp US 2025 opened with warm remarks from the organizing team, who reminded attendees: “The most important thanks goes to all of you. The mix of new energy and veteran experience is what makes WordCamp so special, so thank you for being here.” That spirit of gratitude and community carried throughout the event.

\n\n\n\n

The Sponsor Hall became a hub of activity, complete with raffles, the return of Career Corner, and even a Voodoo Donut Truck parked outside. Attendees lined up to test their luck at a claw machine stuffed with plush Wapuus, while others sought guidance at the Happiness Bar — a hands-on help desk for WordPress questions big and small. Between these activities, the steady buzz of conversations made it clear: the “hallway track” remained one of WordCamp’s most valuable experiences.

\n\n\n\n
\n\n
\n\n\n\n

The program itself set a high bar. Danny Sullivan’s keynote shed light on how search has evolved to meet the needs of new generations, from 24/7 demand and mobile expectations to short-form video and AI. His session gave attendees a deeper understanding of how search intersects with publishing today and sparked conversations about how WordPress can continue adapting in an era where AI shapes discovery and content.

\n\n\n\n

From there, the schedule unfolded across multiple tracks. The Core AI panel — featuring James LePage, Felix Arntz, and Jeffrey Paul — offered a look into how AI tools are woven into WordPress core. Emphasizing ethics, transparency, and user empowerment, the panel painted a roadmap for how WordPress can adopt new technologies without compromising its open-source values.

\n\n\n\n
\n\n\n\n

Hands-on learning played a significant role throughout the conference. Ryan Welcher’s interactive Block Developer Cookbook drew a packed room as participants worked through community-selected code recipes built on the latest WordPress APIs. By the end, attendees left with working examples and practical strategies they could bring back to their projects.

\n\n\n\n

The program also highlighted diverse technical perspectives. Jemima Abu’s session, A PHP Developer’s Guide to ReactJS, bridged the gap between classic and modern web development. At the same time, Adam Gazzaley’s keynote, A New Era of Experiential Medicine – AI and the Brain, invited attendees to consider the human side of technology, exploring how digital tools can advance health and well-being.

\n\n\n\n

The second day of presentations, Friday, August 29, opened with creativity and imagination. John Maeda’s keynote, Cozy AI Cooking: WordCamp Edition, used the metaphor of a kitchen to demystify AI, blending storytelling with technical insight to show how curiosity and care can guide builders in integrating AI into their work.

\n\n\n\n

Later in the day, Tammie Lister’s The System is the Strategy illustrated how design systems provide structure and scalability for growing WordPress projects. At the same time, Adam Silverstein’s Unlock Developer Superpowers with AI showcased new ways developers can use emerging tools to speed up workflows and problem-solving.

\n\n\n\n

Community stories also took center stage. In Creators around a Campfire, Anne McCarthy, Jamie Marsland, Christian Taylor, Mark Szymanski, and Michael Cunningham reflected on how YouTubers and content creators shape the WordPress ecosystem. Their session highlighted the role of storytelling and education in expanding WordPress’s reach to new audiences worldwide.

\n\n\n\n

The Sponsor Hall remained lively between sessions — with attendees meeting companies, testing demos, and swapping ideas that extended far beyond the conference halls. They also shared moments together at the arcade built for the event and added smiles, hugs, and laughter, which underscored the atmosphere: WordCamp US was as much about connection as code.

\n\n\n\n

Together Into the Future

\n\n\n\n

As the event drew to a close, WordPress Cofounder Matt Mullenweg took the stage to share the current state of WordPress and a vision for its future. He highlighted the growth in social media for WordPress with 124,726 new followers since last WCUS — and the WordPress.org website growing over 10% in users along with almost 20% in new users.

\n\n\n\n

Matt also spotlighted community initiatives shaping the future of open source education and diversity: WordPress Campus Connect, which has already reached 570 students across 11 events. Combined with the growth in overall events (77) which is a 32.76% increase over 2024. Each effort reinforced the message that WordPress is more than software; it is a global movement driven by people.

\n\n\n\n
\n\n
\n\n\n\n

He concluded with a live Q&A, fielding questions from the audience on the direction of WordPress, its role in an AI-driven web, and the importance of keeping the project open, inclusive, and adaptable. The final notes of the keynote carried into a closing party in downtown Portland, where attendees capped off the week with music, conversation, and the unmistakable joy of a community coming together.

\n\n\n\n

Closing

\n\n\n\n

WordCamp US 2025 once again demonstrated what makes the WordPress ecosystem extraordinary: a community committed to building tools, resources, and opportunities that empower people everywhere.

\n\n\n\n

This year also marked the debut of the Open Horizons Scholarship, which funded six recipients — two organizers, three volunteers, and one speaker — from five countries. A total of $14,670 supported their journeys to WCUS. The scholarship, which also supports participation at WordCamp Asia and WordCamp Europe, is designed to make flagship events more accessible to contributors worldwide.

\n\n\n\n

A heartfelt thank you goes to the organizers, volunteers, sponsors, and speakers who brought the Portland edition to life — and to every attendee who joined us in person or followed along online. We hope you leave with fresh ideas, meaningful connections, and renewed energy to help shape the future of the open web.

\n\n\n\n\n\n\n\n

Be sure to mark your calendars for the next global gatherings: WordCamp Asia 2026  in Mumbai, India, WordCamp Europe 2026  in Kraków, Poland, and WordCamp US 2026 in Phoenix, Arizona. We can’t wait to see you at the next chapter of the WordPress story.

\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:"19074";s: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";a:12:{s:6:"server";s:5:"nginx";s:4:"date";s:29:"Sat, 10 Jan 2026 06:25:21 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:"Wed, 10 Dec 2025 17:16:49 GMT";s:4:"link";s:63:"; rel="https://api.w.org/"";s:15:"x-frame-options";s:10:"SAMEORIGIN";s:16:"content-encoding";s:2:"br";s:7:"alt-svc";s:19:"h3=":443"; ma=86400";s:4:"x-nc";s:9:"HIT ord 1";}s:5:"build";i:1760643936;s:21:"cache_expiration_time";i:1768069522;s:23:"__cache_expiration_time";i:1768069522;}', 'off'), - (150, '_site_transient_timeout_feed_mod_9bbd59226dc36b9b26cd43f15694c5c3', '1768069522', 'off'), - (151, '_site_transient_feed_mod_9bbd59226dc36b9b26cd43f15694c5c3', '1768026322', 'off'), - (152, '_site_transient_timeout_feed_d117b5738fbd35bd8c0391cda1f2b5d9', '1768069523', 'off'), - (153, '_site_transient_feed_d117b5738fbd35bd8c0391cda1f2b5d9', 'a:6:{s:5:"child";a:1:{s:0:"";a:1:{s:3:"rss";a:1:{i:0;a:6:{s:4:"data";s:3:"\n\n\n";s:7:"attribs";a:1:{s:0:"";a:1:{s:7:"version";s:3:"2.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:1:{s:7:"channel";a:1:{i:0;a:6:{s:4:"data";s:112:"\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\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";s: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:16:"WordPress Planet";s: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:28:"http://planet.wordpress.org/";s: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:"language";a:1:{i:0;a:5:{s:4:"data";s:2:"en";s: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:47:"WordPress Planet - http://planet.wordpress.org/";s: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:"item";a:50:{i:0;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:15:"Matt: Small Hit";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:23:"https://ma.tt/?p=151039";s: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:32:"https://ma.tt/2026/01/small-hit/";s: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:1065:"

The NY Times has a profile of John Ternus as a possible successor to Tim Cook that has a number of ridiculous lines; it’s quite bad, but this is one of my favorites:

\n\n\n\n
\n

Apple has had many small hits under Mr. Cook and continues to be one of the most profitable companies in the world. 

\n
\n\n\n\n

Goodness! I would love to have a hit someday as the small as the ones Apple has had under Cook. Apple Watch sells more than the entire Swiss watch industry. Airpods are the most popular headphones in the world. Their market cap is bigger than the GDP of all but four countries in the world.

";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Fri, 09 Jan 2026 05:45:44 +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:1;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:60:"Open Channels FM: Eight Years and 1.53 Million Seconds Later";s: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=113805";s: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://openchannels.fm/eight-years-and-1-53-million-seconds-later/";s: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:137:"With enough words spoken to fill the Harry Potter series three times over, BobWP shares some fun numbers on this 8th year of the podcast.";s: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, 08 Jan 2026 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: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:2;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:30:"Matt: Beeper &amp; Day One";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:23:"https://ma.tt/?p=151033";s: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://ma.tt/2026/01/beeper-day-one/";s: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:420:"

Pankil Shah writes I replaced WhatsApp, Telegram, and Messenger with this one app. (It’s Beeper.) And Wirecutter picks the 3 best journaling apps of 2026. (It’s Day One.)

";s: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, 08 Jan 2026 05:37:01 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s: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:3;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:111:"WPTavern: #199 – Brian Coords on WooCommerce’s Challenges and Innovations in a Changing WordPress Landscape";s: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=202139";s: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:122:"https://wptavern.com/podcast/199-brian-coords-on-woocommerces-challenges-and-innovations-in-a-changing-wordpress-landscape";s: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:55972:"
Transcript
\n

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

\n\n\n\n

Jukebox is a podcast which is dedicated to all things WordPress, the people, the events, the plugins, the blocks, the themes, and in this case, WooCommerce’s challenges and innovations in a changing WordPress landscape.

\n\n\n\n

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

\n\n\n\n

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

\n\n\n\n

So on the podcast today, we have Brian Coords.

\n\n\n\n

Brian has been active in the WordPress space for over a decade, starting out in agencies, building and managing websites, and is now a developer advocate at WooCommerce, bridging the gap between woo’s internal engineers and the wider developer community. His journey includes being a high school teacher, working for nonprofits, and writing for the WP Tavern before landing his role at Automatic.

\n\n\n\n

If you’re interested in where WooCommerce and WordPress itself are headed, this episode will help as Brian shares insights on WordPress’s evolving focus, the importance of embracing AI, and how a slower pace of change can be a strength in any open source ecosystem.

\n\n\n\n

He talks about the massive rebrand at WooCommerce, the challenges and opportunities in competing with SaaS giants, and the unique developer relations role that balances his technical experience with communication skills.

\n\n\n\n

We get into how the team Brian works with supports developers and agencies with documentation, office hours, and feedback loops, and how WooCommerce’s global Reach makes for a complex but thriving ecosystem.

\n\n\n\n

There’s discussion about recent marketing efforts, the realities of open source support, and the surprising diversity of WooCommerce users worldwide.

\n\n\n\n

Towards the end, we look ahead to what’s coming for WooCommerce, which is greater integration with block based editing in WordPress Core, major investments in AI to streamline store management, and the future landscape of online shopping.

\n\n\n\n

If you want to hear how WooCommerce and WordPress are responding to a rapidly changing tech environment, this episode is for you.

\n\n\n\n

If 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\n

And so without further delay, I bring you Brian Coords.

\n\n\n\n

I am joined on the podcast by Brian Cords. Hello Brian.

\n\n\n\n

[00:03:09] Brian Coords: Hey, thank you for having me.

\n\n\n\n

[00:03:11] Nathan Wrigley: You’re very welcome. I have a lot of respect for Brian. I’m hoping that by the end of this podcast you also have a lot of respect for Brian.

\n\n\n\n

Brian has been kind of part of my browsing on the internet and WordPress journey, I want to say, for five or six years, something along those lines, I’ve known about you and followed your stuff. Pretty much everything that you’ve done. I’m really pleased that you’ve come on the podcast to talk to me today about WooCommerce.

\n\n\n\n

Those people that don’t know Brian, I’m going to give you an opportunity just to introduce yourself. So would you mind, I know it’s a banal question, but little potted bio, couple of minutes about your WordPress journey, or you can talk about the guitars in the background if you prefer.

\n\n\n\n

[00:03:47] Brian Coords: Yeah, nobody wants to hear me talk about or play a guitar.

\n\n\n\n

Yeah, so I’m Brian. I’m a developer advocate at WooCommerce, so I work on sort of the community side, bridging the gap between the community of developers that build on top of WooCommerce or build stores with WooCommerce, and then our internal engineers and make sure that communication channel stays open.

\n\n\n\n

But before that, I spent probably 10 years working at a WordPress agency. So building sites, managing team of developers, doing all the kind of work that a WordPress agency does and sort of lived through that time from early page builders all the way until the last few years in the rise of the block editor. So I kind of have that personal experience of what it’s like just selling WordPress websites for a living.

\n\n\n\n

And before that, my career went through a whole bunch of different places. Was a high school teacher, worked at nonprofit, all sorts of different things. So happy to be at Automattic, where I get to sort of teach, sort of build websites and just hang out with people.

\n\n\n\n

[00:04:44] Nathan Wrigley: I had no idea that you were a high school teacher. I have enormous respect for anybody who takes on a role in public education. So that’s interesting.

\n\n\n\n

So I’m going to segue a little bit. This question’s just occurred to me from everything that you’ve just said, given that you’ve been in the space of WordPress for the last 10 years, more.

\n\n\n\n

So it’s a bit of a peculiar one, but are you as excited about it as a project as you were, let’s say, 10 years ago? Do you still think that it’s got the future that you probably thought it had a decade ago?

\n\n\n\n

[00:05:13] Brian Coords: Yeah, I mean that’s a good question. I would say overall, yes, I am excited about it. I think that if there’s any concerns about WordPress or things to be not excited or scared about, it has nothing to do with WordPress and has everything to do with the internet as we know it, and AI and everything changing and economics and all these other sorts of things.

\n\n\n\n

The project itself, it seems to, I would say over the last year, really narrowed its focus on what it thinks its role is. And I think it’s adopted the AI change really well, and that’s made me very excited. I think it understands, you know, I think some of the things about WordPress is sometimes the day to day, you feel like the decisions are a little confusing, but if you look at it over the long term, it’s half the internet. So clearly the decisions tend to work out in the long run. So I think I still have faith in the project.

\n\n\n\n

[00:06:01] Nathan Wrigley: I find that the slow pace of change is actually one of its greatest strengths, but it takes an awful lot of mulling it over and sitting down and being calm with yourself to think, why hasn’t it got all these features? Why is it not keeping track of this, that, and the other thing that’s going on on the internet? But broadly, when you look back at any 2, 3, 4, 5 year period, I think usually that was the right decision, although it feels like it might not have been the right decision when that moment is passing.

\n\n\n\n

[00:06:32] Brian Coords: Yeah, there’s a lot of people who look at a lot of decisions, like say the block editor and they say, well, why didn’t they just take Elementor and stick that in Core and stuff, you know? Regardless of the fact that Elementor is a successful business that probably doesn’t want their software stolen and taken into Core. But I think if you look at it now you, a lot of those decisions would’ve seemed a little crazy.

\n\n\n\n

And the fact that it doesn’t throw everything and that it just throws the kind of basic foundational layer, and then it allows something like Elementor or any of these other page builders to be successful businesses and do their thing. The fact that it empowers that to exist, or it empowers all the other builders to exist, or it empowers WooCommerce or all these other plugins to exist, is a testament to the fact that it didn’t try to be everything to everyone, and it just kind of stayed in its lane as a foundational layer. And so I think it’s, it doesn’t feel like it’s doing that much, but it’s working out well for everyone in the ecosystem.

\n\n\n\n

[00:07:24] Nathan Wrigley: We don’t want to get into this, in fact, I’m going to insist that we don’t get into this. But I think it is a really interesting time with the tsunami of things that are going on with AI to see how a CMS can cope with the future with AI as a possible tool to do everything. To do every single thing that would be required in building a website. It’ll be interesting to see how the project goes.

\n\n\n\n

And, you know, there’s a lot going on there, and I think this is one of those moments where we have to just sort of sit down and be calm and see what the teams are doing and just have faith. I think at least that’s my position anyway. So you don’t have to respond to that if you don’t want to.

\n\n\n\n

[00:08:00] Brian Coords: Yeah, I’m just overwhelmed by AI sometimes on my day-to-day work. And so I do have to remind myself the only thing you can do is sit and go slow and just see what happens, because I don’t think we can predict it.

\n\n\n\n

[00:08:11] Nathan Wrigley: No, I think you would be right. So when you joined Automattic, how long ago was that now? Roughly.

\n\n\n\n

[00:08:16] Brian Coords: Almost a year. Early this year.

\n\n\n\n

[00:08:18] Nathan Wrigley: Yeah. Did you have intuitions at that point that WooCommerce was where you were going to end up? Was that where you were heading or is that just sort of serendipity?

\n\n\n\n

[00:08:26] Brian Coords: No, well, not really. When I first started, I kind of was all over the place. I was here at WP Tavern for a few weeks as part of that trial writing project. I did some work with wordpress.com and kind of got to see behind the scenes of that, and I had friends at all different parts of the company.

\n\n\n\n

What I knew that I wanted to do was developer advocacy or what some people call developer relations. I knew that that’s where the role that I wanted, but I don’t think I would’ve thought of Woo. But then when the opportunity came up, there was a lot that I really liked about WooCommerce that I thought it had such a strong idea of what the product is, who the customers are. They had just done that rebrand where they had the new logo and the new colours and the new design. It felt like the whole company was kind of just doing really cool things.

\n\n\n\n

So once the opportunity came up, I’ll be honest, I didn’t build a lot of WooCommerce stores before I joined. So other than being kind of afraid of learning all of this stuff it was, definitely it made sense once the opportunity came up.

\n\n\n\n

[00:09:22] Nathan Wrigley: Yeah. With the sort of WooCommerce side of things, are you happy with that move? You know, you’ve got your feet onto the table now and you feel that’s where you’re going to stay, I guess, for the near future.

\n\n\n\n

[00:09:32] Brian Coords: Yeah, definitely. What’s interesting about Automattic is over the last year, since I joined it’s been kind of a turbulent year at the company, but one of the things they’ve been really trying to do is centralise things and be more consistent.

\n\n\n\n

So in WooCommerce, there’s a lot of stuff that WooCommerce would go off and do, and it would be kind of different from say, Core WordPress or wordpress.com or WordPress VIP, or all these different kind of parts of WordPress inside of Automattic.

\n\n\n\n

And over the last year, they’ve tried to kind of centralise and say, why do we have three different plugins that are doing similar things. Or why can’t we streamline all of this or have everybody working on the same stuff. So WooCommerce has been doing a lot of work really towards Core WordPress, and making the Core WordPress experience better so that WooCommerce can use those tools instead of doing it.

\n\n\n\n

So in a weird way, I’ve actually gotten to collaborate a lot more with some of the other sides of the company and people who do this job but are not in WooCommerce. There’s a whole team that has people like, let’s see, Ryan Welcher, Justin Tadlock, Jonathan Bossenger, that whole group. So it’s kind of nice. We’re in our little Woo bubble too, but then I get to work with them and learn from them, and work on Core WordPress too. So it’s kind of, it’s been nice. We’ve kind of brought everyone a little closer, I think.

\n\n\n\n

[00:10:42] Nathan Wrigley: It is kind of interesting over the last 18 months or so, having spoken to quite a few Automatticians, it does feel like the landscape inside the company has changed. I don’t think we need to go into that, but it is interesting you saying that, because feels there was some realignment and moving around, and decisions about which teams were going to collaborate more with which teams. And that seems like what you are saying as well, so there we go.

\n\n\n\n

So on the WooCommerce side of things, you mentioned that you are a developer, well, you said developer advocate, developer relations, kind of the same term really. For anybody listening to this who doesn’t know what that is, basically, what is the job contract that you’ve got there? What is your role?

\n\n\n\n

[00:11:19] Brian Coords: Yeah, so we cover a few different things. From a high level, it really is, we’re there to help developers inside the company know what developers outside the company are doing and vice versa. So if you’re building stores with WooCommerce or you’re building extensions to sell in the marketplace, you know, like plugins that add-on to WooCommerce, or you’re working at one of our partner companies like Stripe and Google and Snapchat and Reddit and all these companies that integrate with WooCommerce, our job is to make sure that you have access to good documentation and good examples.

\n\n\n\n

We make sure that when a new version of WooCommerce comes out, which is every five weeks, that we publish all the release notes, and make sure that that information is, you know what’s coming, what’s changing, what’s different. We do some video content, we do some office hours hangouts in a community Slack, we keep an eye on the repo for community contributions. So it’s a lot of different things, but it’s really just, at the end of the day like, hey, does this help developers on either side of the wall move forward basically?

\n\n\n\n

[00:12:19] Nathan Wrigley: Do you have to be technical in order to carry out your role, or would there be any scope for somebody in your position to be non-technical? Let’s say, you’re a marketing person or something like that. Is there any aspect of that to it? Or is everybody doing your kind of role a technical person with a background in coding and what have you?

\n\n\n\n

[00:12:37] Brian Coords: It’s a unique role and it’s kind of a long debate inside of the developer relations community is, does this team go in an engineering department or does it go in the marketing department?

\n\n\n\n

So for example, at Automattic there is another developer relations team that handles a lot of that WordPress Core stuff that I was talking about, and they’re kind of a little more attached to engineering.

\n\n\n\n

For our team, we’re part of the WooCommerce marketing department. So of course that’s going to change a little bit of what we work on, how our decisions are made, that sort of stuff. I don’t think it changes that much, and in some ways it gives us access to a lot of cool stuff like their design team, which is really nice to have.

\n\n\n\n

So it goes both ways, but you really have to be a unique person where you have to be a good communicator, and you have to have some amount of technical experience. You kind of really need both, because at the end of the day we look at a new version of WooCommerce and it’s, oh, we changed this API and it’s going to affect developers in this way. It’s like, I need to be able to communicate that. I need to be able to understand it. I need to be able to know what the implications of that are. So it’s kind of both.

\n\n\n\n

[00:13:35] Nathan Wrigley: Do you produce this content in multiple languages or is it kind of English first and then it gets translated in some other department, or indeed does it get translated into another language, do you know?

\n\n\n\n

[00:13:45] Brian Coords: No, I think pretty much English first. There is a lot of stuff that is translated for, I would say on the, what we call like the merchant side, sort of like the user side. So if you’re looking for extensions in the marketplace, that’s available in a lot of different languages. The software itself is translated, but the developer stuff is pretty much English only. Because we’re a really small team. Like when we look at, there’s only, at any time, three or four of us working on this for software that’s on whatever, 8% of the internet, so English only for now.

\n\n\n\n

[00:14:13] Nathan Wrigley: Yeah, the reason I ask, maybe you were present at State of the Word where Matt went through a bunch of statistics. And it was curious to see, for the first time, so WordPress more broadly, not WooCommerce specifically, but WordPress more broadly is now used on non-English websites more than it is on English websites. And so if we’d have had this interview a week ago, that question probably would not have arisen.

\n\n\n\n

But I’m guessing that WooCommerce goes along for the ride there. I’m guessing it’s not just on English speaking websites, I’m guessing WooCommerce is just literally in more or less every part of the world, in every locale and every jurisdiction. There are people who are using your code, but probably not speaking English.

\n\n\n\n

[00:14:52] Brian Coords: That’s definitely the case. So we have a free Slack, that’s the WooCommerce Community Slack, and it’s more than 30,000 people in there. It’s all over. You can definitely tell that people are coming from all over the world.

\n\n\n\n

One of the weird things about e-commerce is it’s very geographically based because the currency matters. The payment provider that handles the payments matters. The shipping options matter. So there are certain places where you can only use WooCommerce because you want to use the custom bank payment provider that’s only in this one country, that sort of stuff.

\n\n\n\n

So because of how diverse the types of integrations you would need, yeah, WooCommerce is very global. That was one of the things that really surprised me was finding out that, oh yeah, there’s payment providers you’ve never heard of, and banks you’ve never heard of, and shipping companies you’ve never heard of and they need to integrate.

\n\n\n\n

[00:15:40] Nathan Wrigley: And tax. So much tax, I’m sure.

\n\n\n\n

[00:15:43] Brian Coords: Oh my, yeah.

\n\n\n\n

[00:15:45] Nathan Wrigley: I’m sure it gets brutal. I don’t know exactly when the time was, but it feels like about, I’m going to say 18 months or something, when Woo underwent a fairly significant rebranding. So from a marketing point of view, the logo changed, the colour palette changed, the website changed.

\n\n\n\n

I didn’t really notice until that moment when it did change that it needed to have changed, if you know what I mean? It just always looked fine to me. But the moment it changed, I kind of got a sense that, oh, okay, this is real now. We’ve kind of identified that there are these SaaS players, so you know, we don’t need to name them, we all know who they are, where you pay your monthly fee and you get a shop and yada, yada, yada. But I don’t know if that’s a part of the roadmap.

\n\n\n\n

And summing it up as more serious, obviously that’s trivial and a bit, really not the right term, but do you know what I mean? It feels like WooCommerce has, I don’t know, grown up a little bit over the last 18 months and realises the, I don’t want to use the word fight, but I’m going to, the fight that it’s in with the SaaS players.

\n\n\n\n

[00:16:41] Brian Coords: Yeah, I think that was the intention of that rebrand. So I think the goal was to go from saying, hey, we’re a WordPress plugin that lets you sell things. To saying, we’re an e-commerce solution, and we happen to run on WordPress. It’s kind of just a different framing.

\n\n\n\n

But one of the big things is a huge investment in marketing. And so the marketing team has gotten really big. We have a pretty killer CMO. There’s a ton of investment into different types of ads and demand generation and leads and all this stuff that I kind of don’t understand, a lot of like acronyms that are thrown around that I don’t fully track. But it’s a huge investment to basically reposition WooCommerce as something that feels a bit more modern and, not a SaaS, but kind of can sit there next to the SaaS. So when a company is looking at the options and they’re saying, oh, do we want to use Magento or BigCommerce or Shopify or WooCommerce, we look like we belong there, and it looks like it’s an option.

\n\n\n\n

[00:17:36] Nathan Wrigley: Yeah, it’s kind of curious that there’s, real money has to be spent on this endeavor because, I was in London just a few weeks ago and I walked onto the Tube, you know, the underground train network. And the platform that I was on, the first thing that I saw when I walked onto the platform was this huge ad for Shopify. And then I looked left and I looked right and it was Shopify ads all the way down. They’d obviously, I mean I can only imagine how expensive that real estate is.

\n\n\n\n

But the same thing would be true on radio, on TV, online, on print. These companies have gigantic, I mean truly eye watering budgets. And I don’t know if the WooCommerce side has to be a bit more guerrilla or if you also have a fairly gigantic budget. I don’t know if you’re able to peel any of that back. It sounds like marketing’s not really your thing, but maybe there’s bit of interest there.

\n\n\n\n

[00:18:25] Brian Coords: Yeah, I mean since we’re in the team, we see a lot of it. We did an event earlier this year where our marketing team walked through some of this stuff, so I can maybe give you a link to put in the show notes. We kind of wrote it, did a write up about that very concept. Because we get asked that a lot, why am I seeing Squarespace and Shopify ads everywhere? And it’s, you know, obviously if you look at the size of the companies, it’s a fact, like a whole factor difference, like we’re not anywhere near the size of those companies.

\n\n\n\n

And part of the issue is that you don’t just go to woocommerce.com and hand us money, you know? The Core plugin is free so the way we monetise is a lot different. You can run it anywhere. You can, a lot of people that run WooCommerce, they’re not paying us in any way because they’re using their own payment providers and those sorts of things.

\n\n\n\n

So it is definitely more of a challenge. But this past year, that’s why the rebrand started, that’s why they’ve been investing in it. And it’s been kind of cool. There’s a lot of podcast ads that we’ve been running and LinkedIn ads and all these sorts of things. And part of the issue too is that our target market is just much more narrowly defined, and so WooCommerce is much more customisable. It’s extensible. You can do whatever you want with it. And that’s just a different value proposition then you would say to somebody who just wants the easy SaaS solution.

\n\n\n\n

So it’s a lot of things, but it’s kind of just knowing who we want and targeting directly to them. And so you probably won’t see ads on the Tube at any time, but for certain areas you’re going to start seeing really targeted ads for people at the places that would actually really benefit from having WooCommerce.

\n\n\n\n

[00:19:51] Nathan Wrigley: That was the thought that I had about seeing the Shopify, in this case, ad on the London underground was just how much the audience, the eyeballs that were actually staring at that had no interest in it at all. And so almost like the bottomless pit of money that they must have to throw at these things. And obviously it sounds like you are targeting people.

\n\n\n\n

Are you kind of like riding on the coattails of WordPress in general? In other words, are you targeting existing WordPress users in the hope that they’ll think, okay, yeah, we’ve got a WordPress site, now it’s time to upgrade to WooCommerce, or is it a bit more scatter gone, you need a website, you need e-commerce, we’re your solution?

\n\n\n\n

[00:20:26] Brian Coords: Yeah, I mean that’s an interesting question because I think when WordPress was growing, it was a lot easier to target inside of WordPress, and I think now we’re seeing all the big companies reevaluate that. So I would say the ads that I see a lot are, you know, Hostinger, Elementor, wordpress.com. And I think a lot of them are realising now, you know, we need to target outside.

\n\n\n\n

So for example, WooCommerce this year, we go to all the WordCamps, but we started going to e-commerce expos that are trade shows that are not anything to do with WordPress. It’s just for people in the commerce industry and partnering with companies that are in the marketing and commerce side. And so, yeah, it really is about branching out and finding those new areas.

\n\n\n\n

I think all WordPress companies are going to kind of have to start facing that as well because WordPress is 43% of the web. It’s like, how much bigger realistically can you get, once we pass 50%? I mean that’s, it’s pretty hard to grow at that point.

\n\n\n\n

[00:21:19] Nathan Wrigley: Did you attend any of those events? The sort of expos for e-commerce more generally?

\n\n\n\n

[00:21:23] Brian Coords: No.

\n\n\n\n

[00:21:24] Nathan Wrigley: Yeah, I was going to follow up with a question about whether or not there was brand recognition. At those events, if you’ve got a WooCommerce stall, I was curious as to know what proportion of the public would walk past a WooCommerce sign and go, yeah, yeah, I know what that is, I’ve got complete familiarity with it. I feel like some of the SaaS ones, maybe they’ve done that job so well that that brand recognition is there, but maybe that work still needs to be done on the Woo side, I’m not sure.

\n\n\n\n

[00:21:49] Brian Coords: There’s definitely not going to be the same level of brand awareness. I think, like you said, like guerrilla marketing is definitely part of it. One of the things they do at these is they’ll find a local store that uses Woo and use them for swag. So they’ll get really good swag. They did like homemade, like embroidery things and all this sort of stuff. And so they end up getting very popular because of how cool the swag is, and how meaningful it is, and it supports a local merchant. But yeah, it’s a big battle, you know, to raise that brand awareness.

\n\n\n\n

[00:22:18] Nathan Wrigley: Okay, let’s just turn a bit more to your Dev Rel stuff. And you were saying that, well, I don’t need to repeat what you said. You said a little while ago, who it is that you are interfacing with out in the real world.

\n\n\n\n

How does that work? Like, do you just sort of put content out there and tutorials out there and videos out there and change logs out there, and kind of hope that the people that need it get to see it somehow? Or is there more of an endeavor of, I don’t know, providing the bat phone, for want of a better word, to agencies and people so that they can communicate directly with you? How does that whole thing work?

\n\n\n\n

[00:22:48] Brian Coords: Yeah, so it’s interesting because there’s definitely different audiences that we have. So we have developers who are building extensions and are, you know, they’re selling WooCommerce plugins basically. And so we have them that we need to communicate with. And then we have the agencies and the agencies are building WooCommerce stores for people. So they’re setting up WooCommerce.

\n\n\n\n

And those two audiences, they both need some of the same information, but they also need a lot of different information. And so we’ve kind of seen a lot of change over the last year.

\n\n\n\n

Automattic has launched a program called Automattic for Agencies. I’m not sure if you’ve seen this. It’s kind of like an agency program where you sign up and you get access to extensions, you can get affiliate fees, you can get kickbacks on payments, volume, all that sort of stuff.

\n\n\n\n

So that side has really, sort of owned the agency space. And so what’s nice is we can go to them with any new information. We could say, hey, just pass this along to your audience in your next newsletter, that sort of thing. But really, if we want to have the conversations, I would say the Slack is the most common and we never lack for feedback. We get plenty of feedback. We do a monthly office hours in Slack or sometimes on Zoom, where developers will come and share their questions, that sort of thing. So we get tons of feedback. But yeah, it’s really just about being present there, being present on Twitter. We’re ramping up YouTube, because YouTube’s really important right now. And we’re just, like I said, small team and trying to hit all of those different content areas.

\n\n\n\n

[00:24:13] Nathan Wrigley: My sort of follow up question there really was going to be something about shouting into the void and I wondered if that, it was in fact what was happening. But it sounds from what you are saying is if, no, there is an actual loop there. You put stuff out and you get feedback. I mean I’m guessing, from the sounds of it, there’s maybe more feedback than you can actually cope with, which is intriguing. I had an intuition that would be the other way around.

\n\n\n\n

[00:24:32] Brian Coords: Yeah, I mean it definitely depends on, sometimes you get feedback that’s kind of the same. We know what people want, and we’re trying to work as fast as we can to make the changes that developers and the community want. And sometimes you put out a feature and it doesn’t resonate.

\n\n\n\n

But generally when we do calls for testing of a new feature we’ll post, all right, we have a new feature coming, it’s in experimental mode, here’s how to turn it on and then let us know if it’s working for you, if it’s working with your plugin and stuff. We definitely have a pretty healthy group that will take the time to contribute back, let us know if things are working. I mean it’s an open source project. We get community pull requests. We get people, they need a feature, they build it and submit it and, you know, hopefully we merge it. And so the feedback loop is definitely there.

\n\n\n\n

But if you’re, the thing that I’ve learned about WordPress is that I think it’s like an iceberg and like 90% of the WordPress community, they’re not really listening to WordPress content, and they’re not listening, they’re not even tracking WordPress in general. And so I think there’s probably a much broader community that we’re not getting access to, and they’re just living their daily lives and just building stores and stuff. And so I would love to find more of those groups. I think Facebook is probably a place that we haven’t even touched yet, and I’m sure a lot of them are there. There’s definitely work to be done there.

\n\n\n\n

[00:25:46] Nathan Wrigley: Yeah, I think that was maybe the piece that I was thinking. Is that Woo is the biggest solution out there. If memory serves, Woo is the biggest e-commerce platform out there. It kind of dwarfs all the others. I don’t even know if WooCommerce is bigger than the rest of them combined but, you know, it’s on that kind of level.

\n\n\n\n

And yet, if you were to have a, I don’t know, a Shopify store or something, there is probably like a little submit feedback button in the UI somewhere, and you can talk to the support representatives, and they’ll have the answer specifically because they know exactly what the platform does.

\n\n\n\n

But the jigsaw puzzle over on the Woo side is, yeah, it must be much more messy, much more kind of difficult to wrangle everything. You know, you’ve got people, end users who are using WooCommerce. You’ve got developers who are building plugins. You’ve got agencies who are building on behalf of clients. You’ve got people who are building rival things so you’re in direct competition with people in the plugin space who are building rivals to WooCommerce. It’s just, well, messy. But that’s open source, right?

\n\n\n\n

[00:26:44] Brian Coords: I mean that’s exactly what it is. You know, we have, you have WooCommerce support, right? And our support team is really great. Every time I go to a conference and one of our support engineers is there, I’m always pointing to them to answer all the questions because they know the product so deeply.

\n\n\n\n

But if you imagine the, you know, most WooCommerce stores will come to us for support, but there’s no financial relationship. If they’re not using our hosting company or they’re not using Woo Payments, or they’re not using extensions that they bought in the marketplace, maybe they bought their extensions just off the internet or something, there’s a good chance they might not be paying us any money at all. And yet, you know, we’re going to support them and make sure that they’re having a good experience, because that’s kind of the goal of it. So it’s definitely a bit of the Wild West out there.

\n\n\n\n

[00:27:28] Nathan Wrigley: There must be some kind of strange tension there as well. I mean, you’ve described it very eloquently and I think you’ve stepped around that beautifully, but that is a peculiar thing, isn’t it, that you would not have to deal with elsewhere? The fact that you may very well be dealing with rivals. You may well be dealing with people who are using up your time, but like you said, they have no relationship with you financially at all, but they built something, third party thing on top of the WooCommerce ecosystem, and I guess that’s just the broader philanthropic goal of something like WooCommerce. You’ve just got to step up and be there.

\n\n\n\n

[00:28:00] Brian Coords: Yeah, I mean I think wordpress.com probably has a lot of the same things because if you Google WordPress, you know, you’re probably going to end up on wordpress.com, even if you’re not their customer.

\n\n\n\n

On the flip side though, you know, the benefit of being open source is that, like I said, we get community contributions. We get a lot of eyes on the software. A lot of people, they give us feedback, they give us code, they give us all sorts of things. So it is a bit of a trade off.

\n\n\n\n

But I think it’s kind of worth it for the software to just exist freely and for everybody who runs on it, to always kind of know deep down that they own their store and they can do whatever they want with it, and they can put it wherever they want, and Automattic or WordPress or WooCommerce is never really going to take that away from them or take them down, you know?

\n\n\n\n

[00:28:38] Nathan Wrigley: Yeah, I’d be curious to know what proportion of Woo kind of props up the broader WordPress project, if you know what I mean? I don’t think we need to go into that, and I don’t know if there’s any data out there anywhere, but there must be a lot of money sloshing around inside the WooCommerce ecosystem. It’d be interesting to know what proportion the broader WordPress ecosystem was was made up of just Woo stuff. That’d be an interesting thing to dig into.

\n\n\n\n

[00:29:01] Brian Coords: When I worked at an agency, the kind of rule was if you wanted to make money making websites, you did websites that made money. So e-commerce was a big part. People, you know, their website’s more critical to their business, so they’re going to be buying more plugins, they’re going to be paying more developers, they’re going to be using more tools. So I think that’s part of it. E-commerce isn’t the only way websites make money. There’s definitely a lot of other things, big publishers and that sort of stuff. But yeah, it’s definitely a big part of the community.

\n\n\n\n

[00:29:26] Nathan Wrigley: Well, big and not going anywhere. Speaking of going places though, what’s coming up in the near future? So when we’re recording this, it’s kind of the middle of December. I imagine this episode will hit in the beginning of 2026 at some point. Roughly around that kind of time, what’s the thinking? What are the, some of the top level items that people may not know about? What’s the stuff that you’re working on? Roadmap stuff, I guess.

\n\n\n\n

[00:29:46] Brian Coords: Yeah, I would say the big things that I’ve seen that are really the big focus right now is, number one is really making WooCommerce closer to WordPress Core, which means making WordPress Core a little better. So WooCommerce has been pretty ahead of the curve of transitioning to blocks, using block templates and block based everything. So, I mean you can do your whole WooCommerce store in the block editor, which gives you a lot of kind of design freedom. But that means if we need something better in the block editor, we’ve got to commit that up to the block editor and make Gutenberg better. So there’s a lot of work to improve a lot of stuff inside of Gutenberg so that your WooCommerce experience is better.

\n\n\n\n

So that’s been a lot of the focus. And so we’re, there’s a lot of cool stuff coming around just new blocks, new block designs, patterns, things you can do to really customise the visual aspects of your store. And then the second big thing, I think that is taking up everybody’s mental space is AI. You can’t not talk about it. So it’s, that’s the other piece.

\n\n\n\n

[00:30:42] Nathan Wrigley: Okay, despite the fact that it consumes all the air in the room, it is so fascinating. Do you have any insight into some of the things that may be on the agenda for a WooCommerce store owner in the near future? The kind of things that you are thinking of. Even if they’re just aspirational for a WooCommerce store owner. I’d be curious to hear your thoughts on that.

\n\n\n\n

[00:31:01] Brian Coords: Yeah, I think there’s two different aspects of it that are really going to be important. One is managing your store. So we have right now in beta what’s called an MCP server in Woo. And what it basically lets you do is open up, you know, ChatGPT or Claude or something and say, log into my WooCommerce store and update all my products, put them on sale, change out the pictures, write better copy for them. It kind of lets AI log into your store and do things for you.

\n\n\n\n

And so that’s in beta right now, and it’s pretty cool. I’ve been using it. It’s pretty neat. I’ve been setting up some demo stores for people, and I just go, all right, log in and make me, you know, 50 fake sweaters with a nice description in different colours. And it does it. It’s kind of mind blowing.

\n\n\n\n

[00:31:43] Nathan Wrigley: Do you trust it at this point? And I don’t mean, you know, the broader kind of debate about AI and whether it’s trustworthy. I mean, in terms of the store, you know, do you trust it to update all of the particular product lines and what have you, or update the images? Do you feel that if you’ve given that prompt, you can sort of sit back and go, okay, that is definitely being done?

\n\n\n\n

[00:32:02] Brian Coords: I haven’t done it on a live site, I will say. The nice thing too is you can have it ask you for permission every single time, and you can kind of see what it’s going to do. That obviously kind of ruins the whole efficiency part of it, but it can do that. So I think it’s early days.

\n\n\n\n

But I do think, once you start interacting where you don’t have to actually log in and click a bunch of buttons, and you can just tell your computer what you want it to do, I think it’s going to be hard to come back from that. I think people are going to start expecting it. But I, yeah that’s, I mean we’re not doing that on the live, on any live sites, I hope not.

\n\n\n\n

[00:32:32] Nathan Wrigley: So that was half of it by the sounds of it. That was one of the threads. What was the other one?

\n\n\n\n

[00:32:35] Brian Coords: The other one, I think is about how people are going to be shopping in the future. And I think showing up, obviously all these chat companies, they need to make money, and we know that they’re going to start showing ads and they’re going to start wanting to do the same thing when you go to Google, and you look up something and it gives you some shopping recommendations and shows you some products you might want to buy and some ads. You know, we’re going to start seeing that in our chat bots and stuff.

\n\n\n\n

And so I think it’s going to be important for people that have WooCommerce stores, they want their products to show up there, and they want their ads to show up there, and they want to make sure that people who are using AI to get product recommendations, which my wife does all the time, that they’re going to show up there. So I think that’s the other half of it.

\n\n\n\n

[00:33:13] Nathan Wrigley: Yeah. Do you know it’s really curious, the whole, what we might have called SEO, which is fast giving way, I think, to AI. It’s kind of curious. I think there’s like a whole section where the discovery of the website is going to be everything. So an example might be apparel. I don’t suppose anybody’s just going to buy a blouse or a shirt based upon some text that they saw in a chat bot, but getting to that page and saying, find me, locally to me, find me a place which sells, I don’t know, affordable shirts for work, or something along those lines. And have a recommendation, which gets you to the WooCommerce store.

\n\n\n\n

But for more utilitarian things, just the stuff that you don’t really care about like, I want to buy a bunch of nuts and bolts, or hammers, or spanners, or whatever it may be, I feel like there’ll be a point where the store itself, obviously all of that commerce will take place in the store, but it will be invisible to you as a user. You’ll just tell the AI, buy these things, I need 50, or even just repeat the order from last month for these things, and it’ll just magically happen in the background. You’ll get a receipt via email, and WooCommerce will have handled it. The site will have been notified in some way, but you’ll have had no interaction. So it’s kind of scary, but interesting at the same time.

\n\n\n\n

[00:34:23] Brian Coords: I think one of the thing, I think Google’s the best example because I think WordPress and Google have this really symbiotic relationship because we make the websites and they provide the traffic. And I think it’s been good for both of them. They want a bunch of websites to send people to, and we want them sending people to our websites. And so I think Google’s a great example.

\n\n\n\n

But they’ve had product recommendations that you can connect to your WooCommerce store, you know, for a while now. It’s kind of in some ways not really that different from just Googling something. Google shows you some products and then you click through and you buy it.

\n\n\n\n

If it becomes that seamless where you don’t even have to realise you’re going to a website, which I think is possible, I also wonder, will people want to do that? Will they feel as trustworthy? Maybe, maybe not. But either way, that is probably going to be the case.

\n\n\n\n

And so that’s going to require a lot of these, the discussion’s already happening. They have these payment protocols and things, and we’re starting to see the very beginning of it. So it’s kind of interesting to be inside of WooCommerce because the companies that do all this stuff, the Stripes and the PayPals and the Googles and stuff, these are partners that they work closely with. And you get to see a little behind the scenes of them trying to figure this out in real time, you know?

\n\n\n\n

[00:35:28] Nathan Wrigley: Yeah, it kind of speaks to trust really, doesn’t it? So the repeat order thing through a ChatGPT style interface or whatever that looks like in the future, be it voice or speaking to a camera or whatever it may be, I could totally see myself ordering the, I don’t know, the groceries or the toothpaste or whatever it is that, I really don’t need to see that thing. I don’t need to go to a shopping checkout. I just need to know that my next pack of toothpaste is going to arrive reliably tomorrow morning. That’s all I need to know. I feel like there is, there’s a there there, if you know what I mean? Despite the fact that we’re so wedded to this interface of, go to the website, look at the pictures, click the cart number, click how many you want, go to the cart, proceed with the checkout, dah, dah, dah. Most of that is going to be obsolete for the utilitarian stuff, I think. I don’t know. We’ll see.

\n\n\n\n

[00:36:15] Brian Coords: I feel like Amazon’s been trying that for a while, but I still have to check it because I feel like we return 30% of the things we buy at Amazon. It comes, it’s the wrong size, it doesn’t look anything like the picture, all that sort of stuff. Hopefully those problems still get solved, before we get to the point where I’m not even going to look at what I ordered. I think we still have a lot of time there.

\n\n\n\n

[00:36:33] Nathan Wrigley: Well, so even if that interface isn’t quite as radical as I just suggested, but even if there’s like a back and forth between the AI and the website. I don’t know, I ask for a particular thing, and then the chat interface or whatever it may be shows me a picture from the website or something along those lines. This whole scraping of the website and surfacing the content of the website, and then I can make those decisions based upon what I see. Maybe it’ll be a bit more back and forward, and far less of the AI, and more of the AI meets human kind of interface.

\n\n\n\n

[00:37:01] Brian Coords: Yeah, and I think a lot of it is, it’ll feel like magic to the end user with an AI, but really it’s just going to be a ton of code and protocols and extensions and things. Under the hood, that’s going to be a ton of manual work, getting all that stuff there. But I think with WooCommerce especially, most of the Woo stores I come across, they’re very weird, I guess is the best way to put it. They’re unique products, you know? They’re often not selling the toothpaste and that sort of stuff. Or if they are, they’re selling the very interesting toothpaste that you can only buy from this one company.

\n\n\n\n

So I think that’s what’s fun about it, is I think it’ll really be for people looking for those weird, unique products, and the kind of stuff you’re not going to get on Amazon or you’re not going to get on a basic walmart.com or something. So yeah, I think it’ll be interesting to see where this goes.

\n\n\n\n

[00:37:44] Nathan Wrigley: Do you know if Automattic, or WordPress more generally, do you know if it’s investing anything in its own AI? Everything at the moment, all the oxygen seems to be being consumed by the, let’s say, four big players that we’ve all heard of. We don’t need to name the names, we all know who they are. But it’d be curious as to whether a company obviously deeply rooted in tech, like Automattic is inventing, creating those kind of things. That’d be a curious shift.

\n\n\n\n

[00:38:07] Brian Coords: Yeah, I mean you can see it already. Telex is a product that’s come out from Automattic. It lets you build blocks. They have a AI site builder. If you go to wordpress.com, a good amount of people are actually, the first thing they do is use this AI site builder that gets you kind of from zero to like a pretty decent starting site. And then you can go in and the block editor and customise everything.

\n\n\n\n

Is Automattic training their own models and stuff? I don’t think so, or at least I don’t know. But, I mean there’s a bunch of stuff happening, that’s the public facing stuff, which is building websites. There’s stuff around WooCommerce, there’s stuff around support. Our support is very heavily leaned into AI and it’s actually very good. There’s all sorts of these other places.

\n\n\n\n

And then there’s a ton of stuff internally in the company that we have because, you know, when you work with a thousand people, there’s a lot of information there. And so we have internal stuff that’s kind of like search through all of our, you know, internal dialogue and find this conversation and summarise it for me. And so it’s all there. It’ll be interesting to see which ones end up becoming good products.

\n\n\n\n

[00:39:05] Nathan Wrigley: Well, it sounds like exciting times. It sounds like you’ve landed in the right part of Automattic for you at least anyway. Yeah, fascinating times. The year 2026 for e-commerce, and WooCommerce more specifically, looks very, very bright.

\n\n\n\n

Can we just ask you, before we go, where would be the best place to find you if anybody wants to reach out and say hi?

\n\n\n\n

[00:39:23] Brian Coords: Yeah, definitely. So if you are interested in WooCommerce, you can go to developer.woo.com. That’s kind of our developer blog and it has, it’ll take you to like the docs, it’ll take you to the community Slack, it’ll take you to our email newsletter and all that sort of stuff. That’s developer.woo.com.

\n\n\n\n

For me, it’s my name, briancoords.com, and I’m mostly active on Twitter and YouTube these days. I tried all the other social networks, but everyone in WordPress stays on Twitter, so that’s where I’ll be for the foreseeable future.

\n\n\n\n

[00:39:47] Nathan Wrigley: So Brian is, as you would imagine it’s spelled, but Coords has two O’s. So it’s C-O-O-R-D-S. I’ll put all of the links in the show notes so that anything that Brian mentioned can be found there, wptavern.com. Search for Brian’s name and you will be able to find that episode. So Brian Coords, thank you so much for chatting to me today.

\n\n\n\n

[00:40:05] Brian Coords: Yeah. Thank you.

\n
\n\n\n\n

On the podcast today we have Brian Coords.

\n\n\n\n

Brian has been active in the WordPress space for over a decade, starting out in agencies building and managing websites, and is now a developer advocate at WooCommerce, bridging the gap between Woo’s internal engineers and the wider developer community. His journey includes being a high school teacher, working for nonprofits, and writing for the WP Tavern, before landing his role at Automattic.

\n\n\n\n

If you’re interested in where WooCommerce, and WordPress itself, are headed, this episode will help, as Brian shares insights on WordPress’s evolving focus, the importance of embracing AI, and how a slower pace of change can be a strength in any open source ecosystem.

\n\n\n\n

He talks about the massive rebrand at WooCommerce, the challenges and opportunities in competing with SaaS giants, and the unique developer relations role that balances his technical experience with communication skills.

\n\n\n\n

We get into how the team Brian works with supports developers and agencies with documentation, office hours, and feedback loops, and how WooCommerce’s global reach makes for a complex but thriving ecosystem. There’s discussion about recent marketing efforts, the realities of open source support, and the surprising diversity of WooCommerce users worldwide.

\n\n\n\n

Towards the end, we look ahead to what’s coming for WooCommerce, which is greater integration with block-based editing in WordPress Core, major investments in AI to streamline store management, and the future landscape of online shopping.

\n\n\n\n

If you want to hear how WooCommerce and WordPress are responding to a rapidly changing tech environment, this episode is for you.

\n\n\n\n

Useful links

\n\n\n\n

 briancoords.com 

\n\n\n\n

WooCommerce

\n\n\n\n

 State of the Word 2025

\n\n\n\n

 WooCommerce Community Slack

\n\n\n\n

Automattic for Agencies

\n\n\n\n

WooPayments

\n\n\n\n

 Telex

\n\n\n\n

Woo Developer Blog

";s: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 Jan 2026 15:09:35 +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:4;a:6:{s:4:"data";s:21:"\n \n \n \n \n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:20:"Matt: Find My 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:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:23:"https://ma.tt/?p=151027";s: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://ma.tt/2026/01/find-my-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:11:"description";a:1:{i:0;a:5:{s:4:"data";s:1163:"

The best part about blogging is the comments, and after I posted “I wish that when you use Find My to find your iPhone, it would also flash the flashlight, which would be great for finding it in a bag or a dark room.” Michael Wender and David Artiss jumped in that it’s already there!

\n\n\n\n

Apple support says if you touch and hold it will flash the light! Now I haven’t been able to get this to work yet, perhaps because when I did, I got a notice that Precision Finding, which uses ultra-wideband (UWB) frequencies to help you find your phone or Airtag, which is magical, isn’t available in all regions. I’m currently stranded in St. Martin because of airspace issues with Venezuela, and apparently, this is one of the countries, like Indonesia, where UWB doesn’t work.

\n\n\n\n

Update: Hours later, the press-and-hold thing now flashes the light, so it must have been a heisenbug.

";s: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 Jan 2026 04:30:48 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s: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:5;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: How to Spot a Committed Business Partner (and Avoid Red Flags)";s: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=113510";s: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://openchannels.fm/how-to-spot-a-committed-business-partner-and-avoid-red-flags/";s: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:199:"Successful partnerships hinge on genuine commitment, proactive engagement, and collaborative effort, requiring integration across teams and mutual benefits beyond mere visibility for lasting success.";s: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, 05 Jan 2026 10:44:23 +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: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:21:"Matt: Find My Upgrade";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:23:"https://ma.tt/?p=151013";s: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:38:"https://ma.tt/2026/01/find-my-upgrade/";s: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:165:"


I wish that when you use Find My to find your iPhone, it would also flash the flashlight, which would be great for finding it in a bag or a dark room. 

";s: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, 05 Jan 2026 05:58:40 +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:7;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:21:"Matt: Jackson Kiddard";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:23:"https://ma.tt/?p=151002";s: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:38:"https://ma.tt/2026/01/jackson-kiddard/";s: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:620:"
\n

Anything that annoys you is teaching you patience.

\n\n\n\n

Anyone who abandons you is teaching you how to stand up on your own two feet.

\n\n\n\n

Anything that angers you is teaching you forgiveness and compassion.

\n\n\n\n

Anything that has power over you is teaching you how to take your power back.

\n\n\n\n

Anything you hate is teaching you unconditional love.

\n\n\n\n

Anything you fear is teaching you the courage to overcome your fear.

\n\n\n\n

Anything you can’t control is teaching you how to let go.

\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:"Sun, 04 Jan 2026 07:26: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: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: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:15:"Matt: Two Links";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:23:"https://ma.tt/?p=150994";s: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:32:"https://ma.tt/2026/01/two-links/";s: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:487:"

They’re both long reads, but worthwhile.

\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:"Sat, 03 Jan 2026 03:30:01 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s: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: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:20:"Matt: Happy New Year";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:23:"https://ma.tt/?p=150981";s: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:39:"https://ma.tt/2026/01/happy-new-year-3/";s: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:"

I rang in the new year with an unexpected trip to St. Barts with friends.

\n\n\n\n

I resolved in 2025 to watch more films. It’s an art form I have many friends in, and when we have hung out, I’ve realized how shallow my understanding of the film canon is. I have a lot of catch-up to do, and it also requires a lifestyle change, as I’m usually at a laptop. Making space to enjoy a film for a few hours was a departure from my regular routines.

\n\n\n\n

I watched 72 movies last year! This definitely came at the cost of books finished, if I look at my stats. But I’ve begun to really appreciate the contours of what I love about a movie now.

\n\n\n\n

This is a long lead to recommend the movie Jay Kelly, which streams on Netflix with George Clooney and Adam Sandler. After seeing many great and terrible movies, old and new, I really appreciated what they did with this film, and it was one of the rare ones I watched entirely or in sections several times, gaining new appreciation for what they pulled off.

\n\n\n\n

It starts with a “One-er,” which is a continuous shot with no cuts that moves between a number of different scenes in a really slick way. (Excellent episode of The Studio about this!) It’s a film way of showing off, as it must be incredibly hard to have hundreds of people all pulling off something flawlessly for a long period of time, not unlike a Broadway show.

\n\n\n\n

Jay Kelly is George Clooney playing himself, which, as he says, is the hardest thing to do. There are meta-levels of reality and fiction, and so many allusions and callbacks, the entire thing is a work of art. You learn to appreciate what actors do and how film is made while watching a film being made in such a nice way.

\n\n\n\n

So that is my recommendation for the year. In older movies, I really enjoyed Kate & Leopold, which also features an amazing Sting song that is impossible to find on streaming services.

";s: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, 02 Jan 2026 06:00:07 +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: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:100:"Open Channels FM: Building Successful Collaboration Through Communication in WordPress Release Teams";s: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=113371";s: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:107:"https://openchannels.fm/building-successful-collaboration-through-communication-in-wordpress-release-teams/";s: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:378:"In the world of open source, communication stands out as a key factor for successful collaboration. WordPress release teams unite contributors from all around the globe, bringing together a remarkable diversity of experiences, cultures, and time zones. While technical prowess is important, it is the way team members connect and exchange information that truly shapes […]";s: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, 31 Dec 2025 14:36: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:11:"Abha Thakor";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:60:"Open Channels FM: Do the Woo / Open Channels FM 2025 Pathway";s: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=113788";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:65:"https://openchannels.fm/do-the-woo-open-channels-fm-2025-pathway/";s: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:95:"For Open Channels FM 2025 has been a windy pathway that has led to a sweet spot for us in 2026.";s: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, 30 Dec 2025 10:17: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:12;a:6:{s:4:"data";s:21:"\n \n \n \n \n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:16:"Matt: Riley Walz";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:23:"https://ma.tt/?p=150936";s: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:33:"https://ma.tt/2025/12/riley-watz/";s: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:676:"

The writer Aadil Pickle has a great profile of one of my favorite hackers, “Training the Idea Muscle” on Riley Walz. Riley epitomizes the term “high agency,” and I’ve been continually impressed with his ability to rapidly code novel ideas and interfaces on top of public or reverse-engineered data. He’s a hacker, artist, and provocateur.

\n\n\n\n

I’m enjoying this slower time of the year, and it looks like this will be the warmest Christmas I can remember in Houston; it was 80° F today! Makes me appreciate what Christmas in the southern hemisphere must be like.

";s: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, 24 Dec 2025 00:32:15 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s: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:13;a:6:{s:4:"data";s:21:"\n \n \n \n \n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:139:"Gutenberg Times: Roadmap for WordPress 7.0 and schedule, commands for the Command Palette, Gutenberg 22.3, and more — Weekend Edition 353";s: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=43471";s: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:143:"https://gutenbergtimes.com/roadmap-for-wordpress-7-0-and-schedule-commands-for-the-command-palette-gutenberg-22-3-and-more-weekend-edition-353/";s: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:26120:"

Hi there,

\n\n\n\n

Welcome to our last edition for the year 2025. I am not ready to reflect on the whole year, however, I am excited for 2026. There will be many new features coming to WordPress with the three major releases and also plenty of bug fixes and quality-of-life enhancement towards consistency.

\n\n\n\n

The first edition for 2026 will have to wait a bit and it is scheduled for January 24, 2026, roughly a month from now, due to my vacation and training schedule.

\n\n\n\n

I wish you and yours wonderful Holidays and a happy, prosperous and healthy New Year! 🤶🎄🎁🎆🎇

\n\n\n\n

Yours, 💕
Birgit

\n\n\n\n\n\n

Steve Burge and Dan Knauss interviewed me for the PublishPress podcast. We covered WordPress 6.9’s six new blocks (accordion, term query, time to read, math, comment count, and comment link) plus editorial notes for team collaboration. The release marks a restart after Automattic’s contribution pause.

\n\n\n\n

WordPress 7.0 ( April 9, 2025) will bring template management improvements and a tabs block. The AI team is building foundational infrastructure—Abilities API, MCP Adapter, PHP AI SDK, and experiments plugin—enabling plugins to integrate with AI assistants. Real-time collaborative editing remains in development, facing technical hosting challenges. The recording is available on YouTube.

\n\n\n
\n
\n\n
\n
\n\n\n

Roadmap WordPress 7.0 and two more releases in 2026

\n\n\n\n

In his lates post, Matias Ventura, lead architect of Gutenberg, laid out the plan for WordPress 7.0. It’s aspirational and not all the items will make it into the next major version of WordPress. The very detailed plan covers the project’s shift into Phase 3: Collaboration, a vision for real-time co-editing, and enhanced communication through site notes. Ventura underscores the modernization of the administrative experience via a unified design system and expanded DataViews. By integrating a standardized AI API and advancing responsive editing tools, WordPress 7.0 aims to unify the design and development process. Ultimately, the release promises to deliver a more cohesive and performant platform through refined navigation and versatile new core blocks. Here are the broad topics of the plan.

\n\n\n\n\n\n\n\n

Jonathan Desrosiers also published the proposed schedule of the 2026 releases. Following the schedule, we have two more dates to put on our calendars: Beta 1 for WordPress 7.0 will be on February 19, and RC 1 is scheduled for March 19, 2026.

\n\n\n\n
Table of WordPress release dates for 2026
\n\n\n\n

Provided the Release squad approves this schedule. I also can offer a timeline for the WordPress 7.0 Source of Truth: First draft will be available for public preview on February 26, 2026, and the post will be published on March 26, 2026.

\n\n\n\n
\n

🎙 The latest episode is Gutenberg Changelog #125 – WordPress 6.9, Gutenberg 22.1 and Gutenberg 22.2 with JC Palmes, WebDev Studios

\n\n\n\n
Gutenberg Changelog 125 with JC Palmes and host Birgit Pauli-Haack
\n\n\n
\n
\n\n
\n
\n\n\n\n

Gutenberg 22.3 and beyond

\n\n\n\n

Hector Prieto led the release of Gutenberg 22.3 (December 17). In his release post he highlighted:

\n\n\n\n
    \n
  1. Dedicated Fonts page for easier typography management
  2. \n\n\n\n
  3. Image editing improvements
  4. \n\n\n\n
  5. Responsive Grid block
  6. \n\n\n\n
  7. Other highlights
  8. \n
\n\n\n\n
\n\n\n\n

Dave Smith, core conditrbutor on the GGutenbergProject explains in his video
The changes leveling up Navigation in WordPress 7.0,He wrote in tthedescription: “Navigation is one of the most important — and most frustrating — parts of building a WordPress site.In this video, I walk you through what’s changing, why it matters, and show the real work already underway — including early prototypes and demos.” Check it out.

\n\n\n
\n
\n\n
\n
\n\n\n

Plugins and Tools for #nocode site builders

\n\n\n\n

Jamie Marsland is at it again with short videos and teaching you new skills. In his latest video “How to Create a High-Converting Landing Page With WordPress (Free Blueprint)” he gives you step -y -tep instructions for an easy way to create high-converting WordPress landing pages using only core blocks. He built a distraction-free landing page based on the StoryBrand methodology, so each section has a clear purpose and guides visitors through a simple story as they scroll.

\n\n\n
\n
\n\n
\n
\n\n\n

Sarah Perez, consumer tech editor at TechCrunch, reported that “WordPress’s vibe-coding experiment, Telex, is now being used” and it features Automattic’s AI tool for natural language web development. Introduced at the “State of the Word” event, Telex allows users to create complex Gutenberg blocks, like pricing calculators and logo carousels, without coding. Perez highlights how “vibe coding” makes site building accessible for non-tech users, enabling them to create professional results. With the new Abilities API, Telex marks WordPress’s move toward AI-driven workflows that streamline the design process.

\n\n\n\n
\n\n\n\n

Courtney Robertson Developer advocate at GoDaddy released the plugin Post Formats for Block Themes, which brings back old-school post formats to modern WordPress block themes. It restores useful features for galleries, quotes, and videos often missing in newer themes. You’ll find smart auto-detection, unique block patterns for each format, and a handy Chat Log block for easy transcripts. By combining these classic tools with today’s full-site editing, this plugin helps creators maintain a great design and add variety in a simple and accessible way.

\n\n\n\n
\n\n\n\n

Valentin Grenier, a WordPress developer from Toulouse, France, just dropped his first plugin: Simple block animations. It’s a cool, lightweight tool for adding some fun scroll-triggered visual effects to your Gutenberg blocks without needing to mess with any custom code. You get five different animation types, like fades and slides,, thatyou can tweak with durations and delays. Built using the Intersection Observer API and good old native CSS, it keeps things running smoothly by loading assets only when they’re needed while also being mindful of motion preferences to make it accessible.

\n\n\n\n

What’s new in WordPress Playground

\n\n\n\n

Felyph Centra posted a few video on WordPressTV to showcase various features of WordPress Playground

\n\n\n\n

Previewing GitHub branches with WordPress Playground. This video demonstrates a method to streamline development reviews. This technique addresses the common pain point of needing complex local environments or relying on static screenshots to share work in progress.

\n\n\n\n

Introduction to WordPress Playground landing page. The new landing page explains the capabilities of the platform and what is possible with WordPress Playground.

\n\n\n\n

Using WordPress Playground to work with AI agents. Centra shared how you can use the WordPress Playground to integrate with AI agents. with an example that uses GitHub Copilot agents. Using this flow it executes small tasks for a plugin, such as refactoring code or updating documentation. WordPress Playground can serve as a base to validate the AI agent’s code changes using E2E tests.

\n\n\n\n

In the post Action required: github-proxy.com shutdown Centra lays out the migration to switch over from a third-party proxy server to Playground’s built -n CORS handling. Your existing blueprints are safe, though. If you worked with Blueprints you can also learn how to reference GitHub repos, folders and files with native Playground resources.

\n\n\n

“Keeping up with Gutenberg—Index- Index 2025”
A chronological list of the WordPress Make Blog posts from various teams involved in Gutenberg development: Design, Theme Review Team, Core Editor, Core JS, Core CSS, Test, and Meta team from Jan. 2024 on. Updated by yours truly. 

\n\n

The previous years are also available:
2020 | 2021 | 2022 | 2023 | 2024

\n\n\n

Building Blocks and Tools for the Block editor

\n\n\n\n

In this week’s livestream JuanMa Garrido explored how to create commands for the Commands Palette. WordPress 6.9 brought the Command Palette to the whole WordPress space and not just restrict it to the Site Editor. Now all plugin developer can register commands together with their plugin’s features.

\n\n\n
\n
\n\n
\n
\n\n\n
\n\n\n\n

Justin Tadlock published the monthly roundup on What’s new for developers? (December 2025), noting WordPress 6.9 “Gene” and pointing to the 6.9 Field Guide and State of the Word. Highlights include the new AI Experiments plugin, Breadcrumbs block improvements heading toward stability, and an experimental Tabs block. Tooling updates cover WPCS 3.3.0, Data Views/Forms and Field API enhancements, @wordpress/boot routing, and a visibility key rename. Themes and Playground also saw notable updates.

\n\n\n\n

Ryan Welcher shot a video What’s New For WordPress Developers – December 2025, covering the parts of the blog post.

\n\n\n\n
\n\n\n\n
\n\n\n\n

As a reader of this newsletter you might already know about WordPress Studio, the fast, free, open-source local development tool, that’s based on WordPress Playground. Nick Diego recorded a Getting Started with WordPress Studio video and walks you through creating local sites, configuring your environment, and using the tools that come bundled with the app. You’ll also learn how to unlock advanced features with a free WordPress.com account, including syncing with WordPress.com and Pressable, sharing live preview links, and using the built-in AI Assistant to accelerate development. Whether you build plugins, create themes, or manage client projects, Studio helps you work faster and smarter.

\n\n\n
\n
\n\n
\n
\n\n\n
\n\n\n\n

In her post, Build Custom Event Lists & Grids With One Block: Event Query Loop Block Ultimate Guide, Lesley Sim shared a comprehensive tutorial for managing EventKoi’s specialized query block within WordPress. The post details how to create custom list and grid layouts using various query parameters, such as date ranges and recurring event instances, without any coding. By explaining the block’s internal structure and the flexible Event Data block, Sim illustrates how users can achieve precise design control and dynamic content display.

\n\n\n\n
\n\n\n\n

In his latest post for the WordPress Developer Blog, Word Switcher: Extending Core Blocks with Interactivity, JuanMa Garrido provides a practical guide for beginners on enhancing standard WordPress blocks using native tools. Garrido demonstrates how to combine the Format API for editor controls, the HTML API for server-side processing, and the Interactivity API for frontend animations. Developers learn to create a “word switcher” effect that cycles through text variations without relying on heavy external libraries. This approach ensures a lightweight, performant, and professional workflow that bridges the gap between simple content entry and modern, reactive web design.

\n\n\n

Need a plugin .zip from Gutenberg’s master branch?
Gutenberg Times provides daily build for testing and review.

\n\n
\n\n

Now also available via WordPress Playground. There is no need for a test site locally or on a server. Have you been using it? Email me with your experience.

\n\n\n
\n\n\n\n

Questions? Suggestions? Ideas?
Don’t hesitate to send them via email or
send me a message on WordPress Slack or Twitter @bph.

\n\n\n\n
\n\n\n\n

For questions to be answered on the Gutenberg Changelog,
send them to changelog@gutenbergtimes.com

\n\n\n

\n\n

Featured Image:

\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:"Sat, 20 Dec 2025 18:35:49 +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: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:25:"Matt: Wolfram Automattica";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:23:"https://ma.tt/?p=150898";s: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:42:"https://ma.tt/2025/12/wolfram-automattica/";s: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:2079:"
\n\n\n\n

It’s exciting to announce that Stephen Wolfram has joined as a special advisor to Automattic.

\n\n\n\n

I promise this is not just because he is such an incredible blogger, using WordPress, natch.

\n\n\n\n

If you don’t know about Stephen Wolfram, his about page is not a bad place to start, but far more interesting is his 2019 essay on Seeking the Productive Life, which includes a setup for hiking outdoors while typing on a laptop.

\n\n\n\n

Stephen was doing the remote CEO thing decades before I imagined Automattic. He spoke at Automattic’s Grand Meetup in 2019 and one of my favorite memories was seeing him at the silent disco after-party. We also did an episode of the Distributed podcast together.

\n\n\n\n

Since he started engaging more deeply earlier this year, I’ve gotten a lot of joy from seeing him interact with teams across the company, asking questions in an incisive, inquisitive way that helps break down problems. We just finished up several hours of a deep dive into our board topics with several hundred Automatticans participating.

\n\n\n\n

Automattic has been blessed with amazing directors over the years. Currently, our board is Susan Decker, General Ann Dunwoody, Toni Schneider, and 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:"Fri, 19 Dec 2025 02:47:08 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s: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:15;a:6:{s:4:"data";s:21:"\n \n \n \n \n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:88:"Open Channels FM: Delivering Customer Value Through Collaborative Ecosystem Partnerships";s: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=113501";s: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://openchannels.fm/delivering-customer-value-through-collaborative-ecosystem-partnerships/";s: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:199:"In this podcast, Jonathan chats with Sandra from Greyd and Tim from BigScoots about forming strong partnerships in WordPress. They share tips on success, collaboration, and maintaining relationships.";s: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, 18 Dec 2025 10: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:16;a:6:{s:4:"data";s:21:"\n \n \n \n \n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:23:"Matt: The Thinking Game";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:23:"https://ma.tt/?p=150883";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:40:"https://ma.tt/2025/12/the-thinking-game/";s: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:596:"

If you haven’t seen it, The Thinking Game documentary is excellent, and available for free on YouTube.

\n\n\n\n
\n\n
\n\n\n\n

You have to buy it, but the Kanye documentary In Whose Name is also pretty fascinating. (I first blogged about Kanye in 2007, discussing PHP’s botched version 4 to 5 upgrade.)

";s: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, 18 Dec 2025 05:29: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: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:17;a:6:{s:4:"data";s:21:"\n \n \n \n \n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:112:"WPTavern: #198 – Muntasir Sakib on Bridging the Gap Between WordPress Plugin Development and Marketing Success";s: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=201777";s: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://wptavern.com/podcast/198-muntasir-sakib-on-bridging-the-gap-between-wordpress-plugin-development-and-marketing-success";s: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:49111:"
Transcript
\n

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

\n\n\n\n

Jukebox is a podcast which is dedicated to all things WordPress. The people, the events, the plugins, the blocks, the themes, and in this case, build it and they might come, bridging the gap between WordPress plugin development and marketing success.

\n\n\n\n

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

\n\n\n\n

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

\n\n\n\n

So on the podcast today, we have Muntasir Sakib. Muntasir, has been active in the WordPress space since 2018, working with well-known plugins and companies such as Tutor, LMS, Droip and more. He’s played a key role scaling products from their early days helping them achieve wider adoption.

\n\n\n\n

He’s also been active in the WordPress community more broadly at events such as WordCamp Asia and Word Camp Sylhet.

\n\n\n\n

The focus of today’s episode is a crucial, yet often overlooked topic, especially if you’re a plugin developer. It’s a chat about the moment when plugin development ends and the real success can begin. In a WordPress marketplace that’s more crowded and competitive than ever, simply build it and they will come, does not mean that users will. Muntasir wants to bust the myth by digging into why marketing is essential from day one, and not an afterthought left until launch day.

\n\n\n\n

We start by learning about Muntasir’s journey through the WordPress ecosystem, and his approach to balancing development and marketing for plugins. He explains the key differences between marketing in the WordPress ecosystem versus the SaaS world. In WordPress, you don’t control the full stack and your users expect openness and interoperability, making community focus and support critical.

\n\n\n\n

The discussion then turns to the practicalities of launching and growing a plugin. Why throwing new features at a product isn’t enough, and why listening to users and building community relationships is often more valuable than racing to add features no one has asked for.

\n\n\n\n

We talk about the dos and don’ts gained from Muntasir’s experience, including the pitfalls of relying on lifetime deals for early revenue, and why a recurring revenue model is key for long-term sustainability.

\n\n\n\n

We also talk through the role of community, partnerships, and events like WordCamps, not just as marketing opportunities, but as places to build the relationships and collaborations that can help plugins thrive.

\n\n\n\n

if you’re a WordPress plugin developer wondering how to turn a finished product into real success, or you’re trying to figure out where marketing fits into your roadmap, this episode is for you.

\n\n\n\n

If 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\n

And so without further delay, I bring you Muntasir Sakib.

\n\n\n\n

I am joined on the podcast by Muntasir Sakib. Hello.

\n\n\n\n

[00:03:47] Muntasir Sakib: Hello, Nathan. How are you doing?

\n\n\n\n

[00:03:48] Nathan Wrigley: Yeah, good. Very nice to connect with you. We’ve had a long chat prior to hitting the record button. And we really touched on all sorts of things in life. But that’s not the purpose of the podcast today. We’re going to keep it firmly on the WordPress side of things, and particularly about marketing, I guess maybe a good way to sum it up, which is a topic that we don’t often get into.

\n\n\n\n

Before we get into that, Muntasir, I wonder if you wouldn’t mind just introducing yourself. Just tell us a little bit about yourself and what you do. How come you’re connected to the WordPress community? Whatever you think fits the bill.

\n\n\n\n

[00:04:18] Muntasir Sakib: Thank you, Nathan, for giving me the opportunity to talk about myself a bit, and it’s nice being with you here.

\n\n\n\n

Well, I’m Muntasir, I’m Muntasir Sakib and I have been with WordPress since 2018. So you can say over half a decade. And throughout my career, I worked for some really, really amazing plugins and companies such as Tutor LMS, Droip, EasyCommerce, Core Designer, ThumbPress.

\n\n\n\n

So when I joined JoomShaper, like premium, back in the days, I was talking about 2019, we had Tutor LMS and Tutor LMS had probably 15,000 or less active installations back in the time. And then within three and a half years, with the help of the amazing team we had back then, we all worked together day and night, and with our beautiful clients and customers all around the globe we achieved 100,000 plus active installations within three and a half years. And that was a phenomenal number to mention in the WordPress industry, in the WordPress ecosystem.

\n\n\n\n

And then there’s Droip, the first ever true no-code website builder for WordPress, and that was born. It got a traction that we ever expected it to be that much. So we were overwhelmed about it as well.

\n\n\n\n

And then during my tenure so far, I, along with my team, represented Tutor LMS and Droip at WordCamp Asia 2023, WordCamp Sylhet 2023 and some other WordPress meetups as well.

\n\n\n\n

And why did we join WordCamps? That could be a question. It’s because we sponsored those events to show our gratitude to the WordPress community and the ecosystem. Because there’s a thing in WordPress, which we say Five for the Future, as per Matt. So every product companies and every business that do business in the WordPress industry should contribute in the WordPress ecosystem, contributes in the open source market so that it get better every day.

\n\n\n\n

Because we are working in the ecosystem, we bring some real value for our clients. So what if our foundation is not strong enough to get those clients, to get those correct tractions? Because in the SaaS market nowadays, there are lots of, plethora of SaaS products, but we have to bring something together, stronger and better than SaaS, so that people believe in us and they come together to work with us and use our products.

\n\n\n\n

[00:06:40] Nathan Wrigley: Yeah, thank you. So you’ve been working with a variety of different clients in the WordPress space. And when I put out a message saying, I’d like to chat with a variety of people on this podcast, you reached out and you mentioned that you wanted to talk about essentially the gap where development finishes and success begins. Because I think it’s fair to say that if you were to rewind the clock, I don’t know, maybe 15 years or something like that, maybe 10 years, it was much more straightforward to build a product as a developer, put it out into the marketplace, and because you were potentially the prime mover, the first person to have such a thing, you might succeed just off the basis of build it and they will come. That old chestnut.

\n\n\n\n

Whereas now the marketplace is much more mature, much more saturated. And so the idea of build it and they will come. Oh, really, I mean unless you are incredibly fortunate, or maybe you’ve already had some success and so have, I don’t know, your company has notoriety or what have you, that really isn’t the case anymore. When development finishes there needs to be this whole marketing piece that swings into action to alert the community.

\n\n\n\n

So how would you differentiate between the plugin marketplace, in terms of marketing, and the SaaS marketplace? What makes those two things different?

\n\n\n\n

[00:07:59] Muntasir Sakib: Well, that’s a pretty important question that we mostly overlook. Nathan, thank you for bringing that out. We need to be very specific. When it’s about WordPress product marketing, it’s more like ecosystem driven than SaaS. When we’re talking about SaaS, you control the entire environment, your onboarding journey, your analytics, your pricing model, your customer journey. Everything is under the one umbrella.

\n\n\n\n

But when it’s about WordPress, then you are selling inside an open ecosystem where users make dozens of plugins together. So you cannot give your customer some boundaries that if you use my product or my plugin, you cannot use others. It doesn’t make any sense.

\n\n\n\n

So they’re going to use as many plugins as they want to, and you have to be compatible with every one of those. So you don’t control hosting, themes, PHP versions or the user’s technical setup, all of which impact your product experience, right?

\n\n\n\n

And in wp.org, wp.org acts as a distribution channel. So you need to think about it. It’s more of like app store, which influence reviews, support expectations, and growth. In most cases, all the products start from wp.org, which provides a free version of every plugin.

\n\n\n\n

So the founders and the marketers mostly overlook the thing that free plugin often becomes your biggest acquisition engine. So your marketing depends heavily on the documentation, the on point documentation, and the onboarding journey inside your WordPress dashboard. Your operation, the smoother it is, the better it’ll be to get the traction of the pro customers and the continuous updates, and your community presence. If you have no community presence in the ecosystem in your WordPress community, then you are just gone.

\n\n\n\n

[00:09:50] Nathan Wrigley: It’s so curious, when you sort of say it like that, the idea of logging into the WordPress backend, if you’re a plugin developer or a regular user of WordPress, you’ll be really familiar with this. If you go into a website, there’s often dozens of different things. And maybe a lot of them are kind of overlapping, so there might be things which integrate with other things. And as a plugin developer, that kind of overhead is something that you just don’t really need to worry about with SaaS, because you just build the thing, and you make sure that it works and everybody logs in, and it works because it’s yours and you control the infrastructure and the hardware that it’s on and the servers and all of that kind of stuff.

\n\n\n\n

Whereas the WordPress thing, it’s just so much more complicated and you’ve really got to be thinking all the time about sticking to coding standards to make sure that at least you know your thing is doing it right. And if there’s a conflict and something breaks, well, you can be fairly sure that it wasn’t your fault, it might be somebody else’s fault. So it is much, much more complicated.

\n\n\n\n

And then throw into it all of the other bits and pieces that you’ve just mentioned, community and all of that kind of stuff. I mean, it really is a very complicated picture, and I think getting more and more complicated year by year.

\n\n\n\n

So have you, in your previous work, have you kind of identified this moment where the development cycle ends and the marketing cycle begins, if you like, but the plugin developer has basically made no preparation for the marketing piece? They’ve just built things and then have an expectation that, oh, it’ll just sell itself. Do you see that? Is that a real thing?

\n\n\n\n

[00:11:22] Muntasir Sakib: Yeah, that’s definitely a real thing. And the thing is, I don’t give the blame to the developers actually, because they were supposed to build the product, they were supposed to follow the compliance issues, and they’re supposed to build fresh code so that the thing cannot break when people are using it massively.

\n\n\n\n

But it’s mostly from our and from the marketers end that we need to tell them beforehand, like what to do and how can we get the KPIs? What are the things that we need to sell to our customers that going to help them to solve their problems?

\n\n\n\n

Because the fun fact is, in most cases, when our founders or a developers is planning to build a product, a plugin, they were thinking from their end like, okay, fine, I want to build a product so that the product going to be that much good that everyone going to use it. But it’s not the case, because we have almost like 59,000 plugins right now in WordPress directory. So in every category, in every niche, there’s a plethora of products, plethora of competitors. So there were some big competitors and there are some upcoming competitors who are small.

\n\n\n\n

So how they compete with someone who has already hundred thousand or a million of active installations, millions of happy users. We cannot compete them with just everything they have. Whether if we come with some specific niche, like some specific problems that they’re facing from our competitors, and we can add value to them, to our clients, they would be happy enough to try our product.

\n\n\n\n

So you need to give something to the customers first so that they can rely on you. And if you have a good reputation beforehand, like if you are not new in this industry, you have some other plugins beforehand, and if have a good reputation and you are coming with another solution, they’re surely going to try it. And there’s the catch.

\n\n\n\n

When people start using your product, they give you the feedback, and those feedbacks are gold mines. So you need to talk with your customers. You need to talk with the developers. You need to connect with them on regular basis. And that’s the job of us. That’s the real job of us, like the support system, the marketers, content creators. The documentations all need to come along and they need to figure out the problems, what they’re facing, and what the customers are asking for. What are the bugs they’re having? It can be a bug based on their environment, like everyone has their different environment, right?

\n\n\n\n

But the thing is, when we speak to the customers, when we talk to them and when we try to figure out their issues and try to solve their problems, they’re going to do the best marketing you can ever imagine, the word of mouth. And WordPress is doing the exact same thing. WordPress is depending on word of mouth. Your 10 happy customers is way more important and valuable to you than a hundred thousand dollars.

\n\n\n\n

[00:14:08] Nathan Wrigley: And I think that kind of speaks to what I would imagine, or at least what I would hope to be the case. When I look back at my time in WordPress and I go right back to the beginning of it, it felt like a really good, solid playground for hobbyists. There were an awful lot of people who were doing things for a hobby, and then now it’s become much more professional. In fact, when I joined the WordPress community, that whole thing was just beginning to open up. There were a few companies who were making a great deal of success for themselves, selling things into the marketplace, you know, they had a free version and a pro version. But it was still, it still felt like the beginning of that, the wild west of that.

\n\n\n\n

And I think that still there’s a little bit of that hobbyist mentality still out there where, you know, you attend events, you hang out with like-minded people. You can see that this individual over here, they had success, I could do the same. But there’s that whole thing that you’ve got to have prior to building anything, and it sounds to me like you’re making a real difference between the marketing people and the development people.

\n\n\n\n

And, okay, maybe you are this unique person that can do both. Maybe you are brilliant at developing and you are going to be an amazing marketer. I think it’s fair to say that most people are not that. They don’t have the time, they’ve got other things to do, their skillset is developing, their skillset is marketing, they’re kind of different entities.

\n\n\n\n

But it feels like for many people, that realisation hasn’t been made yet, that you need to, before launching, so maybe even at the moment you think, I am going to build this thing, maybe that’s the moment where you think, okay, two thirds of my budget is going to go into development and one third into marketing, or 50 50 or 70 30, or whatever it may be. I think that’s what you’re saying is that you need to be thinking about this right from the beginning, not leaving it until the last minute if you want it to be a success.

\n\n\n\n

[00:15:57] Muntasir Sakib: Exactly, exactly. You have to have a plan from day one when you started developing a product. How and where should I go? Who are my primary audiences? Whom to reach out. Which influencers should we work with? And when should I give them the beta version to test? I can give a beta version to like hundreds of peoples, who are willingly giving it a try. Tell us some beautiful insights, some valuable insights so that we can develop the product even more before going to the market. So that’s the thing.

\n\n\n\n

In most cases, what developers are thinking, what mostly the founders who are mostly developers, they’re thinking like, well, I can develop the product like 80% and then for the rest 20%, we can start working with the marketing team. I can think of how to go to the market and how to have some early traction. Early traction is easy, but it’s not the kicker. Early traction is easy because if you have a freemium plan, you can definitely go for wp.org. There’s a free version so everyone can use it.

\n\n\n\n

There’s a term, founder led marketing. So when you are a founder, yeah, you can just announce on your socials, like, yeah, I have a plugin. I developed it and I launched it on wp.org so you can try it. Everyone going to try it. No problem on that. But the thing is, there might be a hundred plus active installations on day one, but on day three it could go way below 10, 10 to 15.

\n\n\n\n

So where are the rest of the people went? They just came here to try the product, you didn’t ask for anything. You didn’t know how to contact with them. You didn’t know how to collect the data, how to collect the information that you don’t have in your mind, in your head. What’s the fuss about? What’s the problem they’re having? So they didn’t even bother to share?

\n\n\n\n

You need to ask first. Be the first person to ask the questions like, what are the problems you are having using my product? I eagerly want to know. I want to solve your problem. So when I am talking with each and every person, each and every client, as he’s valuable, we bring value to their life, they’re going to bring something for me too.

\n\n\n\n

[00:18:01] Nathan Wrigley: Yeah, I think the curious thing about a lot of the developers that I know who’ve brought a plugin to the market is that they’ve been focused a lot on the features. They’ve got this laundry list of features and they get really wrapped up in the features and they execute that, they build the features. And then maybe somewhere along the line they realise, oh, there’s this other feature that would be quite nice to have. Yeah, let’s do that. And then before you know it, the idea of launching the product just gets pushed back and back and back because, oh, there’s another feature and, oh, I’ve thought of another feature. And on it goes.

\n\n\n\n

And the whole time you haven’t been doing exactly what you said, kind of trying to figure out how to build up an audience, trying to figure out how to get influencers involved, how to put it out on, in this case, wordpress.org or whatever it may be. And that whole puzzle, that whole jigsaw piece, inside that puzzle needs to be thought out, I think for many people, at a much earlier date.

\n\n\n\n

I get quite a lot of email from people who would like to have some product or service distributed through something like a podcast. On some level, it’s amazing that the people would like me to help them, but also when you go to the property that they’ve got, you can see that the thing that they’ve built is amazing, but also the marketing side of things hasn’t really been taken care of. So the website is nowhere near the standard that the plugin is. Everything about it, you know, the documentation is nowhere near the standard that the plugin is and so on. So there’s this sort of real disconnect.

\n\n\n\n

So do you have any like do’s and don’ts? Have you got any, like a list of things that you highly recommend people do if they want to market a plugin? But also some things which you think, actually no, stay away from that, that’s snake oil, people have tried that and it doesn’t seem to work. Any order of any of those things.

\n\n\n\n

[00:19:35] Muntasir Sakib: Absolutely. If you’re talking about like developing features and releasing it every alternate week, these are the most common picture when we are thinking about WordPress ecosystem, or any other products. 80% people are doing that. But the problem occurs when, feature first development means you keep building what you want, not what your customers actually struggle with, right?

\n\n\n\n

So when you release a product, you have the roadmap. You make it public. You show the customers like, well, these features are coming next, but people don’t bother about what features are coming next, they’re mostly bothered about what you have right now, and are those working properly or not? You might have, like when you were thinking of any e-commerce, you might have 20 or 30 payment gateway integrations with it. But I don’t need all the payment gateway integrations, right? I need specifically like one or two, like maybe I need PayPal integrations or Stripe integrations or Wise or some other integrations like Klarna.

\n\n\n\n

The rest of the integrations you have are useless to me, so I don’t even bother whether they’re coming or not. I do bother about my product and I do bother about whether, as I am using your product, so even giving me the value of my requirements, like the PayPal is working fine, in the next update the PayPal is working still fine and it’s secured. When I click the update button, or if I enabled auto update, with an update the PayPal is not working. My business will go through the loss.

\n\n\n\n

So it’s your responsibility to take care of my business because I’m using your product. So you have to make sure that every specific niche I am giving the solution for, are working properly after every updates and everything.

\n\n\n\n

I often see companies who are trying to develop the update version, who are trying to give updates regular basis. They often consider giving it the quality assurance, the QA. The QA team mostly were doing nothing. They were just going through on the surface level. They bring the update, and then the people updated it, and the site crashed. And then they figured out, well, it might be your environment issues. It might be from your end because we are doing nothing. It’s working fine from our end. So let me see. Give me your backend credentials so that I can see what’s going on here. It’s a big no. It’s a big no for me. If you are talking about me, like it’s a big no. Why would I give my credentials to you? It’s your responsibility to take care of your product so that it’s working fine from my end.

\n\n\n\n

These are the common things, and apart from that, when we are talking about feature first development, this leads to slower performance. The more the features, the slower the performance is, and it’s non-negotiable. The higher support workload and our roadmap, as I said, a roadmap that is reactive, not strategic. So strategic roadmap is important. Reactive roadmap means you are actually way far behind from your competitors. So many founders think that features is equal to value, but features are not equal to value. In reality, clarity, reliability, and use case fit, drive adoption and revenue.

\n\n\n\n

[00:22:49] Nathan Wrigley: So the really interesting thing about this is that there’s really two completely different worlds in collision here. So if you are the developer, you are basically sat in a chair looking at a screen, wrangling code. And it’s this, you’ve got this small window on the universe. You’re just sort of staring into this thing. You’ve got complete control over it. And it’s clean and it’s, I don’t really know how to describe it. It’s all just right in front of you.

\n\n\n\n

Whereas the other side, the marketing side is the exact opposite. It’s like, turn away from the computer and look at the entire planet. Every single human being in it, all of the messiness of that, trying to find them, trying to figure out how you’re going to talk with them, trying to figure out how you’re going to let them know that you exist. Trying to figure out how you’re going to let them know that your product is exactly what they need. Trying to figure out how to do the SEO piece, and we could go on and on.

\n\n\n\n

There really are two very different universes colliding there. And I feel that in many cases, a really different personality type fits those things. Like, you know, the developer sitting in the chair concentrating on that code is a really different kind of personality type, if you know what I mean, than the person who can turn around, look at the world, cope with that messiness and figure all of that out. I’m not saying that they’re not possible by two people, I’m just saying they are very, very different things. One, much messier and harder to figure out than the other.

\n\n\n\n

But from what you are saying as a developer, you have to do both. You have to turn around and look at the world in all of its messiness because your users are going to kind of, you know, they’re the people that are going to tell you whether or not what you’re building is a good thing or what they need.

\n\n\n\n

[00:24:26] Muntasir Sakib: No, no, I think we got it wrong because I didn’t say that developers need to do both of the work, they need to code fresh and they need to look around all the users, what they’re saying and how their product is performing. It’s not their job.

\n\n\n\n

We need to be very specific. If I’m a developer, my only responsibility should be to do fresh code and to make sure that my product is working fine on every environment. And it’s the marketer’s duty to talk to the customers, to talk to the world, and if as a founder, I don’t need to jeopardise my business, my company, then I need to align with everything, with every team possible. Like there’s sales team, there’s marketing team, there’s support team, content team, developer team.

\n\n\n\n

The thing is, market research should be done by the marketers. Market research should be done, the customers should be talked with the marketers, with the salespeople. They need to come along with the ideas that, well, fine, these are the opportunities we have right now. So if we want to build a product, if we want to develop a product, we need to bring these three or four features before releasing the product in the market because these are the things people are having problem with. So I am giving you this list of features, or this list of things that you need to have in your product, and then it can go to the design team. The design team come up with a very beautiful design and then the developers start developing it.

\n\n\n\n

And then we need to figure out the fact that, well, the product is almost 80% done, so we need to reach to the influencers, we need to reach to some YouTube influencers who have great audience so that they can use it. So we can give them the beta version. They can use it, they can bring some beautiful solutions, some beautiful suggestions to make the product even more mature before going to the market. And we can share the thought with the developers so that they can update accordingly.

\n\n\n\n

[00:26:22] Nathan Wrigley: Right, I got it. Yeah, so I get the piece there. So really when I was talking about, you know, the developer facing one way and then facing the other way, the computer and the world, you are introducing then, in the middle, the developer turns around and instead of talking to the world, talks to the marketer.

\n\n\n\n

And then the marketer absorbs those messages, whatever it is that the developer thinks, okay, it’s ready, it’s nearly ready, here’s the features. They communicate with the marketing people, the marketing people turn that into real world action. And then they themselves turn around and look at that bigger world and figure out how to do that.

\n\n\n\n

I think the curious thing is, in our community, there’s so many of the solo developers who, when that thing that you’ve just suggested, gets suggested. That some of the budget goes to a marketer, it’s like, no, no, no, no, no, no, I can do it all. I’ll be fine, because we know it can work in some rare cases. But it’s not going to be as effective as getting somebody else on board.

\n\n\n\n

But I think in our community, there is a, I don’t really know how to encapsulate this, but there’s a little bit of a divide between the marketing side of things, the sort of sponsorship side of things, the affiliate side of things, all of those bits, and the developers. And it’s not always an easy conversation to have.

\n\n\n\n

I suppose, in the end it comes down to things like money and things like that, which our community is maybe not as comfortable talking about as other different communities.

\n\n\n\n

So is there anything that you think is a bad idea? I remember in the show notes that you sent to me, there were a few things where you thought, for example, you mentioned things like the one-time revenue trap of lifetime deals and things like that. Do you want to mention some of the gotchas, some of the things in the past that you’ve thought, nope, don’t do that, that’s a bad idea?

\n\n\n\n

[00:28:00] Muntasir Sakib: Yeah. You were talking about the solo developer. There are a lot of solo developers, I might say. I must say because they are a one person team, and every project they build, every line of code they write, it’s like their children. So it’s always normal to be biased to your product. Like, yes, my product is the best because I have developed it with all my passion, with all my hard work. Why aren’t people using it?

\n\n\n\n

And you might have a tight budget because when you are solo developer, the budget’s going to be tight. So you might not have that much money to spend on marketing before going to the market. And that’s fine. Welcome the community because the WordPress community is so helpful that even if you go to the community people and you tell them like, well, I am working on a product all by myself, and I want someone to come up with me and test the product and give me some valuable insights about what I can do better, before going to the market. And they’re always helpful. There are like hundreds and thousands of people who can help you, making your product even better by testing your beta versions, by testing your RC versions.

\n\n\n\n

The thing is you have to be vocal. You have to talk to the poeple. You have to ask for help because you are helpless, you are working day and night on your product, and you cannot let people know, you cannot talk to people. You are very shy to ask for help, to ask for a hand. So how do I know that you are building a very beautiful product? I am here to help you, you just need to ask me. You want to give it a try? Sure thing. I will definitely give it a try and have some suggestions for you if you may allow me. That’s it.

\n\n\n\n

And about the question is one time revenue, you think? Yeah. And whether it’s a trap or not. It’s a trap. It’s a trap. Nathan, I can say to you, like many WordPress founders rely on lifetime deals, one time license and large seasonal discounts. I mean Black Friday, Cyber Monday, the year end sales. Might going to create some cash upfront, but that doesn’t bring sustainability.

\n\n\n\n

Sustainability is something way more different than cashflow. Because sustainability comes with recurring revenue. Your support is recurring, but if you have only lifetime deals, then your revenue is not. So how can you go along with your support team year after year, when you are running just once from a customer?

\n\n\n\n

Because once a customer has got something lifetime from your end, you have to give him support. You have to provide him top-notch support for the rest of your lives, for the rest of products life. And then every year, fixed cost goes up. Teams, servers, your support team will go along. Your team will be bigger than the last year, along with your product. So your fixed cost will always go up. And lifetime buyers often create the highest support load while paying the least.

\n\n\n\n

So you have to have that in your mind that when I am working for a easy traction and I am giving them the lifetime deals, and I want to onboard thousands of customers, lifetime customers, you need to think that you need to give them support, you need to develop the product for these thousand customers who will not ever going to pay a single penny to you anymore. So this is a big burden for you.

\n\n\n\n

So real WordPress companies that scale, focus on renewals, annual plans, and clear upgrade perks. So here are the things, you might have like three to four pricing plans for one site, for ten sites and for unlimited sites. And I bought the one site license. And then I fell in love with your product, and I want to upgrade to ten site plans. So there should be a very, like one click upgradation plan, upgradation system where I can just go from one site to ten sites. And if you can’t give me that opportunity, and if you going to tell me like, okay, fine, buy the ten site license, give me the one site license key, and I’m going to dispatch that. I’m going to deactivate that and activate your license manually, that doesn’t make sense because that’s a hassle to me. I’m your customer, so you need to give me the smoother way. This is the thing.

\n\n\n\n

[00:32:09] Nathan Wrigley: When you’ve been working for some of the, I don’t know, agencies or companies where there’s obviously a marketing team which has been a part of the success. Do you know roughly, I mean, maybe it’s just a ballpark figure, do you know roughly how much of the wider team so, you know, think of Company X, which is a development company, but they’ve got in-house marketing as well. Do you know how much of the company, in terms of personnel or revenue, is given over to marketing as opposed to everything else? So, you know, is it typically like in the sort of 20%, 30%, 50%? What’s your rough estimate for those?

\n\n\n\n

[00:32:43] Muntasir Sakib: My rough estimate is your marketing budget should always be at least 30% of your total estimation cost. Because marketers need to talk to people, they need to reach out to the people, and they need to collaborate with most of the influencers who going to work for you, and you have to give them the honorarium to do the work for you.

\n\n\n\n

So if the budget is not standard enough, then they have the boundaries to not do their works. So you need to give them the free hand, explore the sides to work with the other WordPress companies, to collaborate with better partners, to collaborate with other companies and to onboard their clients as well, so that your client base will increase day by day.

\n\n\n\n

[00:33:24] Nathan Wrigley: And in the old way, when I was talking about sort of 15 years ago, it felt like most things were driven by interaction with the WordPress community. Do you think that’s still like a viable way of doing things or, you know, in the case of, I don’t know, let’s say that you’ve got an LMS plugin or something like that. Your market really isn’t other WordPressers, your market is the entire world, you know, educators and what have you.

\n\n\n\n

So do you put much stock in sort of turning up to events, and sponsoring WordPress stuff, or do you sort of advise, focusing on your customers? I’m just trying to figure out where the community bit might fit into all that.

\n\n\n\n

[00:33:59] Muntasir Sakib: Well, the thing is, let’s talk about the sponsorship first because in WordCamps you need to be sponsored under your product. If we are talking about any LMS plugin that we have. We want to let the WordPress community know that, yeah, we exist and we sponsor to this event. And the most important thing is only in the WordCamps or the WordPress meetups you’re going to get along with other companies in person, so that you can connect with them, you can talk to them. You can figure out an opportunity to work with other companies. If I am an LMS company, I have an LMS plugin, my customer’s going to need some hosting plan. They might need some security plugins. They might need some SEO plugins.

\n\n\n\n

[00:34:39] Nathan Wrigley: It’s more of a sort of partnership opportunity.

\n\n\n\n

[00:34:42] Muntasir Sakib: Exactly.

\n\n\n\n

[00:34:42] Nathan Wrigley: Figuring out who, in some curious case that you may not yet have imagined, how you could collaborate in the future. So like you said, you know, hosting or whatever it may be, or maybe there’s a form plugin out there, which you kind of get the intuition that, oh, we could use bits of your form to onboard people to our platform, or whatever it may be. So it’s very much not about marketing to the end user. It’s more about figuring out partnerships and things like that. But also being a good custodian of an open source project, I guess, as well.

\n\n\n\n

[00:35:11] Muntasir Sakib: Of course, yeah. That’s true. Because in every other companies who are doing great in WordPress ecosystem, they have a very strong relationship with the other companies. They have the mutual connections with all the people, with all the companies their customers might going to need. And the partnerships, affiliates are the best way to do the marketing to grow, to scale your product in WordPress market. Because as I said at first, word of mouth is something that brings the most valuable customers in your back.

\n\n\n\n

[00:35:40] Nathan Wrigley: Yeah, I mean, you only have to look on Facebook and LinkedIn and things like that to realise that there’s a lot of people in the WordPress community who attend these events and hang out with other people at these events and make great friendships and partnerships and those kind of things. I presume they’re doing it because, A, it’s fun, but also there’s a real value to it, you know? I know all these people and so I know where to go when I’ve got a particular problem, or I just have an intuition that I want to spin my company off in a slightly different direction. I’ve now got some people that I know, some contacts that I’ve already made who might be able to help me with that.

\n\n\n\n

Okay. What about the, sort of last one, and it’s actually alluding to your, one of the questions that you wrote here. Is there anything about the sort of psychology of this, the sort of mindset? Because I think with the best will in the world, a lot of people in our space, they kind of see marketing as a bit of a, an icky thing. Something that they really don’t feel comfortable doing.

\n\n\n\n

Is there any kind of psychology here that you could recommend or some kind of mind shift that somebody like me, for example, who is terrible at marketing, that I might be able to undergo, some magic wand that you can wave to help me out?

\n\n\n\n

[00:36:41] Muntasir Sakib: We all are learners. We learn every day. I’m still a learner, and most of the world famous marketers are learners, even the passionate developers. You still learn how to develop well, how to write fresh code in even a better way.

\n\n\n\n

But the most important thing is there are some mindset differences. There are someone who is a builder, and there are someone who is a business owner. So the thin line between builders and business owners are builders think about features. They think about features, what to come along with next, what to give to our customers, whether they like it or not. But founders think, I build outcomes and value. I bring value to the customers.

\n\n\n\n

Another mindset, if we talk about like the short term revenue and the long-term sustainability. So when we are selling lifetime deals, one time license, that’s the short term revenue that give me an early traction, a good traction within a few months. But it’ll never going to be sustainable. If you want to be sustainable, you need to have a recurring plan, you need to have recurring customers, you need to onboard more customers, but your recurring customers should be like around 70 to 80% or even more than that, so that you can sustain all along.

\n\n\n\n

Then if I’m talking about another mindset that it can be the focus on the product versus focus on the user. Failing founders, like those who cannot scale, they think that what feature should we add next? But the scaling founders, if you talk to them, they’re going to think where my users are getting stuck, so I need to solve the problem first. I need to bring value to their life so that they come along with me. They’re going to be my best audience and they’re going to do the marketing for me.

\n\n\n\n

[00:38:24] Nathan Wrigley: This stuff is so intuitive to you because obviously it’s something that you’ve spent a long time thinking about. I’ve got to say, for me, a lot of this stuff is kind of intuitive, but not at the same time. I’m definitely more on the kind of builder side than on the marketing side. I don’t know what it is about marketing, I just struggle to do those kind of things.

\n\n\n\n

And you’ve written a lot of your thoughts up in three articles, which you’ve published on LinkedIn. I don’t know if they’ve been published elsewhere, but they’re definitely on LinkedIn. And they describe all of the different scenarios of, you know, what founders need to do, how plugins can have success, where the community lies, how you can get yourself involved in different things. But also quite a lot of work you’ve put into what not to do. So example, lifetime deals, which you don’t think are a particularly great idea.

\n\n\n\n

I’m going to link to all of those different bits and pieces in the show notes so that people can go and read those, and then hopefully having been armed with all of that knowledge, they’ll understand better what it is that we’ve been talking about.

\n\n\n\n

Where do we find you, Muntasir? Where do we go online? Apart from LinkedIn, obviously, where could we find you?

\n\n\n\n

[00:39:28] Muntasir Sakib: I’m always available on Facebook, on Twitter. And I am always available on LinkedIn as well. These are the platforms you are going to find me.

\n\n\n\n

[00:39:36] Nathan Wrigley: Well, I will link to the LinkedIn posts and I will endeavor to dig out your Twitter handle as well. So hopefully people can find you and if they’ve got questions, you are open to suggestions.

\n\n\n\n

So thank you so much for chatting to me today. A subject of great interest to me because, well, as I said, there’s just great interest for me. I won’t say more than that. But thank you very much for chatting to me today. I really appreciate it.

\n\n\n\n

[00:39:56] Muntasir Sakib: Thank you, Nathan. Thank you for talking to me. And it’s great talking to you and sharing my knowledge and expertise with you.

\n
\n\n\n\n

So on the podcast today we have Muntasir Sakib.

\n\n\n\n

Muntasir has been active in the WordPress space since 2018, working with well-known plugins and companies such as Tutor LMS, Droip and more. He’s played a key role scaling products from their early days, helping them achieve wider adoption. He’s also been active in the WordPress community more broadly at events such as WordCamp Asia and WordCamp Sylhet.

\n\n\n\n

The focus of today’s episode is a crucial yet often overlooked topic, especially if you’re a plugin developer. It’s a chat about the moment when plugin development ends and real success can begin. In a WordPress marketplace that’s more crowded and competitive than ever, simply ‘build it and they will come’ does not mean users will. Muntasir wants to bust the myth by digging into why marketing is essential from day one, and not an afterthought left until launch day.

\n\n\n\n

We start by learning about Muntasir’s journey through the WordPress ecosystem, and his approach to balancing development and marketing for plugins. He explains the key differences between marketing in the WordPress ecosystem versus the SaaS world. In WordPress, you don’t control the full stack and your users expect openness and interoperability, making community focus and support critical.

\n\n\n\n

The discussion then turns to the practicalities of launching and growing a plugin. Why throwing new features at a product isn’t enough, and why listening to users and building community relationships is often more valuable than racing to add features no one has asked for.

\n\n\n\n

We talk about the do’s and don’ts gained from Muntasir’s experience, including the pitfalls of relying on lifetime deals for early revenue, and why a recurring revenue model is key for long-term sustainability.

\n\n\n\n

We also talk through the role of community, partnerships, and events like WordCamps, not just as marketing opportunities, but as places to build the relationships and collaborations that can help plugins thrive.

\n\n\n\n

If you’re a WordPress plugin developer wondering how to turn a finished product into a real success, or you’re trying to figure out where marketing fits into your roadmap, this episode is for you.

\n\n\n\n

Useful links

\n\n\n\n

Project / Events which Muntasir has been involved with:

\n\n\n\n

 Tutor LMS

\n\n\n\n

Droip

\n\n\n\n

EasyCommerce

\n\n\n\n

ThumbPress

\n\n\n\n

 JoomShaper

\n\n\n\n

WordCamp Asia 2023

\n\n\n\n

WordCamp Sylhet 2023

\n\n\n\n

Three of Muntasir’s articles on LinkedIn:

\n\n\n\n

Why Marketing Is Still the Missing Piece for Most WordPress Product Companies

\n\n\n\n

The Hidden Cost of Lifetime Deals: What Plugin Owners Don’t Realize Until It’s Too Late

\n\n\n\n

After 5 Years and 10+ Plugins: Here’s Why Most WordPress Products Fail to Scale

";s: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, 17 Dec 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:"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: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:68:"Open Channels FM: Why Context Matters in Accessibility Conversations";s: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=113262";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:75:"https://openchannels.fm/why-context-matters-in-accessibility-conversations/";s: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:"Discussions on digital accessibility should prioritize context and collaboration among teams, focusing on empathy and practical scenarios to enhance user experience and support.";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Wed, 17 Dec 2025 11:05: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: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:28:"Matt: Beware Unearned Wisdom";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:23:"https://ma.tt/?p=150856";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:45:"https://ma.tt/2025/12/beware-unearned-wisdom/";s: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:3687:"

One of Carl Jung’s famous quotes is to “Beware unearned wisdom.” Sometimes it’s brought up in the context of psychedelics. From LSD and the Mind of the Universe by Christopher Bache:

\n\n\n\n
\n

Psychedelics give us temporary access to realities beyond our pay grade, allowing us to experience things beyond our normal capacity.

\n\n\n\n

It’s all too easy to think that because we have had a deep and profound experience, we have become a deep and profound person, but this is a fool’s delusion.

\n\n\n\n

Even when psychedelics allow us to experience the person we are in the process of becoming, we have to face the fact that we have not become this person yet, nor have we fully internalised the wonderful qualities we may have temporarily touched.

\n
\n\n\n\n

I’m starting to see some of the same things happening with vibe coding and LLM writing.

\n\n\n\n

Sam Kriss at the New York Times took on the inevitably meta task of writing Why Does A.I. Write Like … That? It’s a good read that will tickle your mind, as the mimetic effects of model training data overfit and influence society, even in how we speak and write when not using AI.

\n\n\n\n

I’m starting to get that “feel” now, sometimes when using software. The demo or functionality seems amazing, but when you begin to poke around the edges, it all crumbles. We think we have something amazing because a chatbot one-shot an application, but there may be a hidden technical debt there.

\n\n\n\n

A big focus for me in this coming year is “back to basics”: ensuring the core functionality is robust. You can’t build a house on a foundation of sand. It’s very exciting and tempting to go to the new shiny thing, but you only earn that right when the fundamentals are solid.

\n\n\n\n

It’s been funny hearing about OpenAI’s Code Red, because about 18 months ago, I declared Code Blue on WordPress.com. In a hospital, Code Red means a fire, which I don’t think is the analogy OpenAI was going for, but I unfortunately learned when my father passed that Code Blue means all hands on deck because a patient has a cardiac or respiratory arrest; it signals a critical, life-threatening medical emergency. All the best specialists swarm in and, hopefully, save the patient. (BTW, on WordPress.com, the team has done a fantastic job of shipping literally thousands of bug fixes and quality improvements, and keeping focus on that despite the pull to new initiatives. There’s much left to do, but it’s headed in the right direction.)

\n\n\n\n

The Cambrian explosion of new stuff built by AI is just a phase, and AI-assisted coding can actually be incredible for maintenance and bug fixes. But the tools are only as good as the questions we ask them, so it will have to battle with human nature’s addiction to novelty.

";s: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, 17 Dec 2025 04:21:08 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s: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:20;a:6:{s:4:"data";s:21:"\n \n \n \n \n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:104:"Open Channels FM: Open Channels FM Announces the Return of Do the Woo as a Dedicated WooCommerce Podcast";s: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=113549";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:111:"https://openchannels.fm/open-channels-fm-announces-the-return-of-do-the-woo-as-a-dedicated-woocommerce-podcast/";s: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:284:"PRESS RELEASE: The relaunch of the Do the Woo podcast under the Open Channels network aims to create a dedicated platform for the WooCommerce ecosystem. It will provide insights and discussions tailored for merchants, developers, and product teams, starting with guest Matt Mullenweg.";s: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, 16 Dec 2025 15:19:01 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s: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: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:78:"Open Channels FM: Relaunching Do the Woo Podcast for the WooCommerce Ecosystem";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:33:"https://openchannels.fm/?p=113479";s: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://openchannels.fm/relaunching-do-the-woo-podcast-for-the-woocommerce-ecosystem/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:352:"Today we are officially announcing the relaunch of Do the Woo as a fully dedicated WooCommerce podcast under the Open Channels network. The show returns with a new mission, a refined focus, and a commitment to becoming the central place where the entire WooCommerce ecosystem can learn, share, and connect. More information about the relaunch […]";s: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, 16 Dec 2025 12:03:00 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:11:"Katie Keith";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:22;a:6:{s:4:"data";s:21:"\n \n \n \n \n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:103:"Open Channels FM: Do the Woo Podcast is Back with Conversations for Builders, Merchants, and Developers";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:33:"https://openchannels.fm/?p=113449";s: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://openchannels.fm/do-the-woo-podcast-is-back-with-conversations-for-builders-merchants-and-developers/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:216:"The "Do the Woo" podcast is returning, focusing on WooCommerce insights, featuring industry leaders. It will include lively discussions, audience Q&As, and monthly episodes with hosts James Kemp and Katie Keith.";s: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, 16 Dec 2025 12:00:00 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:5:"BobWP";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:23;a:6:{s:4:"data";s:21:"\n \n \n \n \n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:26:"Matt: Cloudflare CMS Stats";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:23:"https://ma.tt/?p=150858";s: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:43:"https://ma.tt/2025/12/cloudflare-cms-stats/";s: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:684:"

Cloudflare released their Radar report for 2025, one fun stat was they analyzed the top 5,000 domains, and it had some interesting results for website technologies. Open Source tech came in at 47% for WordPress and 4.7% for Drupal, which wins the majority! Then in proprietary there was Adobe at 16%, Contentful at 8%, Shopify at 1.9%…

\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:"Tue, 16 Dec 2025 00:41: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:4:"Matt";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:24;a:6:{s:4:"data";s:21:"\n \n \n \n \n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:20:"Matt: Nex Playground";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:23:"https://ma.tt/?p=150848";s: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://ma.tt/2025/12/nex-playground/";s: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:855:"

The Wall Street Journal has a fun article about the Nex Playground, The Hottest Toy of the Year Is Made by a Tech Startup You’ve Never Heard Of. It’s a very fun way to game with friends and stay active, so afterward you have that same great feeling like after playing a sport. I think this is the first time one of Audrey Capital’s companies (we invested when it was the Homecourt app) is the hot Christmas item. Here’s it on Amazon, though it looks like it doesn’t ship before Christmas right 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:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Mon, 15 Dec 2025 05:59:27 +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: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:16:"Matt: Apple iWeb";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:23:"https://ma.tt/?p=150841";s: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:33:"https://ma.tt/2025/12/apple-iweb/";s: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:1024:"

The new X/Twitter algorithim is hard to predict, but I’ve had one go viral with over a million views now, a quote-tweet of a cool demo video of Apple’s website builder from 2009, with themes and blog support and everything. Interesting to compare its interface to Gutenberg and WordPress today.

\n\n\n\n
\n
\n
\n\n\n\n

For the video to play on the webpage, you have to visit in Safari.

";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Sun, 14 Dec 2025 05:57: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: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: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:16:"Matt: Winter Fun";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:23:"https://ma.tt/?p=150836";s: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:33:"https://ma.tt/2025/12/winter-fun/";s: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:1017:"

The colors here have now gone blue for winter, and snow has started, thanks to the excellent Snow Fall plugin. I also wanted to congratulate Wealthfront on their IPO. Many on their team have been friends or advisors over the years, from David Fortunato responding to my email about their WordPress blog being on an old version when they launched, to the amazing Adam Nash who teaches CS 007 Personal Finance for Engineers at Stanford, and he now runs the awesome Daffy donor-advised tax fund startup. I was an early customer, and even on their homepage as a testimonial in 2011, Audrey Capital has been an investor since 2013 and if you sign up with this link we both get 5k extra managed for free.

";s: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, 13 Dec 2025 04:43:27 +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: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:39:"Donncha: Make Photo Competitions Simple";s: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:"https://odd.blog/?p=89592184";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:59:"https://odd.blog/2025/12/12/make-photo-competitions-simple/";s: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:10072:"

Running a photography club competition used to mean juggling spreadsheets, chasing emails, and manually tallying votes. I built Photo Competition Manager to change that.

\n\n\n\n

This free WordPress plugin handles everything your club needs: member management, secure uploads, flexible voting, and beautiful results displays.

\n\n\n\n

This will suit a photography club that uses WordPress for their website and that has a projector for their meetings. If you already run a photo league with projected images or prints but collect votes from your club members using pen and paper you’re the perfect candidate to try this plugin.

\n\n\n\n

This is the very first release of this plugin. It has been used a couple of times to run several test photo competitions and one monthly league competition. However, bugs happen. I would love if your photography club used this plugin but I will need feedback to improve it. Run a couple of test competitions first to get used to how it works.

\n\n\n\n

Getting Started in Minutes

\n\n\n\n

The setup wizard creates all the required pages automatically. Select the pages you need, click a button, and you’re ready to go.

\n\n\n
\n
\n
\n\n\n

\n\n\n\n

Manage Your Membership

\n\n\n\n

The Members page is your central roster. Add members individually or bulk import from CSV. Assign grades, track status, and send magic-link upload invitations with a single click.

\n\n\n
\n
\n
\n\n\n

Each member gets a unique upload URL—no passwords to remember, no accounts to create. They click the link and upload.

\n\n\n\n

Create and Track Competitions

\n\n\n\n

The competitions dashboard shows a list of competitions, allowing you to edit them and send out upload emails to members. Only one competition may be active at a time, but a competition may have more than one category.

\n\n\n
\n
\n
\n\n\n

Create competitions with custom categories (Colour, Mono, Projected, etc), grade divisions (Beginner, Intermediate, Advanced), and submission quotas. Each competition can have its own rules without affecting your defaults.

\n\n\n\n

Watch Submissions Roll In

\n\n\n\n

As members upload, the submissions page displays thumbnails of every entry. You’ll see who’s submitted, which categories are filling up, and whose photos are still missing.

\n\n\n
\n
\n
\n\n\n

\n\n\n\n

A Frictionless Upload Experience

\n\n\n\n

When members click their magic link, they land on a clean upload form. They select their category, choose their image, and submit. The progress banner shows upload status in real time.

\n\n\n
\n
\n
\n\n\n

\n\n\n
\n
\n
\n\n\n

\n\n\n
\n
\n
\n\n\n

The plugin handles validation automatically—file types, dimensions, and quota limits are all enforced before the image is accepted.

\n\n\n\n

Complete Control Over Voting

\n\n\n\n

The voting controls page is your competition command centre. From here you can:

\n\n\n\n
    \n
  • Open and close voting for each category independently.
  • \n\n\n\n
  • Toggle the results display on or off.
  • \n\n\n\n
  • Enable slideshow mode for in-person club nights.
  • \n\n\n\n
  • Disable uploads once the submission deadline passes.
  • \n\n\n\n
  • Show a QR code for members to scan with their phones to vote.
  • \n
\n\n\n
\n
\n
\n\n\n

\n\n\n
\n
\n
\n\n\n

In the competition settings, you choose between token-based voting (unique links per member) or password-protected public voting. The voting controls page features a full-screen slideshow mode where members can vote together during meetings.

\n\n\n\n

On the night of the competition we do the following:

\n\n\n\n
    \n
  • Close uploads and hide results.
  • \n\n\n\n
  • Show the slideshow with a 10 or 15-second delay as a preview.
  • \n\n\n\n
  • Display the QR code and make sure every member can scan it and open the voting page.
  • \n\n\n\n
  • Open voting and show the slideshow again.
  • \n\n\n\n
  • When everyone has voted, close voting.
  • \n\n\n\n
  • 2 members of the club will then go through the images and offer a critique, using the slideshow again but in manual mode this time.
  • \n\n\n\n
  • Repeat for the next category.
  • \n\n\n\n
  • When all the voting is done, toggle the results page on and display the “top 3” results, and then the anonymous results page on the projector.
  • \n\n\n\n
  • Finally, an email is sent out to all members showing their score, ranking in their grade and the votes they received. Names are not attached to the votes for obvious reasons.
  • \n
\n\n\n\n

Voting By Phone

\n\n\n\n

Members can vote on the competition using their phones after they have scanned the QR code on the voting controls page.

\n\n\n\n\n\n\n\n

\n\n\n\n

Results That Make Sense

\n\n\n\n

When voting closes, the results dashboard breaks down every score by member grade. See vote distributions, identify your winners, and export everything to CSV for your records.

\n\n\n
\n
\n
\n\n\n

The frontend includes a responsive top-3 podium display perfect for announcing winners, plus full results tables with filtering by grade and category.

\n\n\n
\n
\n
\n\n\n

\n\n\n
\n
\n
\n\n\n

\n\n\n\n

Built for Photography Clubs

\n\n\n\n

Photo Competition Manager was built specifically for the way camera clubs actually run competitions:

\n\n\n\n
    \n
  • Magic-link authentication means members don’t need WordPress accounts to upload.
  • \n\n\n\n
  • Grade-based scoring supports clubs that split their membership by experience level.
  • \n\n\n\n
  • Slideshow mode turns any screen into a projection-ready display.
  • \n\n\n\n
  • CSV export keeps your archives intact.
  • \n
\n\n\n\n

Get Started Free

\n\n\n\n

Photo Competition Manager is free and GPL. Install it from the WordPress plugin directory or from the plugins page on your WordPress site in the usual way. Navigate to the Competitions menu to get started.

\n\n\n\n

Download Photo Competition Manager

\n\n\n\n

The source code is available on GitHub if you want to contribute or customise:

\n\n\n\n

View on GitHub

\n\n\n\n

Questions? Open an issue on GitHub or post in the WordPress support forum. I’d love to hear how your club uses it.

\n\n#Photography #photographyclub #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:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Fri, 12 Dec 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:7:"Donncha";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:12:"Matt: Aldeas";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:23:"https://ma.tt/?p=150817";s: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:29:"https://ma.tt/2025/12/aldeas/";s: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:1705:"

Tonight was a lot of threads connecting for me. At Automattic’s Noho Space we hosted an event for Martin Scorsese’s new documentary about Pope Francis, called Aldeas. There was a point in my life when I wanted to become a priest, and I had been inspired by meeting a Franciscan seminary student. I took it very seriously and considered that as a path for my life, but some combination of jazz and girls made me realize that the priesthood was not my destiny.

\n\n\n\n

The jazz led to building websites for Houston jazz musicians, which led to coding, which led to WordPress, which after a lot of twists and turns led to Automattic acquiring Tumblr. One of Tumblr’s greatest memes was Goncharov, directed by Martin Scorsese. The only reason Automattic, as a distributed company, has an office in NYC is because of the Tumblr acquisition. The office is filled with art from Tumblr artists so I had the very surreal experience of talking after Martin Scorsese, who at 83 is sharp as a tack and a gifted speaker, a few feet away from a Goncharov poster about how my Catholic upbringing led me down the path of starting WordPress, and how Pope Francis’ life inspired the WordPress Jubilee and reflection. Full circle.

";s: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, 12 Dec 2025 05:45: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: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: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:94:"Open Channels FM: WordPress 6.9: From Streamlined Content Creation to Powerful Developer Tools";s: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=113320";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:100:"https://openchannels.fm/wordpress-6-9-from-streamlined-content-creation-to-powerful-developer-tools/";s: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:232:"In this episode, contributors Akshaya Rane, Birgit Pauli-Haack, and Krupa Nanda discuss the collaborative process behind WordPress 6.9, highlighting features, performance upgrades, and emphasizing community involvement and testing.";s: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, 11 Dec 2025 10:40:12 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:5:"BobWP";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:30;a:6:{s:4:"data";s:21:"\n \n \n \n \n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:14:"Matt: Year-end";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:23:"https://ma.tt/?p=150805";s: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:31:"https://ma.tt/2025/12/year-end/";s: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:230:"

Tumblr has a fun 2025 in review, and if you’re a Pocket Casts user open the app to see all your stats for your listening this year.

";s: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, 11 Dec 2025 03:40: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: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: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:60:"WordPress.org blog: 2026 Global Partner Program Announcement";s: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=19534";s: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:63:"https://wordpress.org/news/2025/12/2026-global-partner-program/";s: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:9308:"

Become a driving force behind WordPress innovation by joining the Global Community Sponsorship Program: a comprehensive initiative that supports the events and people powering our open source mission. As a Global Sponsor, your organization gains meaningful visibility across the international WordPress ecosystem while helping to fund events that foster growth, collaboration, and community.

\n\n\n\n
\n\n\n\n

Why Choose Global Sponsorship?

\n\n\n\n

Instead of managing multiple individual sponsorships, this streamlined program consolidates your efforts into one efficient and impactful partnership.

\n\n\n\n

Efficiency and Simplified Administration

\n\n\n\n

Skip the complexity of coordinating invoice payments with numerous volunteer teams. Our centralized approach saves time and resources. In 2026, sponsors will benefit from:

\n\n\n\n
    \n
  • A dedicated Slack channel for direct communication with the WordPress Community Support team and Community Program Managers
  • \n\n\n\n
  • Monthly updates listing upcoming WordPress events, their current planning stages, and scheduled dates
  • \n
\n\n\n\n

Expanded Reach and Impact

\n\n\n\n

Your sponsorship amplifies your presence worldwide, ensuring consistent visibility across global WordPress community events.

\n\n\n\n

Stability and Reliability

\n\n\n\n

Your commitment strengthens locally organized events by providing predictable funding that supports venues, logistics, and growth.

\n\n\n\n

Flexible Branding Options

\n\n\n\n

Adapt across your portfolio—Global Sponsors can represent different brands at different events (subject to approval and advance notice).

\n\n\n\n

Program Benefits

\n\n\n\n
Global LeaderRegional PowerhouseCommunity Builder




Best for:
Established brands seeking global reach and year-round visibility.Companies aiming for regional dominance and strong brand recognition.Organizations supporting the next generation of WordPress education.
Sponsorship payable in full or through quarterly installments$180,000$110,000$60,000
Top tier sponsorship benefits at all local WordCamp events (excludes flagships) with priority access to claim a sponsor table at in-person WordPress events✔
Option to feature multiple brands across events✔
Dedicated sponsor landing page✔✔
Complimentary WordPress event tickets for your team✔✔
Recognition across all WordPress events✔✔
Sponsor Spotlight post on WordPress.org/news featuring highlights from recent WordCampsQuarterlyAnnually
Inclusion of your company logo in signage and materials for WordPress Campus Connect eventsAll signage & materials for the year (digital and printed)Signage & materials for 5 events per year (printed only)All signage & materials for the year (digital and printed)
Opportunity to be featured in an exclusive digital binder for WordPress Campus Connect event organizersPriority placement (logos & text)Feature listing (text only)Feature listing (text only)
Regular recognition in monthly education buzz report✔
\n\n\n\n

How Sponsorship Funds Are Used

\n\n\n\n

Global Sponsorship funds directly support:

\n\n\n\n
    \n
  • Local WordPress events worldwide (venue rental, catering, A/V, and more)
  • \n\n\n\n
  • Meetup.com license fees for over 671 WordPress Meetup groups globally
  • \n\n\n\n
  • Administrative costs like insurance, banking, and annual financial audits that ensure transparent operations
  • \n
\n\n\n\n

Your partnership helps sustain the community that powers more than 43% of the web. Together, we can keep the WordPress project thriving and expanding for years to come.

\n\n\n\n
\n

If your company is interested in joining the Global Sponsorship program or you would like to know more, please reach out.

\n\n\n\n\n\n\n\n
\n\n\n\n

Please see Rules for Sponsor Materials for more details about terms of sponsorship. Please also see our sample sponsorship agreement.

\n
\n\n\n\n

If you’d like to go one step further, please consider donating directly to the WordPress Foundation. We operate lean—every dollar goes toward keeping WordPress free, supporting education, and funding the community that makes the web a better place. In short, your donation helps us keep the lights on and the mission alive.

";s: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, 10 Dec 2025 17:16:48 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Harmony Romo";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:100:"WPTavern: #197 – Johanne Courtright on Enhancing Gutenberg: Agency-Driven Block Editor Innovations";s: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=201629";s: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:113:"https://wptavern.com/podcast/197-johanne-courtright-on-enhancing-gutenberg-agency-driven-block-editor-innovations";s: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:54861:"
Transcript
\n

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

\n\n\n\n

Jukebox is a podcast which is dedicated to all things WordPress. The people, the events, the plugins, the blocks, the themes, and in this case, enhancing Gutenberg with agency driven block editor innovations.

\n\n\n\n

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

\n\n\n\n

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

\n\n\n\n

So on the podcast today we have Johanne Courtright. Johanne started working with WordPress back in 2011, moving over from a background in marketing agencies, Dreamweaver and Static HTML sites. Over the years, she’s become a skill developer, focusing on extending WordPress through custom queries, forms, integrations with APIs, and increasingly harnessing the power of the block editor and React.

\n\n\n\n

Johanne talks about her journey from the classic world of agency WordPress development to embracing Gutenberg, and the challenges and wins along the way. She shares her experience in building custom blocks, and enhancing existing ones to better serve agencies. Things like improving break points, color palettes, responsive designs, and navigation, all of which aren’t offered in Core yet. These features come together in her growing open source project Groundworx.

\n\n\n\n

We talk about the shifting landscape from classic themes to block-based themes, and why even in 2025, a lot of agencies and users are still hesitant to make the leap fully. Johanne explains where the block editor falls short for her use, and how Groundworx aims to plug these perceived gaps with a foundation of flexible, performant, agency focus blocks and templates.

\n\n\n\n

You will hear about her approach to building modular themes with theme.json, the realities of client work and scope creep, and how the 80 20 rule shapes what belongs in Core, and what’s best handled by plugins.

\n\n\n\n

We also get into the challenge of discovery in the WordPress plugin ecosystem, her wishlist for block editor improvements, and her take on the future of block-based businesses in WordPress.

\n\n\n\n

Whether you’re a developer eager to modernize your workflow, or just curious about extending Gutenberg for real world use, this episode is for you.

\n\n\n\n

If 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\n

And so without further delay, I bring you Johanne Courtright.

\n\n\n\n

I am joined on the podcast by Johanne Courtright. Hello, Johanne.

\n\n\n\n

[00:03:21] Johanne Courtright: Hi. Nice to be here.

\n\n\n\n

[00:03:22] Nathan Wrigley: Yeah, very nice to have you with us. I put a tweet out not that long ago, seeing if anybody wanted to come on the WP Tavern Jukebox podcast, and Johanne was very kind and reached out to me. And we had a little bit of toing and froing. Not a lot, but a little bit. And I thought that the topic of conversation that she suggested was extremely curious.

\n\n\n\n

As you’ll discover in a moment, Johanne has been working hard trying to make the block editor, well, I’m going to use the word improved. Trying to add things to the block editor to make it more usable.

\n\n\n\n

That conversation though, probably would benefit from us knowing exactly who you are, and what your background is. Maybe if we stick to the WordPress bits and pieces, but would you mind just giving us a little biography? Tell us a bit about you.

\n\n\n\n

[00:04:00] Johanne Courtright: Sure. I got into WordPress in 2011, working for a marketing agency. It solved a big problem at the time coming from Dreamweaver, HTML static pages. My writing to that was a lot of convincing, but it was a very welcome change. WordPress made a huge impact on a lot of agencies.

\n\n\n\n

And so we used it for, primarily for home builders, and it was great. Discovered Advanced Custom Fields, tapped into that. Custom post types. It was a lot of fun for many years and I’ve worked for other agencies after that too, and my specialty has always been around extending as far as I can. Custom queries and forms, tapping into CRM and with APIs and all sorts of things. Anything that can be done with WordPress I was doing it, pretty much.

\n\n\n\n

[00:04:55] Nathan Wrigley: Are you self-taught then, or have you learned on the job? Or did you go through like a university program or something like that?

\n\n\n\n

[00:05:00] Johanne Courtright: Just learned on the job. Just looking for solution, and WordPress felt like it was a great fit. A lot of support online, a lot of documentation, just a lot of people providing enough documentation to be able to explore was very helpful. And there was Joomla and Drupal that was also contenders, but I didn’t like Drupal’s interface, and I wasn’t a fan of how unstable Joomla was from updating versions to versions. So for me, it was a pretty fast decision to go with WordPress.

\n\n\n\n

[00:05:35] Nathan Wrigley: I think WordPress is a really great thing to hang your coat on if you are learning, because there’s so much, like you said, documentation. So much of it is prebuilt, so you can just download a version of WordPress and dig in basically, and see how somebody else over many years, in the case of WordPress, 22 years, how that has been built.

\n\n\n\n

Whereas I always found when I was digging in, so this is prior to me using any CMS, I had those PHP books, paper books, where you try to learn. And you’d always learn from nothing and you’d have to start building up and anything that you did wrong, you kind of really didn’t know what was going on.

\n\n\n\n

And so I quickly moved into the CMS space, and probably a little bit like you, WordPress was able to scaffold my learning. And quite a lot of the things that I thought I wouldn’t be interested in, I could skip over. I don’t know, things like permissions and stuff. WordPress already did that, so I didn’t really have to worry about how all of that was taken care of. So it enabled me to learn more quickly. And then of course, there’s the whole community behind it, and knowledge bases and articles and that whole thing. So I well understand your story.

\n\n\n\n

However, you’ve gone in a much more developer direction, I think, than I ever did. Looking at the bits and pieces that you are doing now, I think it’s fair to say that you have become a really competent developer, not just with things like PHP and JavaScript, but also I think more recently with things like React as well. How are you finding all of that, the new React based WordPress? Is it still maintaining the interest or are you banging your head on the wall a lot?

\n\n\n\n

[00:06:58] Johanne Courtright: I started Gutenberg, I started to use it pretty much around the time it came out. I had a bit of a struggle because I had to learn React for it. I didn’t want to be left behind, so I really tried hard, took a course online to accelerate a bit of my learning. And then I faced a time where it was just too much work to be done.

\n\n\n\n

But the last agency I worked at, I started I think like four or five years ago, they were open. They wanted to tackle it. And so we’re a team of three to start, and we made like a core foundation of blocks that we needed over time, building off projects and versions.

\n\n\n\n

And so it was a lot of fun, but in the same time we were still stuck in the old world with ACF for some of it. And I wasn’t quite pleased on some of it, but I understand sometimes like the budget, because I’m allowed to be fully a hundred percent Gutenberg. So when I decided to start something on my own to solve those things, I went a hundred percent Gutenberg, Interactivity API, no jQuery as much as possible. I decided to dive in completely, a hundred percent, because I believed in it. I knew how to solve those issues.

\n\n\n\n

[00:08:11] Nathan Wrigley: Yeah, all of those things that you’ve mentioned, you know, things like custom fields and things like that, they’re really curious, aren’t they? I mean, they’re really interesting stuff that you can do there, and it’s very much time saving, but it does feel like in the future there are utterly different possibilities there. And blocks, and all of the different bits and pieces that we’ll get into that you are working on, afford the chance to build custom solutions for every single project, without necessarily relying on downloading a plugin. You know, writing a bit of code, which will achieve a bit of functionality for this particular block or that particular block.

\n\n\n\n

However, all of that stuff being said, and the sort of rainbow version that we’ve painted of Gutenberg, it’s pretty obvious to me that during the last few years, there must be parts of the block editor that you’ve found to be lacking. Because as we’re going to discover, you’ve got a project called Groundworx, which is an endeavor in lots of different ways to bring features into the block editor which you feel probably, I’m guessing you feel, should have been shipped a long time ago.

\n\n\n\n

And I think it’s fair to say that your endeavor here is not to create a new suite of blocks, which you would download and replace core blocks. You are trying to enhance the paragraph block or the whatever block it may be. So you’re taking the core block, adding functionality into it. Have I got that right? Is that the endeavor?

\n\n\n\n

[00:09:34] Johanne Courtright: I have some extra blocks, but I did enhance quite a bit of what was already there, but not too much that it would interfere if they were to ever support. I mean, I have to be cautious on what I’m adding. But essentially, if you take WordPress as is, it’s good enough for somebody who’s starting, but it’s not good enough for an agency.

\n\n\n\n

[00:09:57] Nathan Wrigley: What are the bits that you think are missing? And honestly, feel free to just dig deep here. I know for me what I found lacking, but it only maps to the things that I have had to do. But I’m curious what a different person having worked for agencies and built a suite of blocks, what are the, I don’t know, four, five different things that you really feel are missing?

\n\n\n\n

[00:10:15] Johanne Courtright: You have to be pixel perfect with agencies, and they work with break points, and in containers and whatnot. And so you have to really kind of like stretch it further. And you have to also provide user experience efficiencies, for example, colour palettes and things like that. So you have to make it easier. So having presets of colours that already predetermined based on their branding, is ideal. So they can choose those presets, it already applies all the colours and your set. And then they can still override each components, which is amazing. That was something very important.

\n\n\n\n

So efficiencies and ease of use was great. So a combination of some custom blocks, but a lot of pre-made templates that you can make for them, and colour palettes. So the more you embrace Gutenberg, the more you can make it happen. But if you have those solutions that are not quite fully Gutenberg, it becomes a little bit complex because you’re fighting Gutenberg.

\n\n\n\n

[00:11:13] Nathan Wrigley: Did you build your suite of blocks? And we’ll get into what that means in a minute, and we can highlight the different bits and pieces that you’ve got. But did you build that out of frustration or were there, I don’t know, particular things that a particular project needed that was pretty edge case that you thought you’d build? Or is this more a case of, okay, everybody needs these things, it’s curious that they’re missing in Core? What’s the approach? Is it kind of edge case stuff or is it more, everybody could benefit from these?

\n\n\n\n

[00:11:42] Johanne Courtright: It’s a little bit of everything. Most of the time, agencies would need those extra features I brought in. The problem is, I didn’t want to overwhelm normal users as well with so many options. And I think that’s where Gutenberg is shining essentially.

\n\n\n\n

The padding system, for example. It’s got increments, but it doesn’t have an overwhelming amount of like, this is the padding for this break point, this is the padding for this break point. But you can still tap into it by using clamp on your padding to adjust based on your screen resolution. So you can solve that problem without having to specify all those extra padding for each break point.

\n\n\n\n

So there’s a lot of different ways to set up your theme.json to compensate for the lack of extra features per breakpoint. And that’s what I’ve been doing. And my goal is to set up enough blocks and provide, I’ll have a theme.json that I want to share, so it’ll be easy for people to have a starting theme to start with. And I’m planning to release that for free. I was just, there’s a lot to be done and provide documentation. There’s just a lot. It’s hard to get everything done fast.

\n\n\n\n

[00:12:57] Nathan Wrigley: Yeah, no kidding. I mean, have you built your own themes then from the ground up, or do you tend to rely on, I don’t know, a default theme and then modify that?

\n\n\n\n

[00:13:06] Johanne Courtright: I actually prefer to use my own theme. In fact, coming from the old world, you would put everything in a theme. You would put just all your functionality. And then you learn over time that it’s probably better to have a plugin, but then you still had the crossover of the two dependencies. You have to be cautious to not crash your site if one wasn’t, like if you switched a theme or if you switch a plugin.

\n\n\n\n

And then Gutenberg made it easier to create that separation because you can set up, if you set up your theme properly, you can have essentially 90% of your theme set up in a way where it’s accent one for colour, accent two for colour base, and contrast. So if you label your things, your keys properly, all you have to do is change the values. Don’t change the key names. And just create labels that are meaningful. You can create another theme super easy from that initial theme by just changing those labels and those values, and leave the keys alone. Sure, you’ll have probably more colours on certain other themes, but your foundation will help you get there faster.

\n\n\n\n

[00:14:19] Nathan Wrigley: I know that many years ago when Full Site Editing, as it was called back then dropped, and so block themes became a thing. I know that there was a hope that it would, over a fairly short period of time, that it would replace what we’re now calling Classic Themes. There was this period of time where, you know, both were still massively in development. And I think the hope was that over time, Classic Themes would become more obsolete, and then block-based themes would become the default.

\n\n\n\n

It feels from where I’m standing now, so we’re recording this in December, 2025, it feels as if that kind of hasn’t really happened. That promise is still, we’re still somewhere in limbo. There’s a few people out there in the WordPress space who are promoting Full Site Editing and all of the things that that can do, but I also feel there’s a lot of people who are not willing to make that leap.

\n\n\n\n

And I guess part of the problem maybe is that it’s easy for somebody like you because you’re in it day in, day out. You know where every menu is. You know where to put the mouse to achieve the exact thing you want at the exact moment that you want. But I feel that for a novice user, maybe somebody who’s got the job of, I don’t know, finishing off a website or somebody who’s got the job of just tweaking a website once it’s been handed over, I think it’s really hard, and a lot of the interface is kind of counterintuitive.

\n\n\n\n

And when you stand over the shoulder, as I have done, of people who’ve never used WordPress before, and you watch them, you see them flailing around trying to figure out how it works, and you see the constant butting up against a UX problem. I don’t know when that moment’s going to be, where everything is all tied off and perfect, but it doesn’t seem like in the year 2025, the few weeks that we’ve got left, or anytime soon in 2026, as if the Classic Themes are going to go away.

\n\n\n\n

And I don’t know if that concerns you at all, because obviously you’ve really invested in all these blocks and theming and all of that kind of stuff. Does it bother you that this is still a problem that we haven’t solved?

\n\n\n\n

[00:16:18] Johanne Courtright: I think what’s out there right now, the third party, what they’re doing, I mean, they’re solving some issues, but they’re adding a whole new platform on another existing platform, and that’s why I don’t choose those solutions. I prefer embracing the Core vision and try to expand what’s already there.

\n\n\n\n

One of my struggles I have is that, let’s just pick Elementor. You have a lot of great options. I mean, for somebody who knows what they’re doing, it does a lot, but it also comes with a lot of extra bloat of divs and CSS that’s not quite built how I would’ve done it. You have to fight the styling. And WordPress does it so different now. With Gutenberg, it’s the opposite. It does very little, and it allows you to override all the classes. The way it’s built, it’s allowing you to override easily without having to use the important on the styling to override it.

\n\n\n\n

And I think that’s a major change of how you think, and how you approach theming in general. This is the way. This is the way how it should be done. And once I stopped fighting how the new way was, and understanding where they were heading with that, something clicked and it just like, yes, this is what I want, this is what I want. And I made that call that I’m not going back.

\n\n\n\n

No normal users want to touch Divi or Elementor. Somebody who doesn’t have the knowledge of basic CSS even, they don’t want to touch that. It’s overwhelming. They don’t know how to touch it. And in fact, they’re scared. And when you present them with Gutenberg, you give them an hour training over Zoom session, they are in love with it. They make edits themselves. They’re just happy. They rarely come back with more questions. They just know how to use it.

\n\n\n\n

[00:18:12] Nathan Wrigley: I think we’re fast approaching a period in WordPress when a lot of the admin UI is about to change. So there’s a lot of foundational work being put in at the moment to really modify it. So maybe some of that dissonance that users might face in the near future will go away. And maybe those kind of block-based themes, and Gutenberg use in general will spike. There certainly seems to be a lot of work being done in that regard anyway.

\n\n\n\n

Let’s just move on to some of the bits and pieces that you have been doing though. Because obviously there must be, well, dissatisfaction is the wrong word, but there’s obviously bits of the block editor where you feel that work could have been done differently.

\n\n\n\n

And so I’m going to point people in the direction of your work. So if you go to groundworx.dev, and worx is spelt with an X at the end. So it’s the word ground, and then WOR and then the letter X, dot dev. If you go there, you’ll be able to find the product menu. And if you hover over the product menu, you’ll be able to see a bunch of things called Groundworx core and things like that, Groundworx navigation.

\n\n\n\n

And I want to dwell on Groundworx core. So this is your endeavor to improve the blocks that WordPress offers, and offer some new ones and modifications to existing ones. Tell us what the philosophy behind this is then.

\n\n\n\n

[00:19:29] Johanne Courtright: So some of the more fun blocks where they have like animation and all that are custom blocks. But they’re flexible in the way they’re easy to set up, intuitive. But I think for me, offering the capability to someone who wants those type of things that are not offered, it’s not necessarily a frustration for those because it’s just in addition to, it’s nice to have, it’s not a must have, essentially. They’re really nice, already pre-made blocks with the inner blocks and content that you can change.

\n\n\n\n

One of the ones that are, I think, lacking, I know we have the accordion block that came in recently. Mine is different, where I can have an accordion, but I can also have a tab. A tab that can turn into an accordion based on a specific break point. So it won’t go from accordion, to tab, to accordion, back to tab at several different break points, but it will have one point where you’ll tell it to break.

\n\n\n\n

So you can have a tab that can turn into accordion, which is nice to have because, I mean, tabs are not very friendly, but you still want them. You still want them. They’re useful visually at larger desktops, but you don’t necessarily want to deal with tabs at a mobile, unless they’re very small text and very few. So you need something to shift that. And you want to keep consistency. With accordions that you already have, so it looks good altogether. So that’s what I created. I have an accordion, and a tab, but the tab can fall into an accordion as well. And when they do fall into an accordion, they all look consistent and the same.

\n\n\n\n

[00:21:13] Nathan Wrigley: So currently if you, I’ll put the link in the show notes by the way. So if you go to wptavern.com and you search for the episode with Johanne in, then you’ll find all of the show notes. It’s probably easier than me reading out URLs and what have you.

\n\n\n\n

Your kind of block suite falls into two main categories, as far as I’m concerned anyway. So you’ve got your purpose built 11 kind of custom blocks where you are doing something that Core didn’t do. Although we might discuss how Core might tackle some of those things in the near future.

\n\n\n\n

But then also, the bit that I find really interesting is the whole section where you’ve got extension to Core blocks. So as an example, I’ll give you some examples of things which, dear listener, if you don’t use Gutenberg, you may be surprised to know that the block editor currently does not do these things.

\n\n\n\n

So for example, you have the capacity to reverse the order of a stack, which is really nice. So you might want to just, I don’t know, put an image above something on a desktop. And then on mobile, you might just want to flip that, or you might just want to flip it because you are doing, I don’t know, copy and pasting rows, but you want the image left, image right, image left, image right, that kind of thing.

\n\n\n\n

You’ve also added in break points for certain widths. So for example, a tablet break point might be in there. You’ve got a full height sticky for the group block, which is nice and interesting as well. Three breakpoints for WordPress headings and paragraphs. That’s nice. So you could, I don’t know, change the font size or something like that depending on what you’re looking at.

\n\n\n\n

Column counts. So you’ve got the ability to have different breakpoints in the Core list block as well.

\n\n\n\n

You’ve got a whole thing about performance optimisation for the video block, and then you’ve got a responsive setting for any break point that you may set. I probably butchered all of that, but you get the idea. You’ve got a ton of stuff that you’ve built on top of Core WordPress blocks.

\n\n\n\n

Why do you, because I mean, all of that I guess is given away to everybody, but there’s got to be an expectation, I suppose, that some of this stuff will ship in Core. Does that bit worry you? Does it worry you that you put in all this hard work and then somebody maybe in the Core project thinks, oh, that’s a good idea, let’s add that to the roadmap and what have you.

\n\n\n\n

[00:23:16] Johanne Courtright: I mean, it’s always a worry when you release something for WordPress because everything is GPL, but it’s just part of the ecosystem. I mean, I reverse engineered their blocks to learn what I know now.

\n\n\n\n

[00:23:27] Nathan Wrigley: Yeah, that’s a good point. Yeah.

\n\n\n\n

[00:23:28] Johanne Courtright: And if they think it’s great idea then, you know, as long as they give me credit, I guess it’s fine.

\n\n\n\n

But I say, not everyone will need break points. I mean, this is really more like, I’d say agency type things that usually you want those things, those features. They’re nice to have, but break points are not necessarily, I have to have it kind of thing if you are just a normal user. It’s more, if you want fine tuning for, like if you’re a designer and you really want those fine tunings, then they’re there.

\n\n\n\n

[00:24:03] Nathan Wrigley: Does it kind of surprise you though that we are now, oh goodness knows how many years we’re into the Gutenberg project, but it’s many, many years. It’s more than you can count on one hand. Does it surprise you that this stuff is still missing? That somebody like you needs to build this functionality and, well, needs is maybe the wrong word, but desires to build this functionality. Does it surprise you that this kind of thing wasn’t in it when it shipped, that a layout system with all the break points taken care of and all of that completely customisable, does it still shock you that that isn’t there?

\n\n\n\n

[00:24:34] Johanne Courtright: I have not done a whole lot of research, but based on what I’ve read so far is there was no intention to support it. So that’s why I decided to do it because I was like, I’m not going to wait for them to do it because they’re not going to do it.

\n\n\n\n

[00:24:50] Nathan Wrigley: Yeah. So it was never something that was intended that was missing. It was just, it was never, literally never intended. So somebody needed to ship it. It’s kind of like that WordPress 80 20 rule. That’s the other curious thing about WordPress usage. Somebody like you and somebody like me who is constantly in there and fiddling the entire time, you kind of have this expectation that a lot of this stuff, oh, everybody would need this because I need it.

\n\n\n\n

But the reality is, I guess most people are just logging in, changing a piece of text, maybe uploading an image, writing a blog post, clicking publish, and they’re done. And they’re relying on their agencies who’ve got the CSS, JavaScript, all of that React expertise that can build all of the different bits and pieces for them. So maybe it’s just me obsessing about these things because I’m in there all the time and I can see how they’re missing.

\n\n\n\n

[00:25:36] Johanne Courtright: I think the way I build themes these days is like extremely light. It’s like, there’s a theme.json, there’s very little CSS and very, very little JavaScript. Everything is moved towards plugins. It’s really meant for colours, font types, branding type things. I have very little things in my themes these days because I believe that somebody who has a website and tomorrow they want a different theme, even for Christmas, and they decide, oh, I want a Christmas theme, should be able to do it easily by just swapping the theme.

\n\n\n\n

[00:26:13] Nathan Wrigley: Clicking a button and it should all work, yeah.

\n\n\n\n

[00:26:14] Johanne Courtright: Click a button, and all of a sudden it’s the new font, it’s the new palette colour, and it just works with minimal effort to just change anything or tweak anything. That’s how I see it. You shouldn’t have things that are baked in your theme where if you change your theme, now all of a sudden it’s not available for that theme. Don’t lock your clients into essentially a theme with features, and then they’re stuck with your theme.

\n\n\n\n

[00:26:45] Nathan Wrigley: Okay, so that’s an interesting way of kind of spinning my question around in a sense. That whole thing that we have with clients where we have scope creep, you offer something, they agree to it, and then there’s this whole thing after you’ve built what they wanted, where they say, oh, but can we have, and then can we have, and what about this? We’ve got this idea as well. But that’s not the intention. The project was what we said it was going to be.

\n\n\n\n

And so in a sense, the WordPress project is a little bit like that. You know, it’s not trying to be every feature for every human being who ever thought a thing could be achieved. It’s more, here’s the foundational stuff, and if you really want those things, well, either build it yourself or go and find somebody who has built that for you.

\n\n\n\n

That kind of makes a lot of sense, doesn’t it? You know, if you’ve got this foundational platform, and I know the 80 20 rule, like I said, applies within WordPress. If 80% of the people need it, then it comes onto the scope of Core, and if it doesn’t reach that then it really doesn’t belong in Core. That’s kind of interesting because that reframes the whole thing and makes what you are saying true.

\n\n\n\n

Most of the things that you’ve got, that you’ve built on top of Core, and again, I’ll direct people to the URL on the WP Tavern website. They probably aren’t for 80% of the people, they probably are for the 20%, the people like you, the developers, the designers who are building websites. The inexperienced people, the 80%, maybe they don’t need this stuff. That’s an interesting reframing of it.

\n\n\n\n

[00:28:07] Johanne Courtright: Yeah, most people will probably be satisfied with just the basic theme that comes with WordPress. It’s got enough patterns at this point to have a good starting foundation. We need to get away from overbuilding our blocks in such a way where they’re rigid, this is the only thing it can do.

\n\n\n\n

So when I build my blocks, I build in such a way the HTML can be moved around with grid system CSS, where I can move things because I built it in such a way that it’s very flexible. So all you have to do after that is just you create like some styling to accommodate that other different behavior that you want.

\n\n\n\n

[00:28:51] Nathan Wrigley: So we’ve spoken just then about the bits and pieces that, you’ve extended WordPress Core and we described all of those. But there’s obviously bits that you felt were entirely missing that you thought might be useful to have. As I said a moment ago, some of these maybe are things that, I don’t know, maybe you’ll drop in the near future, or perhaps you’ll tweak in different ways because you did say that your accordion block behaves differently. But I know that the accordion block is coming to Core and what have you.

\n\n\n\n

But you’ve got things like an Accordion Block, you’ve got an Accordion Panel Block, a Tabs Block, Tabs Panel Block, Media Section Block, Media Content Split Block, that’s interesting. Card block, Card Reveal Block and many others. This is, I guess, is this you sort of dogfooding projects that you’ve had in the past where a client has wanted a particular thing and you’ve thought, oh yeah, I’ve now built that, let’s see if we can sort of make it more generic and add it into your suite of blocks?

\n\n\n\n

[00:29:43] Johanne Courtright: Those are pretty much blocks that keeps happening and being reused over and over and over. And they kind of become your basic foundation, if that makes sense. And they usually solve 90%, 95% of what you need for a site is essentially what’s part of the Core, is how I solved it. Another one that I solved that is very similar to what WordPress does was the Core Navigation.

\n\n\n\n

[00:30:09] Nathan Wrigley: Oh, you’ve got a whole other thing there, haven’t you? Yeah, that’s interesting.

\n\n\n\n

[00:30:12] Johanne Courtright: Yeah, this one is completely free, so I mean, my navigation falls very similarly what WordPress does, where I have a custom post type, I have blocks in it, and essentially it will use those menus that I can reuse in different parts of navigations. And the major difference is that WordPress is only this big modal and then you have very little customisation. It can go left or right, I think center.

\n\n\n\n

[00:30:43] Nathan Wrigley: That’s more or less it really, isn’t it?

\n\n\n\n

[00:30:45] Johanne Courtright: Yes. And it is annoying because if you choose left or right, well, it also affects your desktop versus modal, I didn’t like that. But I did like the idea of having the blocks sitting into a custom post type. So mine in that way does that too. But I didn’t want to interfere with what WordPress had done, so I created my own custom post type for it. But I’m still following the same principle where I have my blocks sitting in that custom post types be shared so I can reuse them.

\n\n\n\n

[00:31:18] Nathan Wrigley: So you can use Core navigation blocks containing the pages and the posts and things like that. How do you build them up?

\n\n\n\n

[00:31:25] Johanne Courtright: Well, I essentially copied over the link and the sub menu and I brought over some of their features, because I did like how they were, but I changed the HTML in it and what it’s capable of doing. Had a couple different things. That allowed me the flexibility to create accordions, and all sorts of different things without having to worry about having, you know how some sites will have a mobile menu, but they’ll have the same menu for the desktop, but it’s like a clone, but you don’t see it. I didn’t want that. Everything had to be done from the same HTML structure, and all it had to do is just essentially fall back gracefully into that other mode. And what was important also for me was that it was all Interactivity API.

\n\n\n\n

[00:32:20] Nathan Wrigley: Oh, interesting. Okay, you’ve been leveraging that.

\n\n\n\n

[00:32:23] Johanne Courtright: Yeah. So they’re all leveraging that. I was inspired also by Gutenberg Times website to do the vertical menu.

\n\n\n\n

[00:32:31] Nathan Wrigley: Yes. Yeah, they’ve got the, I don’t know which theme they’re using, but that I think was a default theme. Was it 2020?

\n\n\n\n

[00:32:37] Johanne Courtright: I was like, this is different. I want one like that. So I did support it too.

\n\n\n\n

[00:32:41] Nathan Wrigley: Yeah, I see that. So on your navigation block, one of the options is to have this kind of full height column, which you can invoke and the menu, I guess slides out, but it then collapses back into that full size column. Have you had much feedback on that? Because it, I always worry that that’s going to consume quite a bit of the real estate when it’s not being invoked. Whereas, you know, a little hamburger icon, which is sitting at the top of the screen is obviously not consuming anything once you’ve scrolled past the navigation menu. Does it stay there all the time? If you’re not using the menu at that moment, does it live there all the time or, how does it work?

\n\n\n\n

[00:33:14] Johanne Courtright: The bar stays there all the time. It’s up to you to add links that are useful in terms of what you’re doing. But, yes, it does stay there. It takes a little bit of the space, but it’s fine. You can choose also at what break point it will be sitting at the top instead.

\n\n\n\n

[00:33:34] Nathan Wrigley: Oh, I see. Got it. Right. There is an option to remove it. Yeah, yeah, yeah. Okay.

\n\n\n\n

[00:33:38] Johanne Courtright: Yeah. So you’re not, let’s just say you wanted to stop doing that at laptop or something, or tablet, then you just choose the option and it will just break to the other one at the top instead.

\n\n\n\n

[00:33:49] Nathan Wrigley: Okay. And you’ve built a suite of blocks, so six at the moment that work in concert together to build that. So you’ve got the Navigation Block, which I’m guessing is kind of the wrapper for that, I’m not sure. But then you’ve got the Branding Block, which I presume holds logos and things like that. The Menu Block, which is the responsive bit where you can display stack menu items and things like that. Sub Menus, which I guess allows you to create those accordions where there’s a parent item, but things hidden underneath. A Link Block where you can just add a single thing, which I guess isn’t inside any other navigation anywhere. And then a spacer block, just something to create a bit of breathing room to separate one thing from another. And those six things, you just build in your custom post type, and once you’ve built them there, you can then invoke it and construct it entirely in the block editor.

\n\n\n\n

You see this kind of stuff is really cool and really clever. Just the idea that you can build that in a, in this GUI, the block editor. Build it, style it, do all of the bits and pieces that you need to make it look nice inside the settings panel. It’s so great. The promise of Gutenberg delivered, really. This is the kind of stuff that it was always supposed to do, but people only seem to be getting to it now.

\n\n\n\n

[00:34:57] Johanne Courtright: You know, you did ask me a few times if there was a feature I wish was in WordPress, and I do have one right now. Theme.json, you can specify specific colours for your buttons and your texts, your background, but I wish there was a way for us to set up other variables or some other things to specify more colours. So for example, my navigation, I have a lot more colours than two. I wish there was a way for me to set those up instead of using CSS and then the variable name and then manually injecting those.

\n\n\n\n

[00:35:34] Nathan Wrigley: Right. Overriding things. Yeah.

\n\n\n\n

[00:35:36] Johanne Courtright: Allow me to have custom keys or something where I can just say, oh, put your colours here, and then it will just generate whatever it needs to do. So if there was a way for me to have a block and specify, say, this is going to be the selector, this is the selector and this is the key. And then in the theme.json, all the person has to do is set up the key and the colour and it just applies it. That would be a nice feature.

\n\n\n\n

[00:36:04] Nathan Wrigley: Yeah, it’s curious, you know, if for example, I was to go to, I don’t know, Squarespace or something like that and build my website with their technology, I guess there’s an expectation that what you get is what you get. This is it. You know, you pay your $20 a month or whatever it may be, I have no idea, and the features that you have are what you have. Maybe you can put in a support request somewhere and ask for another feature, but basically it’s very unlikely, I imagine, to happen.

\n\n\n\n

Whereas just about everybody on the developer side of things, fiddling with WordPress, is constantly coming up with new ideas and different ways it can be adapted. And so there’s always this sense of, oh, I could build this thing into it, or I could do, and so it kind of breeds, not dissatisfaction, that’s the wrong word, but a curiosity for what it could do.

\n\n\n\n

So you’ve just given a perfect example there. You’ve got this use case, which I don’t think I would probably make much use of. I think I’m probably happy with the two colours, but clearly in your scenarios that’s a way that you would like to adapt it.

\n\n\n\n

And that’s why the platform is so cool. Maybe at some point somebody will listen to that request and will implement that for you in Core. If not, you maybe have to suffer the CSS load that you’ve got in the meantime. But that is really what separates it. You know, we’ve got this idea that, if you contribute, and you put your ideas in and you show up and you, you know, you offer your time, then that kind of stuff can be changed.

\n\n\n\n

[00:37:28] Johanne Courtright: I have to say, I know that it creates a lot of friction at the moment and how they’re guarding and guiding very specifically. And they’re clear in their vision and they want to follow that vision, and it creates some frustration for some people who want things done differently. But I appreciate that they’re doing that because it was a long term project. The frustration probably comes from, I wish it was there, what it is today, many years ago, when it came out. But I do appreciate that there’s somebody with a vision who stick to their vision because I think it’s the right way.

\n\n\n\n

[00:38:10] Nathan Wrigley: Yeah, and interestingly, everybody else’s vision can also be lived. So, you know, there’s a variety of different page builders, and I know that’s not your thing, but it is the thing of many millions of people. They love that, and that’s their preferred way of doing it. You can’t do that on these other proprietary platforms. There isn’t a different entire UX and UI that you can inject into it, but we have that, you know? And if you want to use a page builder, or you want to use whatever it is that you want to use, that’s the way it is.

\n\n\n\n

I suppose the only thing we’ve got to be mindful of is the flame was that sometimes occur. You know, people saying, well, my tool is the best tool. Anybody else that’s using anything else is missing out or what have you, or maybe stronger language than that. And just recognise that, well, the reason that you can do that is because there’s this foundational stuff, the WordPress Core.

\n\n\n\n

[00:39:00] Johanne Courtright: They’re allowing it.

\n\n\n\n

[00:39:01] Nathan Wrigley: Yeah, and it’s allowing you to have that, and you don’t have to use Gutenberg. But it does feel, it really does feel as if in the latter part of 2025, it does feel as if there’s a little bit more excitement around the Block Editor and the different bits and pieces. I don’t know if you’ve picked up on that, but there seems to be more stories. There seems to be more people shipping products that latch onto the block editor. Yours obviously is an example of that.

\n\n\n\n

[00:39:24] Johanne Courtright: The biggest hurdle is to learn it’s a different mindset, different language, it’s different in so many ways. There’s just too much to learn to jump from old way to new way. And it’s very overwhelming for a lot of people. It’s very, very overwhelming.

\n\n\n\n

[00:39:45] Nathan Wrigley: Genuinely don’t know how we bridge that gap, to be honest, because I think you’re right. If you’ve been familiar with using WordPress in its classic form, then it is, it’s seismic. But more or less, every developer that I know has at least some curiosity in Gutenberg and things like that, so probably.

\n\n\n\n

[00:40:00] Johanne Courtright: Once people fully decide to embrace it and take the time to reverse engineer and understand it, they’re like, oh, wow. All the cool stuff I can do. Yes. You know? And they change their mind completely. It’s a bit challenging because I mean, even like, let’s just say Tailwind, which is the CSS framework. I mean, it’s great. Tailwind is amazing, but when you start trying to use it with WordPress, that’s another one that fights WordPress. I stopped using it. I’m just going with SCSS and I build my own stuff. Now I have very little CSS into my blocks and it’s just, there’s no real point to have CSS framework in WordPress. You don’t need that.

\n\n\n\n

[00:40:44] Nathan Wrigley: I’m going to pivot the subject a little bit, and it’s because of a tweet that I saw yesterday, I believe it was. A friend of mine tweeted that he’s yet to see a block solution. So I don’t think that those were the words that he used, but he’s yet to see an out and out successful business built on top of blocks. So the example might be that, for example, on WordPress Core, you’ve got all of these really successful products. So you’ve got things like Gravity Forms and things like that, that have made real, they’ve got a real stable business going on. And he was questioning, have we seen that with blocks yet?

\n\n\n\n

So you are trying to make that happen. You are trying to sell a commercial product. I know that there’s, free versions and things like that, but you’re trying to sell a commercial product. How is that? What is the landscape for that at the moment? Because I’m guessing it’s not like you are printing money at the moment. I don’t know how difficult that is and whether or not it’s been the fountain of cash that maybe you’d hoped it would be.

\n\n\n\n

[00:41:44] Johanne Courtright: I don’t expect it to be a fountain of cash. I love what I do. I do it for myself first, and if other people happen to enjoy it, then But if they don’t, that’s fine, I’m using it.

\n\n\n\n

[00:41:59] Nathan Wrigley: That’s very sanguine approach. I think his thought when he made that tweet is that maybe we’re on the cusp of something. Because it feels like there’s a certain speed that the flywheel needs to achieve before people become really interested in it. I’m not sure that that has yet happened. But give it some more time, give it some more interesting products, some more attention, some more marketing and what have you. And definitely a lot of the stuff shipping in 6.9, which is actually coming out today. And then 7 next year, and all of the AI bits and pieces that are going to be put in as well. You never know. Maybe with a fair wind, we’ll be printing money for you.

\n\n\n\n

[00:42:38] Johanne Courtright: I do have a message for Matt if he listens. He needs to work on his plugin and themes website. It’s not usable at the moment. It doesn’t leave room for new development, new plugins to be seen. It needs to be feeling more like a community.

\n\n\n\n

I come from a background where I did a lot of desktop customisation. We had featured skins and themes and wallpapers and there was, people were excited. There was somebody reviewing. Think about it about how Apple does their Apple store, where they had like featured apps. Somebody went and tested a few of those plugins and featured them. They pick them. We need more, something like that.

\n\n\n\n

We also need to have a better search. Search is awful. It’s all stuffed keywords. And if you’ve been around for a while, if you’re new, there’s no way for you to rank for anything. There needs to be true categories and easier ways to find what you’re looking for.

\n\n\n\n

[00:43:37] Nathan Wrigley: Do you know, that’s a whole interesting other conversation, isn’t it? Maybe we’ll have that one time. But I get what you mean. When the iPhone came out, don’t know if you sort of remember or go back that far, but when the iPhone came out, it was this curious but beautiful object that had a lovely screen and could play songs and things. But the moment the app store came along for the iPhone, that’s I think when it became really interesting.

\n\n\n\n

And it does feel with the advent of blocks, like there’s an opportunity similar to that in that WordPress is no longer just these plugins and themes. We’ve got this whole other thing now, these blocks, these mini applications if you like, which really in many ways have full capabilities like plugins would do. And being able to surface those and find a block or a.

\n\n\n\n

[00:44:26] Johanne Courtright: You should be able to set, are you supporting Gutenberg? Is it using jQuery? Is it using those basic little things like check, check, check? And if some people are looking for those things, they should be able to find you.

\n\n\n\n

Right now it’s useless. It’s very useless, even for me looking for a plugin. Most of the plugins I found these days are because I use Google or AI, or there’s other means, but it’s very hard to find. I don’t even rank in the first 40 some pages for my navigation, so it’s ridiculous. Look for navigation, you won’t find me.

\n\n\n\n

[00:45:04] Nathan Wrigley: Okay, so maybe that’s work to be done in 2026. But hopefully somebody has heard your plea there and you never know. If they have and they want to reach out to you, well, obviously we know that you’ve got the Groundworx with an X, .dev website. Is there another place where you hang out online that people could find you if they wanted to have a chat?

\n\n\n\n

[00:45:23] Johanne Courtright: I’ve been hanging out a lot on X these days. I get a lot more response there. It seems to be WordPress community hangs out there a lot, so I think that’s going to be my platform of choice for a while.

\n\n\n\n

[00:45:36] Nathan Wrigley: Okay. In which case, into the show notes, along with the links to all of the bits and pieces that we mentioned, I will bury the link to Johanne’s X profile as well, so you can go and connect there.

\n\n\n\n

Thank you so much for chatting to me today. It’s really interesting getting your insight into all of the bits and pieces that you’ve done extending Gutenberg, but also all of the bits and pieces that you’ve done with new stuff as well. Go check it out. It’s Groundworx.dev. Johanne, thank you so much for chatting to me today.

\n\n\n\n

[00:46:01] Johanne Courtright: Thank you for inviting me. Thank you so much. It was great.

\n
\n\n\n\n

On the podcast today we have Johanne Courtright.

\n\n\n\n

Johanne started working with WordPress back in 2011, moving over from a background in marketing agencies, Dreamweaver, and static HTML sites. Over the years, she’s become a skilled developer, focusing on extending WordPress through custom queries, forms, integrations with APIs, and increasingly, harnessing the power of the block editor and React.

\n\n\n\n

Johanne talks about her journey from the classic world of agency WordPress development to embracing Gutenberg, and the challenges and wins along the way. She shares her experience in building custom blocks and enhancing existing ones to better serve agencies, things like improved breakpoints, color palettes, responsive designs, and navigation, all of which aren’t offered in Core yet. These features come together in her growing open-source project, Groundworx.

\n\n\n\n

We talk about the shifting landscape from classic themes to block-based themes, and why, even in 2025, a lot of agencies and users are still hesitant to make the leap fully. Johanne explains where the block editor falls short for her use, and how Groundworx aims to plug these perceived gaps with a foundation of flexible, performant, agency-focused blocks and templates.

\n\n\n\n

You’ll hear about her approach to building modular themes with theme.json, the realities of client work and scope creep, and how the 80/20 rule shapes what belongs in Core and what’s best handled by plugins.

\n\n\n\n

We also get into the challenge of discovery in the WordPress plugin ecosystem, her wishlist for Block Editor improvements, and her take on the future of block-based businesses in WordPress.

\n\n\n\n

Whether you’re a developer eager to modernise your workflow, or just curious about extending Gutenberg for real-world use, this episode is for you.

\n\n\n\n

Useful links

\n\n\n\n

Groundworx Core

\n\n\n\n

Groundworx Navigation

\n\n\n\n

Gutenberg Times

";s: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, 10 Dec 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:"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: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:15:"Matt: Dries OSS";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:23:"https://ma.tt/?p=150795";s: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:32:"https://ma.tt/2025/12/dries-oss/";s: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:734:"
\n

A more accurate framing would be that Fizzy is source available. You can read it, run it, and modify it. But DHH’s company is keeping the SaaS rights because they want to be able to build a sustainable business. That is defensible and generous, but it is not open source.

\n
\n\n\n\n

Dries Buytaert follows up on my response to DHH with ‘Source available’ is not open source (and that’s okay).

";s: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, 10 Dec 2025 03:13:28 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s: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: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:81:"Open Channels FM: Growth, Hackathons, and Gratitude Lessons from an Eventful 2025";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:33:"https://openchannels.fm/?p=113334";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:86:"https://openchannels.fm/growth-hackathons-and-gratitude-lessons-from-an-eventful-2025/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:219:"Zach Stepek and Carl Alexander recap their 2025 experiences, highlighting personal growth, industry events, business developments, and health journeys. They emphasize gratitude and reflect on goals for a promising 2026.";s: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, 09 Dec 2025 14:36:04 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s: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:31:"Matt: DHH &amp; 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:23:"https://ma.tt/?p=150789";s: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:38:"https://ma.tt/2025/12/dhh-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:4992:"

I might have a new prayer: God, give me confidence of DHH claiming his proprietary license is Open Source.

\n\n\n\n
\n\n\n\n

37signals/Basecamp has a great new product called Fizzy, whose brilliance and innovative qualities are being distracted from by its co-creator David Heinmeier Hansson’s insistence on calling it open source. “One more thing… Fizzy is open source and 100% free to run yourself.”

\n\n\n\n

Thanks to Freedom of Speech, DHH is free to describe his proprietary software as Open Source, a form of greenwashing, and even though he wants to “Well akshually” denigrate those saying why this is BS, we as free citizens are free to explain why, despite how fast he talks and confident he sounds, he’s not always right.

\n\n\n\n

Myself and other “Actually Open Source” leaders (including DHH) who release software under licenses that meet a common definition of Open Source benefit from decades of prior art and an incredible foundation that lays out the philosophy and definition of what defines open source.

\n\n\n\n

For the layperson, though, it might be helpful to break things down in an analogy of authoritarian vs democratic regimes, or a core question of who holds the power.

\n\n\n\n

Proprietary licenses may grant things that feel like freedoms; for example, Fizzy’s O’Saasy license lets you download the source code, run it yourself, modify it, and use a public bug tracker, and you can see the software’s source control history. That’s cool! Also, in the past several years, there have been Middle Eastern countries that have just now allowed women to drive cars. That’s great! However, as a free person choosing to use this software, or choosing to live in a country, you have to ask yourself: Am I still free?

\n\n\n\n

No, you’re not. You are allowed to do some things that are in and of themselves good, but ultimately, it’s not built on a foundation of an inalienable right or constitution; it’s at the whim of the leader. O’Saasy license has this restriction:

\n\n\n\n
\n

No licensee or downstream recipient may use the Software (including any modified or derivative versions) to directly compete with the original Licensor by offering it to third parties as a hosted, managed, or Software-as-a-Service (SaaS) product or cloud service where the primary value of the service is the functionality of the Software itself.

\n
\n\n\n\n

Oh wow, I can’t compete with the leader. In how they choose to operate their business today, or however they might choose to in the future. My freedoms are at their whim. This violates rule 5 of the OSI definition of Open Source: “The license must not discriminate against any person or group of persons.”

\n\n\n\n

I’d like to choose software and live in a society that doesn’t discriminate.

\n\n\n\n

It’s not uncommon for people trying to take away your freedom to want to use the same words as those in truly free societies. North Korea calls itself the Democratic People’s Republic of Korea. Why? Per Google’s AI:

\n\n\n\n
\n

Socialist Definition of Democracy During the Cold War, the Soviet Union and its allies used “democracy” to mean “people’s power” through a single ruling party, representing the working class, as opposed to the multi-party “bourgeois” democracy of the West. North Korea adopted this lexicon, as did other communist states like the German Democratic Republic (East Germany).

\n
\n\n\n\n

Yeah, really democratic. In that sense, you can say O’Saasy is an “open” “source” license. Perhaps a bubble of people will agree with you. But the rest of the world will use common sense and see that as a fraud. And most disappointingly for 37signals, a company that prides itself on high integrity, it’s false advertising.

\n\n\n\n

(For what it’s worth, I tried to resolve this quietly with Jason Fried a few days ago.)

";s: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, 09 Dec 2025 05:30: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: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: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:27:"Matt: Happy Birthday Kinsey";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:23:"https://ma.tt/?p=150776";s: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:32:"https://ma.tt/2025/12/kinsey-70/";s: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:3384:"

Yesterday I had the great honor and privilege of attending a colleague’s 70th birthday party. You may not have heard his name before, but Kinsey Wilson has been at the center of shaping journalism with a movie-worthy career that started at the bottom as a crime reporter in Chicago, and has taken him to the highest echelons at NPR, the New York Times, and, most recently, we’ve been lucky to have him at Automattic.

\n\n\n\n

Kinsey brings a journalistic curiosity and passion for finding truth, paired with a deep optimism and creativity for seeing around the corner for how technology can transform how we consume and produce media.

\n\n\n\n

While his Wikipedia page or biography provides appetizers to some of what he’s done, Kinsey has led such a rich and beautiful life that any attempt to summarize it ends up being criminally reductive. The best you can hope for is to give a taste of his person through vignettes.

\n\n\n\n

A beautiful snippet from the montage of accolades at his birthday was how Kinsey was someone you’d follow into battle. I’ve learned so much from seeing the empathy, candor, and integrity he brings to every team he leads, which engenders an incredible loyalty I’ve rarely seen in my career. When he left NPR, 62 colleagues made an “Infinite Kinsey” website of accolades.

\n\n\n\n

That sort of thing is rare, and it’s been an honor and a privilege to work alongside him to democratize publishing.

\n\n\n\n

One of those colleagues, Elise Hu, introduced us while he was at the New York Times and while my intention when I first met him was to get more WordPress at the Times, my imagination was sparked by thinking of how he could bring his experience to help shape WordPress and Automattic, hence my pivot into recruiting him.

\n\n\n\n

Kinsey’s impact on journalism (and podcasting!) at NPR and New York Times is easy to understand, but less well-known is how he came into Automattic and got deep into understanding WordPress and seeing it as a platform that could enable the newsrooms and journalists to accomplish their mission in a more efficient way with the project he leads, Newspack.

\n\n\n\n

He’s a fierce steward of the Fourth Estate.

\n\n\n\n

Newspack and its team’s close relationship to customers invents solutions on top of WordPress that delight its users and percolate and influence everything we do at Automattic. They’re one of the teams that sets the bar for others in the company.

\n\n\n\n

To Kinsey, I’ll leave you with a quote from one of my other inspirations, Charlie Munger, who at the tender age of 99 shared a wish with a visitor, “Oh, to be 86 again.”

\n\n\n\n

I’ll try not to be too tech-bro optimist and say that 70 is the new 40, but I look forward to seeing the ripples that you have on the future of publishing for many years to come.

";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Sun, 07 Dec 2025 21:37:45 +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: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:18:"Matt: Self-driving";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:23:"https://ma.tt/?p=150768";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:35:"https://ma.tt/2025/12/self-driving/";s: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:1455:"

There has been some lovely writing about self-driving this week, first in the New York Times where Jonathan Slotkin makes the medical case for autonomous vehicles. But I was really taken by The Economist’s look at how self-driving cars will transform urban economies. It’s behind a paywall. I enjoyed how they thought about the second-order effects of self-driving.

\n\n\n\n
\n

America is home to 1m taxi and bus drivers, as well as over 3m truck drivers—adding up to 3% of the working population. Other potential losers are less obvious. Without car accidents there will, for instance, be less demand for personal-injury lawyers. If people stop buying cars, dealers and used-car salesmen will go. 

\n
\n\n\n\n

It’s fascinating to think a few chess moves down the line, for example, fewer personal-injury lawyers funding politicians might lead to some form of Tort Reform, an area of society that, like gun control, has centrist changes most Americans would agree with, but has been captured by special interests.

";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Sat, 06 Dec 2025 23:54:14 +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: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:15:"Matt: AI Native";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:23:"https://ma.tt/?p=150762";s: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:32:"https://ma.tt/2025/12/ai-native/";s: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:126:"

James LePage has a great write-up, SOTW 2025:The Year WordPress Became AI-Native.

";s: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, 06 Dec 2025 05:47: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: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: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:111:"Gutenberg Times: State of the Word, WordPress 6.9 “Gene”, Playground Year-Review — Weekend Edition #352";s: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=43310";s: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:107:"https://gutenbergtimes.com/state-of-the-word-wordpress-6-9-gene-playground-year-review-weekend-edition-352/";s: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:28795:"

Hi there,

\n\n\n\n

How did the upgrade to WordPress 6.9 go for you and those around you? Did anything break? Or are you waiting for 6.9.1 to come out?

\n\n\n\n

Once in a while I get a question on how I keep up with the fast progress and the vast range of updates in Gutenberg and WordPress Core. Here is one source of information I am grateful for: Contributors working on the Gutenberg project started posting their so-called “Iteration for WordPress 7.0” issues on GitHub. I bookmarked this list and once in a while I will check up on the progress, especially when I get lost in the weeds of single PRs and need to align again on big picture goals. It’s not a comprehensive list, though.

\n\n\n\n

From the conversations at State of the Word 2025, I learned that the community is embracing the educational initiatives of Campus Connect and WordPress Credits. Seeing more generations stream into the ecosystem warms this perpetual community organizer’s heart. Equally exciting is the foundational work the AI Team has accomplished to ready the ecosystem for the era of Artificialle Interlligence (AI) when LLMs and helper agents elevate research, publishing and amplification for people.

\n\n\n\n

What did stand out for you after watching the State of the Word video? Email me or leave a comment.

\n\n\n\n

Below is another walk-through of the buzz around block editor, plugins and Playground. Enjoy, and have a wonderful weekend.

\n\n\n\n

Yours, 💕
Birgit

\n\n\n\n\n\n\n\n

Developing Gutenberg and WordPress

\n\n\n\n

WordPress 6.9 “Gene” was released during State of the Word 2025, with most of the release leads present at the in-person event. You can revisit the moment on YouTube 41:35 minutes into the recording, with the demonstration of the major features by Matias Ventura.

\n\n\n\n
\n
\n
\n\n\n\n

Nicholas Garofalo wrote State of the Word 2025: Innovation Shaped by Community. Matt Mullenweg and Mary Hubbard, our Executive Director, delivered WordPress’s yearly update, which included an exciting live launch of WordPress 6.9. The keynote dug into how we’re mixing in AI with features like the Abilities API and MCP adapter, highlighted the awesome growth of our global community across 81 WordCamps, and showed off cool tools like Telex that help you create AI-powered blocks. Some major highlights were new collaboration features, upgraded developer APIs, and more ways to connect learners around the globe to opportunities on the open web.

\n\n\n\n
\n\n\n\n

Rae Morey, The Repository, reports on the annual keynote in detail in her post State of the Word 2025: AI, Education, and a Community Holding Steady Through a “Rollercoaster” Year.

\n\n\n\n
\n\n\n\n

You can watch the entire State of the Word event on YouTube.

\n\n\n
\n
\n\n
\n
\n\n\n
\n\n\n\n

James Le Page elaborated in SOTW 2025:The Year WordPress Became AI-Native how WordPress delivered four foundational AI components in version 6.9, six months after forming its first dedicated AI team. The Abilities API creates unified registries for AI agents, while the WP AI Client provides provider-agnostic LLM interfaces. The MCP Adapter exposes capabilities externally, and the AI Experiments Plugin demonstrates practical implementations. Looking ahead, version 7.0 will introduce client-side abilities and a Workflows API for chaining actions, positioning WordPress to remain central as AI reshapes content consumption and creation across the open web.

\n\n\n\n
\n\n\n\n

🔥 Save the Date! January 13, 7pm UTC Join James LePage and Jamie Marsland for a hallway hangout on all things WordPress AI. If you are interested, comment on the tweet or ping Jamie Marsland.

\n\n\n\n
\n\n\n\n
\n\n\n\n

In WordPress 6.9 Is Out! The Main Features You Need to Know, Karol Kroll gives you a walk-through of the new version on his YouTube channel.

\n\n\n
\n
\n\n
\n
\n\n\n
\n\n\n\n

Maddy Osman reported on What’s New for Bloggers, Creators, and Site Owners in WordPress 6.9. and highlights collaboration tools like block-level notes and hide-show toggles, new creative blocks including Accordion and Term Query for enriched storytelling, plus performance improvements loading styles on demand.

\n\n\n\n
\n\n\n\n

In his post Ability to Hide Blocks in WordPress 6.9, Aki Hamano, sponsored triage co-release lead, shared more detail about this new WordPress features and how to disable it.

\n\n\n\n
\n\n\n\n

Rhys Wynne discussed the release of WordPress 6.9, noting it contains more visible features compared to version 6.8. He highlights three key improvements: the Notes,; the Accordion block, and the Command Palette.

\n\n\n\n
\n\n\n\n

On the Hostinger Blog, Bud Kraus explained the many features of WordPress 6.9, highlighting Notes, Accordion and Terms Query blocks and the Command Palette. Kraus emphasizes developer enhancements like the Abilities API, improved Block Bindings, and removal of legacy Internet Explorer code. He notes this release marks the official start of Phase Three collaboration features while balancing practical user improvements.

\n\n\n\n
\n\n\n\n

Carlo Daniele reported on the latest WordPress release for Kinsta. In New features, new blocks, new APIs: here is what’s new in WordPress 6.9, he discusses key features like the Command Palette, Notes, and new blocks. He also covers updates for developers, including the streaming block parser, custom Social Link icons, the Abilities API, Block Bindings, and improvements to the Interactivity API and DataViews.

\n\n\n\n
\n\n\n\n

Earlier this week, I worked on the release of Gutenberg 22.2. You can read my release post on the Make Blog: What’s new in Gutenberg 22.2 (03 December)?. The highlights are:

\n\n\n\n\n\n\n\n
Use video from YouTube for your cover background.
\n\n\n\n\n\n
\n

🎙 The latest episode is Gutenberg Changelog #125 – WordPress 6.9, Gutenberg 22.1 and Gutenberg 22.2 with JC Palmes, WebDev Studios

\n\n\n\n
Gutenberg Changelog 125 with JC Palmes and host Birgit Pauli-Haack
\n\n\n
\n
\n\n
\n
\n\n\n\n

Plugins and Tools for #nocode site builders

\n\n\n\n

Bernhard Kau, a PHP developer from Berlin and community organizer, started an Advent Calendar to showcase recommended plugins. The Dec. 3 edition featured Block Editor: Reverse Columns on Mobile – a small block options plugin. He likes it for its ability to solve mobile layout issues with just 250 lines of code, managing columns, group blocks, and media-text arrangements. Instead of needing to add custom CSS classes manually, the plugin uses simple checkboxes to order image and text correctly on mobile and supports RTL languages and various flex layouts. While some believe fewer plugins are better, Kau prefers targeted solutions that do exactly what he would code himself, making features easy for content editors on no-code sites without overcomplicating the functionality. If you need a guide through the forest of plugins in the WordPress ecosystem you should follow Bernhard Kau’s blog.

\n\n\n\n
\n\n\n\n

Jake Spurlock released Placeholders, a WordPress plugin that simplifies wireframing ad layouts by offering fourteen Gutenberg blocks for common IAB advertising sizes. Each block shows clean wireframe-style placeholders with accurate dimensions, customizable colors, and alignment options, all without needing an actual ad setup. This free plugin empowers designers and developers to create mock placements for design phases, client presentations, and layout testing. Future updates may add custom sizes, layout templates, and ad management features. The plugin is available on the WordPress repository.

\n\n\n\n
\n\n\n\n

Joop Laan has created a new plugin called Inline Context. It adds expandable tooltip popovers to your content for easy definitions, references, and clarifications without interrupting reading. You can highlight text, provide rich-text explanations, and categorize notes with custom icons and colors. This plugin is great for editorial sites, documentation, and research platforms. It’s fully keyboard-accessible and ready for translation. Laan also offers a live preview of the plugin in Playground to see it in action.

\n\n\n

“Keeping up with Gutenberg – Index 2025”
A chronological list of the WordPress Make Blog posts from various teams involved in Gutenberg development: Design, Theme Review Team, Core Editor, Core JS, Core CSS, Test, and Meta team from Jan. 2024 on. Updated by yours truly. 

\n\n

The previous years are also available:
2020 | 2021 | 2022 | 2023 | 2024

\n\n\n

Building Blocks and Tools for the Block editor

\n\n\n\n

Last month, JuanMa Garrido and Jonathan Bossenger invited user to the Developer Hours: WordPress 6.9 Block Bindings & Interactivity API. The recording is now available on WordPress TV.

\n\n\n\n
\n\n\n\n

Ronald Huereca discusses the Admin-Wide Command Palette which now operates in the entire admin area with CMD/CTRL-K. He shows how to disable the palette selectively using the wp-core-commands script handle, enable it on the frontend, and create custom commands using React hooks and registerPlugin. Huereca includes code snippets for different contexts—block editor only, admin excluding editor, or both—and suggests using separate script endpoints for new commands in existing block plugins to prevent iframe issues.

\n\n\n\n
\n\n\n\n

Brian Coords shared a tutorial on creating a Woo Product Category Image Block with WordPress 6.9, using the Block Bindings API and a new Terms Query Loop to show product category images without custom blocks. The method registers bindings using PHP on the server to get term meta thumbnails and uses JavaScript for the editor preview through WooCommerce’s data package. A block variation allows for easy insertion. Coords mentions this solves issues where taxonomy term images aren’t standard in WordPress, but he notes the increasing clutter in the block inserter due to more specialized variations.

\n\n\n\n
\n\n\n\n

Felix Arntz address on LinkedIn frequently asked question, on how he built the Gutenberg-like UI in his AI Services plugin for WordPress. In a new npm package called wp-interface he provided an abstracted solution anyone can use to get started integrating it into their plugins.

\n\n\n\n
\n\n\n\n

On his livestream, Jonathan Bossenger tested WordPress 6.9 and showed how to use its Block Bindings updates in a custom plugin. He explored custom post types and meta fields, worked with block bindings, and updated custom fields. Watch him solve debugging issues, add a year field, and improve a custom plugin.

\n\n\n
\n
\n\n
\n
\n\n\n
\n\n\n\n

In his blog post WordPress Development Without a Computer, Alex Kirk, long time WordPress contributor, outlines how he envisions AI-assisted fixes on the fly on a WordPress site. “With AI coding assistants that run in the browser—like Claude Code, OpenAI Codex, GitHub Copilot Workspace, or similar tools—combined with WordPress Playground for testing, you can now do WordPress plugin development without a computer.” Kirk provides a step-by-step instructions on how to make it possible today.

\n\n\n\n
\n\n\n\n

In his livestream, JuanMa Garrido discussed the Interactivity Router package, highlighting its ability to load content without full page reloads. He demonstrated client-side navigation in query loop blocks and interactive lightbox behavior. The session included enabling client-side navigation, performance comparisons, and practical API documentation examples.

\n\n\n\n
\n\n\n\n

What’s new in Playground

\n\n\n\n

In this 2025 Year in Review, Playground architect Adam Zieliński lists transformative achievements including supporting ninety-nine percent of WordPress plugins, running PHPMyAdmin and Laravel alongside substantial performance gains through OpCache and concurrent workers. New PHP extensions like XDebug enable modern debugging workflows while state-of-the-art MySQL emulation powers comprehensive database management. Developer tools now include file browsers, Blueprint editors, and one-click Gutenberg branch previews.

\n\n\n\n

The community contributed translations across six languages, earned forty-eight contributor badges, and demonstrated Playground at WordCamps globally, establishing it as essential infrastructure for testing, teaching, and building WordPress.

\n\n\n\n
Playground default screen.
\n\n\n

Need a plugin .zip from Gutenberg’s master branch?
Gutenberg Times provides daily build for testing and review.

\n\n
\n\n

Now also available via WordPress Playground. There is no need for a test site locally or on a server. Have you been using it? Email me with your experience.

\n\n\n
\n\n\n\n

Questions? Suggestions? Ideas?
Don’t hesitate to send them via email or
send me a message on WordPress Slack or Twitter @bph.

\n\n\n\n
\n\n\n\n

For questions to be answered on the Gutenberg Changelog,
send them to changelog@gutenbergtimes.com

\n\n\n

\n\n

Featured Image:

\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:"Sat, 06 Dec 2025 03: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: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: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:14:"Matt: Unifi 5G";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:23:"https://ma.tt/?p=150758";s: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:31:"https://ma.tt/2025/12/unifi-5g/";s: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:1187:"

One of my favorite hobbies is home networking and wifi, and once you go down that rabbit hole one of the best companies you can follow is Unifi. They’re such a cool company in so many ways, from having a 4-person board of directors, as a public stock. You can clearly tell they delight in bringing great design to hardware, in a Apple-like attention to detail.

\n\n\n\n

They ship such cool products regularly, across an entire ecosystem that spans cameras to access control, it’s hard to describe everything they can cover, and they’ll even have random stuff that integrates into their system like EV charging or digital signage. I get as excited when they ship a new generation of hardware as I do for an iPhone launch.

\n\n\n\n

But what’s exciting is that they just launched 5G bridging, with some fun devices that connect everything. I imagine someday I’ll have a Unifi puck hooked up to Starlink, providing amazing routing and connectivity anywhere in the world, powered by some PoE battery.

";s: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, 05 Dec 2025 05:34:14 +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: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:74:"WordPress.org blog: State of the Word 2025: Innovation Shaped by Community";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:35:"https://wordpress.org/news/?p=19447";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:45:"https://wordpress.org/news/2025/12/sotw-2025/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:28824:"
\n\n
\n\n\n\n

State of the Word 2025 brought the WordPress community together for an afternoon that felt both reflective and forward-moving, blending stories of global growth with technical milestones and glimpses of the future. This year also marked the twentieth State of the Word since the first address in 2006, a milestone noted in the WordPress history book Milestones: The Story of WordPress as the beginning of a tradition that has helped the project tell its own story.

\n\n\n\n

From the outset, the keynote carried a sense of momentum shaped by thousands of contributors, educators, students, and creators whose steady participation continues to define the open web. It was a reminder that WordPress is more than software. It is a community writing its future together.

\n\n\n\n
\n

What we have is more than code. It’s momentum, it’s culture, and it’s a system that lets people learn by doing and lead by showing up.  — Mary Hubbard, WordPress Executive Director

\n
\n\n\n\n

Mary opened the evening by reflecting on her first full year as Executive Director, a year spent listening deeply and seeing firsthand how people across regions learn, contribute, and lead. Her remarks grounded the keynote in the lived reality of a community that grows because people invest in one another, teach openly, and build trust through contribution.

\n\n\n\n
\n

I’ve met people using WordPress to unlock new careers. I’ve met contributors who started a single translation or forum post and are now leading major pieces of the project. In LatAm, Europe, and the States, I’ve seen students get access to WordPress tools and start building faster than we could have ever imagined. I’ve watched communities build in public, resolve disagreements in the open, and collaborate across languages and time zones.

\n
\n\n\n\n

That reflection offered a clear reminder of what makes WordPress resilient through change: a culture of showing up, learning by doing, and supporting others along the way. The project moves forward because people choose to participate in ways both large and small, strengthening the foundation that has carried WordPress for more than two decades.

\n\n\n\n

With that foundation in place, the keynote moved through a series of stories and demonstrations that highlighted where WordPress stands today and where it is headed next — from a historic live release of WordPress 6.9 to expanding global education pathways, emerging AI capabilities, and deeper collaboration across the entire ecosystem.

\n\n\n\n

WordPress by the Numbers

\n\n\n\n

Project Cofounder Matt Mullenweg began with a wide-angle view of the project’s growth. WordPress powers over 43% of the web, with 60.5% of the CMS market. Shopify, its nearest competitor, holds 6.8%. Among the top 1,000 websites, WordPress’s share climbed to 49.4%, up 2.3% from the previous year.

\n\n\n\n
Globe graphic noting 43% of websites and 60.5% CMS market share
\n\n\n\n

Multilingual usage continued its strong rise. Over 56% of WordPress sites now run in languages other than English. Japan stood out, with WordPress powering 58.5% of all Japanese websites and 83% of the CMS market. Japanese became the second most-used language on WordPress at 5.82%. Spanish followed, then German, French, and Brazilian Portuguese.

\n\n\n\n

The plugin ecosystem saw explosive growth. The directory surpassed 60,000 plugins, and plugin downloads were on pace to reach 2.1 billion by year-end. Over 1,500 themes have been released this year as well.

\n\n\n\n

Contributors also hit new highs. The 6.8 release included 921 contributors, the largest group yet. WordPress 6.8 saw 79.5 million downloads, up 13%, and WordPress 6.9 included contributions from 230 first-time contributors and more than 340 enhancements and fixes.

\n\n\n\n

A Release Moment to Remember

\n\n\n\n

This year’s keynote delivered something WordPress had never attempted before: a live on-stage release of WordPress 6.9.

\n\n\n\n
WordPress 6.9 Gene album cover art
\n\n\n\n

Mary set the moment up earlier in the program, calling WordPress 6.9 “fast, polished, and built for collaboration.” She explained that it reflected a year of intentional iteration, improved workflows, and deeper cross-team participation.

\n\n\n\n

Matt took the stage with some of the release leads, the release button in hand. The room counted down, and then WordPress 6.9 shipped live, instantly updating millions of sites around the world. It was both a celebration and a testament to the reliability and trust the WordPress community has built into its release processes. Shipping a major version of WordPress in real time, on stage, without drama, is something the early contributors could hardly have imagined.

\n\n\n\n
Photo of WordPress release leads pressing the button to release 6.9
\n\n\n\n

That reflection connected back to WordPress’s origin story. Matt talked about discovering the B2 forums, asking questions, and eventually reaching the point where he could answer someone else’s. That transition from learner to contributor remains at the heart of the project today. Two decades later, WordPress has grown from those early interactions into a platform that can ship a major release in front of the world, powered by thousands of contributors building together.

\n\n\n\n

WordPress and the Future of AI

\n\n\n\n

As the keynote shifted toward the future, Matt acknowledged what has become an essential truth of the moment: it would be impossible to talk about the next chapter of WordPress without talking about AI. He reminded the audience that in 2022, long before ChatGPT entered global conversation, he encouraged the community to “learn AI deeply.” The speed of change since then, he said, has exceeded every expectation, and WordPress has been preparing for it in ways both visible and behind the scenes.

\n\n\n\n
Timeline of AI: 2022 ChatGPT launches, 2023 GPT-4 and Claude launches, 2024 Multimodel and video generation, 2025 AI everywhere
\n\n\n\n

Matt introduced one of the most important architectural developments of the year: the Abilities API and the MCP adapter. The Abilities API defines what WordPress can do in a structured way that AI systems can interpret, while the MCP adapter exposes those abilities through a shared protocol. This means AI agents — whether built by individuals, companies, or larger platforms — can understand and interact with WordPress safely and predictably. Instead of relying on one-off integrations or brittle interfaces, WordPress now participates in a broader ecosystem of tools that can query its capabilities and perform tasks using a standard, governed approach.

\n\n\n\n

Matt then highlighted how developers are already using AI in their everyday work through tools like Cursor, Claude Code, and next-generation CLIs. These tools can explore entire codebases, generate documentation, produce tests, refactor large components, and even coordinate sequences of WP-CLI commands. For many developers, they expand what a single person can accomplish in an afternoon. They don’t eliminate the need for human judgment — they amplify it.

\n\n\n\n

With that foundation laid, Matt turned the audience’s attention to Telex, the experimental environment designed to turn natural-language prompts into Gutenberg Blocks. Telex has already moved beyond experimentation and into real use. Matt showed examples from community creator Nick Hamze, who uses Telex to power micro-business tools that represent practical, revenue-generating workflows that previously required custom engineering.

\n\n\n\n
\n\n\n\n

Matt then widened the lens to show what companies across the ecosystem are building with AI. Hostinger’s Kodee can generate a complete WordPress site from a single description. Elementor AI demonstrated similarly rapid creation inside its own editor, producing full sections and layouts in seconds. WordPress.com showcased how its AI tools help users draft, rewrite, and refine content while keeping language aligned with the site’s voice. Yoast demonstrated how AI can support SEO workflows by generating structured suggestions and improving readability. Together, these examples illustrated that AI is not arriving in one place — it is arriving everywhere.

\n\n\n\n

Experimental browsers can navigate WP Admin autonomously, performing tasks such as clicking buttons, opening menus, changing settings, and performing multi-step tasks without requiring any custom plugins or APIs. This raised a key question that Matt encouraged the community to consider: Which AI capabilities should live inside WordPress itself, and which should remain external, operating through the browser or operating system?

\n\n\n\n

Matt closed the section by discussing WordPress-specific AI benchmarks and evaluation suites. These shared tests will measure how well AI systems understand and execute WordPress tasks, from enabling plugins to navigating WP Admin to modifying content and settings. The goal is to create a foundation where future AI tools behave predictably and responsibly across the entire ecosystem, giving creators confidence that intelligent tools understand the platform deeply.

\n\n\n\n

A Global Community Growing Together

\n\n\n\n

Mary then returned to the stage to celebrate the ecosystem that supports WordPress’s growth. Across continents, diverse groups of people have hosted WordPress events, training new contributors and welcoming newcomers into the project. WordCamp growth in 2025 reflected that: more than 81 WordCamps across 39 countries, powered by over 5,000 volunteers and attended by nearly 100,000 people, with sixteen more events still underway.

\n\n\n\n
\n\n\n\n

Education played a major role in this community expansion. Learn.WordPress.org served over 1.5 million learners this year, with clearer pathways into more structured programs like Campus Connect and WordPress Credits. This bridging was deliberate. Many learners arrive through tutorials or workshops but need clearer guidance on how to deepen their skills. By reshaping navigation and improving wayfinding across WordPress.org, the project began closing that gap.

\n\n\n\n

She spotlighted Costa Rica’s Universidad Fidélitas, where WordPress moved beyond extracurricular interest into formal academic integration. Long before signing an agreement with the WordPress Foundation, their students were hosting WordCamp San José, forming student clubs, and treating WordPress as a crucial part of digital literacy and professional development.

\n\n\n\n
Students of the WordPress Fidélitas Club
\n\n\n\n

Wapuu appeared across events as a familiar companion and a cultural thread running through contributor tools and community projects. Its presence was a reminder that creativity and playfulness are as essential to open source as documentation or code.

\n\n\n\n
Various Wapuu artwork examples
\n\n\n\n

Matt highlighted the story of Youth Day in Managua, Nicaragua. Seventy-five young people spent a full day building their first WordPress sites. Sessions were taught by teenagers, for teenagers. They learned to pick themes, customize layouts, create contact forms, and publish content. Contribution often starts with a simple moment of confidence, and those early sparks can shape entire careers.

\n\n\n\n
\n\n\n\n

Together, these moments illustrated a project expanding not just in numbers, but in depth, diversity, and global reach. WordPress is growing because communities are finding their own ways to embrace it.

\n\n\n\n

What’s New in WordPress 6.9

\n\n\n\n

Joining virtually, WordPress Lead Architect, Matías Ventura, shifted the keynote from vision to practice. Matías offered a detailed walkthrough of what makes WordPress 6.9 one of the most refined, collaborative, and forward-looking releases the project has shipped in years. He returned to the four familiar lenses of creation — writing, designing, building, and developing — and showed how each evolved in this release cycle.

\n\n\n\n

He began with notes in the Block Editor, one of the most anticipated features. Notes allow collaborators to comment directly on individual blocks in a post or page. When a note is selected, the surrounding content subtly fades, helping contributors stay focused on context. Because notes are built on WordPress’s native comment system, they integrate seamlessly with existing communication workflows, including email notifications. Matías highlighted that notes development exemplified collaboration at its best, with contributors from various companies working together to bring the feature to life.

\n\n\n\n
\n\n
\n\n\n\n

From there, he turned to refinements across the writing and design experience. Editor interactions feel smoother and more consistent. Patterns behave more predictably. Spacing and typography controls are clearer, more organized, and more intuitive. Together these capabilioties make the experience of writing and designing inside WordPress calmer, more reliable, and more empowering.

\n\n\n\n

Block bindings now provide a more intuitive, visual way to connect blocks to dynamic data sources. Users can switch or remove bindings with a single click, and developers can register additional sources to support custom workflows. This work lays the foundation for a future where dynamic data flows more naturally through blocks, enabling site creators to build richer interfaces without writing code.

\n\n\n\n

On the developer front, Matías focused on three foundational upgrades that represent major steps forward in how WordPress will evolve over the coming years.

\n\n\n\n
    \n
  • The first was the Abilities API, a unified registry that describes what WordPress can do — across PHP, REST endpoints, the command palette, and future AI-driven interactions.
  • \n\n\n\n
  • The HTML API introduces new ways of working with and modifying HTML server-side. The API ensures safer, more reliable handling, lowering the barrier for theme and block developers who work with dynamic or structured markup.
  • \n\n\n\n
  • The Interactivity API delivers smoother, faster interactions without requiring heavy JavaScript frameworks. Improved routing, better state management, and clearer conventions help developers create rich, modern interfaces without leaving the WordPress philosophy of simplicity and flexibility.
  • \n
\n\n\n\n

After Matías wrapped his presentation, Matt stepped back in to highlight several developments that build on the foundations of 6.9 and strengthen the overall WordPress ecosystem. He pointed first to the Plugin Check Plugin, a tool designed to help developers align with current WordPress standards and catch common issues early, making plugins more reliable for users and easier to maintain over time. Matt then spoke about ongoing progress in Data Liberation, noting improvements to the WordPress importer that make it easier for people to bring their content into WordPress without disruption or loss, an important step toward ensuring the open web remains portable and resilient. He also highlighted advances across the Playground ecosystem, including WordPress Studio, the Playground CLI, and an expanding set of Blueprints. These allow developers and learners to spin up complete WordPress environments in seconds, test ideas, and experiment without servers or configuration. Matt closed this portion by emphasizing work on safer updates, which help WordPress avoid partial installs and ensure that updates complete smoothly even in less predictable hosting conditions, reinforcing WordPress’s commitment to stability as the platform continues to grow.

\n\n\n\n

Matt emphasized that WordPress 6.9 is not defined by any single headline feature, but by a broad spectrum of refinements across the entire experience. It is a release that deepens reliability, expands capability, and sets the stage for future innovation.

\n\n\n\n

Insights from the AI Panel

\n\n\n\n

The keynote transitioned into a live AI panel moderated by Mary Hubbard. The panel brought together four perspectives from across the ecosystem: James LePage (Automattic), Felix Arntz (Google), and Jeff Paul (Fueled, FKA 10up), and Matt Mullenweg. Their conversation touched on the philosophy, practice, and future of AI inside WordPress — not as a distant trend, but as an active part of the project’s evolution.

\n\n\n\n

A central theme was AI’s ability to amplify human creativity. James LePage put it plainly:

\n\n\n\n
\n

It’s not that we’re going to just add sparkle buttons everywhere. We’re going to do some crazy stuff here — things we’re going to build into the way you interact with creating content, with expressing yourself digitally. We want to give you more power, more control, and make you more effective at creating.

\n
\n\n\n\n

Jeff Paul echoed this sentiment, emphasizing that AI should make developers more productive by handling repetitive work and freeing them to focus on higher-level decisions. Felix Arntz expanded the idea further, describing how Google sees AI as a way to make the web more accessible and intuitive, especially for new creators who may not have formal technical training.

\n\n\n\n
From left to right: Mary Hubbard, Matt Mullenweg, Jeff Paul, Felix Arntz, James LePage
\n\n\n\n

Looking ahead, the panelists predicted deeper contextual integrations, AI-assisted debugging and scaffolding for developers, and workflows where agents can take on sequences of tasks while remaining directed by human decisions. They also highlighted the importance of standards, shared protocols, and privacy-focused design as essential components of WordPress’s long-term approach.

\n\n\n\n
\n

The next 20 years looks like WordPress remaining what it is today, which is the center of the open web.

\n
\n\n\n\n

The panel closed on a forward-looking but steady note. AI is accelerating, but WordPress is designing its foundations with flexibility and values that endure. The tools may change, but the commitment to openness, agency, and creative freedom remains the compass.

\n\n\n\n

Questions That Push Us Forward

\n\n\n\n

Matt introduced the Q&A as one of his favorite parts of State of the Word because it reveals what people are imagining, struggling with, or eager to build.

\n\n\n\n
Q&A
\n\n\n\n

The first question addressed the growing interconnectedness of today’s web. What happens, a participant asked, when a major provider like Cloudflare goes down? As tools and agents rely more heavily on external services, failures can cascade. Matt acknowledged that outages are increasingly visible, but also argued that each one strengthens the system.

\n\n\n\n
\n

“Every failure, every edge case, everything that you never imagined is just another opportunity to find that new edge case,” he said. Resilience is not avoidance of failure, but the ability to grow stronger after it.

\n
\n\n\n\n

Another question focused on the longevity of web content. With platforms shutting down or links breaking over time, how can creators ensure their work endures? Matt pointed to the Internet Archive as one of the great stabilizers of the open web. He highlighted a new plugin that automatically scans posts and replaces dead links with archived versions, helping preserve the historical fabric of the web even as individual services come and go.

\n\n\n\n

The next question turned to real-time collaboration inside WordPress. A participant asked how co-editing fits into the future of WordPress and how these tools might help creators work more confidently. Matt talked about how collaboration tools can support people who are just starting their creative journeys — whether they are entrepreneurs, students, or first-time site builders. He described real-time editing as part of a broader vision of WordPress “just doing the work for you” in high-pressure or early-stage creative moments.

\n\n\n\n

The final question considered long-term decision-making. Matt noted that predicting what will change is difficult, but identifying what will remain the same is much easier. For WordPress, he said, the invariant is clear: people will always want agency, openness, and the ability to publish on their own terms. These values guide decisions not only in the present, but across decades of future evolution.

\n\n\n\n

TBPN Podcast Appearance

\n\n\n\n
\n\n
\n\n\n\n

After the Q&A, the keynote shifted gears with a live crossover segment featuring TBPN (the Technology Business Programming Network), a tech-focused podcast. The segment introduced a lively, unscripted energy into the room.

\n\n\n\n

The hosts kicked things off by asking Matt what the “word of the year” should be. He chose “freedom”, connecting it directly to the core philosophy of open source. He described open source licenses as a kind of “bill of rights for software,” giving users inalienable rights that no company can revoke. In a world increasingly shaped by software platforms and digital ecosystems, these freedoms form the heart of what keeps the web open and accessible.

\n\n\n\n

Conversation then moved to Beeper, the multi-network messaging client. Asked whether Beeper aims to “tear down walled gardens,” Matt rejected that framing. Instead, he offered a more collaborative metaphor: bringing gardens together. Most people have friends and colleagues scattered across WhatsApp, Instagram, LinkedIn, Messenger, and SMS. Beeper doesn’t replace those apps — it brings messages together into a unified interface..

\n\n\n\n

The conversation eventually returned to publishing. Matt referenced the same principle he noted earlier: the importance of identifying what won’t change. For WordPress, he said, that means doubling down on freedom, agency, and the ability to publish without gatekeepers. Even as AI evolves, even as platforms shift, even as new tools emerge, these are the values that will guide the project forward.

\n\n\n\n

Building the Web We Believe In

\n\n\n\n

As the keynote drew to a close, Matt returned to a message that had threaded through every section of the evening. The future of WordPress is not arriving from outside forces — it is being crafted, questioned, tested, and expanded by the people who show up. Contributors, students, educators, community organizers, designers, developers, business owners, and first-time site builders all play a role in shaping the platform.

\n\n\n\n

He spoke about the opportunities ahead: new tools that expand what creators can build, collaborative features that make teamwork feel natural, and AI systems that enhance creativity rather than diminish it. Across continents, generations, and skill levels, people are discovering WordPress as a path to learning, empowerment, and expression.

\n\n\n\n

The values that brought the project this far remain the ones that will carry it forward: freedom, participation, learning, and community. These aren’t abstract principles. They are lived every day in the decisions contributors make, the ideas they pursue, and the care they bring to the work.

\n\n\n\n

Future Events

\n\n\n\n

If you’re feeling inspired to revisit past moments from the project’s annual address, the State of the Word YouTube playlist offers a look back at years of community milestones and product progress. The excitement continues into 2026, with major WordPress events already on the horizon: WordCamp Asia in Mumbai, India,WordCamp Europe in Kraków, Poland, and WordCamp US in Phoenix. We hope to see you there as the community continues building what comes next.

";s: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, 03 Dec 2025 18:26: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:17:"Nicholas Garofalo";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:42;a:6:{s:4:"data";s:21:"\n \n \n \n \n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:88:"WPTavern: #196 – Topher DeRosia on How Public Contributions Shape Careers 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:48:"https://wptavern.com/?post_type=podcast&p=201513";s: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:102:"https://wptavern.com/podcast/196-topher-derosia-on-how-public-contributions-shape-careers-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:51892:"
Transcript
\n

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

\n\n\n\n

Jukebox is a podcast which is dedicated to all things WordPress. The people, the events, the plugins, the blocks, the themes, and in this case, how public contributions can shape careers in WordPress.

\n\n\n\n

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

\n\n\n\n

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

\n\n\n\n

So on the podcast today we have Topher DeRosia. Topher is a web developer with over 30 years of experience, and he’s been deeply involved in the WordPress community for the past 15 years. He’s attended nearly 80 WordCamps around the world, contributed to projects like HeroPress, and has made it his mission to highlight the power and value of open source and remote work, especially in the WordPress ecosystem.

\n\n\n\n

In this episode, Topher joins me to talk about the value of working in public, and how sharing your work openly can create unexpected and lasting opportunities. Whether that’s boosting your career, finding a sense of purpose, or building connections across the globe.

\n\n\n\n

We start with Topher’s personal journey, discovering the WordPress community and the profound impact it has had on his life and family. The conversation explores what makes open source communities, like WordPress, so unique, and while working transparently can lead to moments of serendipity and even job offers from people who have seen your contributions many years before.

\n\n\n\n

Topher shares stories about giving back, the motivation that comes from helping others, and the long-term satisfaction that comes from being generous with your time and expertise.

\n\n\n\n

We also discussed the tension between the philanthropic and commercial aspects of WordPress, and how individuals and companies navigate that balance.

\n\n\n\n

Towards the end, Topher reflects on building a body of work over time, trusting in the slow and organic process instead of seeking instant influencer success. He explains why he still chooses to create and share resources for free, motivated by the hope of helping the next person just starting out.

\n\n\n\n

If you’ve ever wondered about the power of sharing your work, finding meaning in open communities, or how to make a difference over the long term, this episode is for you.

\n\n\n\n

If 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\n

And so without further delay, I bring you Topher DeRosia.

\n\n\n\n

I am joined on the podcast by Topher DeRosia. Hello.

\n\n\n\n

[00:03:19] Topher DeRosia: Hello there.

\n\n\n\n

[00:03:20] Nathan Wrigley: It’s very nice to chat to Topher. We’ve done this before. We’ve had many chats online, but I just want to pay a special thanks to Topher for reasons I won’t bore the audience with, Topher has sort of joined me at extremely late notice, like minutes of notice.

\n\n\n\n

We had a bit of back and forth yesterday about topics that we may cover, and the one that’s going to be covered today is the one that we decided. But he wasn’t expecting this, and so he’s arrived and I’m extremely grateful. So firstly, my deepest thanks for carving out a bit of your day unexpectedly.

\n\n\n\n

[00:03:50] Topher DeRosia: You’re very welcome. This is always fun, and fit my day perfectly.

\n\n\n\n

[00:03:53] Nathan Wrigley: Yeah, okay. Thank you. So what we decided to talk about was, and I’ll encapsulate it in a sentence that Topher wrote to me, and then we’ll just sort of get into it and see where we go. Topher said, he’d like to talk about the value of doing things in public, and how this can come back to you later as a way of potentially, I don’t know, boosting your career or just offering some guiding light to the community and what have you.

\n\n\n\n

So first of all, in order to give us some idea, I’m sure that there are people who know you, having listened to the things that you’ve done or consumed the HeroPress website or what have you. Will you just give us a little potted bio of yourself related to, I guess the WordPress community, makes most sense in this context?

\n\n\n\n

[00:04:30] Topher DeRosia: Sure. I have been a web developer for 30 years, which is old, but I got into WordPress about 15 years ago and I did not know there was a community for several years. And Brian Richards said to me, hey, we should do a WordCamp. And I said, what’s a WordCamp? And then of course, my life changed forever after.

\n\n\n\n

Oh, you know what? We started with a meetup, but like 2 weeks later he said we should do a WordCamp. And he said, we should do it this summer. And we were talking, like we were talking in June. So we went from never hearing of it before, to having a WordCamp suddenly. And I’ve been in, all in on the community ever since. I’ve been to nearly 80 WordCamps, all over the world. I’ve been making stuff, building stuff, meeting people ever since.

\n\n\n\n

[00:05:12] Nathan Wrigley: Wow.

\n\n\n\n

[00:05:13] Topher DeRosia: It’s pretty great.

\n\n\n\n

[00:05:13] Nathan Wrigley: Yeah, 80. Gosh, that’s profound. I mean, I don’t consider myself to have a high attendee account, but 80, that really is remarkable.

\n\n\n\n

So I think it’s fair to say that the profundity of the effect of discovering that community is pretty important in your life. You know, it’s had a material impact in every way.

\n\n\n\n

[00:05:31] Topher DeRosia: Hugely. My wife got into the community. My children, both my kids have spoken at WordCamp US. My wife has spoken. My kids have friends in other countries that I don’t know because of the WordPress community. Every parent has that fear of, what if something happened to us? What would happen to the kids? And we have family that would take care of them, you know? It’s nice to know we also have that backup where there are people all over the world who would say, hey, we got room, come on.

\n\n\n\n

[00:05:55] Nathan Wrigley: Yeah, that’s pretty amazing. I joined the WordPress community, so I’d been involved in lots of open source projects, things like Magento and Drupal and things like that. And I know that Drupal has, there’s definitely stuff in the Drupal space that you can attend. But I never did.

\n\n\n\n

And to be honest with you, I didn’t know that that stuff existed until after the fact. And then in about 2014, something like that, I discovered WordPress. And just like you, I had no conception that it was more than some downloadable bit of software. Honestly didn’t even know that it was done by volunteers. I just had probably some assumption that there was an organization or a company behind it that in some way monetised it and made it free and what have you.

\n\n\n\n

And then just got this intuition, I guess, with social networks, the way that they were at that time, you could find groups and discover that there were all these ancillary groups of people doing things with WordPress, you know, groups focusing around page builders and groups focusing around plugins.

\n\n\n\n

And then for me to discover that there were actual events that you could attend was, just like you, really remarkable. And I attended the first one and I kind of thought, oh, we’ll just see how this goes. I’m a bit of an awkward character in person, so I sort of stood around at the back. But it didn’t take me long to sort of be welcomed in. And just like you, completely changed my life. And ever since then, a sizable proportion of my free time has been devoted to curious WordPress things. It’s amazing.

\n\n\n\n

I can’t quite work out what it is about a project like WordPress that inculcates that, fosters that, makes that possible. Because I imagine if you attended, I don’t know, a Cisco networking conference or something like that, it’s not going to have the same feel. So I don’t know if you want to speak to that for a little bit, why you think the community works.

\n\n\n\n

[00:07:36] Topher DeRosia: Yeah. I have two thoughts about it. One is that I think it’s absolutely because of the people. And it may be chance that the right people found WordPress and got together at the same time. But to that point, that it’s the people, I recently went to two non WordPress conferences in one week.

\n\n\n\n

I went to one for higher education in technology. The people who attended were from universities and colleges, and they were looking for ways to manage web stuff on their entire campus. So do you offer a blog to all 24,000 students, you know? That kind of thing. It was my first time there, but I saw a number of people who were greeting each other and not having seen each other since last year, and the year before, and the year before. And it was very much like a WordCamp. And people talked about how this group is so wonderful and they wait all year long to come back here. And I thought, oh, okay, so this is WordCamp.

\n\n\n\n

And then while I was there, I met somebody who worked at Umbraco, which is an open source .net based CMS. And they’ve been around for 20, more than 20 years, but it’s a very small community, like 0.01% of the market share. And I told her, you know, who I am, what I do, and she’s like, oh, we would love to have you come to our conference this weekend in Chicago. Can I pay you to come? I was like, oh wow, sure.

\n\n\n\n

So I went and it was about a hundred people and it was WordCamp. Everybody there loved the software, loved the community, everybody was friends. It was the same. And expanding just a little more, HeroPress says it’s about people leveraging WordPress to make their lives better. But in actuality, what it is, is open source and remote work combined. It allows people in Malaysia to pick up software and compete on a relatively equal basis with somebody in New York. And in our world, that’s WordPress. But it’s exactly the same with every open source remote work option, Drupal, Umbraco, anything.

\n\n\n\n

[00:09:45] Nathan Wrigley: Maybe open source then is, forgive me, the secret sauce. Maybe that’s the component, the bit that binds those communities together in a way that perhaps, I don’t know, something where a proprietary thing or something was locked down, or profit was the whole point, maybe that is the bit. The fact that there’s a bunch of people gathering together in a kind of philanthropic way. You know, there’s no expectation that my attendance will definitely lead to finance, let’s put it that way.

\n\n\n\n

Like I said, I don’t really have much experience outside the WordPress world, and so my assumption was that there was something a little bit unique. But from what you’ve said, this same exact thing is happening probably a thousand times over throughout the globe, but your expectation there is that the open source component is the bit, the bit that unlocks it.

\n\n\n\n

[00:10:32] Topher DeRosia: Yeah, I agree. WordPress has the advantage of a very large user base, which is good and bad. There are certainly more wonderful people in it than if there were fewer. But at that scale, you are just as likely to have really terrible people. I know people that have left the WordPress community because they’ve been treated horrendously, abused, and it breaks my heart. And I want to say, oh, WordPress is different, you won’t find that here, but you will. It’s too big a community to not have that.

\n\n\n\n

[00:11:01] Nathan Wrigley: I wonder what it is then about that sort of spirit of giving back that creates some kind of, I don’t know, hive mind, for want of a better word. You know, there’s just this ethic that you’re all combined on this slightly higher purpose. So in the case of WordPress, and you mentioned Drupal and you mentioned the other CMS with the small market share, the principle there is that you’re working on something, and I guess publishing is the point. You are enabling people who may or may not have a voice to get on the internet and do something, publish something, write something, put images, videos or what have you.

\n\n\n\n

There is some kind of higher calling there. It’s very hard to sort of grasp that, and to really understand it. But do you know what I mean? You’re doing something which, at the end of your days, you can look back and say, there was something there. There was something meaningful, there was something significant and important. And that feeling, that thing, whatever that thing is, is important, and enough to propel people to give up hours and weeks of their lives to do this.

\n\n\n\n

[00:12:04] Topher DeRosia: I think most people enjoy making other people, I don’t know, so many things, more successful, happier, more stable. And there are open source projects that will shrivel up and die because no one ever says thank you. People work on a project for years and years and they think, you know what? Nobody cares. I’m going to go play Frisbee.

\n\n\n\n

But I think the WordPress community is large enough, and we have these events that everybody goes to, that you run into people who have been impacted by the work you do.

\n\n\n\n

There’s a, boy, can’t remember his first name. Heisel. He’s Dutch but lived in England and now he lives in Malta or something. Anyway, I met him for the first time at WordCamp London and he walked up to me and said, hey, I need to shake your hand. I said, okay. He said, a few years ago I lost my job and I didn’t know what I was going to do and I needed to support my family, and I got on OS Training and learned WordPress from your videos, and now I support my family with WordPress. I about broke down in tears right there.

\n\n\n\n

And that kind of thing happens to lots and lots of people. People who say, you know what? This plugin you wrote, it changed my life. I make a living with this now. I support my family.

\n\n\n\n

[00:13:19] Nathan Wrigley: Do you know what’s kind of interesting there is that, I guess you did none of it with the expectation of that person wandering up. You know, it’s not like, Topher, you sat down and thought, the more thanks I get, the more I’m going to do. There isn’t that kind of expectation. But it certainly helps, doesn’t it? When somebody does come up and express those thoughts to you. I bet you that carried you through the next days, weeks, or months. You know, the capacity to drag that out of your brain.

\n\n\n\n

[00:13:42] Topher DeRosia: It still is. That was years ago.

\n\n\n\n

[00:13:43] Nathan Wrigley: Yeah, yeah. Isn’t that interesting?

\n\n\n\n

[00:13:45] Topher DeRosia: I do think though that you don’t do it for the thanks, but it’s a lot easier to do if you think it matters. When people say thank you, it feels good, but it lets you know that what I’m doing matters. It’s making a difference. It’s making somebody’s life better. It’s making the world better. That’s a huge motivator.

\n\n\n\n

[00:14:04] Nathan Wrigley: That’s the big thing. So this is a curious question, right? And it’s not really related to WordPress. Did you have those same intuitions at an early age? Was there some part of you can remember even as, I don’t know, let’s say a 15-year-old or 17-year-old or something like that. Where you had already made the leap that life is better when you are being helpful? Or did you learn that later?

\n\n\n\n

Because I kind of have the intuition that quite a few people in our community probably figured that out at some point fairly early on. And it enables them, I’m obviously not suggesting that people who didn’t make that intuition early on can’t join the community or what have you. But I’m surrounded by people who seem to have this almost bottomless capacity to give. And I’m always struck by how did that begin for them? Where did that start for them? So because I’ve got you on the line, I’m asking you directly.

\n\n\n\n

[00:14:58] Topher DeRosia: When I was in college, I just randomly became interested in motivations. What makes people do things? What makes somebody mean all the time? What makes somebody happy all the time? What makes somebody be kind?

\n\n\n\n

And I thought through the process of how gratitude is an influencer. If you say to somebody, thank you for what you’re doing, it makes them feel good. It makes them want to do it more. If they’re, you know, working at a food pantry and you say, hey, thank you for what you’re doing, it’s changing lives, just feeding children. It makes them want to do that more. If that person at a food pantry were faced every day with angry people who abused them verbally and stuff like that, they’d be a lot less inclined to do that.

\n\n\n\n

[00:15:37] Nathan Wrigley: Yeah. I listened to a podcast not that long ago, and I actually can’t remember which one it was because I listened to several in this line. But essentially it was trying to peel back the latest studies in what causes some people to be happy. And I am not going to explain this and have the expectation that everything I say is true, nor that this is the limit of that. But a fairly reliable indicator of happiness, whatever that means, but on a fairly profound level, happiness can be boiled down to these two things, apparently.

\n\n\n\n

One of them is that you are giving of your time. So it may be that you are, as you say, working in a soup kitchen. Or that you are doing something in the community. Or you are just putting into your children or what have you. There is a real connection apparently between the capacity to give something from which you expect nothing in return. Humans apparently find great, deep satisfaction from that.

\n\n\n\n

And the other one is friendship. If you have people that you regard as friends, on a deep level. So obviously acquaintances, we can all have many, many thousands of those, especially online nowadays. But it’s that core little group of really impactful, meaningful people who in the time of crisis, you know are going to have your back.

\n\n\n\n

Those two things apparently are a real predictor of one’s happiness. And both of them seem to stray into our community, you know? Although it’s an online thing, you’re still giving your time, and you know that in a fairly ephemeral way that you maybe can never grasp, people will be benefiting from that. And also you make friends. So there you go, it’s the root to happiness.

\n\n\n\n

[00:17:19] Topher DeRosia: It is.

\n\n\n\n

[00:17:20] Nathan Wrigley: So all of that, having said all of that, you have this wealth of experience in the community. You’ve done so many projects in the community. And as I said at the top of the show, the thing that you wanted to talk about was, not just the mere fact of doing things in the community, but about the fact that you are doing things in the community in a sort of public way, and how that can sort of impact in the future. So just tell us a little bit about why you wanted to get into that, or maybe some anecdotal evidence of how that’s helped you.

\n\n\n\n

[00:17:50] Topher DeRosia: Very little of it in my life has been deliberate. I’ve done some things and then later thought, oh, wow, I didn’t realise that this would be the consequence. I made videos for OS Training for a lot of years, they’re behind a paywall, they paid me by the video. I wasn’t thinking, oh, I’m going to go teach the world. It was a client, I made videos.

\n\n\n\n

And years later, Brin Wilson from WinningWP got a hold of me on Post Status and said, hey, I want to start a YouTube channel. Would you make videos for me? I said, sure, but why me? He said, well, I’ve seen your work. You’ve done this, you have given evidence to the world that you know what you’re doing. And that was a good contract. And I got it because I had previously done something else.

\n\n\n\n

With HeroPress, I didn’t set out to become a relatively known person. I was just doing it. But I remember the first time I talked to a stranger from India and introduced myself and they said, oh, of course we know you. I said, what do you mean of course? You live 5,000 miles away from me. How on earth would you know me? And, boy, it is just stuff like that.

\n\n\n\n

I have some plugins on wordpress.org. I think cumulatively they have 12 installs. They’re not big plugins, but they’re there. And people look and say, oh, Topher knows how to make plugins.

\n\n\n\n

I contribute to the photos project. And people who aren’t necessarily contributors don’t necessarily understand the different kinds of contribution. They just see my name on the contributor list like, oh, Topher builds WordPress because I take a lot of photos or something. But just the fact that I’m out there doing that makes a difference.

\n\n\n\n

I’ve been blogging for years. I did blogs in the GoDaddy Garage back in the day, I wrote on OS Training, I wrote all over the place. And recently I thought, boy, I wish I had had all that on my own site.

\n\n\n\n

And then it occurred to me that WordPress does a lot of RSS, and so does YouTube. And so I built a site called topher.how. Found everything I’ve ever done and just used WP All Import and pulled it all into one place. So now at topher.how you can see stuff I’ve done decades ago, and it’s nice. It’s a place to say, look, here’s stuff I did. But I have gotten, no, you know, I’m not going to say I’ve gotten jobs, I’ve gotten consideration, interviews, interest because people who know who I am, because I did something once long ago.

\n\n\n\n

[00:20:11] Nathan Wrigley: Yeah, I guess the interview phase, to get yourself over the line, you’ve still got to sort of show your metal, haven’t you? But that whole thing of just being represented by your past, it’s really curious. We live in a world which is so dominated by, I don’t know, the financial motivation for this, that, and the other.

\n\n\n\n

It is curious when nowadays you can have a legacy which is not the CV, it’s not the line items on the CV. It can be much more ephemeral stuff. Things that you did, videos that you made, blogs that you contributed to.

\n\n\n\n

The people out there making the decisions about who’s going to get those jobs, well, you have proved that that kind of history of being online definitely works, and in unexpected ways. It’s not like there’s always a through line between, okay, I’m going to make these YouTube videos so that in a few years time I’ll have this credible body of evidence that will make it so that anybody can employ me. It’s much more ephemeral than that. It’s more, I’m doing this video because I think itll be helpful, and then serendipitously that then leads to something in the future.

\n\n\n\n

[00:21:14] Topher DeRosia: Yeah, very much so. Before we started recording, you mentioned my background here. It’s a piece of fabric on a photo stand. And I bought it just the other day because, you know, I’ve been making videos for years, I’ve never appeared on camera. Always been a screencast. And I recently got a client that said, well, we want you on camera. And so I got this thing.

\n\n\n\n

But the interesting part is that the client is a company in Bangladesh. And I know them quite well, they know me quite well because of stuff we’ve done together in the past in the WordPress community. And when they needed videos, they came to me, because they know me and they know that’s what I do. That wouldn’t happen if I hadn’t been out doing stuff years ago. What are the chances I would know somebody, me in Michigan, I would know somebody in Bangladesh?

\n\n\n\n

[00:22:01] Nathan Wrigley: Right. Right, I mean, the world of 50 years ago, it’s tending to zero basically, you know, unless you’d been on plane or somebody had been on a plane in the opposite direction and you’d met where you are. The opportunities afforded are amazing, and it’s that kind of long tail that you’ve got as well. That I suppose is going to be hard for somebody that’s younger to listen to because, you know, they kind of see this mountain that they’ve got to climb and this great body of work that they’ve got to build up over decades. I guess that’s, it’s not all about that either, it’s about sort of just chipping away at it and doing things piecemeal.

\n\n\n\n

[00:22:31] Topher DeRosia: I have a funny story about that. Early in my WordPress career, I got to know Pippen Williamson. You may remember him.

\n\n\n\n

[00:22:39] Nathan Wrigley: Yeah. I do.

\n\n\n\n

[00:22:39] Topher DeRosia: And he was very well known in the WordPress community. I got to know a few people who were very well known. I was like, man, that’s cool, everybody knows these people. Wonder if people will ever know me? We were talking about it, he and I, and he quickly urged me, do not seek to be known because that will only lead to tears. If you’re doing it for the wrong reason, then it will just turn out badly.

\n\n\n\n

And so I thought, well, you know, maybe in 10 years. Well, here we are. And I didn’t set out to be known. I’ve never bought a banner ad saying, look at Topher. I just went to WordCamp and spoke. I wrote blog posts, I made videos. I shook a lot of hands. I listened to a lot of stories.

\n\n\n\n

[00:23:18] Nathan Wrigley: It’s about sort of spreading the network organically really, isn’t it? Which I suppose in a sense leads to, okay, rather than the word fame, I’m going to use the word notoriety because I think they’ve got two very different endpoints. But the idea of seeking fame is tied up with, you know, you just want random people to know you because they know you, and that’s the kind of end game, you know? Oh, you are famous because you’re famous, that sort of flavor to it.

\n\n\n\n

Whereas notoriety for me has much more, there’s a body, a corpus of work behind you that leads to that understanding that, okay, that’s Topher. I know Topher because he did this, this, this, and this. It’s not famous because they’re famous. It’s more, there’s the guy who made those videos that I watched. Or there’s the guy that wrote that blog that I read all the time. That kind of thing. And so it’s not fame for fame sake, it’s accidental fame more, if you know what I mean?

\n\n\n\n

[00:24:10] Topher DeRosia: Yeah. I heard the term not too long ago that I like called community known.

\n\n\n\n

[00:24:14] Nathan Wrigley: Okay. That’s nice.

\n\n\n\n

[00:24:15] Topher DeRosia: Within a community, you you could say famous, very well known. Outside that community, people do not care and have no idea who you are.

\n\n\n\n

[00:24:22] Nathan Wrigley: That’s right. Yeah, it’s curious, inside of our community, there’s this one person whose name kind of precedes all others, and it would be Matt Mullenweg. But I’m willing to bet that if Matt was walking down the street, more or less anywhere, that his life is just the same as yours and mine. Nobody’s going to know who he is unless randomly they happen to be a WordPresser. But he’s fairly thin on the ground. You know, it’s not like he’s Scarlett Johansson or George Clooney or something like that, where that fame is probably quite an oppressive thing in their life. You know, the capacity to just walk down the street.

\n\n\n\n

So yeah, anyway, the point being that you’ve done stuff over time without the intention of it being this fame for being famous. It’s more about being community known, as you said. But that has had amazing consequences.

\n\n\n\n

And that kind of leads me to this next thing. I wonder, this question comes up all the time, but I do wonder if it’s more material now than it ever has been. I wonder if the community can always cope with the commercial pressure that is being born by the community?

\n\n\n\n

So for example, you know, you up to events and there’s a lot of people trying to sell you things. And maybe WordCamps from 15 years ago would’ve felt very much more a room full of like-minded individuals. Whereas now if you go to WordCamps, maybe there’s more of a feeling of, okay, that bit over there is more commercial, that bit over there is less commercial. But there’s always that kind of commercial angle.

\n\n\n\n

I don’t really know where I’m going with that, but the commercial side of things, I don’t know if you’ve got a feeling on, or a intuition on that?

\n\n\n\n

[00:25:54] Topher DeRosia: Sort of. Something I’ve noticed over the years is that it’s entirely possible to write a plugin, start selling it, have it be successful, build a business, hire people, maybe get a relatively large business, maybe hundreds of employees. And it feels good, it looks good, it’s great, it’s wonderful until it starts going, or getting hard. And then people who never thought this would happen start having to make difficult decisions that hurt people.

\n\n\n\n

If things aren’t going well, we need to let some people go. Maybe we need to let a lot of people go. Maybe we need to reorganise, whatever. And people look at this golden company, the pinnacle of WordPress, open source, love, family, peace, blah, blah, blah, and they’re letting people go. And you think, what? They’re just another business. They were just in it for the money. And they’re not, but it can feel that way when you’ve been let go.

\n\n\n\n

And at some point it has to be about the money. If you’re building a plugin because you love it and you’re selling it because people need it, that’s cool. If you’re running a business and people are depending on you for their livelihoods, you have to make the decisions. You have to do some hard things sometimes. And it’s never going to be comfortable. And at some point it’s going to look like you’re just another company. I’ve never been in this position, but I think it can be incredibly difficult to maintain a culture that we associate with the stereotype of WordPress community, in a full on company.

\n\n\n\n

[00:27:27] Nathan Wrigley: Yeah, I do know exactly what you mean. I think we, let’s say for example, let’s go back to Cisco. I used that example a minute ago. Let’s say that I work for Cisco. It’s pretty obvious what the goal there is. The goal is to ship loads of units of networking hardware all over the world, and then next year ship more than we ship this year and innovate more and.

\n\n\n\n

[00:27:45] Topher DeRosia: And you have investors that are going to hold your feet to the fire.

\n\n\n\n

[00:27:47] Nathan Wrigley: Right. Okay, so make money, make the investors happy, make the shareholders happy, and so on. That is so straightforward a bargain. But we in our community have this extra layer underpinning it of this philanthropic bit, which forms the basis of it. It’s literally the bedrock of it.

\n\n\n\n

And so that whole thing is propping everything else up on top of it, which I genuinely don’t know how the shifting sands of that all work. We’ve managed to get through 22 years plus, of that building up slowly over time, there being arguments here, there and everywhere. Minor arguments, some bigger arguments. We’ve somehow worked it through.

\n\n\n\n

But I don’t suppose that will ever get perfectly resolved. It’s going to be just part of the understanding that if you’re in open source, there’s a commercial bit. And if you can’t cope with that, well, that’s something you’re going to have to think about and look at. But also there’s going to be this whole philanthropic side, and that has to carry on and has to be funded, and figured out, and made important and advertised and all of that. I don’t have the brain to figure all that out, but it’s part of the jigsaw puzzle.

\n\n\n\n

[00:28:52] Topher DeRosia: Yeah. It’s truly something I’ve never had to deal with, and I hope I don’t, the scales of money. I had a job once when I was very young. We’re at home, we were newly married and money was tight, and we were talking about where to get $20 for groceries and things like that.

\n\n\n\n

And at work I was allocating hardware for new employees and, oh, let’s pick up two or three extra computers at $4,000 each because we might need them. That scale of money is, it’s something I’ve tried to be aware of.

\n\n\n\n

I look at a WordPress plugin company that has employees and I think, oh man, you have so much more money than I do, so much more. And maybe they do, but they also have so many more bills than I do. Just because they have several employees, and they’re doing well and things look great on Black Friday, doesn’t mean that they’re super wealthy or anything.

\n\n\n\n

[00:29:42] Nathan Wrigley: Yeah. I genuinely struggle with this component. I don’t think I’ll ever resolve it. I’m just aware that it exists. I’m aware that there’s people who are very polemic about it. There are people on the far this side, and there’s people on the opposite side who maybe are kind of struggling to shout across the gap. But then there’s people sitting in the middle who are somehow managing to figure it all out, or at least be sanguine about it, and not worrying too much about it. Time will tell. In the year 2026, I’m sure that it won’t get figured out, but it will probably carry on.

\n\n\n\n

I’ve got every hope that WordPress is exciting enough to carry on and that people will continue to use it. So I don’t worry too much about that. It’s just more whether or not the two sides of the argument, in an increasingly polemic world, whether the commercial side of WordPress and the non-commercial side of WordPress can figure out some way to walk upon the same path.

\n\n\n\n

[00:30:28] Topher DeRosia: There’s an element to WordPress that I think will carry on, even if it looks like WordPress is starting to fail. And that’s going to be the earliest people, the smallest contributors. Things have been really shaken up in WordPress in the last year or two, and I have friends who’ve left the community. And business is getting bigger and WordPress itself is changing. Gutenberg is a big thing now and AI is moving in and all that. So much is changing.

\n\n\n\n

And I have people say, why do you stay? Why do you keep doing WordPress? Specifically, why do I keep doing HeroPress? And I think my experience tells me that there will always be a 17-year-old picking up a computer at the library for the first time and discovering WordPress and starting a new life. And I want to be there for that person.

\n\n\n\n

[00:31:18] Nathan Wrigley: Yeah. So it’s going back to the 17-year-old you as well. You know, that bit that we had earlier where you figured out you had this intuition that there were some things in life which mattered more.

\n\n\n\n

One of the things that I think is really, like it’s so difficult to square this argument though, the whole thing where you see incredible wealth being generated by WordPress and you see incredible endeavors being put into WordPress by people who are really struggling to make ends meet. And I simply don’t have the capacity to figure out the solution to that. I cannot square that circle. But that is such a bit of cognitive dissonance that so much wealth is generated, on the one hand, and yet so much of the foundational work is created by people who may be struggling to put food on the table and what have you. And that is really challenging.

\n\n\n\n

[00:32:12] Topher DeRosia: Yeah, it is challenging. I don’t think it’ll ever be solved. I think it’s a universal problem of humanity. But similar to other areas, I think WordPress does better than other communities. There have been a bunch of discussions in the past about inclusivity, diversity in the WordPress community. And even people who point out the problems and say, look, we messed up here, this is bad, we need to change it, will say WordPress is probably the best of the IT world. There are problems. It’s bad. There are things we need to change, but we’re way ahead.

\n\n\n\n

[00:32:47] Nathan Wrigley: Okay, so that’s a really, sorry to interrupt. I got really caught up in what you just said then. I wasn’t expecting that to hit me quite as hard as it did. That was really interesting. That sort of sanguine approach to it. It’s never going to be perfect. We’re probably going to have division and factional fighting, I’m going to do air quotes around the word fighting, but you know what I mean, like infighting and what have you. But we do all right. Given how it could be, it’s okay. These things are just a part of the evolution of it. It’s a journey, not a destination. Yeah, that was interesting.

\n\n\n\n

[00:33:18] Topher DeRosia: We do have to take care though to not rest on our laurels, as it were. To say, oh, you know what? It’s okay, we’re better than everybody else, and so we don’t need to work on it. As soon as we do that, then we will not be better than everybody else.

\n\n\n\n

[00:33:30] Nathan Wrigley: And it’s curious because I think the people that I end up talking to when I attend things like WordCamps have that intuition. I think some, on some innate level, they get the bit that you just said. They know that it’s not perfect. And they know that work needs to be done. And they’re there for that thing. They want to fight the good fight, and make it so that this platform is available to the 17-year-old that you just described, so that they can pick this stuff up and publish their own stuff online, and have their own voice, and create their own identity and all of that. And it’s, yeah, really interesting.

\n\n\n\n

I think I have one more question. So we were talking about the impact of you doing stuff in the open. You obviously did all of that stuff in the open. You did everything, you put everything online, you got HeroPress and all of that kind of stuff. Would you still advocate that in the year 2025, 2026? Do you still think that’s probably the best way forward?

\n\n\n\n

The reason I’m asking that is because we see so much out there in the world, beguiling stuff. TikTok, YouTube, all these people getting YouTube famous, making giant amounts of money and all of that kind stuff. They’re doing it kind of purposefully in order to gain wealth. So it’s less that philanthropic side.

\n\n\n\n

If you could replay your life, would you do that? Is there any part of you which thinks you’d go down that route of being the kind of influencer, or are you happy that your life would replay in, if you were the youngster that you were many, many years ago and you were now that youngster, would you still do it the same way, do you think?

\n\n\n\n

[00:35:00] Topher DeRosia: I think I would. A couple years ago I did a video tip of the week on HeroPress. It was a video on YouTube. And people would say to me, you know what? It’s good that you offer this free stuff. You should put something behind a paywall and make money off it. And I think, oh, you know, that’d be cool. I could make money and pay the bills. But then I think, anything I put behind a paywall is not going to be able to help a 17-year-old who’s making a dollar a week. And that’s where my heart is. And I struggle.

\n\n\n\n

I’m doing a project right now that I would love to tell you about. Over the years, I’ve done support a lot. And I, early on, made a rule, if I get asked a question more than three times, I’m making documentation. And so I can just say, oh, here, go check this out. And over the years I’ve had many clients come back to me three months after I built a site and say, you know, you taught me how to use the WordPress admin and I don’t remember, can you show me again?

\n\n\n\n

So, I don’t know, a year ago I thought, I’m going to make a course for beginners, and it’s going to have videos that are one minute long about how to make a link, how to put in a picture, how to edit your form. Stuff that we all take for granted every day. But somebody who just got a website three months ago and used it once, they don’t remember.

\n\n\n\n

So I started down that road. I got MemberPress, I set up a site, and I made a list of videos to make. I was going to sell it to my clients as part of, you know, you bought a website, for an extra X dollars, here’s all this documentation you can have. A WordPresser at that educational conference said to me, I want to sponsor you to make those videos. You pick the topic, but do it on our hosting platform, just so that our name is there.

\n\n\n\n

And she gave me some money to do it. And she said, I want you to put them on your own YouTube channel. I didn’t have one. All these years, I didn’t have my own YouTube channel for my own videos. I want you to put them on your own YouTube channel, and once you get 2000 subscribers, I will pay you for every video you make. Just to put them on my own YouTube channel. I get to pick the topics. It’s just to get their name out. And I thought, wow, okay.

\n\n\n\n

So I pivoted, rather than make a course behind a paywall, I am doing this thing, but they’re all going on YouTube. And I started three weeks ago, and I’m putting up a video Monday, Wednesday, Friday, and I have 57 subscribers.

\n\n\n\n

[00:37:19] Nathan Wrigley: There’s a little road to go. That’s so nice.

\n\n\n\n

[00:37:23] Topher DeRosia: But this goes back to doing stuff in public so that it’s more significant later. Maybe in a year or two or five, I’ll have thousands of subscribers. And life experience has shown me that I need to not assume that I’m going to have thousands of subscribers within a month. That’s not how this works. You do stuff now, you build your foundation and you grow it. And eventually it gets big.

\n\n\n\n

HeroPress happened that way. You know, I did a few essays, and I did a few more and I did a few more. And then one day I thought, oh, I have 200 essays, and now I have 300. I never set a goal of how many or anything like that. I just did one at a time, and then suddenly there’s this big site full of stuff.

\n\n\n\n

And so that’s my current project is to make these videos, helping people figure out how to use WordPress. It’s not going to be just the beginners, it’s going to be, well, have a heart for beginners in any area, so I’m going to do some beginning programming stuff. I’ve built some cool stuff like WP Podcasts, aggregates podcasts. It wasn’t hard. It’s WP All Import, pulling them into the posts type. It’s not that big a deal. But I can make a 10 minute video on how I did that, and some developer’s going to go, wow, I never realised you can do this kind of stuff. So I’m pretty excited about it.

\n\n\n\n

[00:38:40] Nathan Wrigley: Yeah, your life seems to represent that kind of long term approach, and I can completely empathise with that. Obviously my thing is podcasting, and I have the same sort of story that I just began it and kept doing it and kept doing it, and people obviously, you know, found that there was something there for them, or they didn’t.

\n\n\n\n

But there was something that kept that propelled. And now I look back and there’s a few episodes that I can look back to and, it’s pretty amazing what that brought in its train. Most of it completely unexpected, most of it never intended, and now podcasting in the WordPress space is kind of what I do.

\n\n\n\n

And it just goes to show, if you do things with the right intention, and you do things for the long game, there is a way to make it work. You know, obviously you’ve got to keep the wolf from the door, and if you live in a part of the world where it’s incredibly important that you earn lots of money in order to just meet the bare essentials, then you’ve obviously got to take care of that at the beginning. But then after that, there’s these opportunities on top of that to sort of grow who you are, grow the community that we’re in. And maybe in the long term, over 2, 3, 5, 10, in your case, probably approaching 20 years in the WordPress space, it has an impact. It’s slowly but surely. Slow and steady wins the game, as they say.

\n\n\n\n

[00:39:57] Topher DeRosia: It does, yep.

\n\n\n\n

[00:39:58] Nathan Wrigley: In which case, I will say thank you for that conversation. It was very unexpected and really, really powerful in some regard there. You really made me think on a couple of occasions as we were chatting there, and I really appreciate that.

\n\n\n\n

So, Topher, where can we find you if somebody wants to see some of the stuff? You’ve already mentioned one. It’s probably topher.how. I don’t know if that’s the one you want to drop again.

\n\n\n\n

[00:40:17] Topher DeRosia: Yeah, let’s say topher.how. But if you search Google for Topher1Kenobi, you’ll find me pretty much everywhere.

\n\n\n\n

[00:40:24] Nathan Wrigley: Love that.

\n\n\n\n

[00:40:25] Topher DeRosia: I’ve never found anyone else use that name.

\n\n\n\n

[00:40:26] Nathan Wrigley: And it’s the number one, like the numeral one.

\n\n\n\n

[00:40:29] Topher DeRosia: Yeah.

\n\n\n\n

[00:40:30] Nathan Wrigley: Not the wan.

\n\n\n\n

[00:40:31] Topher DeRosia: My personal blog is at topher1kenobi.com. There’s HeroPress. I did an episode the other day with Christos Paloukas, and he said, hey, send me your links.

\n\n\n\n

[00:40:40] Nathan Wrigley: An essay.

\n\n\n\n

[00:40:40] Topher DeRosia: I sent him 15 links.

\n\n\n\n

[00:40:44] Nathan Wrigley: Do that to me as well. Whatever you do send me, then I will put them into the show notes. wptavern.com, search for the episode with Topher. It’s T-O-P-H-E-R. If you just look for that, you’ll probably find it. And thank you so much for chatting to me today. It was very pleasurable. Thank you.

\n\n\n\n

[00:40:59] Topher DeRosia: Yeah, I had a really good time too. Thanks.

\n
\n\n\n\n

On the podcast today we have Topher DeRosia.

\n\n\n\n

Topher is a web developer with over 30 years of experience, and he’s been deeply involved in the WordPress community for the past 15 years. He’s attended nearly 80 WordCamps around the world, contributed to projects like HeroPress, and has made it his mission to highlight the power and value of open source and remote work, especially in the WordPress ecosystem.

\n\n\n\n

In this episode, Topher joins me to talk about the value of working in public, and how sharing your work openly can create unexpected and lasting opportunities, whether that’s boosting your career, finding a sense of purpose, or building connections across the globe.

\n\n\n\n

We start with Topher’s personal journey, discovering the WordPress community and the profound impact it had on his life and family. The conversation explores what makes open source communities, like WordPress, so unique, and why working transparently can lead to moments of serendipity, and even job offers from people who have seen your contributions many years before.

\n\n\n\n

Topher shares stories about giving back, the motivation that comes from helping others, and the long-term satisfaction that comes from being generous with your time and expertise.

\n\n\n\n

We also discuss the tension between the philanthropic and commercial aspects of WordPress, and how individuals and companies navigate that balance.

\n\n\n\n

Towards the end, Topher reflects on building a body of work over time, trusting in the slow and organic process instead of seeking instant ‘influencer’ success. He explains why he still chooses to create and share resources for free, motivated by the hope of helping the next person just starting out.

\n\n\n\n

If you’ve ever wondered about the power of sharing your work, finding meaning in open communities, or how to make a difference over the long term, this episode is for you.

\n\n\n\n

Useful links

\n\n\n\n

Topher.How

\n\n\n\n

Media Forge Productions

\n\n\n\n

HeroPress

\n\n\n\n

Hallway Chats

\n\n\n\n

WP Photos Info

\n\n\n\n

WP Wallpaper

\n\n\n\n

topher1kenobe.com

\n\n\n\n

YouTube

\n\n\n\n

LinkedIn

\n\n\n\n

Mastodon

\n\n\n\n

Bluesky

\n\n\n\n

Facebook

\n\n\n\n

Last.fm

";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Wed, 03 Dec 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:"Nathan Wrigley";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:43;a:6:{s:4:"data";s:21:"\n \n \n \n \n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:118:"Open Channels FM: Empowering WordPress Accessibility with Community, Practical Tools, Education, and Real-World Impact";s: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=112396";s: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:122:"https://openchannels.fm/empowering-wordpress-accessibility-with-community-practical-tools-education-and-real-world-impact/";s: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:364:"In this episode, host Anne Bovelett sits down with Troy Chaplin, a well-known figure in the WordPress community and an advocate for web accessibility. Together, they dive into the importance of accessibility in web development, sharing personal stories about what sparked their passion for the topic and how it has influenced their careers. You’ll hear […]";s: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, 03 Dec 2025 10:12: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:5:"BobWP";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:44;a:6:{s:4:"data";s:21:"\n \n \n \n \n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:23:"Matt: State of the Word";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:23:"https://ma.tt/?p=150742";s: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:42:"https://ma.tt/2025/12/state-of-the-word-3/";s: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:461:"

Though the stream didn’t work as we hoped, the recording of this year’s State of the Word, which in many ways was our best one yet, is up now.

\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, 03 Dec 2025 07:54: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: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: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:44:"WordPress.org blog: WordPress 6.9 “Gene”";s: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=19398";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:40:"https://wordpress.org/news/2025/12/gene/";s: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:76854:"
WordPress 6.9 Release Edition Featured Image
\n\n\n\n

Each WordPress release celebrates an artist who has made an indelible mark on the world of music. WordPress 6.9, code-named “Gene,” honors the American Jazz pianist Gene Harris.

\n\n\n\n

A piano veteran, self taught at the age of six, Harris infused mainstream jazz with elements of soul, blues, and gospel, creating a warm, signature sound that is both elegant and iconic. Harris’ bluesy jazz lived at the intersection of worlds, weaving a rich landscape of texture and mood, with a thread of soulfulness that ignited listeners.

\n\n\n\n

Welcome to WordPress 6.9

\n\n\n\n

WordPress 6.9 brings major upgrades to how teams collaborate and create. The new Notes feature introduces block-level commenting when writing posts and pages that streamlines reviews, while the expanded Command Palette makes it faster for power users to navigate and operate across the entire dashboard. The new Abilities API provides a standardized, machine-readable permissions system that opens the door for next generation AI-powered and automated workflows. This release also delivers notable performance improvements for faster page loads and adds several practical new blocks alongside a more visual drag and drop to help creators build richer, more dynamic content.

\n\n\n\n

Download WordPress 6.9 “Gene”

\n\n\n\n

Introducing Notes: Seamless, Block-Level Collaboration

\n\n\n\n

Collaborate Smarter : Leave Feedback Right Where You’re Working

\n\n\n\n

With notes attached directly to blocks in the post editor, your team can stay aligned, track changes, and turn feedback into action all in one place. Whether you’re working on copy or refining design in your posts or pages, collaboration happens seamlessly on the canvas itself.

\n\n\n\n
View of people interacting with notes in a post.
\n\n\n\n

Command Palette Throughout the Dashboard

\n\n\n\n

Your tools are always at hand.

\n\n\n\n

Access the Command Palette from any part of the dashboard, whether you’re writing your latest post, deep in design in the Site Editor, or browsing your plugins. Everything you need, just a few keystrokes away.

\n\n\n\n
Command palette showing the ability to navigate across different parts of the site, including templates, Settings, and all posts.
\n\n\n\n

Fit text to container

\n\n\n\n

Content that adapts.

\n\n\n\n

There’s a new typography option for text-based blocks that’s been added to the Paragraph and Heading blocks. This new option automatically adjusts font size to fill its container perfectly, making it ideal for banners, callouts, and standout moments in your design.

\n\n\n\n
"Novem" text selected and stretching across the interface.
\n\n\n\n

The Abilities API

\n\n\n\n

Unlocking the next generation of site interactions.

\n\n\n\n

WordPress 6.9 lays the groundwork for the future of automation with the unified Abilities API. By creating a standardized registry for site functionality, developers can now register, validate, and execute actions consistently across any context—from PHP and REST endpoints to AI agents—paving the way for smarter, more connected WordPress experiences.

\n\n\n\n
Abstract view of circles around a plugin icon with sparkles, indicating AI functionality.
\n\n\n\n

Accessibility Improvements

\n\n\n\n

More than 30 accessibility fixes sharpen the core WordPress experience. These updates improve screen reader announcements, hide unnecessary CSS-generated content from assistive tech, fix cursor placement issues, and make sure typing focus stays put even when users click an autocomplete suggestion.

\n\n\n\n

Performance enhancements

\n\n\n\n

WordPress 6.9 delivers significant frontend performance enhancements, optimizing the site loading experience for visitors. 6.9 boasts an improved LCP (Largest Contentful Paint) through on-demand block styles for classic themes, minifying block theme styles, and increasing the limit for inline styles – removing blockages to page rendering and clearing the rendering path by deprioritizing non-critical scripts. This release comes with many more performance boosts, including optimized database queries, refined caching, improved spawning of WP Cron, and a new template enhancement output buffer that opens the door for more future optimizations.

\n\n\n\n

And much more

\n\n\n\n

For a comprehensive overview of all the new features and enhancements in WordPress 6.9, please visit the feature-showcase website.

\n\n\n\n

Check out What’s New

\n\n\n\n

Learn more about WordPress 6.9

\n\n\n\n

Learn WordPress is a free resource for new and experienced WordPress users. Learn is stocked with how-to videos on using various features in WordPress, interactive workshops for exploring topics in-depth, and lesson plans for diving deep into specific areas of WordPress.

\n\n\n\n

Read the WordPress 6.9 Release Notes for information on installation, enhancements, fixed issues, release contributors, learning resources, and the list of file changes.

\n\n\n\n

Explore the WordPress 6.9 Field Guide. Learn about the changes in this release with detailed developer notes to help you build with WordPress.

\n\n\n\n

The 6.9 release squad

\n\n\n\n

Every release comes to you from a dedicated team of enthusiastic contributors who help keep things on track and moving smoothly. The team that has led 6.9 is a cross-functional group of contributors who are always ready to champion ideas, remove blockers, and resolve issues.

\n\n\n\n\n\n\n\n

Thank you, contributors

\n\n\n\n

The mission of WordPress is to democratize publishing and embody the freedoms that come with open source. A global and diverse community of people collaborating to strengthen the software supports this effort.

\n\n\n\n

WordPress 6.9 reflects the tireless efforts and passion of more than 900+ contributors in countries all over the world. This release also welcomed over 279 first-time contributors!

\n\n\n\n

Their collaboration delivered more than 340 enhancements and fixes, ensuring a stable release for all – a testament to the power and capability of the WordPress open source community.

\n\n\n\n

2046 · Aakash Verma · Aaron Jorbin · Aaron Robertshaw · Aarti Chauhan · Aashish Sharma · aatospaja · Abdur Rahman Emon · Abu Hurayra · Adam Harley (Kawauso) · Adam Silverstein · Adam Zieliński · Aditya Bansode · Aditya Dhade · aditya shah · Aditya Singh · aduth · agulbra · Ahmed · Ahmed Kabir Chaion · ajaxStardust · Ajit Bohra · Akanshu Singh · Akeda Bagus · Aki Hamano · Akira Tachibana · Akramul Hasan · Akshat Kakkad · Akshay Dhere · Akshaya Rane · Albert Juhé Lluveras · alejandrogonzalvo · Alex Cuadra · Alex Lende · Alex Lion (阿力獅) · Alex Stine · Alexandre Buffet · Alexei Samarschi · Alexis Pandaan · alordiel · Alvaro Gómez · Amber Hinds · Amin · Aminul Islam · Aminul Islam Alvi · Amit Bhosale · Amy Kamala · Anatol Broder · Anders Norén · Andrea Fercia · Andrea Roenning · Andrei Draganescu · Andrew Hoyer · Andrew Nacin · Andrew Ozz · Andrew Serong · André Maneiro · Andy Fragen · Anita C · Ankit K Gupta · Ankit Kumar Shah · Ankit Panchal · Anne McCarthy · Anne-Mieke Bovelett · Anton Vlasenko · Antonio Sejas · Anuj Singh · Anveshika Srivastava · apmeyer · Ari Stathopoulos · Arkadiusz Rzadkowolski · Armando · Artemio Morales · Arthur Chu · Artur Piszek · ArtZ91 · asafm7 · asdofindia · Ashish Kumar (Ashfame) · Ashraful Haque Akash · askapache · Aslam Doctor · Aurooba Ahmed · aut0poietic · Axel DUCORON · Ayesh Karunaratne · Azhar Deraiya · Béryl de La Grandière · bartnv · bchecketts · Beee · Ben Dwyer · Benazeer · Benjamin Denis · Benjamin Zekavica · Benny · Benoit Chantre · Bernhard Kau · Bernhard Reiter · bernhard-reiter · bgermann · bhattaganesh · Bhavesh Desai · BiDbMAK · Bigul Malayi · Birgir Erlendsson (birgire) · Birgit Pauli-Haack · Bishal Shrestha · bobbyleenoblestudios · BogdanUngureanu · bonger · Boro Sitnikovski · Brad Griffin · brad hogan · Brad Jorsch · bradshawtm · Brandon Hubbard · Brandon Kraft · Brandon Zhang · Brennan Goewert · brhodes · Brian Alexander · Brian Coords · Brian Gardner · Brian Haas · brumack · Bryan Schneidewind · bshuchter · burnuser · byteninjaa0 · Cédric Chevillard · Callum Bridgford-Whittick · Calvin Alkan · Carlo Cannas · Carlos Bravo · Carlos G. P. · CarlSteffen · Carolina Nymark · Carolina Romo · Catalin Ciobanu · catgofire · cbirdsong · ccharel · Chad Butler · Chad Chadbourne · Chakrapani Gautam · Chi-Hsuan Huang · Chillifish · ChloeD · Chouby · Chris Zarate · chriscct7 · chrisdotdotdot · chrismattix · christinecooper · Christoph Daum · Christy Nyiri · cikrimcin · Ciprian Popescu · cjhaas · ckoerner · claimableperch · Code Amp · codebuddy · coleatkinson1 · Colin Stewart · ColinD · Cooper Dalrymple · Coralie Tixeront · Corey Salzano · Corey Worrell · Cornwell · Cory Hughart · Courtney Robertson · cucocreative · Cullen Whitmore · Cyrille37 · Daan van den Bergh · Dakota Chichester · damchtlv · Damir · Damon Cook · Dan Cameron · Dan Waldschmidt · Daniel Bachhuber · Daniel Iser · Daniel Richards · Daniele Scasciafratte · daniellacatus · danielmorell · Danny Schmarsel · dannyreaktiv · Darren Ethier (nerrad) · Darshit Rajyaguru · Dave Ryan · daveguitaruno · David Aguilera · David Arenas · David Artiss · David Baumwald · David Calhoun · David Herrera · David Levine · David Perez · David Riviera · David Smith · DavidB · dawidadach · Dean Sas · Debabrata Karfa · DEBARGHYA BANERJEE · Denis de Bernardy · Denis Žoljom · Dennis Ploetner · Dennis Snell · Dennys Dionigi · Densi Nakum · derekherman · Devasheesh Kaul · Dhananjay Kuber · Dhrumil Kumbhani · Dhruval Shah · Dhruvang21 · Dhruvik Malaviya · diebombe · Dilip Bheda · Dilip Modhavadiya · Dion Hulse · divinenephron · dj.cowan · Dominik Schilling · dominiquepijnenburg · donalirl · doughamlin · DougMelvin · drawcard · dretzlaff · Drew Jaynes · Drivingralle · dsawyers · dustintechsmith · eclev91 · eduwass · Ehti · elialum · Eliezer Peña · Ella van Durpe · Elvis Morales · emaildano · Emerson Maningo · Emilie LEBRUN · Emran Ahmed · Enaan Farhan · Enrico Battocchi · Enrique Sánchez · epeicher · Eric · Eric Andrew Lewis · Erick Hitter · Erik · Erik Joling · Eshaan Dabasiya · ethanscorey · Evan Mullins · Even Tobiesen · Fabian Kägy · Fabian Todt · Faisal Ahammad · Faisal Alvi · fakhriaz · Falguni Desai · Felix Arntz · Felix Renicks · Fellyph Cintra · Florian TIAR · Francisco Torres · Francisco Vera · FrogDesk Strategy · Fumiki Takahashi · Gael Denysiak · Gajendra Singh · Gan Eng Chin · Garrett Hyder · Gary Jones · Gary Pendergast · Gaurang Dabhi · Gautam Mehta · Gennady Kovshenin · George Mamadashvili · George Stephanis · Georgi Stoyanov · gernberg · giuliorubelli · Glen Davies · Gopal Krishnan · Grant M. Kinney · Greg Ziółkowski · Guido · Guido Scialfa · Guillaume TURPIN · Gulamdastgir Momin · H. Adam Lenz · H. Kabir · hanimbarek · hanneslsm · Hans-Gerd Gerhards · Hardik Raval · Hareesh S · Harsh Gajipara · Harshal Kadu · harshbhonsle08 · harshdeepgill · Harun · Helen Hou-Sandi · HelgaTheViking · Hidenori ISHIKAWA · Hilay Trivedi · Himani Panchal · Himanshu Pathak · Hiroshi Sato · Hit Bhalodia · Hitendra Chopda · Hitesh Talpada · Hozefa Saleh · Hrohh · hugod · hugosolar · humanify · huubl · Huzaifa Al Mesbah · Héctor Prieto · Ian Dunn · ignatiusjeroe · Igor Radovanov · ikriv · imokweb · Imran · Indira Biswas · Ipstenu (Mika Epstein) · Iqbal Hossain · Isabel Brison · Ishika Bansal · Ivan Ottinger · Jabe · Jacob Cassidy · Jagir Bahesh · Jaimin Prajapati · Jakaria Istauk · Jake Spurlock · jakeparis · James Koster · James LePage · James Monroe · James Sansbury · James Titus · Jamie · Jamie Burchell · Jamie Marsland · janthiel · Jarda Snajdr · jarekmorawski · Jarkko Saltiola · Jason Adams · Jason LeMahieu (MadtownLems) · Jason Sauerwald · Javier Casares · Jay McPartland · Jayaram · Jaydip · Jean-Baptiste Audras · Jeff Chi · Jeff Matson · Jeff Ong · Jeff Paul · Jeffrey de Wit · Jeffro · jeflopo · Jenny Dupuy · Jeremiah Bratton · Jeremy Felt · Jeremy Massel · Jeroen Schmit · jeryj · Jesin A · jessedyck · Jessica Lyschik · Jigar Bhanushali · Jigar Panchal · jikamens · jnweaver · Joan Namunina · JoAnne Obata · JochenT · jodamo5 · Joe Dolson · Joe Hoyle · Joe McGill · Joen Asmussen · Johannes Jülg · John Blackbourn · John Brand · John Godley · John James Jacoby · John Parris · John Regan · JohnVieth · Jon Surrell · Jonathan Bossenger · Jonathan Champ · Jonathan Desrosiers · Joni Erkkilä · Jonny Harris · Jono Alderson · jordesign · Jorge Costa · Jos Velasco · Joseph Scott · Josh Habdas · Joshua Goode · jrmd · Juan Aldasoro · Juan Cook · JuanMa Garrido · juliengardair · Juliette Reinders Folmer · Justin Ahinon · Justin Tadlock · Jyotirmoy Roy · K. Adam White · Kai Hao · Kailey (trepmal) · Kaito Hanamori · Kakoma · Kalpesh · Karin Christen · Karol Manijak · Karthick Murugan · Karthikeya Bethu · Kaspars · Kat Hagan · Kateryna K. a11n · Kathryn Presner · Katrina Massey · Kausar Alam · Kaushik Domadiya · Kawshar Ahmed · kaygee79 · Kazuto Takeshita · Kelly Choyce-Dwan · Kelly Hoffman · Kelly Mears · Ken Gagne · Kerfred · Kerry Liu · kesselb · Kevin Leary · Khoi Pro · Khushi Patel · killerbishop · Kingsley Felix · Kira Schroder · Kishan Jasani · kitchin · Kjell Reigstad · kkmuffme · Kleor · Knut Sparhell · Konstantin Obenland · Konstantinos Xenos · kpapazov · kprocyszyn · krishaamer · Krunal Bhimajiyani · Krupa Nanda · kshaner · kub1x · kubiq · kunalpuri123 · Kush Sharma · Kushagra Goyal · Lachezar Gadzhev · lakrisgubben · Lakshyajeet Singh Goyal · Lalit Kumawat · Lance Willett · Laura Byrne · Lauri Saarni · ldanielgiuliani · Lee Willis · leedxw · leemon · Lena Morita · Leonidas Milosis · Levin Baria · lgseo · LilGames · liviopv · logiclink · LogicRays Technologies · lordandy1984 · Lovro Hrust · Lucas Martins · Luigi Teschio · luisherranz · LukasFritzeDev · Lukasz · Luke Cavanagh · maccyd · Madhavi Shah · Madhu Dollu · Maggie Cabrera · Maikuolan · manfcarlo · manhatthien98 · Manuel Camargo · Manzoor Wani · maorb · Marc · Marc Armengou · Marcio Duarte · Marco Ciampini · Marcus · Marcus Kazmierczak · marian1 · Marie · Marin Atanasov · Mario Santos · mariohamann · mariushosting · Marty · MartyThornley · Mary Baum · Mary Hubbard · Mat Lipe · mathiscode · Matias Benedetto · Matias Ventura · Matt Mullenweg · Matt Robinson · Matt West · Matteo Enna · Matthias Pfefferle · mattryanwalker · Max Schmeling · Maxime Pertici · Mayank Tripathi · Mayur Prajapati · Md Abdullah Al Arif · Md Abdullah Al Fahad · Md Abul Bashar · MD ISMAIL · MD Kawsar Chowdhury · Md Masum Molla Alhaz · Md Obidullah (obiPlabon) · Md Rashed Hossain · Md Sabbir Hossain · Md. Najmul Islam · Md.Mehedi Hasan · mdmoreau · mdviralsampat · Meet Makadia · megane9988 · Meher Bala · Mel Choyce-Dwan · Micha Krapp · Michael Burridge · Michael Keck · Michael Nelson · Michael Sumner · michaelreetz · Michal Czaplinski · Michelle Schulp Hunt · Miguel Fonseca · Miguel Lezama · Mikael Korpela · Mike · Mike Fitzpatrick · Mike Hansen · Mike Jolley · Mike McAlister · Mike Ritter · Mikin Chauhan · Milan Ricoul · Minal Diwan · Miroku · missveronica · Mitchell Austin · mkeck · mlaetitia1986 · mleray · mleraygp · Mobarak Ali · Mohammad Rockeybul Alam · Mohammed Kateregga · Moses Cursor Ssebunya · mrwweb · mtg169 · mujuonly · Mukesh Panchal · Mukul Singh · Mumtahina Faguni · Núria Nadal i Rovira · Naman Vyas · NANI SAMIREDDY · Narendra Sishodiya · Naresh Bheda · Nasim Miah · Nate Finch · Naveen Dwivedi · Navneet Kaur · Nazar Hotsa · Nazmul Hosen · Ned Zimmerman · nexbridge · Nextendweb · Neycho Kalaydzhiev · Nick · Nick · Nick Diego · Nick Halsey · nickbrazilian · nickjbedford · nickpagz · nickwilmot · Nico · nidhidhandhukiya · Niels Lange · nigelnelles · Nik Tsekouras · Nikan Radan · Nikunj Hatkar · Nimesh · Nino Mihovilic · Ninos · Noah Allen · Noel Santos · Noruzzaman · nosilver4u · oceantober · oferlaor · okat · Okawa Yasuno · Olga Gleckler · Oliver Campion · Omar Alshaker · Ophelia Rose · Optimizing Matters · owi · Paal Joachim Romdahl · Pablo Honey · Palak Patel · Paragon Initiative Enterprises · Parin Panjari · Parth vataliya · Partho Hore · Pascal Birchler · Patel Jaymin · Patricia BT · Patrick Lumumba · Patrick Piwowarczyk · Paul · Paul Bearne · Paul Biron · Paul Bonneau · Paul Kevan · Paulo Trentin · paulstanos · pcarvalho · Pedro Figueroa · Per Egil Roksvaag · Peter Ingersoll · Peter Westwood · Peter Wilson · petitphp · Philip John · Philip Sola · Philipp Bammes · Phill · piskvorky · Pooja Bhimani · poojapadamad · porg · prab18hat · Praful Patel · Pranjal Pratap Singh · Prasad Karmalkar · prasadgupte · Prashant Baldha · Pratik Londhe · Presskopp · prettyboymp · puggan · quentinr64600 · Rachel Baker · Rafiqul Islam · Raluca · Ramanan · Rami Yushuvaev · Ramon Ahnert · Ramon Corrales · Ramon James · Ravi Chudasama · Ravi Gadhiya · rcrdortiz · Rehan Ali · Rejaul Alom Khan · Remy Perona · Renato Alves · renishsurani · retrofox · Rezwan Shiblu · Riad Benguella · riadev · Rich Tabor · Richard Korthuis · Riddhi Dave · Rinat · Rinkal Pagdar · Rishabh Gupta · Rishav Dutta · Rishit Gupta · Risto Jovanovic · Ritoban · Robert Anderson · Robert Chapin · Robert Ghetau · Robert O\'Rourke · Robmcclel · Rodrigo Primo · roelof · Rolly Bueno · Ronak prajapati · Room 34 Creative Services, LLC · Rostislav Wolný · Rotem Gelbart · Rufaro Madamombe · Rutvik Bhambhi · Ryan McCue · Ryan Welcher · S Page · Sören Wünsch · Sabbir Ahmed · Sabbir Sam · SACHINRAJ CP · Sahil Jadhav · Sainath Poojary · Sajjad Hossain Sagor · sakibmoon · Sam · sam_a · Samir Malpande · Sampat Viral · Samuel Paget · Samuel Wood (Otto) · Sandeep Dahiya · Sandip Sinh · Sandy McFadden · Sarah Norris · sarah semark · Sarthak Nagoshe · Satish Prajapati · saurabh.dhariwal · Saxon Fletcher · scholdstrom · Scott Buscemi · Scott Kingsley Clark · Scott Reilly · Scott Taylor · scribu · Sebastian Pisula · Seif Radwane · Sergey Biryukov · Seth Rubenstein · SH Sajal Chowdhury · Shadi G شادي جـ · Shail Mehta · Shalin Shah · Shane Muirhead · Shashank Jain · Shashank Shekhar · Shazzad Hossain Khan · Sheri Grey · Shipon Karmakar · Shreya Shrivastava · Shubham Patil · Shyamsundar Gadde · sidharthpandita · siliconforks · Silpa TA · simonefontana · Slava Abakumov · smerriman · Sneha Patil · Sophie Dimitrov · Sourabh Jain · Sourav Pahwa · Soyeb Salar · Spenser Hale · spstrap · Sridhar Katakam · stankea · Stanko Metodiev · staurand · Stefan Pasch · Stefan Velthuys · Stephen Bernhardt · Stephen Harris · Steve Dufresne · strarsis · Subrata Sarkar · Sudip Dadhaniya · Sujan Sarkar · Sukhendu Sekhar Guria · Sumit Bagthariya · SunilPrajapati · sunnykasera · sunyatasattva (a11n) · supernovia · SuzuKube · svedish · Svetoslav Marinov · Sybre Waaijer · syhussaini · T4ng · Taco Verdonschot · Takashi Irie · Takuro · Tammie Lister · tatof · tecnogaming · Tetsuro Higuchi · tharsheblows · thelmachido a11n · ThemeAWESOME · theMikeD · Thomas Kräftner · Thorsten Frommen · Till Krüss · Tim Havinga · Tim Sheehan · Timo Tijhof · Timothée Brosille · Timothée Moulin · Timothy Jacobs · TJarrett · Tobias Bäthge · Tobias Zimpel · tobifjellner (Tor-Bjorn “Tobi” Fjellner) · Tom de Visser · Tom J Nowell · Tomoki Shimomura · Toni Viemerö · Tonya Mork · Toro_Unit (Hiroshi Urabe) · Torsten Landsiedel · Travis Smith · traxus · Trevor Mills · tristanleboss · Troy Chaplin · Trupti Kanzariya · tsteel · Tung Du · Tushar Bharti · Tushar Patel · Tussendoor B.V. · Ugyen Dorji · Umesh Nevase · Umesh Singh · Unsal Korkmaz · upadalavipul · Utsav Ladani · Utsav tilava · Valentin Grenier · Vape tsimshatsui · vbbp · Vedansh Mishra · Vegard S. · vgnavada · Vicente Canales · vidugupta · Vijendra Jat · Viktor Szépe · Vinit · Vipul Ghori · Vipul Gupta · Vipul Patil · Vishit Shah · vladimiraus · vortfu · Vrishabh Jasani · Walter Ebert · WebMan Design | Oliver Juhas · websupporter · webwrotter · Weston Ruter · whaze · widhy980 · Will Skora · wplmillet · xate · xavilc · xerpa43 · xipasduarte · Yagnik Sangani · Yash · Yash B · Yash Jawale · Yogesh Bhutkar · YogieAnamCara · Yui · Zebulan Stanphill · Zeel Thakkar · Zunaid Amin · Łukasz Strączyński · 耗子

\n\n\n\n

More than 71 locales have fully translated WordPress 6.9 into their language. Community translators are working hard to ensure more translations are on their way. Thank you to everyone who helps make WordPress available in 200+ languages.

\n\n\n\n

Last but not least, thanks to the volunteers who contribute to the support forums by answering questions from WordPress users worldwide.

\n\n\n\n

Get involved

\n\n\n\n

Participation in WordPress goes far beyond coding. And learning more and getting involved is easy. Discover the teams that come together to Make WordPress and use this interactive tool to help you decide which is right for 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:"Tue, 02 Dec 2025 20:12: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:14:"Matt Mullenweg";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:14:"Matt: SoTW Eve";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:23:"https://ma.tt/?p=150730";s: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:31:"https://ma.tt/2025/12/sotw-eve/";s: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:1939:"
\n\n\n\n

The State of the Word is tomorrow, and it’s so fun to see SF abuzz with WordPress open source energy. We’re doing a lot of firsts tomorrow, including the first release timed to the State of the Word, and we’ll have a good chunk of the release team there to push the button and bring WordPress 6.9 to the world.

\n\n\n\n

We’ll also be crossing streams with another community: in the last ten minutes, we’ll join TBPN, the new must-watch daily tech show.

\n\n\n\n

The art and activations are looking so good; it’s fun to see how everything evolves. Tokyo was so beautiful last year; I wasn’t sure how we’d top it, but the creativity of everyone coming together has sparked something new this year that I think is quite cool. We’re trying to honor our mission of democratizing publishing, making things that are powerful and capable, but also retain the flicker of art.

\n\n\n\n

We’re also opening up TinkerTendo to the community. I was just there with a few dozen of the crew, and the vibes are so fun. If you’re in SF, definitely swing by and connect with the folks building the most open internet we can all enjoy.

\n\n\n\n

Check out the livestream tomorrow, it’ll be a nice capstone to all we’ve built together this year.

";s: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, 02 Dec 2025 05:24:13 +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: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:73:"Open Channels FM: The Modern Quest for the Perfect Tab Management Browser";s: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=112370";s: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/the-modern-quest-for-the-perfect-tab-management-browser/";s: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:141:"Tab wars: Wrigley’s drowning in 45 tabs while BobWP casually guards two; they chat about browsers and the beauty of hitting “clear all”";s: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, 02 Dec 2025 02:15:08 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:5:"BobWP";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i: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:78:"Jake Spurlock: Introducing Placeholders: A WordPress Plugin for Ad Wireframing";s: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://jakespurlock.com/?p=52207";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:61:"https://jakespurlock.com/2025/12/placeholders-ad-wireframing/";s: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:6886:"

I’m excited to announce the release of Placeholders, a new WordPress plugin that makes wireframing and prototyping ad layouts easier than ever. The plugin is now available on WordPress.org and ready for production use.

\n\n\n\n

The Problem

\n\n\n\n

If you’ve ever worked on a WordPress site that displays advertising, you know the challenge: during the design and development phase, you need placeholder blocks that accurately represent where ads will appear. You want them to match real ad dimensions, but you don’t want to set up actual ad serving just to see if your layout works.

\n\n\n\n

I found myself repeatedly creating custom HTML blocks or CSS to mock up ad placements while working on various projects. Each time, I’d have to look up IAB standard ad sizes, write the markup, and style the placeholders. It was tedious and repetitive work that felt like it should be solved once and reused everywhere.

\n\n\n\n

The Solution

\n\n\n\n

Placeholders solves this by providing 14 Gutenberg blocks for the most common advertising sizes. Each block is pre-configured with the correct dimensions and provides a clean, wireframe-style placeholder that clearly indicates the ad size and space it will occupy.

\n\n\n\n

Supported Ad Sizes

\n\n\n\n

The plugin includes blocks for all the standard IAB ad sizes:

\n\n\n\n
    \n
  • Leaderboard (728×90px)
  • \n\n\n\n
  • Medium Rectangle (300×250px)
  • \n\n\n\n
  • Wide Skyscraper (160×600px)
  • \n\n\n\n
  • Mobile Banner (320×50px)
  • \n\n\n\n
  • Billboard (970×250px)
  • \n\n\n\n
  • Large Rectangle (336×280px)
  • \n\n\n\n
  • Half Page (300×600px)
  • \n\n\n\n
  • Small Square (200×200px)
  • \n\n\n\n
  • Square (250×250px)
  • \n\n\n\n
  • Small Rectangle (180×150px)
  • \n\n\n\n
  • Vertical Rectangle (240×400px)
  • \n\n\n\n
  • Large Leaderboard (970×90px)
  • \n\n\n\n
  • Portrait (300×1050px)
  • \n\n\n\n
  • Netboard (580×400px)
  • \n
\n\n\n\n

Key Features

\n\n\n\n

Simple to Use

\n\n\n\n

Just search for any ad size in the block inserter (e.g., “leaderboard” or “medium rectangle”), insert the block, and you’re done. No configuration required.

\n\n\n\n

Customizable

\n\n\n\n

Each placeholder supports:

\n\n\n\n
    \n
  • Background color customization
  • \n\n\n\n
  • Text color customization
  • \n\n\n\n
  • Alignment options (wide and full alignment)
  • \n\n\n\n
  • Responsive design that works on all screen sizes
  • \n
\n\n\n\n

Clean Design

\n\n\n\n

The placeholders feature a minimalist design that clearly shows:

\n\n\n\n
    \n
  • The ad size name
  • \n\n\n\n
  • Exact pixel dimensions
  • \n\n\n\n
  • A subtle border to indicate the space
  • \n
\n\n\n\n

This makes it easy to visualize your layout without the placeholders dominating the design.

\n\n\n\n

Use Cases

\n\n\n\n

Placeholders is perfect for:

\n\n\n\n
    \n
  1. Wireframing: Quickly mock up ad placements during the design phase
  2. \n\n\n\n
  3. Development: Reserve space for ads while building the site
  4. \n\n\n\n
  5. Client Presentations: Show clients where ads will appear without setting up ad serving
  6. \n\n\n\n
  7. Testing Layouts: Experiment with different ad placements and sizes
  8. \n\n\n\n
  9. Documentation: Create visual guides showing ad placement options
  10. \n
\n\n\n\n

Technical Details

\n\n\n\n

The plugin is built with modern WordPress development practices:

\n\n\n\n
    \n
  • 100% Gutenberg native – Works seamlessly with the block editor
  • \n\n\n\n
  • No dependencies – Pure PHP, CSS, and JavaScript
  • \n\n\n\n
  • Lightweight – Minimal performance impact
  • \n\n\n\n
  • Well-tested – Includes comprehensive unit tests
  • \n\n\n\n
  • GPL licensed – Free and open source
  • \n
\n\n\n\n

All blocks are grouped in a dedicated “Placeholders” category in the block inserter, making them easy to find and use.

\n\n\n\n

Installation

\n\n\n\n

You can install Placeholders in three ways:

\n\n\n\n

From WordPress.org (Recommended)

\n\n\n\n
    \n
  1. Go to Plugins → Add New in your WordPress admin
  2. \n\n\n\n
  3. Search for “Placeholders”
  4. \n\n\n\n
  5. Click Install Now, then Activate
  6. \n
\n\n\n\n

From the Plugin Directory Download directly from wordpress.org/plugins/placeholders

\n\n\n\n

From GitHub Clone or download from github.com/whyisjake/placeholders

\n\n\n\n

What’s Next

\n\n\n\n

This is the 1.0 release, and I’ve kept the scope focused on solving one problem well. However, I have ideas for future enhancements:

\n\n\n\n
    \n
  • Custom ad size support
  • \n\n\n\n
  • Templates for common ad layout patterns
  • \n\n\n\n
  • Integration with popular ad management plugins
  • \n\n\n\n
  • Dark mode styling options
  • \n
\n\n\n\n

If you have feature requests or find bugs, please open an issue on GitHub.

\n\n\n\n

Try It Out

\n\n\n\n

The plugin is available now on WordPress.org. If you work with ad layouts in WordPress, give it a try and let me know what you think!

\n\n\n\n\n\n\n\n

Happy wireframing!

\n\n\n\n
\n\n\n\n

Placeholders is free and open source software, released under the GPL v2 license.

";s: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, 01 Dec 2025 17: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:13:"Jake Spurlock";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:51:"Open Channels FM: Tech Doesn’t Die, It Transforms";s: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=113128";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:54:"https://openchannels.fm/tech-doesnt-die-it-transforms/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:89:"Think about it, most ideas behind any tech never really went away, they have transformed.";s: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, 01 Dec 2025 13:48:58 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:5:"BobWP";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}}}}}}}}}}}}s:4:"type";i:128;s:7:"headers";a:9:{s:6:"server";s:5:"nginx";s:4:"date";s:29:"Sat, 10 Jan 2026 06:25:22 GMT";s:12:"content-type";s:8:"text/xml";s:13:"last-modified";s:29:"Sat, 10 Jan 2026 06:15:20 GMT";s:4:"vary";s:15:"Accept-Encoding";s:15:"x-frame-options";s:10:"SAMEORIGIN";s:16:"content-encoding";s:2:"br";s:7:"alt-svc";s:19:"h3=":443"; ma=86400";s:4:"x-nc";s:9:"HIT ord 1";}s:5:"build";i:1760643936;s:21:"cache_expiration_time";i:1768069523;s:23:"__cache_expiration_time";i:1768069523;}', 'off'), - (154, '_site_transient_timeout_feed_mod_d117b5738fbd35bd8c0391cda1f2b5d9', '1768069523', 'off'), - (155, '_site_transient_feed_mod_d117b5738fbd35bd8c0391cda1f2b5d9', '1768026323', 'off'), - (156, '_transient_timeout_dash_v2_88ae138922fe95674369b1cb3d215a2b', '1768069523', 'off'), - (157, '_transient_dash_v2_88ae138922fe95674369b1cb3d215a2b', '', 'off'), - (163, '_site_transient_wp_plugin_dependencies_plugin_data', 'a:0:{}', 'off'), - (164, 'recently_activated', 'a:0:{}', 'off'), - (166, 'finished_updating_comment_type', '1', 'auto'), - (171, '_site_transient_timeout_theme_roots', '1768031671', 'off'), - (172, '_site_transient_theme_roots', 'a:4:{s:16:"twentytwentyfive";s:7:"/themes";s:16:"twentytwentyfour";s:7:"/themes";s:17:"twentytwentythree";s:7:"/themes";s:15:"twentytwentytwo";s:7:"/themes";}', 'off'), - (173, '_site_transient_update_core', 'O:8:"stdClass":4:{s:7:"updates";a:1:{i:0;O:8:"stdClass":10:{s:8:"response";s:6:"latest";s:8:"download";s:57:"https://downloads.wordpress.org/release/wordpress-6.9.zip";s:6:"locale";s:5:"en_US";s:8:"packages";O:8:"stdClass":5:{s:4:"full";s:57:"https://downloads.wordpress.org/release/wordpress-6.9.zip";s:10:"no_content";s:68:"https://downloads.wordpress.org/release/wordpress-6.9-no-content.zip";s:11:"new_bundled";s:69:"https://downloads.wordpress.org/release/wordpress-6.9-new-bundled.zip";s:7:"partial";s:0:"";s:8:"rollback";s:0:"";}s:7:"current";s:3:"6.9";s:7:"version";s:3:"6.9";s:11:"php_version";s:6:"7.2.24";s:13:"mysql_version";s:5:"5.5.5";s:11:"new_bundled";s:3:"6.7";s:15:"partial_version";s:0:"";}}s:12:"last_checked";i:1768029873;s:15:"version_checked";s:3:"6.9";s:12:"translations";a:0:{}}', 'off'), - (174, '_site_transient_update_themes', 'O:8:"stdClass":5:{s:12:"last_checked";i:1768029873;s:7:"checked";a:4:{s:16:"twentytwentyfive";s:3:"1.4";s:16:"twentytwentyfour";s:3:"1.4";s:17:"twentytwentythree";s:3:"1.6";s:15:"twentytwentytwo";s:3:"2.1";}s:8:"response";a:0:{}s:9:"no_update";a:4:{s:16:"twentytwentyfive";a:6:{s:5:"theme";s:16:"twentytwentyfive";s:11:"new_version";s:3:"1.4";s:3:"url";s:46:"https://wordpress.org/themes/twentytwentyfive/";s:7:"package";s:62:"https://downloads.wordpress.org/theme/twentytwentyfive.1.4.zip";s:8:"requires";s:3:"6.7";s:12:"requires_php";s:3:"7.2";}s:16:"twentytwentyfour";a:6:{s:5:"theme";s:16:"twentytwentyfour";s:11:"new_version";s:3:"1.4";s:3:"url";s:46:"https://wordpress.org/themes/twentytwentyfour/";s:7:"package";s:62:"https://downloads.wordpress.org/theme/twentytwentyfour.1.4.zip";s:8:"requires";s:3:"6.4";s:12:"requires_php";s:3:"7.0";}s:17:"twentytwentythree";a:6:{s:5:"theme";s:17:"twentytwentythree";s:11:"new_version";s:3:"1.6";s:3:"url";s:47:"https://wordpress.org/themes/twentytwentythree/";s:7:"package";s:63:"https://downloads.wordpress.org/theme/twentytwentythree.1.6.zip";s:8:"requires";s:3:"6.1";s:12:"requires_php";s:3:"5.6";}s:15:"twentytwentytwo";a:6:{s:5:"theme";s:15:"twentytwentytwo";s:11:"new_version";s:3:"2.1";s:3:"url";s:45:"https://wordpress.org/themes/twentytwentytwo/";s:7:"package";s:61:"https://downloads.wordpress.org/theme/twentytwentytwo.2.1.zip";s:8:"requires";s:3:"5.9";s:12:"requires_php";s:3:"5.6";}}s:12:"translations";a:0:{}}', 'off'), - (175, '_site_transient_update_plugins', 'O:8:"stdClass":5:{s:12:"last_checked";i:1768029874;s:8:"response";a:0:{}s:12:"translations";a:0:{}s:9:"no_update";a:2:{s:19:"akismet/akismet.php";O:8:"stdClass":10:{s:2:"id";s:21:"w.org/plugins/akismet";s:4:"slug";s:7:"akismet";s:6:"plugin";s:19:"akismet/akismet.php";s:11:"new_version";s:3:"5.6";s:3:"url";s:38:"https://wordpress.org/plugins/akismet/";s:7:"package";s:54:"https://downloads.wordpress.org/plugin/akismet.5.6.zip";s:5:"icons";a:2:{s:2:"2x";s:60:"https://ps.w.org/akismet/assets/icon-256x256.png?rev=2818463";s:2:"1x";s:60:"https://ps.w.org/akismet/assets/icon-128x128.png?rev=2818463";}s:7:"banners";a:2:{s:2:"2x";s:63:"https://ps.w.org/akismet/assets/banner-1544x500.png?rev=2900731";s:2:"1x";s:62:"https://ps.w.org/akismet/assets/banner-772x250.png?rev=2900731";}s:11:"banners_rtl";a:0:{}s:8:"requires";s:3:"5.8";}s:9:"hello.php";O:8:"stdClass":10:{s:2:"id";s:25:"w.org/plugins/hello-dolly";s:4:"slug";s:11:"hello-dolly";s:6:"plugin";s:9:"hello.php";s:11:"new_version";s:5:"1.7.2";s:3:"url";s:42:"https://wordpress.org/plugins/hello-dolly/";s:7:"package";s:60:"https://downloads.wordpress.org/plugin/hello-dolly.1.7.2.zip";s:5:"icons";a:2:{s:2:"2x";s:64:"https://ps.w.org/hello-dolly/assets/icon-256x256.jpg?rev=2052855";s:2:"1x";s:64:"https://ps.w.org/hello-dolly/assets/icon-128x128.jpg?rev=2052855";}s:7:"banners";a:2:{s:2:"2x";s:67:"https://ps.w.org/hello-dolly/assets/banner-1544x500.jpg?rev=2645582";s:2:"1x";s:66:"https://ps.w.org/hello-dolly/assets/banner-772x250.jpg?rev=2052855";}s:11:"banners_rtl";a:0:{}s:8:"requires";s:3:"4.6";}}s:7:"checked";a:2:{s:19:"akismet/akismet.php";s:3:"5.6";s:9:"hello.php";s:5:"1.7.2";}}', 'off'), - (176, '_site_transient_timeout_wp_theme_files_patterns-9a600882df284315fdcba6684f33d298', '1768031678', 'off'), - (177, '_site_transient_wp_theme_files_patterns-9a600882df284315fdcba6684f33d298', 'a:2:{s:7:"version";s:3:"1.4";s:8:"patterns";a:98:{s:21:"banner-about-book.php";a:4:{s:5:"title";s:28:"Banner with book description";s:4:"slug";s:34:"twentytwentyfive/banner-about-book";s:11:"description";s:66:"Banner with book description and accompanying image for promotion.";s:10:"categories";a:1:{i:0;s:6:"banner";}}s:28:"banner-cover-big-heading.php";a:4:{s:5:"title";s:22:"Cover with big heading";s:4:"slug";s:41:"twentytwentyfive/banner-cover-big-heading";s:11:"description";s:82:"A full-width cover section with a large background image and an oversized heading.";s:10:"categories";a:3:{i:0;s:6:"banner";i:1;s:5:"about";i:2;s:8:"featured";}}s:22:"banner-intro-image.php";a:4:{s:5:"title";s:49:"Short heading and paragraph and image on the left";s:4:"slug";s:35:"twentytwentyfive/banner-intro-image";s:11:"description";s:68:"A Intro pattern with Short heading, paragraph and image on the left.";s:10:"categories";a:2:{i:0;s:6:"banner";i:1;s:8:"featured";}}s:16:"banner-intro.php";a:4:{s:5:"title";s:35:"Intro with left-aligned description";s:4:"slug";s:29:"twentytwentyfive/banner-intro";s:11:"description";s:66:"A large left-aligned heading with a brand name emphasized in bold.";s:10:"categories";a:1:{i:0;s:6:"banner";}}s:17:"banner-poster.php";a:4:{s:5:"title";s:19:"Poster-like section";s:4:"slug";s:30:"twentytwentyfive/banner-poster";s:11:"description";s:78:"A section that can be used as a banner or a landing page to announce an event.";s:10:"categories";a:2:{i:0;s:6:"banner";i:1;s:5:"media";}}s:43:"banner-with-description-and-images-grid.php";a:4:{s:5:"title";s:39:"Banner with description and images grid";s:4:"slug";s:47:"twentytwentyfive/banner-description-images-grid";s:11:"description";s:75:"A banner with a short paragraph, and two images displayed in a grid layout.";s:10:"categories";a:2:{i:0;s:6:"banner";i:1;s:8:"featured";}}s:18:"binding-format.php";a:4:{s:5:"title";s:16:"Post format name";s:4:"slug";s:31:"twentytwentyfive/binding-format";s:11:"description";s:75:"Prints the name of the post format with the help of the Block Bindings API.";s:10:"categories";a:1:{i:0;s:28:"twentytwentyfive_post-format";}}s:12:"comments.php";a:5:{s:5:"title";s:8:"Comments";s:4:"slug";s:25:"twentytwentyfive/comments";s:11:"description";s:63:"Comments area with comments list, pagination, and comment form.";s:10:"categories";a:1:{i:0;s:4:"text";}s:10:"blockTypes";a:1:{i:0;s:13:"core/comments";}}s:32:"contact-centered-social-link.php";a:5:{s:5:"title";s:30:"Centered link and social links";s:4:"slug";s:45:"twentytwentyfive/contact-centered-social-link";s:11:"description";s:73:"Centered contact section with a prominent message and social media links.";s:10:"categories";a:1:{i:0;s:7:"contact";}s:8:"keywords";a:3:{i:0;s:7:"contact";i:1;s:3:"faq";i:2;s:9:"questions";}}s:26:"contact-info-locations.php";a:6:{s:5:"title";s:27:"Contact, info and locations";s:4:"slug";s:39:"twentytwentyfive/contact-info-locations";s:11:"description";s:78:"Contact section with social media links, email, and multiple location details.";s:13:"viewportWidth";i:1400;s:10:"categories";a:1:{i:0;s:7:"contact";}s:8:"keywords";a:2:{i:0;s:7:"contact";i:1;s:8:"location";}}s:29:"contact-location-and-link.php";a:4:{s:5:"title";s:25:"Contact location and link";s:4:"slug";s:42:"twentytwentyfive/contact-location-and-link";s:11:"description";s:89:"Contact section with a location address, a directions link, and an image of the location.";s:10:"categories";a:2:{i:0;s:7:"contact";i:1;s:8:"featured";}}s:18:"cta-book-links.php";a:4:{s:5:"title";s:30:"Call to action with book links";s:4:"slug";s:31:"twentytwentyfive/cta-book-links";s:11:"description";s:74:"A call to action section with links to get the book in different websites.";s:10:"categories";a:1:{i:0;s:14:"call-to-action";}}s:22:"cta-book-locations.php";a:4:{s:5:"title";s:29:"Call to action with locations";s:4:"slug";s:35:"twentytwentyfive/cta-book-locations";s:11:"description";s:82:"A call to action section with links to get the book in the most popular locations.";s:10:"categories";a:1:{i:0;s:14:"call-to-action";}}s:24:"cta-centered-heading.php";a:4:{s:5:"title";s:16:"Centered heading";s:4:"slug";s:37:"twentytwentyfive/cta-centered-heading";s:11:"description";s:53:"A hero with a centered heading, paragraph and button.";s:10:"categories";a:1:{i:0;s:14:"call-to-action";}}s:19:"cta-events-list.php";a:4:{s:5:"title";s:11:"Events list";s:4:"slug";s:32:"twentytwentyfive/cta-events-list";s:11:"description";s:37:"A list of events with call to action.";s:10:"categories";a:1:{i:0;s:14:"call-to-action";}}s:26:"cta-grid-products-link.php";a:5:{s:5:"title";s:54:"Call to action with grid layout with products and link";s:4:"slug";s:39:"twentytwentyfive/cta-grid-products-link";s:11:"description";s:42:"A call to action featuring product images.";s:13:"viewportWidth";i:1400;s:10:"categories";a:2:{i:0;s:14:"call-to-action";i:1;s:8:"featured";}}s:22:"cta-heading-search.php";a:4:{s:5:"title";s:23:"Heading and search form";s:4:"slug";s:35:"twentytwentyfive/cta-heading-search";s:11:"description";s:54:"Large heading with a search form for quick navigation.";s:10:"categories";a:1:{i:0;s:14:"call-to-action";}}s:18:"cta-newsletter.php";a:5:{s:5:"title";s:18:"Newsletter sign-up";s:4:"slug";s:31:"twentytwentyfive/cta-newsletter";s:11:"description";s:0:"";s:10:"categories";a:1:{i:0;s:14:"call-to-action";}s:8:"keywords";a:2:{i:0;s:14:"call-to-action";i:1;s:10:"newsletter";}}s:15:"event-3-col.php";a:5:{s:5:"title";s:46:"Events, 3 columns with event images and titles";s:4:"slug";s:28:"twentytwentyfive/event-3-col";s:11:"description";s:95:"A header with title and text and three columns that show 3 events with their images and titles.";s:10:"categories";a:1:{i:0;s:6:"banner";}s:8:"keywords";a:3:{i:0;s:6:"events";i:1;s:7:"columns";i:2;s:6:"images";}}s:14:"event-rsvp.php";a:7:{s:5:"title";s:10:"Event RSVP";s:4:"slug";s:27:"twentytwentyfive/event-rsvp";s:11:"description";s:64:"RSVP for an upcoming event with a cover image and event details.";s:13:"viewportWidth";i:1400;s:10:"categories";a:1:{i:0;s:14:"call-to-action";}s:8:"keywords";a:3:{i:0;s:14:"call-to-action";i:1;s:4:"rsvp";i:2;s:5:"event";}s:10:"blockTypes";a:1:{i:0;s:17:"core/post-content";}}s:18:"event-schedule.php";a:5:{s:5:"title";s:14:"Event schedule";s:4:"slug";s:31:"twentytwentyfive/event-schedule";s:11:"description";s:54:"A section with specified dates and times for an event.";s:10:"categories";a:1:{i:0;s:5:"about";}s:8:"keywords";a:4:{i:0;s:6:"events";i:1;s:6:"agenda";i:2;s:8:"schedule";i:3;s:8:"lectures";}}s:19:"footer-centered.php";a:5:{s:5:"title";s:15:"Centered footer";s:4:"slug";s:32:"twentytwentyfive/footer-centered";s:11:"description";s:44:"Footer with centered site title and tagline.";s:10:"categories";a:1:{i:0;s:6:"footer";}s:10:"blockTypes";a:1:{i:0;s:25:"core/template-part/footer";}}s:18:"footer-columns.php";a:5:{s:5:"title";s:19:"Footer with columns";s:4:"slug";s:31:"twentytwentyfive/footer-columns";s:11:"description";s:45:"Footer columns with title, tagline and links.";s:10:"categories";a:1:{i:0;s:6:"footer";}s:10:"blockTypes";a:1:{i:0;s:25:"core/template-part/footer";}}s:21:"footer-newsletter.php";a:5:{s:5:"title";s:29:"Footer with newsletter signup";s:4:"slug";s:34:"twentytwentyfive/footer-newsletter";s:11:"description";s:51:"Footer with large site title and newsletter signup.";s:10:"categories";a:1:{i:0;s:6:"footer";}s:10:"blockTypes";a:1:{i:0;s:25:"core/template-part/footer";}}s:17:"footer-social.php";a:5:{s:5:"title";s:33:"Centered footer with social links";s:4:"slug";s:30:"twentytwentyfive/footer-social";s:11:"description";s:49:"Footer with centered site title and social links.";s:10:"categories";a:1:{i:0;s:6:"footer";}s:10:"blockTypes";a:1:{i:0;s:25:"core/template-part/footer";}}s:10:"footer.php";a:5:{s:5:"title";s:6:"Footer";s:4:"slug";s:23:"twentytwentyfive/footer";s:11:"description";s:51:"Footer columns with logo, title, tagline and links.";s:10:"categories";a:1:{i:0;s:6:"footer";}s:10:"blockTypes";a:1:{i:0;s:25:"core/template-part/footer";}}s:16:"format-audio.php";a:4:{s:5:"title";s:12:"Audio format";s:4:"slug";s:29:"twentytwentyfive/format-audio";s:11:"description";s:73:"An audio post format with an image, title, audio player, and description.";s:10:"categories";a:1:{i:0;s:28:"twentytwentyfive_post-format";}}s:15:"format-link.php";a:4:{s:5:"title";s:11:"Link format";s:4:"slug";s:28:"twentytwentyfive/format-link";s:11:"description";s:77:"A link post format with a description and an emphasized link for key content.";s:10:"categories";a:1:{i:0;s:28:"twentytwentyfive_post-format";}}s:15:"grid-videos.php";a:4:{s:5:"title";s:16:"Grid with videos";s:4:"slug";s:28:"twentytwentyfive/grid-videos";s:11:"description";s:19:"A grid with videos.";s:10:"categories";a:1:{i:0;s:5:"about";}}s:24:"grid-with-categories.php";a:5:{s:5:"title";s:20:"Grid with categories";s:4:"slug";s:37:"twentytwentyfive/grid-with-categories";s:11:"description";s:41:"A grid section with different categories.";s:13:"viewportWidth";i:1400;s:10:"categories";a:1:{i:0;s:6:"banner";}}s:19:"header-centered.php";a:5:{s:5:"title";s:20:"Centered site header";s:4:"slug";s:32:"twentytwentyfive/header-centered";s:11:"description";s:52:"Site header with centered site title and navigation.";s:10:"categories";a:1:{i:0;s:6:"header";}s:10:"blockTypes";a:1:{i:0;s:25:"core/template-part/header";}}s:18:"header-columns.php";a:5:{s:5:"title";s:19:"Header with columns";s:4:"slug";s:31:"twentytwentyfive/header-columns";s:11:"description";s:54:"Site header with site title and navigation in columns.";s:10:"categories";a:1:{i:0;s:6:"header";}s:10:"blockTypes";a:1:{i:0;s:25:"core/template-part/header";}}s:22:"header-large-title.php";a:5:{s:5:"title";s:23:"Header with large title";s:4:"slug";s:35:"twentytwentyfive/header-large-title";s:11:"description";s:63:"Site header with large site title and right-aligned navigation.";s:10:"categories";a:1:{i:0;s:6:"header";}s:10:"blockTypes";a:1:{i:0;s:25:"core/template-part/header";}}s:10:"header.php";a:5:{s:5:"title";s:6:"Header";s:4:"slug";s:23:"twentytwentyfive/header";s:11:"description";s:43:"Site header with site title and navigation.";s:10:"categories";a:1:{i:0;s:6:"header";}s:10:"blockTypes";a:1:{i:0;s:25:"core/template-part/header";}}s:36:"heading-and-paragraph-with-image.php";a:4:{s:5:"title";s:45:"Heading and paragraph with image on the right";s:4:"slug";s:49:"twentytwentyfive/heading-and-paragraph-with-image";s:11:"description";s:89:"A two-column section with a heading and paragraph on the left, and an image on the right.";s:10:"categories";a:1:{i:0;s:5:"about";}}s:13:"hero-book.php";a:5:{s:5:"title";s:9:"Hero book";s:4:"slug";s:26:"twentytwentyfive/hero-book";s:11:"description";s:66:"A hero section for the book with a description and pre-order link.";s:10:"categories";a:1:{i:0;s:6:"banner";}s:8:"keywords";a:3:{i:0;s:7:"podcast";i:1;s:4:"hero";i:2;s:7:"stories";}}s:25:"hero-full-width-image.php";a:4:{s:5:"title";s:22:"Hero, full width image";s:4:"slug";s:38:"twentytwentyfive/hero-full-width-image";s:11:"description";s:68:"A hero with a full width image, heading, short paragraph and button.";s:10:"categories";a:1:{i:0;s:6:"banner";}}s:41:"hero-overlapped-book-cover-with-links.php";a:4:{s:5:"title";s:38:"Hero, overlapped book cover with links";s:4:"slug";s:54:"twentytwentyfive/hero-overlapped-book-cover-with-links";s:11:"description";s:47:"A hero with an overlapped book cover and links.";s:10:"categories";a:1:{i:0;s:6:"banner";}}s:16:"hero-podcast.php";a:5:{s:5:"title";s:12:"Hero podcast";s:4:"slug";s:29:"twentytwentyfive/hero-podcast";s:11:"description";s:0:"";s:10:"categories";a:1:{i:0;s:6:"banner";}s:8:"keywords";a:3:{i:0;s:7:"podcast";i:1;s:4:"hero";i:2;s:7:"stories";}}s:14:"hidden-404.php";a:4:{s:5:"title";s:3:"404";s:4:"slug";s:27:"twentytwentyfive/hidden-404";s:11:"description";s:0:"";s:8:"inserter";b:0;}s:23:"hidden-blog-heading.php";a:4:{s:5:"title";s:19:"Hidden blog heading";s:4:"slug";s:36:"twentytwentyfive/hidden-blog-heading";s:11:"description";s:52:"Hidden heading for the home page and index template.";s:8:"inserter";b:0;}s:17:"hidden-search.php";a:4:{s:5:"title";s:6:"Search";s:4:"slug";s:30:"twentytwentyfive/hidden-search";s:11:"description";s:0:"";s:8:"inserter";b:0;}s:18:"hidden-sidebar.php";a:4:{s:5:"title";s:7:"Sidebar";s:4:"slug";s:31:"twentytwentyfive/hidden-sidebar";s:11:"description";s:0:"";s:8:"inserter";b:0;}s:21:"hidden-written-by.php";a:4:{s:5:"title";s:10:"Written by";s:4:"slug";s:34:"twentytwentyfive/hidden-written-by";s:11:"description";s:0:"";s:8:"inserter";b:0;}s:9:"logos.php";a:4:{s:5:"title";s:5:"Logos";s:4:"slug";s:22:"twentytwentyfive/logos";s:11:"description";s:77:"Showcasing the podcast\'s clients with a heading and a series of client logos.";s:10:"categories";a:1:{i:0;s:6:"banner";}}s:24:"media-instagram-grid.php";a:5:{s:5:"title";s:14:"Instagram grid";s:4:"slug";s:37:"twentytwentyfive/media-instagram-grid";s:11:"description";s:62:"A grid section with photos and a link to an Instagram profile.";s:13:"viewportWidth";i:1440;s:10:"categories";a:3:{i:0;s:5:"media";i:1;s:7:"gallery";i:2;s:8:"featured";}}s:14:"more-posts.php";a:5:{s:5:"title";s:10:"More posts";s:4:"slug";s:27:"twentytwentyfive/more-posts";s:11:"description";s:45:"Displays a list of posts with title and date.";s:10:"categories";a:1:{i:0;s:5:"query";}s:10:"blockTypes";a:1:{i:0;s:10:"core/query";}}s:21:"overlapped-images.php";a:4:{s:5:"title";s:41:"Overlapping images and paragraph on right";s:4:"slug";s:34:"twentytwentyfive/overlapped-images";s:11:"description";s:53:"A section with overlapping images, and a description.";s:10:"categories";a:2:{i:0;s:5:"about";i:1;s:8:"featured";}}s:22:"page-business-home.php";a:8:{s:5:"title";s:17:"Business homepage";s:4:"slug";s:35:"twentytwentyfive/page-business-home";s:11:"description";s:28:"A business homepage pattern.";s:13:"viewportWidth";i:1400;s:10:"categories";a:2:{i:0;s:21:"twentytwentyfive_page";i:1;s:8:"featured";}s:8:"keywords";a:1:{i:0;s:7:"starter";}s:10:"blockTypes";a:1:{i:0;s:17:"core/post-content";}s:9:"postTypes";a:2:{i:0;s:4:"page";i:1;s:11:"wp_template";}}s:20:"page-coming-soon.php";a:8:{s:5:"title";s:11:"Coming soon";s:4:"slug";s:33:"twentytwentyfive/page-coming-soon";s:11:"description";s:96:"A full-width cover banner that can be applied to a page or it can work as a single landing page.";s:13:"viewportWidth";i:1400;s:10:"categories";a:2:{i:0;s:21:"twentytwentyfive_page";i:1;s:8:"featured";}s:8:"keywords";a:1:{i:0;s:7:"starter";}s:10:"blockTypes";a:1:{i:0;s:17:"core/post-content";}s:9:"postTypes";a:2:{i:0;s:4:"page";i:1;s:11:"wp_template";}}s:15:"page-cv-bio.php";a:7:{s:5:"title";s:6:"CV/bio";s:4:"slug";s:28:"twentytwentyfive/page-cv-bio";s:11:"description";s:36:"A pattern for a CV/Bio landing page.";s:13:"viewportWidth";i:1400;s:10:"categories";a:3:{i:0;s:21:"twentytwentyfive_page";i:1;s:5:"about";i:2;s:8:"featured";}s:8:"keywords";a:1:{i:0;s:7:"starter";}s:10:"blockTypes";a:1:{i:0;s:17:"core/post-content";}}s:21:"page-landing-book.php";a:8:{s:5:"title";s:21:"Landing page for book";s:4:"slug";s:34:"twentytwentyfive/page-landing-book";s:11:"description";s:104:"A landing page for the book with a hero section, pre-order links, locations, FAQs and newsletter signup.";s:13:"viewportWidth";i:1400;s:10:"categories";a:2:{i:0;s:21:"twentytwentyfive_page";i:1;s:8:"featured";}s:8:"keywords";a:1:{i:0;s:7:"starter";}s:10:"blockTypes";a:1:{i:0;s:17:"core/post-content";}s:9:"postTypes";a:2:{i:0;s:4:"page";i:1;s:11:"wp_template";}}s:22:"page-landing-event.php";a:8:{s:5:"title";s:22:"Landing page for event";s:4:"slug";s:35:"twentytwentyfive/page-landing-event";s:11:"description";s:87:"A landing page for the event with a hero section, description, FAQs and call to action.";s:13:"viewportWidth";i:1400;s:10:"categories";a:2:{i:0;s:21:"twentytwentyfive_page";i:1;s:8:"featured";}s:8:"keywords";a:1:{i:0;s:7:"starter";}s:10:"blockTypes";a:1:{i:0;s:17:"core/post-content";}s:9:"postTypes";a:2:{i:0;s:4:"page";i:1;s:11:"wp_template";}}s:24:"page-landing-podcast.php";a:8:{s:5:"title";s:24:"Landing page for podcast";s:4:"slug";s:37:"twentytwentyfive/page-landing-podcast";s:11:"description";s:111:"A landing page for the podcast with a hero section, description, logos, grid with videos and newsletter signup.";s:13:"viewportWidth";i:1400;s:10:"categories";a:2:{i:0;s:21:"twentytwentyfive_page";i:1;s:8:"featured";}s:8:"keywords";a:1:{i:0;s:7:"starter";}s:10:"blockTypes";a:1:{i:0;s:17:"core/post-content";}s:9:"postTypes";a:2:{i:0;s:4:"page";i:1;s:11:"wp_template";}}s:50:"page-link-in-bio-heading-paragraph-links-image.php";a:7:{s:5:"title";s:59:"Link in bio heading, paragraph, links and full-height image";s:4:"slug";s:63:"twentytwentyfive/page-link-in-bio-heading-paragraph-links-image";s:11:"description";s:84:"A link in bio landing page with a heading, paragraph, links and a full height image.";s:13:"viewportWidth";i:1400;s:10:"categories";a:3:{i:0;s:21:"twentytwentyfive_page";i:1;s:6:"banner";i:2;s:8:"featured";}s:8:"keywords";a:1:{i:0;s:7:"starter";}s:10:"blockTypes";a:1:{i:0;s:17:"core/post-content";}}s:33:"page-link-in-bio-wide-margins.php";a:7:{s:5:"title";s:48:"Link in bio with profile, links and wide margins";s:4:"slug";s:46:"twentytwentyfive/page-link-in-bio-wide-margins";s:11:"description";s:86:"A link in bio landing page with social links, a profile photo and a brief description.";s:13:"viewportWidth";i:1400;s:10:"categories";a:3:{i:0;s:21:"twentytwentyfive_page";i:1;s:6:"banner";i:2;s:8:"featured";}s:8:"keywords";a:1:{i:0;s:7:"starter";}s:10:"blockTypes";a:1:{i:0;s:17:"core/post-content";}}s:39:"page-link-in-bio-with-tight-margins.php";a:8:{s:5:"title";s:30:"Link in bio with tight margins";s:4:"slug";s:52:"twentytwentyfive/page-link-in-bio-with-tight-margins";s:11:"description";s:90:"A full-width, full-height link in bio section with an image, a paragraph and social links.";s:13:"viewportWidth";i:1400;s:10:"categories";a:2:{i:0;s:21:"twentytwentyfive_page";i:1;s:6:"banner";}s:8:"keywords";a:1:{i:0;s:7:"starter";}s:10:"blockTypes";a:1:{i:0;s:17:"core/post-content";}s:9:"postTypes";a:2:{i:0;s:4:"page";i:1;s:11:"wp_template";}}s:23:"page-portfolio-home.php";a:8:{s:5:"title";s:18:"Portfolio homepage";s:4:"slug";s:36:"twentytwentyfive/page-portfolio-home";s:11:"description";s:29:"A portfolio homepage pattern.";s:13:"viewportWidth";i:1400;s:10:"categories";a:2:{i:0;s:21:"twentytwentyfive_page";i:1;s:5:"posts";}s:8:"keywords";a:1:{i:0;s:7:"starter";}s:10:"blockTypes";a:1:{i:0;s:17:"core/post-content";}s:9:"postTypes";a:2:{i:0;s:4:"page";i:1;s:11:"wp_template";}}s:18:"page-shop-home.php";a:8:{s:5:"title";s:13:"Shop homepage";s:4:"slug";s:31:"twentytwentyfive/page-shop-home";s:11:"description";s:24:"A shop homepage pattern.";s:13:"viewportWidth";i:1400;s:10:"categories";a:1:{i:0;s:21:"twentytwentyfive_page";}s:8:"keywords";a:1:{i:0;s:7:"starter";}s:10:"blockTypes";a:1:{i:0;s:17:"core/post-content";}s:9:"postTypes";a:2:{i:0;s:4:"page";i:1;s:11:"wp_template";}}s:19:"post-navigation.php";a:5:{s:5:"title";s:15:"Post navigation";s:4:"slug";s:32:"twentytwentyfive/post-navigation";s:11:"description";s:29:"Next and previous post links.";s:10:"categories";a:1:{i:0;s:4:"text";}s:10:"blockTypes";a:1:{i:0;s:25:"core/post-navigation-link";}}s:17:"pricing-2-col.php";a:5:{s:5:"title";s:18:"Pricing, 2 columns";s:4:"slug";s:30:"twentytwentyfive/pricing-2-col";s:11:"description";s:88:"Pricing section with two columns, pricing plan, description, and call-to-action buttons.";s:13:"viewportWidth";i:1400;s:10:"categories";a:1:{i:0;s:14:"call-to-action";}}s:17:"pricing-3-col.php";a:4:{s:5:"title";s:18:"Pricing, 3 columns";s:4:"slug";s:30:"twentytwentyfive/pricing-3-col";s:11:"description";s:100:"A three-column boxed pricing table designed to showcase services, descriptions, and pricing options.";s:10:"categories";a:3:{i:0;s:14:"call-to-action";i:1;s:6:"banner";i:2;s:8:"services";}}s:18:"services-3-col.php";a:4:{s:5:"title";s:19:"Services, 3 columns";s:4:"slug";s:31:"twentytwentyfive/services-3-col";s:11:"description";s:56:"Three columns with images and text to showcase services.";s:10:"categories";a:3:{i:0;s:14:"call-to-action";i:1;s:6:"banner";i:2;s:8:"services";}}s:36:"services-subscriber-only-section.php";a:4:{s:5:"title";s:33:"Services, subscriber only section";s:4:"slug";s:49:"twentytwentyfive/services-subscriber-only-section";s:11:"description";s:72:"A subscriber-only section highlighting exclusive services and offerings.";s:10:"categories";a:2:{i:0;s:14:"call-to-action";i:1;s:8:"services";}}s:24:"services-team-photos.php";a:4:{s:5:"title";s:21:"Services, team photos";s:4:"slug";s:37:"twentytwentyfive/services-team-photos";s:11:"description";s:59:"Display team photos in a services section with grid layout.";s:10:"categories";a:3:{i:0;s:6:"banner";i:1;s:14:"call-to-action";i:2;s:8:"featured";}}s:37:"template-404-vertical-header-blog.php";a:5:{s:5:"title";s:17:"Right-aligned 404";s:4:"slug";s:50:"twentytwentyfive/template-404-vertical-header-blog";s:11:"description";s:0:"";s:13:"viewportWidth";i:1400;s:13:"templateTypes";a:1:{i:0;s:3:"404";}}s:30:"template-archive-news-blog.php";a:6:{s:5:"title";s:17:"News blog archive";s:4:"slug";s:43:"twentytwentyfive/template-archive-news-blog";s:11:"description";s:0:"";s:13:"viewportWidth";i:1400;s:8:"inserter";b:0;s:13:"templateTypes";a:1:{i:0;s:7:"archive";}}s:31:"template-archive-photo-blog.php";a:6:{s:5:"title";s:18:"Photo blog archive";s:4:"slug";s:44:"twentytwentyfive/template-archive-photo-blog";s:11:"description";s:0:"";s:13:"viewportWidth";i:1400;s:8:"inserter";b:0;s:13:"templateTypes";a:1:{i:0;s:7:"archive";}}s:30:"template-archive-text-blog.php";a:6:{s:5:"title";s:17:"Text blog archive";s:4:"slug";s:43:"twentytwentyfive/template-archive-text-blog";s:11:"description";s:0:"";s:13:"viewportWidth";i:1400;s:8:"inserter";b:0;s:13:"templateTypes";a:1:{i:0;s:7:"archive";}}s:41:"template-archive-vertical-header-blog.php";a:6:{s:5:"title";s:21:"Right-aligned archive";s:4:"slug";s:54:"twentytwentyfive/template-archive-vertical-header-blog";s:11:"description";s:0:"";s:13:"viewportWidth";i:1400;s:8:"inserter";b:0;s:13:"templateTypes";a:1:{i:0;s:7:"archive";}}s:27:"template-home-news-blog.php";a:6:{s:5:"title";s:14:"News blog home";s:4:"slug";s:40:"twentytwentyfive/template-home-news-blog";s:11:"description";s:0:"";s:13:"viewportWidth";i:1400;s:8:"inserter";b:0;s:13:"templateTypes";a:3:{i:0;s:10:"front-page";i:1;s:5:"index";i:2;s:4:"home";}}s:28:"template-home-photo-blog.php";a:6:{s:5:"title";s:15:"Photo blog home";s:4:"slug";s:41:"twentytwentyfive/template-home-photo-blog";s:11:"description";s:0:"";s:13:"viewportWidth";i:1400;s:8:"inserter";b:0;s:13:"templateTypes";a:3:{i:0;s:10:"front-page";i:1;s:5:"index";i:2;s:4:"home";}}s:38:"template-home-posts-grid-news-blog.php";a:5:{s:5:"title";s:34:"News blog with featured posts grid";s:4:"slug";s:51:"twentytwentyfive/template-home-posts-grid-news-blog";s:11:"description";s:0:"";s:8:"inserter";b:0;s:13:"templateTypes";a:3:{i:0;s:10:"front-page";i:1;s:5:"index";i:2;s:4:"home";}}s:27:"template-home-text-blog.php";a:6:{s:5:"title";s:14:"Text blog home";s:4:"slug";s:40:"twentytwentyfive/template-home-text-blog";s:11:"description";s:0:"";s:13:"viewportWidth";i:1400;s:8:"inserter";b:0;s:13:"templateTypes";a:2:{i:0;s:10:"front-page";i:1;s:4:"home";}}s:38:"template-home-vertical-header-blog.php";a:6:{s:5:"title";s:18:"Right-aligned home";s:4:"slug";s:51:"twentytwentyfive/template-home-vertical-header-blog";s:11:"description";s:0:"";s:13:"viewportWidth";i:1400;s:8:"inserter";b:0;s:13:"templateTypes";a:3:{i:0;s:10:"front-page";i:1;s:5:"index";i:2;s:4:"home";}}s:40:"template-home-with-sidebar-news-blog.php";a:6:{s:5:"title";s:22:"News blog with sidebar";s:4:"slug";s:53:"twentytwentyfive/template-home-with-sidebar-news-blog";s:11:"description";s:0:"";s:13:"viewportWidth";i:1400;s:8:"inserter";b:0;s:13:"templateTypes";a:3:{i:0;s:10:"front-page";i:1;s:5:"index";i:2;s:4:"home";}}s:28:"template-page-photo-blog.php";a:5:{s:5:"title";s:15:"Photo blog page";s:4:"slug";s:41:"twentytwentyfive/template-page-photo-blog";s:11:"description";s:0:"";s:13:"viewportWidth";i:1400;s:13:"templateTypes";a:1:{i:0;s:4:"page";}}s:38:"template-page-vertical-header-blog.php";a:5:{s:5:"title";s:18:"Right-aligned page";s:4:"slug";s:51:"twentytwentyfive/template-page-vertical-header-blog";s:11:"description";s:0:"";s:13:"viewportWidth";i:1400;s:13:"templateTypes";a:1:{i:0;s:4:"page";}}s:33:"template-query-loop-news-blog.php";a:4:{s:5:"title";s:20:"News blog query loop";s:4:"slug";s:46:"twentytwentyfive/template-query-loop-news-blog";s:11:"description";s:0:"";s:8:"inserter";b:0;}s:34:"template-query-loop-photo-blog.php";a:6:{s:5:"title";s:16:"Photo blog posts";s:4:"slug";s:47:"twentytwentyfive/template-query-loop-photo-blog";s:11:"description";s:54:"A list of posts, 3 columns, with only featured images.";s:13:"viewportWidth";i:1400;s:10:"categories";a:1:{i:0;s:5:"query";}s:10:"blockTypes";a:1:{i:0;s:10:"core/query";}}s:33:"template-query-loop-text-blog.php";a:4:{s:5:"title";s:20:"Text blog query loop";s:4:"slug";s:46:"twentytwentyfive/template-query-loop-text-blog";s:11:"description";s:0:"";s:8:"inserter";b:0;}s:44:"template-query-loop-vertical-header-blog.php";a:4:{s:5:"title";s:24:"Right-aligned query loop";s:4:"slug";s:57:"twentytwentyfive/template-query-loop-vertical-header-blog";s:11:"description";s:0:"";s:8:"inserter";b:0;}s:23:"template-query-loop.php";a:5:{s:5:"title";s:23:"List of posts, 1 column";s:4:"slug";s:36:"twentytwentyfive/template-query-loop";s:11:"description";s:61:"A list of posts, 1 column, with featured image and post date.";s:10:"categories";a:1:{i:0;s:5:"query";}s:10:"blockTypes";a:1:{i:0;s:10:"core/query";}}s:29:"template-search-news-blog.php";a:6:{s:5:"title";s:24:"News blog search results";s:4:"slug";s:42:"twentytwentyfive/template-search-news-blog";s:11:"description";s:0:"";s:13:"viewportWidth";i:1400;s:8:"inserter";b:0;s:13:"templateTypes";a:1:{i:0;s:6:"search";}}s:30:"template-search-photo-blog.php";a:6:{s:5:"title";s:25:"Photo blog search results";s:4:"slug";s:43:"twentytwentyfive/template-search-photo-blog";s:11:"description";s:0:"";s:13:"viewportWidth";i:1400;s:8:"inserter";b:0;s:13:"templateTypes";a:1:{i:0;s:6:"search";}}s:29:"template-search-text-blog.php";a:6:{s:5:"title";s:24:"Text blog search results";s:4:"slug";s:42:"twentytwentyfive/template-search-text-blog";s:11:"description";s:0:"";s:13:"viewportWidth";i:1400;s:8:"inserter";b:0;s:13:"templateTypes";a:1:{i:0;s:6:"search";}}s:40:"template-search-vertical-header-blog.php";a:6:{s:5:"title";s:26:"Right-aligned blog, search";s:4:"slug";s:53:"twentytwentyfive/template-search-vertical-header-blog";s:11:"description";s:0:"";s:13:"viewportWidth";i:1400;s:8:"inserter";b:0;s:13:"templateTypes";a:1:{i:0;s:6:"search";}}s:40:"template-single-left-aligned-content.php";a:6:{s:5:"title";s:30:"Post with left-aligned content";s:4:"slug";s:47:"twentytwentyfive/post-with-left-aligned-content";s:11:"description";s:0:"";s:13:"viewportWidth";i:1400;s:8:"inserter";b:0;s:13:"templateTypes";a:2:{i:0;s:5:"posts";i:1;s:6:"single";}}s:29:"template-single-news-blog.php";a:6:{s:5:"title";s:34:"News blog single post with sidebar";s:4:"slug";s:42:"twentytwentyfive/template-single-news-blog";s:11:"description";s:0:"";s:13:"viewportWidth";i:1400;s:8:"inserter";b:0;s:13:"templateTypes";a:2:{i:0;s:5:"posts";i:1;s:6:"single";}}s:26:"template-single-offset.php";a:6:{s:5:"title";s:34:"Offset post without featured image";s:4:"slug";s:39:"twentytwentyfive/template-single-offset";s:11:"description";s:0:"";s:13:"viewportWidth";i:1400;s:8:"inserter";b:0;s:13:"templateTypes";a:2:{i:0;s:5:"posts";i:1;s:6:"single";}}s:30:"template-single-photo-blog.php";a:6:{s:5:"title";s:22:"Photo blog single post";s:4:"slug";s:43:"twentytwentyfive/template-single-photo-blog";s:11:"description";s:0:"";s:13:"viewportWidth";i:1400;s:8:"inserter";b:0;s:13:"templateTypes";a:2:{i:0;s:5:"posts";i:1;s:6:"single";}}s:29:"template-single-text-blog.php";a:6:{s:5:"title";s:21:"Text blog single post";s:4:"slug";s:42:"twentytwentyfive/template-single-text-blog";s:11:"description";s:0:"";s:13:"viewportWidth";i:1400;s:8:"inserter";b:0;s:13:"templateTypes";a:2:{i:0;s:5:"posts";i:1;s:6:"single";}}s:40:"template-single-vertical-header-blog.php";a:6:{s:5:"title";s:25:"Right-aligned single post";s:4:"slug";s:53:"twentytwentyfive/template-single-vertical-header-blog";s:11:"description";s:0:"";s:13:"viewportWidth";i:1400;s:8:"inserter";b:0;s:13:"templateTypes";a:2:{i:0;s:5:"posts";i:1;s:6:"single";}}s:22:"testimonials-2-col.php";a:5:{s:5:"title";s:21:"2 columns with avatar";s:4:"slug";s:35:"twentytwentyfive/testimonials-2-col";s:11:"description";s:42:"Two columns with testimonials and avatars.";s:10:"categories";a:1:{i:0;s:12:"testimonials";}s:8:"keywords";a:1:{i:0;s:11:"testimonial";}}s:22:"testimonials-6-col.php";a:5:{s:5:"title";s:35:"3 column layout with 6 testimonials";s:4:"slug";s:35:"twentytwentyfive/testimonials-6-col";s:11:"description";s:86:"A section with three columns and two rows, each containing a testimonial and citation.";s:10:"categories";a:1:{i:0;s:12:"testimonials";}s:8:"keywords";a:1:{i:0;s:11:"testimonial";}}s:22:"testimonials-large.php";a:5:{s:5:"title";s:32:"Review with large image on right";s:4:"slug";s:35:"twentytwentyfive/testimonials-large";s:11:"description";s:46:"A testimonial with a large image on the right.";s:10:"categories";a:1:{i:0;s:12:"testimonials";}s:8:"keywords";a:1:{i:0;s:11:"testimonial";}}s:13:"text-faqs.php";a:6:{s:5:"title";s:4:"FAQs";s:4:"slug";s:26:"twentytwentyfive/text-faqs";s:11:"description";s:68:"A FAQs section with a FAQ heading and list of questions and answers.";s:13:"viewportWidth";i:1400;s:10:"categories";a:2:{i:0;s:4:"text";i:1;s:5:"about";}s:8:"keywords";a:5:{i:0;s:3:"faq";i:1;s:5:"about";i:2;s:10:"frequently";i:3;s:5:"asked";i:4;s:9:"questions";}}s:19:"vertical-header.php";a:6:{s:5:"title";s:20:"Vertical site header";s:4:"slug";s:32:"twentytwentyfive/vertical-header";s:11:"description";s:52:"Vertical site header with site title and navigation.";s:13:"viewportWidth";i:300;s:10:"categories";a:1:{i:0;s:6:"header";}s:10:"blockTypes";a:1:{i:0;s:34:"core/template-part/vertical-header";}}}}', 'off'), - (178, 'WPLANG', 'fr_FR', 'auto'), - (179, 'new_admin_email', 'gilles.mouchet@gmail.com', 'auto'); - --- Listage de la structure de table wordpress. wp_postmeta -DROP TABLE IF EXISTS `wp_postmeta`; -CREATE TABLE IF NOT EXISTS `wp_postmeta` ( - `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, - `post_id` bigint(20) unsigned NOT NULL DEFAULT 0, - `meta_key` varchar(255) DEFAULT NULL, - `meta_value` longtext DEFAULT NULL, - PRIMARY KEY (`meta_id`), - KEY `post_id` (`post_id`), - KEY `meta_key` (`meta_key`(191)) -) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; - --- Listage des données de la table wordpress.wp_postmeta : ~3 rows (environ) -INSERT INTO `wp_postmeta` (`meta_id`, `post_id`, `meta_key`, `meta_value`) VALUES - (1, 2, '_wp_page_template', 'default'), - (2, 3, '_wp_page_template', 'default'), - (3, 5, '_edit_lock', '1768026417:1'); - --- Listage de la structure de table wordpress. wp_posts -DROP TABLE IF EXISTS `wp_posts`; -CREATE TABLE IF NOT EXISTS `wp_posts` ( - `ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, - `post_author` bigint(20) unsigned NOT NULL DEFAULT 0, - `post_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `post_date_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `post_content` longtext NOT NULL, - `post_title` text NOT NULL, - `post_excerpt` text NOT NULL, - `post_status` varchar(20) NOT NULL DEFAULT 'publish', - `comment_status` varchar(20) NOT NULL DEFAULT 'open', - `ping_status` varchar(20) NOT NULL DEFAULT 'open', - `post_password` varchar(255) NOT NULL DEFAULT '', - `post_name` varchar(200) NOT NULL DEFAULT '', - `to_ping` text NOT NULL, - `pinged` text NOT NULL, - `post_modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `post_modified_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `post_content_filtered` longtext NOT NULL, - `post_parent` bigint(20) unsigned NOT NULL DEFAULT 0, - `guid` varchar(255) NOT NULL DEFAULT '', - `menu_order` int(11) NOT NULL DEFAULT 0, - `post_type` varchar(20) NOT NULL DEFAULT 'post', - `post_mime_type` varchar(100) NOT NULL DEFAULT '', - `comment_count` bigint(20) NOT NULL DEFAULT 0, - PRIMARY KEY (`ID`), - KEY `post_name` (`post_name`(191)), - KEY `type_status_date` (`post_type`,`post_status`,`post_date`,`ID`), - KEY `post_parent` (`post_parent`), - KEY `post_author` (`post_author`), - KEY `type_status_author` (`post_type`,`post_status`,`post_author`) -) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; - --- Listage des données de la table wordpress.wp_posts : ~5 rows (environ) -INSERT INTO `wp_posts` (`ID`, `post_author`, `post_date`, `post_date_gmt`, `post_content`, `post_title`, `post_excerpt`, `post_status`, `comment_status`, `ping_status`, `post_password`, `post_name`, `to_ping`, `pinged`, `post_modified`, `post_modified_gmt`, `post_content_filtered`, `post_parent`, `guid`, `menu_order`, `post_type`, `post_mime_type`, `comment_count`) VALUES - (1, 1, '2026-01-10 06:24:23', '2026-01-10 06:24:23', '\n

Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

\n', 'Hello world!', '', 'publish', 'open', 'open', '', 'hello-world', '', '', '2026-01-10 06:24:23', '2026-01-10 06:24:23', '', 0, 'https://wp-dev.gmolab.net/?p=1', 0, 'post', '', 1), - (2, 1, '2026-01-10 06:24:23', '2026-01-10 06:24:23', '\n

This 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

Hi 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.)

\n\n
\n\n\n\n

...or something like this:

\n\n\n\n
\n\n

The 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.

\n\n
\n\n\n\n

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', '', '', '2026-01-10 06:24:23', '2026-01-10 06:24:23', '', 0, 'https://wp-dev.gmolab.net/?page_id=2', 0, 'page', '', 0), - (3, 1, '2026-01-10 06:24:23', '2026-01-10 06:24:23', '\n

Who we are

\n\n\n

Suggested text: Our website address is: https://wp-dev.gmolab.net.

\n\n\n

Comments

\n\n\n

Suggested 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\n

An 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\n

Media

\n\n\n

Suggested 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\n

Cookies

\n\n\n

Suggested 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\n

If 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\n

When 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\n

If 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\n

Embedded content from other websites

\n\n\n

Suggested 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\n

These 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\n

Who we share your data with

\n\n\n

Suggested text: If you request a password reset, your IP address will be included in the reset email.

\n\n\n

How long we retain your data

\n\n\n

Suggested 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\n

For 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\n

What rights you have over your data

\n\n\n

Suggested 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\n

Where your data is sent

\n\n\n

Suggested text: Visitor comments may be checked through an automated spam detection service.

\n\n', 'Privacy Policy', '', 'draft', 'closed', 'open', '', 'privacy-policy', '', '', '2026-01-10 06:24:23', '2026-01-10 06:24:23', '', 0, 'https://wp-dev.gmolab.net/?page_id=3', 0, 'page', '', 0), - (4, 0, '2026-01-10 06:24:42', '2026-01-10 06:24:42', '', 'Navigation', '', 'publish', 'closed', 'closed', '', 'navigation', '', '', '2026-01-10 06:24:42', '2026-01-10 06:24:42', '', 0, 'https://wp-dev.gmolab.net/?p=4', 0, 'wp_navigation', '', 0), - (5, 1, '2026-01-10 06:25:21', '0000-00-00 00:00:00', '', 'Auto Draft', '', 'auto-draft', 'open', 'open', '', '', '', '', '2026-01-10 06:25:21', '0000-00-00 00:00:00', '', 0, 'https://wp-dev.gmolab.net/?p=5', 0, 'post', '', 0); - --- Listage de la structure de table wordpress. wp_termmeta -DROP TABLE IF EXISTS `wp_termmeta`; -CREATE TABLE IF NOT EXISTS `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; - --- Listage des données de la table wordpress.wp_termmeta : ~0 rows (environ) - --- Listage de la structure de table wordpress. wp_terms -DROP TABLE IF EXISTS `wp_terms`; -CREATE TABLE IF NOT EXISTS `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=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; - --- Listage des données de la table wordpress.wp_terms : ~1 rows (environ) -INSERT INTO `wp_terms` (`term_id`, `name`, `slug`, `term_group`) VALUES - (1, 'Uncategorized', 'uncategorized', 0); - --- Listage de la structure de table wordpress. wp_term_relationships -DROP TABLE IF EXISTS `wp_term_relationships`; -CREATE TABLE IF NOT EXISTS `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; - --- Listage des données de la table wordpress.wp_term_relationships : ~1 rows (environ) -INSERT INTO `wp_term_relationships` (`object_id`, `term_taxonomy_id`, `term_order`) VALUES - (1, 1, 0); - --- Listage de la structure de table wordpress. wp_term_taxonomy -DROP TABLE IF EXISTS `wp_term_taxonomy`; -CREATE TABLE IF NOT EXISTS `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=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; - --- Listage des données de la table wordpress.wp_term_taxonomy : ~1 rows (environ) -INSERT INTO `wp_term_taxonomy` (`term_taxonomy_id`, `term_id`, `taxonomy`, `description`, `parent`, `count`) VALUES - (1, 1, 'category', '', 0, 1); - --- Listage de la structure de table wordpress. wp_usermeta -DROP TABLE IF EXISTS `wp_usermeta`; -CREATE TABLE IF NOT EXISTS `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=21 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; - --- Listage des données de la table wordpress.wp_usermeta : ~20 rows (environ) -INSERT INTO `wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) 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:3:{s:64:"9d62cd1d5b719fdc35dd20c38581fb65b7eff288e77ae561f31ee477644eb1bd";a:4:{s:10:"expiration";i:1768199117;s:2:"ip";s:11:"172.31.10.1";s:2:"ua";s:117:"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15";s:5:"login";i:1768026317;}s:64:"6ac74e1b61145067166a37be3783c6e0fdb3f2dcd29fb5c0122919b0b3723b57";a:4:{s:10:"expiration";i:1768199120;s:2:"ip";s:11:"172.31.10.1";s:2:"ua";s:117:"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15";s:5:"login";i:1768026320;}s:64:"dbe31d121f671daf7a775ab311ef9ef63948dcb0e8e3fa54d1e912bd4329169f";a:4:{s:10:"expiration";i:1768202678;s:2:"ip";s:11:"172.31.10.1";s:2:"ua";s:117:"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15";s:5:"login";i:1768029878;}}'), - (17, 1, 'wp_dashboard_quick_press_last_post_id', '5'), - (18, 1, 'community-events-location', 'a:1:{s:2:"ip";s:11:"172.31.10.0";}'), - (19, 1, 'wp_user-settings', 'libraryContent=browse'), - (20, 1, 'wp_user-settings-time', '1768029873'); - --- Listage de la structure de table wordpress. wp_users -DROP TABLE IF EXISTS `wp_users`; -CREATE TABLE IF NOT EXISTS `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; - --- Listage des données de la table wordpress.wp_users : ~1 rows (environ) -INSERT INTO `wp_users` (`ID`, `user_login`, `user_pass`, `user_nicename`, `user_email`, `user_url`, `user_registered`, `user_activation_key`, `user_status`, `display_name`) VALUES - (1, 'admin', '$wp$2y$10$sahwq.X2HcopL7xJ46ivEuQLm8Wqyet7ZzXu2NjFDthNk8UCxMT1a', 'admin', 'gilles.mouchet@gmail.com', 'https://wp-dev.gmolab.net', '2026-01-10 06:24:23', '', 0, 'admin'); - -/*!40103 SET TIME_ZONE=IFNULL(@OLD_TIME_ZONE, 'system') */; -/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */; -/*!40014 SET FOREIGN_KEY_CHECKS=IFNULL(@OLD_FOREIGN_KEY_CHECKS, 1) */; -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; -/*!40111 SET SQL_NOTES=IFNULL(@OLD_SQL_NOTES, 1) */; diff --git a/dump-db/vdglab-db/wp-dev.sql b/dump-db/vdglab-db/wp-dev.sql deleted file mode 100644 index db3213d..0000000 --- a/dump-db/vdglab-db/wp-dev.sql +++ /dev/null @@ -1,412 +0,0 @@ -/*M!999999\- enable the sandbox mode */ --- MariaDB dump 10.19 Distrib 10.5.27-MariaDB, for Linux (x86_64) --- --- Host: gmodocker01t Database: wordpress --- ------------------------------------------------------ --- Server version 8.0.45 - -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; -/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!40101 SET NAMES utf8mb4 */; -/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; -/*!40103 SET TIME_ZONE='+00:00' */; -/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; -/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; -/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; -/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; - --- --- Table structure for table `wp_commentmeta` --- - -DROP TABLE IF EXISTS `wp_commentmeta`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `wp_commentmeta` ( - `meta_id` bigint unsigned NOT NULL AUTO_INCREMENT, - `comment_id` bigint unsigned NOT NULL DEFAULT '0', - `meta_key` varchar(255) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL, - `meta_value` longtext COLLATE utf8mb4_unicode_520_ci, - PRIMARY KEY (`meta_id`), - KEY `comment_id` (`comment_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_commentmeta` --- - -LOCK TABLES `wp_commentmeta` WRITE; -/*!40000 ALTER TABLE `wp_commentmeta` DISABLE KEYS */; -/*!40000 ALTER TABLE `wp_commentmeta` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `wp_comments` --- - -DROP TABLE IF EXISTS `wp_comments`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `wp_comments` ( - `comment_ID` bigint unsigned NOT NULL AUTO_INCREMENT, - `comment_post_ID` bigint unsigned NOT NULL DEFAULT '0', - `comment_author` tinytext COLLATE utf8mb4_unicode_520_ci NOT NULL, - `comment_author_email` varchar(100) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', - `comment_author_url` varchar(200) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', - `comment_author_IP` varchar(100) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', - `comment_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `comment_date_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `comment_content` text COLLATE utf8mb4_unicode_520_ci NOT NULL, - `comment_karma` int NOT NULL DEFAULT '0', - `comment_approved` varchar(20) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '1', - `comment_agent` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', - `comment_type` varchar(20) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT 'comment', - `comment_parent` bigint unsigned NOT NULL DEFAULT '0', - `user_id` bigint unsigned NOT NULL DEFAULT '0', - PRIMARY KEY (`comment_ID`), - KEY `comment_post_ID` (`comment_post_ID`), - KEY `comment_approved_date_gmt` (`comment_approved`,`comment_date_gmt`), - KEY `comment_date_gmt` (`comment_date_gmt`), - KEY `comment_parent` (`comment_parent`), - KEY `comment_author_email` (`comment_author_email`(10)) -) 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_comments` --- - -LOCK TABLES `wp_comments` WRITE; -/*!40000 ALTER TABLE `wp_comments` DISABLE KEYS */; -INSERT INTO `wp_comments` VALUES (1,1,'A WordPress Commenter','wapuu@wordpress.example','https://wordpress.org/','','2026-02-02 13:05:02','2026-02-02 13:05:02','Hi, this is a comment.\nTo get started with moderating, editing, and deleting comments, please visit the Comments screen in the dashboard.\nCommenter avatars come from Gravatar.',0,'1','','comment',0,0); -/*!40000 ALTER TABLE `wp_comments` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `wp_links` --- - -DROP TABLE IF EXISTS `wp_links`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `wp_links` ( - `link_id` bigint unsigned NOT NULL AUTO_INCREMENT, - `link_url` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', - `link_name` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', - `link_image` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', - `link_target` varchar(25) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', - `link_description` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', - `link_visible` varchar(20) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT 'Y', - `link_owner` bigint unsigned NOT NULL DEFAULT '1', - `link_rating` int NOT NULL DEFAULT '0', - `link_updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `link_rel` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', - `link_notes` mediumtext COLLATE utf8mb4_unicode_520_ci NOT NULL, - `link_rss` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', - PRIMARY KEY (`link_id`), - KEY `link_visible` (`link_visible`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `wp_links` --- - -LOCK TABLES `wp_links` WRITE; -/*!40000 ALTER TABLE `wp_links` DISABLE KEYS */; -/*!40000 ALTER TABLE `wp_links` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `wp_options` --- - -DROP TABLE IF EXISTS `wp_options`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `wp_options` ( - `option_id` bigint unsigned NOT NULL AUTO_INCREMENT, - `option_name` varchar(191) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', - `option_value` longtext COLLATE utf8mb4_unicode_520_ci NOT NULL, - `autoload` varchar(20) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT 'yes', - PRIMARY KEY (`option_id`), - UNIQUE KEY `option_name` (`option_name`), - KEY `autoload` (`autoload`) -) ENGINE=InnoDB AUTO_INCREMENT=155 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `wp_options` --- - -LOCK TABLES `wp_options` WRITE; -/*!40000 ALTER TABLE `wp_options` DISABLE KEYS */; -INSERT INTO `wp_options` VALUES (1,'cron','a:11:{i:1770037577;a:1:{s:28:\"wp_update_comment_type_batch\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:2:{s:8:\"schedule\";b:0;s:4:\"args\";a:0:{}}}}i:1770041102;a:1:{s:16:\"wp_version_check\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}}i:1770041104;a:1:{s:34:\"wp_privacy_delete_old_export_files\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"hourly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:3600;}}}i:1770042902;a:1:{s:17:\"wp_update_plugins\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}}i:1770044702;a:1:{s:16:\"wp_update_themes\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}}i:1770080717;a:1:{s:21:\"wp_update_user_counts\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}}i:1770123904;a:2:{s:30:\"wp_site_health_scheduled_check\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"weekly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:604800;}}s:32:\"recovery_mode_clean_expired_keys\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1770123917;a:2:{s:19:\"wp_scheduled_delete\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}s:25:\"delete_expired_transients\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1770123919;a:1:{s:30:\"wp_scheduled_auto_draft_delete\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1770642359;a:1:{s:30:\"wp_delete_temp_updater_backups\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"weekly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:604800;}}}s:7:\"version\";i:2;}','on'),(2,'siteurl','https://wp.vdglab.net','on'),(3,'home','https://wp.vdglab.net','on'),(4,'blogname','VdG Lab','on'),(5,'blogdescription','','on'),(6,'users_can_register','0','on'),(7,'admin_email','gmo@geneve.ch','on'),(8,'start_of_week','1','on'),(9,'use_balanceTags','0','on'),(10,'use_smilies','1','on'),(11,'require_name_email','1','on'),(12,'comments_notify','1','on'),(13,'posts_per_rss','10','on'),(14,'rss_use_excerpt','0','on'),(15,'mailserver_url','mail.example.com','on'),(16,'mailserver_login','login@example.com','on'),(17,'mailserver_pass','','on'),(18,'mailserver_port','110','on'),(19,'default_category','1','on'),(20,'default_comment_status','open','on'),(21,'default_ping_status','open','on'),(22,'default_pingback_flag','1','on'),(23,'posts_per_page','10','on'),(24,'date_format','F j, Y','on'),(25,'time_format','g:i a','on'),(26,'links_updated_date_format','F j, Y g:i a','on'),(27,'comment_moderation','0','on'),(28,'moderation_notify','1','on'),(29,'permalink_structure','','on'),(30,'rewrite_rules','','on'),(31,'hack_file','0','on'),(32,'blog_charset','UTF-8','on'),(33,'moderation_keys','','off'),(34,'active_plugins','a:0:{}','on'),(35,'category_base','','on'),(36,'ping_sites','https://rpc.pingomatic.com/','on'),(37,'comment_max_links','2','on'),(38,'gmt_offset','0','on'),(39,'default_email_category','1','on'),(40,'recently_edited','','off'),(41,'template','twentytwentyfive','on'),(42,'stylesheet','twentytwentyfive','on'),(43,'comment_registration','0','on'),(44,'html_type','text/html','on'),(45,'use_trackback','0','on'),(46,'default_role','subscriber','on'),(47,'db_version','60717','on'),(48,'uploads_use_yearmonth_folders','1','on'),(49,'upload_path','','on'),(50,'blog_public','1','on'),(51,'default_link_category','2','on'),(52,'show_on_front','posts','on'),(53,'tag_base','','on'),(54,'show_avatars','1','on'),(55,'avatar_rating','G','on'),(56,'upload_url_path','','on'),(57,'thumbnail_size_w','150','on'),(58,'thumbnail_size_h','150','on'),(59,'thumbnail_crop','1','on'),(60,'medium_size_w','300','on'),(61,'medium_size_h','300','on'),(62,'avatar_default','mystery','on'),(63,'large_size_w','1024','on'),(64,'large_size_h','1024','on'),(65,'image_default_link_type','none','on'),(66,'image_default_size','','on'),(67,'image_default_align','','on'),(68,'close_comments_for_old_posts','0','on'),(69,'close_comments_days_old','14','on'),(70,'thread_comments','1','on'),(71,'thread_comments_depth','5','on'),(72,'page_comments','0','on'),(73,'comments_per_page','50','on'),(74,'default_comments_page','newest','on'),(75,'comment_order','asc','on'),(76,'sticky_posts','a:0:{}','on'),(77,'widget_categories','a:0:{}','on'),(78,'widget_text','a:0:{}','on'),(79,'widget_rss','a:0:{}','on'),(80,'uninstall_plugins','a:0:{}','off'),(81,'timezone_string','','on'),(82,'page_for_posts','0','on'),(83,'page_on_front','0','on'),(84,'default_post_format','0','on'),(85,'link_manager_enabled','0','on'),(86,'finished_splitting_shared_terms','1','on'),(87,'site_icon','0','on'),(88,'medium_large_size_w','768','on'),(89,'medium_large_size_h','0','on'),(90,'wp_page_for_privacy_policy','3','on'),(91,'show_comments_cookies_opt_in','1','on'),(92,'admin_email_lifespan','1785589502','on'),(93,'disallowed_keys','','off'),(94,'comment_previously_approved','1','on'),(95,'auto_plugin_theme_update_emails','a:0:{}','off'),(96,'auto_update_core_dev','enabled','on'),(97,'auto_update_core_minor','enabled','on'),(98,'auto_update_core_major','enabled','on'),(99,'wp_force_deactivated_plugins','a:0:{}','on'),(100,'wp_attachment_pages_enabled','0','on'),(101,'wp_notes_notify','1','on'),(102,'initial_db_version','60717','on'),(103,'wp_user_roles','a:5:{s:13:\"administrator\";a:2:{s:4:\"name\";s:13:\"Administrator\";s:12:\"capabilities\";a:61:{s:13:\"switch_themes\";b:1;s:11:\"edit_themes\";b:1;s:16:\"activate_plugins\";b:1;s:12:\"edit_plugins\";b:1;s:10:\"edit_users\";b:1;s:10:\"edit_files\";b:1;s:14:\"manage_options\";b:1;s:17:\"moderate_comments\";b:1;s:17:\"manage_categories\";b:1;s:12:\"manage_links\";b:1;s:12:\"upload_files\";b:1;s:6:\"import\";b:1;s:15:\"unfiltered_html\";b:1;s:10:\"edit_posts\";b:1;s:17:\"edit_others_posts\";b:1;s:20:\"edit_published_posts\";b:1;s:13:\"publish_posts\";b:1;s:10:\"edit_pages\";b:1;s:4:\"read\";b:1;s:8:\"level_10\";b:1;s:7:\"level_9\";b:1;s:7:\"level_8\";b:1;s:7:\"level_7\";b:1;s:7:\"level_6\";b:1;s:7:\"level_5\";b:1;s:7:\"level_4\";b:1;s:7:\"level_3\";b:1;s:7:\"level_2\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:17:\"edit_others_pages\";b:1;s:20:\"edit_published_pages\";b:1;s:13:\"publish_pages\";b:1;s:12:\"delete_pages\";b:1;s:19:\"delete_others_pages\";b:1;s:22:\"delete_published_pages\";b:1;s:12:\"delete_posts\";b:1;s:19:\"delete_others_posts\";b:1;s:22:\"delete_published_posts\";b:1;s:20:\"delete_private_posts\";b:1;s:18:\"edit_private_posts\";b:1;s:18:\"read_private_posts\";b:1;s:20:\"delete_private_pages\";b:1;s:18:\"edit_private_pages\";b:1;s:18:\"read_private_pages\";b:1;s:12:\"delete_users\";b:1;s:12:\"create_users\";b:1;s:17:\"unfiltered_upload\";b:1;s:14:\"edit_dashboard\";b:1;s:14:\"update_plugins\";b:1;s:14:\"delete_plugins\";b:1;s:15:\"install_plugins\";b:1;s:13:\"update_themes\";b:1;s:14:\"install_themes\";b:1;s:11:\"update_core\";b:1;s:10:\"list_users\";b:1;s:12:\"remove_users\";b:1;s:13:\"promote_users\";b:1;s:18:\"edit_theme_options\";b:1;s:13:\"delete_themes\";b:1;s:6:\"export\";b:1;}}s:6:\"editor\";a:2:{s:4:\"name\";s:6:\"Editor\";s:12:\"capabilities\";a:34:{s:17:\"moderate_comments\";b:1;s:17:\"manage_categories\";b:1;s:12:\"manage_links\";b:1;s:12:\"upload_files\";b:1;s:15:\"unfiltered_html\";b:1;s:10:\"edit_posts\";b:1;s:17:\"edit_others_posts\";b:1;s:20:\"edit_published_posts\";b:1;s:13:\"publish_posts\";b:1;s:10:\"edit_pages\";b:1;s:4:\"read\";b:1;s:7:\"level_7\";b:1;s:7:\"level_6\";b:1;s:7:\"level_5\";b:1;s:7:\"level_4\";b:1;s:7:\"level_3\";b:1;s:7:\"level_2\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:17:\"edit_others_pages\";b:1;s:20:\"edit_published_pages\";b:1;s:13:\"publish_pages\";b:1;s:12:\"delete_pages\";b:1;s:19:\"delete_others_pages\";b:1;s:22:\"delete_published_pages\";b:1;s:12:\"delete_posts\";b:1;s:19:\"delete_others_posts\";b:1;s:22:\"delete_published_posts\";b:1;s:20:\"delete_private_posts\";b:1;s:18:\"edit_private_posts\";b:1;s:18:\"read_private_posts\";b:1;s:20:\"delete_private_pages\";b:1;s:18:\"edit_private_pages\";b:1;s:18:\"read_private_pages\";b:1;}}s:6:\"author\";a:2:{s:4:\"name\";s:6:\"Author\";s:12:\"capabilities\";a:10:{s:12:\"upload_files\";b:1;s:10:\"edit_posts\";b:1;s:20:\"edit_published_posts\";b:1;s:13:\"publish_posts\";b:1;s:4:\"read\";b:1;s:7:\"level_2\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:12:\"delete_posts\";b:1;s:22:\"delete_published_posts\";b:1;}}s:11:\"contributor\";a:2:{s:4:\"name\";s:11:\"Contributor\";s:12:\"capabilities\";a:5:{s:10:\"edit_posts\";b:1;s:4:\"read\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:12:\"delete_posts\";b:1;}}s:10:\"subscriber\";a:2:{s:4:\"name\";s:10:\"Subscriber\";s:12:\"capabilities\";a:2:{s:4:\"read\";b:1;s:7:\"level_0\";b:1;}}}','on'),(104,'fresh_site','1','off'),(105,'user_count','1','off'),(106,'widget_block','a:6:{i:2;a:1:{s:7:\"content\";s:19:\"\";}i:3;a:1:{s:7:\"content\";s:154:\"

Recent Posts

\";}i:4;a:1:{s:7:\"content\";s:227:\"

Recent Comments

\";}i:5;a:1:{s:7:\"content\";s:146:\"

Archives

\";}i:6;a:1:{s:7:\"content\";s:150:\"

Categories

\";}s:12:\"_multiwidget\";i:1;}','auto'),(107,'sidebars_widgets','a:4:{s:19:\"wp_inactive_widgets\";a:0:{}s:9:\"sidebar-1\";a:3:{i:0;s:7:\"block-2\";i:1;s:7:\"block-3\";i:2;s:7:\"block-4\";}s:9:\"sidebar-2\";a:2:{i:0;s:7:\"block-5\";i:1;s:7:\"block-6\";}s:13:\"array_version\";i:3;}','auto'),(108,'widget_pages','a:1:{s:12:\"_multiwidget\";i:1;}','auto'),(109,'widget_calendar','a:1:{s:12:\"_multiwidget\";i:1;}','auto'),(110,'widget_archives','a:1:{s:12:\"_multiwidget\";i:1;}','auto'),(111,'widget_media_audio','a:1:{s:12:\"_multiwidget\";i:1;}','auto'),(112,'widget_media_image','a:1:{s:12:\"_multiwidget\";i:1;}','auto'),(113,'widget_media_gallery','a:1:{s:12:\"_multiwidget\";i:1;}','auto'),(114,'widget_media_video','a:1:{s:12:\"_multiwidget\";i:1;}','auto'),(115,'widget_meta','a:1:{s:12:\"_multiwidget\";i:1;}','auto'),(116,'widget_search','a:1:{s:12:\"_multiwidget\";i:1;}','auto'),(117,'widget_recent-posts','a:1:{s:12:\"_multiwidget\";i:1;}','auto'),(118,'widget_recent-comments','a:1:{s:12:\"_multiwidget\";i:1;}','auto'),(119,'widget_tag_cloud','a:1:{s:12:\"_multiwidget\";i:1;}','auto'),(120,'widget_nav_menu','a:1:{s:12:\"_multiwidget\";i:1;}','auto'),(121,'widget_custom_html','a:1:{s:12:\"_multiwidget\";i:1;}','auto'),(122,'_transient_wp_core_block_css_files','a:2:{s:7:\"version\";s:3:\"6.9\";s:5:\"files\";a:584:{i:0;s:31:\"accordion-heading/style-rtl.css\";i:1;s:35:\"accordion-heading/style-rtl.min.css\";i:2;s:27:\"accordion-heading/style.css\";i:3;s:31:\"accordion-heading/style.min.css\";i:4;s:28:\"accordion-item/style-rtl.css\";i:5;s:32:\"accordion-item/style-rtl.min.css\";i:6;s:24:\"accordion-item/style.css\";i:7;s:28:\"accordion-item/style.min.css\";i:8;s:29:\"accordion-panel/style-rtl.css\";i:9;s:33:\"accordion-panel/style-rtl.min.css\";i:10;s:25:\"accordion-panel/style.css\";i:11;s:29:\"accordion-panel/style.min.css\";i:12;s:23:\"accordion/style-rtl.css\";i:13;s:27:\"accordion/style-rtl.min.css\";i:14;s:19:\"accordion/style.css\";i:15;s:23:\"accordion/style.min.css\";i:16;s:23:\"archives/editor-rtl.css\";i:17;s:27:\"archives/editor-rtl.min.css\";i:18;s:19:\"archives/editor.css\";i:19;s:23:\"archives/editor.min.css\";i:20;s:22:\"archives/style-rtl.css\";i:21;s:26:\"archives/style-rtl.min.css\";i:22;s:18:\"archives/style.css\";i:23;s:22:\"archives/style.min.css\";i:24;s:20:\"audio/editor-rtl.css\";i:25;s:24:\"audio/editor-rtl.min.css\";i:26;s:16:\"audio/editor.css\";i:27;s:20:\"audio/editor.min.css\";i:28;s:19:\"audio/style-rtl.css\";i:29;s:23:\"audio/style-rtl.min.css\";i:30;s:15:\"audio/style.css\";i:31;s:19:\"audio/style.min.css\";i:32;s:19:\"audio/theme-rtl.css\";i:33;s:23:\"audio/theme-rtl.min.css\";i:34;s:15:\"audio/theme.css\";i:35;s:19:\"audio/theme.min.css\";i:36;s:21:\"avatar/editor-rtl.css\";i:37;s:25:\"avatar/editor-rtl.min.css\";i:38;s:17:\"avatar/editor.css\";i:39;s:21:\"avatar/editor.min.css\";i:40;s:20:\"avatar/style-rtl.css\";i:41;s:24:\"avatar/style-rtl.min.css\";i:42;s:16:\"avatar/style.css\";i:43;s:20:\"avatar/style.min.css\";i:44;s:21:\"button/editor-rtl.css\";i:45;s:25:\"button/editor-rtl.min.css\";i:46;s:17:\"button/editor.css\";i:47;s:21:\"button/editor.min.css\";i:48;s:20:\"button/style-rtl.css\";i:49;s:24:\"button/style-rtl.min.css\";i:50;s:16:\"button/style.css\";i:51;s:20:\"button/style.min.css\";i:52;s:22:\"buttons/editor-rtl.css\";i:53;s:26:\"buttons/editor-rtl.min.css\";i:54;s:18:\"buttons/editor.css\";i:55;s:22:\"buttons/editor.min.css\";i:56;s:21:\"buttons/style-rtl.css\";i:57;s:25:\"buttons/style-rtl.min.css\";i:58;s:17:\"buttons/style.css\";i:59;s:21:\"buttons/style.min.css\";i:60;s:22:\"calendar/style-rtl.css\";i:61;s:26:\"calendar/style-rtl.min.css\";i:62;s:18:\"calendar/style.css\";i:63;s:22:\"calendar/style.min.css\";i:64;s:25:\"categories/editor-rtl.css\";i:65;s:29:\"categories/editor-rtl.min.css\";i:66;s:21:\"categories/editor.css\";i:67;s:25:\"categories/editor.min.css\";i:68;s:24:\"categories/style-rtl.css\";i:69;s:28:\"categories/style-rtl.min.css\";i:70;s:20:\"categories/style.css\";i:71;s:24:\"categories/style.min.css\";i:72;s:19:\"code/editor-rtl.css\";i:73;s:23:\"code/editor-rtl.min.css\";i:74;s:15:\"code/editor.css\";i:75;s:19:\"code/editor.min.css\";i:76;s:18:\"code/style-rtl.css\";i:77;s:22:\"code/style-rtl.min.css\";i:78;s:14:\"code/style.css\";i:79;s:18:\"code/style.min.css\";i:80;s:18:\"code/theme-rtl.css\";i:81;s:22:\"code/theme-rtl.min.css\";i:82;s:14:\"code/theme.css\";i:83;s:18:\"code/theme.min.css\";i:84;s:22:\"columns/editor-rtl.css\";i:85;s:26:\"columns/editor-rtl.min.css\";i:86;s:18:\"columns/editor.css\";i:87;s:22:\"columns/editor.min.css\";i:88;s:21:\"columns/style-rtl.css\";i:89;s:25:\"columns/style-rtl.min.css\";i:90;s:17:\"columns/style.css\";i:91;s:21:\"columns/style.min.css\";i:92;s:33:\"comment-author-name/style-rtl.css\";i:93;s:37:\"comment-author-name/style-rtl.min.css\";i:94;s:29:\"comment-author-name/style.css\";i:95;s:33:\"comment-author-name/style.min.css\";i:96;s:29:\"comment-content/style-rtl.css\";i:97;s:33:\"comment-content/style-rtl.min.css\";i:98;s:25:\"comment-content/style.css\";i:99;s:29:\"comment-content/style.min.css\";i:100;s:26:\"comment-date/style-rtl.css\";i:101;s:30:\"comment-date/style-rtl.min.css\";i:102;s:22:\"comment-date/style.css\";i:103;s:26:\"comment-date/style.min.css\";i:104;s:31:\"comment-edit-link/style-rtl.css\";i:105;s:35:\"comment-edit-link/style-rtl.min.css\";i:106;s:27:\"comment-edit-link/style.css\";i:107;s:31:\"comment-edit-link/style.min.css\";i:108;s:32:\"comment-reply-link/style-rtl.css\";i:109;s:36:\"comment-reply-link/style-rtl.min.css\";i:110;s:28:\"comment-reply-link/style.css\";i:111;s:32:\"comment-reply-link/style.min.css\";i:112;s:30:\"comment-template/style-rtl.css\";i:113;s:34:\"comment-template/style-rtl.min.css\";i:114;s:26:\"comment-template/style.css\";i:115;s:30:\"comment-template/style.min.css\";i:116;s:42:\"comments-pagination-numbers/editor-rtl.css\";i:117;s:46:\"comments-pagination-numbers/editor-rtl.min.css\";i:118;s:38:\"comments-pagination-numbers/editor.css\";i:119;s:42:\"comments-pagination-numbers/editor.min.css\";i:120;s:34:\"comments-pagination/editor-rtl.css\";i:121;s:38:\"comments-pagination/editor-rtl.min.css\";i:122;s:30:\"comments-pagination/editor.css\";i:123;s:34:\"comments-pagination/editor.min.css\";i:124;s:33:\"comments-pagination/style-rtl.css\";i:125;s:37:\"comments-pagination/style-rtl.min.css\";i:126;s:29:\"comments-pagination/style.css\";i:127;s:33:\"comments-pagination/style.min.css\";i:128;s:29:\"comments-title/editor-rtl.css\";i:129;s:33:\"comments-title/editor-rtl.min.css\";i:130;s:25:\"comments-title/editor.css\";i:131;s:29:\"comments-title/editor.min.css\";i:132;s:23:\"comments/editor-rtl.css\";i:133;s:27:\"comments/editor-rtl.min.css\";i:134;s:19:\"comments/editor.css\";i:135;s:23:\"comments/editor.min.css\";i:136;s:22:\"comments/style-rtl.css\";i:137;s:26:\"comments/style-rtl.min.css\";i:138;s:18:\"comments/style.css\";i:139;s:22:\"comments/style.min.css\";i:140;s:20:\"cover/editor-rtl.css\";i:141;s:24:\"cover/editor-rtl.min.css\";i:142;s:16:\"cover/editor.css\";i:143;s:20:\"cover/editor.min.css\";i:144;s:19:\"cover/style-rtl.css\";i:145;s:23:\"cover/style-rtl.min.css\";i:146;s:15:\"cover/style.css\";i:147;s:19:\"cover/style.min.css\";i:148;s:22:\"details/editor-rtl.css\";i:149;s:26:\"details/editor-rtl.min.css\";i:150;s:18:\"details/editor.css\";i:151;s:22:\"details/editor.min.css\";i:152;s:21:\"details/style-rtl.css\";i:153;s:25:\"details/style-rtl.min.css\";i:154;s:17:\"details/style.css\";i:155;s:21:\"details/style.min.css\";i:156;s:20:\"embed/editor-rtl.css\";i:157;s:24:\"embed/editor-rtl.min.css\";i:158;s:16:\"embed/editor.css\";i:159;s:20:\"embed/editor.min.css\";i:160;s:19:\"embed/style-rtl.css\";i:161;s:23:\"embed/style-rtl.min.css\";i:162;s:15:\"embed/style.css\";i:163;s:19:\"embed/style.min.css\";i:164;s:19:\"embed/theme-rtl.css\";i:165;s:23:\"embed/theme-rtl.min.css\";i:166;s:15:\"embed/theme.css\";i:167;s:19:\"embed/theme.min.css\";i:168;s:19:\"file/editor-rtl.css\";i:169;s:23:\"file/editor-rtl.min.css\";i:170;s:15:\"file/editor.css\";i:171;s:19:\"file/editor.min.css\";i:172;s:18:\"file/style-rtl.css\";i:173;s:22:\"file/style-rtl.min.css\";i:174;s:14:\"file/style.css\";i:175;s:18:\"file/style.min.css\";i:176;s:23:\"footnotes/style-rtl.css\";i:177;s:27:\"footnotes/style-rtl.min.css\";i:178;s:19:\"footnotes/style.css\";i:179;s:23:\"footnotes/style.min.css\";i:180;s:23:\"freeform/editor-rtl.css\";i:181;s:27:\"freeform/editor-rtl.min.css\";i:182;s:19:\"freeform/editor.css\";i:183;s:23:\"freeform/editor.min.css\";i:184;s:22:\"gallery/editor-rtl.css\";i:185;s:26:\"gallery/editor-rtl.min.css\";i:186;s:18:\"gallery/editor.css\";i:187;s:22:\"gallery/editor.min.css\";i:188;s:21:\"gallery/style-rtl.css\";i:189;s:25:\"gallery/style-rtl.min.css\";i:190;s:17:\"gallery/style.css\";i:191;s:21:\"gallery/style.min.css\";i:192;s:21:\"gallery/theme-rtl.css\";i:193;s:25:\"gallery/theme-rtl.min.css\";i:194;s:17:\"gallery/theme.css\";i:195;s:21:\"gallery/theme.min.css\";i:196;s:20:\"group/editor-rtl.css\";i:197;s:24:\"group/editor-rtl.min.css\";i:198;s:16:\"group/editor.css\";i:199;s:20:\"group/editor.min.css\";i:200;s:19:\"group/style-rtl.css\";i:201;s:23:\"group/style-rtl.min.css\";i:202;s:15:\"group/style.css\";i:203;s:19:\"group/style.min.css\";i:204;s:19:\"group/theme-rtl.css\";i:205;s:23:\"group/theme-rtl.min.css\";i:206;s:15:\"group/theme.css\";i:207;s:19:\"group/theme.min.css\";i:208;s:21:\"heading/style-rtl.css\";i:209;s:25:\"heading/style-rtl.min.css\";i:210;s:17:\"heading/style.css\";i:211;s:21:\"heading/style.min.css\";i:212;s:19:\"html/editor-rtl.css\";i:213;s:23:\"html/editor-rtl.min.css\";i:214;s:15:\"html/editor.css\";i:215;s:19:\"html/editor.min.css\";i:216;s:20:\"image/editor-rtl.css\";i:217;s:24:\"image/editor-rtl.min.css\";i:218;s:16:\"image/editor.css\";i:219;s:20:\"image/editor.min.css\";i:220;s:19:\"image/style-rtl.css\";i:221;s:23:\"image/style-rtl.min.css\";i:222;s:15:\"image/style.css\";i:223;s:19:\"image/style.min.css\";i:224;s:19:\"image/theme-rtl.css\";i:225;s:23:\"image/theme-rtl.min.css\";i:226;s:15:\"image/theme.css\";i:227;s:19:\"image/theme.min.css\";i:228;s:29:\"latest-comments/style-rtl.css\";i:229;s:33:\"latest-comments/style-rtl.min.css\";i:230;s:25:\"latest-comments/style.css\";i:231;s:29:\"latest-comments/style.min.css\";i:232;s:27:\"latest-posts/editor-rtl.css\";i:233;s:31:\"latest-posts/editor-rtl.min.css\";i:234;s:23:\"latest-posts/editor.css\";i:235;s:27:\"latest-posts/editor.min.css\";i:236;s:26:\"latest-posts/style-rtl.css\";i:237;s:30:\"latest-posts/style-rtl.min.css\";i:238;s:22:\"latest-posts/style.css\";i:239;s:26:\"latest-posts/style.min.css\";i:240;s:18:\"list/style-rtl.css\";i:241;s:22:\"list/style-rtl.min.css\";i:242;s:14:\"list/style.css\";i:243;s:18:\"list/style.min.css\";i:244;s:22:\"loginout/style-rtl.css\";i:245;s:26:\"loginout/style-rtl.min.css\";i:246;s:18:\"loginout/style.css\";i:247;s:22:\"loginout/style.min.css\";i:248;s:19:\"math/editor-rtl.css\";i:249;s:23:\"math/editor-rtl.min.css\";i:250;s:15:\"math/editor.css\";i:251;s:19:\"math/editor.min.css\";i:252;s:18:\"math/style-rtl.css\";i:253;s:22:\"math/style-rtl.min.css\";i:254;s:14:\"math/style.css\";i:255;s:18:\"math/style.min.css\";i:256;s:25:\"media-text/editor-rtl.css\";i:257;s:29:\"media-text/editor-rtl.min.css\";i:258;s:21:\"media-text/editor.css\";i:259;s:25:\"media-text/editor.min.css\";i:260;s:24:\"media-text/style-rtl.css\";i:261;s:28:\"media-text/style-rtl.min.css\";i:262;s:20:\"media-text/style.css\";i:263;s:24:\"media-text/style.min.css\";i:264;s:19:\"more/editor-rtl.css\";i:265;s:23:\"more/editor-rtl.min.css\";i:266;s:15:\"more/editor.css\";i:267;s:19:\"more/editor.min.css\";i:268;s:30:\"navigation-link/editor-rtl.css\";i:269;s:34:\"navigation-link/editor-rtl.min.css\";i:270;s:26:\"navigation-link/editor.css\";i:271;s:30:\"navigation-link/editor.min.css\";i:272;s:29:\"navigation-link/style-rtl.css\";i:273;s:33:\"navigation-link/style-rtl.min.css\";i:274;s:25:\"navigation-link/style.css\";i:275;s:29:\"navigation-link/style.min.css\";i:276;s:33:\"navigation-submenu/editor-rtl.css\";i:277;s:37:\"navigation-submenu/editor-rtl.min.css\";i:278;s:29:\"navigation-submenu/editor.css\";i:279;s:33:\"navigation-submenu/editor.min.css\";i:280;s:25:\"navigation/editor-rtl.css\";i:281;s:29:\"navigation/editor-rtl.min.css\";i:282;s:21:\"navigation/editor.css\";i:283;s:25:\"navigation/editor.min.css\";i:284;s:24:\"navigation/style-rtl.css\";i:285;s:28:\"navigation/style-rtl.min.css\";i:286;s:20:\"navigation/style.css\";i:287;s:24:\"navigation/style.min.css\";i:288;s:23:\"nextpage/editor-rtl.css\";i:289;s:27:\"nextpage/editor-rtl.min.css\";i:290;s:19:\"nextpage/editor.css\";i:291;s:23:\"nextpage/editor.min.css\";i:292;s:24:\"page-list/editor-rtl.css\";i:293;s:28:\"page-list/editor-rtl.min.css\";i:294;s:20:\"page-list/editor.css\";i:295;s:24:\"page-list/editor.min.css\";i:296;s:23:\"page-list/style-rtl.css\";i:297;s:27:\"page-list/style-rtl.min.css\";i:298;s:19:\"page-list/style.css\";i:299;s:23:\"page-list/style.min.css\";i:300;s:24:\"paragraph/editor-rtl.css\";i:301;s:28:\"paragraph/editor-rtl.min.css\";i:302;s:20:\"paragraph/editor.css\";i:303;s:24:\"paragraph/editor.min.css\";i:304;s:23:\"paragraph/style-rtl.css\";i:305;s:27:\"paragraph/style-rtl.min.css\";i:306;s:19:\"paragraph/style.css\";i:307;s:23:\"paragraph/style.min.css\";i:308;s:35:\"post-author-biography/style-rtl.css\";i:309;s:39:\"post-author-biography/style-rtl.min.css\";i:310;s:31:\"post-author-biography/style.css\";i:311;s:35:\"post-author-biography/style.min.css\";i:312;s:30:\"post-author-name/style-rtl.css\";i:313;s:34:\"post-author-name/style-rtl.min.css\";i:314;s:26:\"post-author-name/style.css\";i:315;s:30:\"post-author-name/style.min.css\";i:316;s:25:\"post-author/style-rtl.css\";i:317;s:29:\"post-author/style-rtl.min.css\";i:318;s:21:\"post-author/style.css\";i:319;s:25:\"post-author/style.min.css\";i:320;s:33:\"post-comments-count/style-rtl.css\";i:321;s:37:\"post-comments-count/style-rtl.min.css\";i:322;s:29:\"post-comments-count/style.css\";i:323;s:33:\"post-comments-count/style.min.css\";i:324;s:33:\"post-comments-form/editor-rtl.css\";i:325;s:37:\"post-comments-form/editor-rtl.min.css\";i:326;s:29:\"post-comments-form/editor.css\";i:327;s:33:\"post-comments-form/editor.min.css\";i:328;s:32:\"post-comments-form/style-rtl.css\";i:329;s:36:\"post-comments-form/style-rtl.min.css\";i:330;s:28:\"post-comments-form/style.css\";i:331;s:32:\"post-comments-form/style.min.css\";i:332;s:32:\"post-comments-link/style-rtl.css\";i:333;s:36:\"post-comments-link/style-rtl.min.css\";i:334;s:28:\"post-comments-link/style.css\";i:335;s:32:\"post-comments-link/style.min.css\";i:336;s:26:\"post-content/style-rtl.css\";i:337;s:30:\"post-content/style-rtl.min.css\";i:338;s:22:\"post-content/style.css\";i:339;s:26:\"post-content/style.min.css\";i:340;s:23:\"post-date/style-rtl.css\";i:341;s:27:\"post-date/style-rtl.min.css\";i:342;s:19:\"post-date/style.css\";i:343;s:23:\"post-date/style.min.css\";i:344;s:27:\"post-excerpt/editor-rtl.css\";i:345;s:31:\"post-excerpt/editor-rtl.min.css\";i:346;s:23:\"post-excerpt/editor.css\";i:347;s:27:\"post-excerpt/editor.min.css\";i:348;s:26:\"post-excerpt/style-rtl.css\";i:349;s:30:\"post-excerpt/style-rtl.min.css\";i:350;s:22:\"post-excerpt/style.css\";i:351;s:26:\"post-excerpt/style.min.css\";i:352;s:34:\"post-featured-image/editor-rtl.css\";i:353;s:38:\"post-featured-image/editor-rtl.min.css\";i:354;s:30:\"post-featured-image/editor.css\";i:355;s:34:\"post-featured-image/editor.min.css\";i:356;s:33:\"post-featured-image/style-rtl.css\";i:357;s:37:\"post-featured-image/style-rtl.min.css\";i:358;s:29:\"post-featured-image/style.css\";i:359;s:33:\"post-featured-image/style.min.css\";i:360;s:34:\"post-navigation-link/style-rtl.css\";i:361;s:38:\"post-navigation-link/style-rtl.min.css\";i:362;s:30:\"post-navigation-link/style.css\";i:363;s:34:\"post-navigation-link/style.min.css\";i:364;s:27:\"post-template/style-rtl.css\";i:365;s:31:\"post-template/style-rtl.min.css\";i:366;s:23:\"post-template/style.css\";i:367;s:27:\"post-template/style.min.css\";i:368;s:24:\"post-terms/style-rtl.css\";i:369;s:28:\"post-terms/style-rtl.min.css\";i:370;s:20:\"post-terms/style.css\";i:371;s:24:\"post-terms/style.min.css\";i:372;s:31:\"post-time-to-read/style-rtl.css\";i:373;s:35:\"post-time-to-read/style-rtl.min.css\";i:374;s:27:\"post-time-to-read/style.css\";i:375;s:31:\"post-time-to-read/style.min.css\";i:376;s:24:\"post-title/style-rtl.css\";i:377;s:28:\"post-title/style-rtl.min.css\";i:378;s:20:\"post-title/style.css\";i:379;s:24:\"post-title/style.min.css\";i:380;s:26:\"preformatted/style-rtl.css\";i:381;s:30:\"preformatted/style-rtl.min.css\";i:382;s:22:\"preformatted/style.css\";i:383;s:26:\"preformatted/style.min.css\";i:384;s:24:\"pullquote/editor-rtl.css\";i:385;s:28:\"pullquote/editor-rtl.min.css\";i:386;s:20:\"pullquote/editor.css\";i:387;s:24:\"pullquote/editor.min.css\";i:388;s:23:\"pullquote/style-rtl.css\";i:389;s:27:\"pullquote/style-rtl.min.css\";i:390;s:19:\"pullquote/style.css\";i:391;s:23:\"pullquote/style.min.css\";i:392;s:23:\"pullquote/theme-rtl.css\";i:393;s:27:\"pullquote/theme-rtl.min.css\";i:394;s:19:\"pullquote/theme.css\";i:395;s:23:\"pullquote/theme.min.css\";i:396;s:39:\"query-pagination-numbers/editor-rtl.css\";i:397;s:43:\"query-pagination-numbers/editor-rtl.min.css\";i:398;s:35:\"query-pagination-numbers/editor.css\";i:399;s:39:\"query-pagination-numbers/editor.min.css\";i:400;s:31:\"query-pagination/editor-rtl.css\";i:401;s:35:\"query-pagination/editor-rtl.min.css\";i:402;s:27:\"query-pagination/editor.css\";i:403;s:31:\"query-pagination/editor.min.css\";i:404;s:30:\"query-pagination/style-rtl.css\";i:405;s:34:\"query-pagination/style-rtl.min.css\";i:406;s:26:\"query-pagination/style.css\";i:407;s:30:\"query-pagination/style.min.css\";i:408;s:25:\"query-title/style-rtl.css\";i:409;s:29:\"query-title/style-rtl.min.css\";i:410;s:21:\"query-title/style.css\";i:411;s:25:\"query-title/style.min.css\";i:412;s:25:\"query-total/style-rtl.css\";i:413;s:29:\"query-total/style-rtl.min.css\";i:414;s:21:\"query-total/style.css\";i:415;s:25:\"query-total/style.min.css\";i:416;s:20:\"query/editor-rtl.css\";i:417;s:24:\"query/editor-rtl.min.css\";i:418;s:16:\"query/editor.css\";i:419;s:20:\"query/editor.min.css\";i:420;s:19:\"quote/style-rtl.css\";i:421;s:23:\"quote/style-rtl.min.css\";i:422;s:15:\"quote/style.css\";i:423;s:19:\"quote/style.min.css\";i:424;s:19:\"quote/theme-rtl.css\";i:425;s:23:\"quote/theme-rtl.min.css\";i:426;s:15:\"quote/theme.css\";i:427;s:19:\"quote/theme.min.css\";i:428;s:23:\"read-more/style-rtl.css\";i:429;s:27:\"read-more/style-rtl.min.css\";i:430;s:19:\"read-more/style.css\";i:431;s:23:\"read-more/style.min.css\";i:432;s:18:\"rss/editor-rtl.css\";i:433;s:22:\"rss/editor-rtl.min.css\";i:434;s:14:\"rss/editor.css\";i:435;s:18:\"rss/editor.min.css\";i:436;s:17:\"rss/style-rtl.css\";i:437;s:21:\"rss/style-rtl.min.css\";i:438;s:13:\"rss/style.css\";i:439;s:17:\"rss/style.min.css\";i:440;s:21:\"search/editor-rtl.css\";i:441;s:25:\"search/editor-rtl.min.css\";i:442;s:17:\"search/editor.css\";i:443;s:21:\"search/editor.min.css\";i:444;s:20:\"search/style-rtl.css\";i:445;s:24:\"search/style-rtl.min.css\";i:446;s:16:\"search/style.css\";i:447;s:20:\"search/style.min.css\";i:448;s:20:\"search/theme-rtl.css\";i:449;s:24:\"search/theme-rtl.min.css\";i:450;s:16:\"search/theme.css\";i:451;s:20:\"search/theme.min.css\";i:452;s:24:\"separator/editor-rtl.css\";i:453;s:28:\"separator/editor-rtl.min.css\";i:454;s:20:\"separator/editor.css\";i:455;s:24:\"separator/editor.min.css\";i:456;s:23:\"separator/style-rtl.css\";i:457;s:27:\"separator/style-rtl.min.css\";i:458;s:19:\"separator/style.css\";i:459;s:23:\"separator/style.min.css\";i:460;s:23:\"separator/theme-rtl.css\";i:461;s:27:\"separator/theme-rtl.min.css\";i:462;s:19:\"separator/theme.css\";i:463;s:23:\"separator/theme.min.css\";i:464;s:24:\"shortcode/editor-rtl.css\";i:465;s:28:\"shortcode/editor-rtl.min.css\";i:466;s:20:\"shortcode/editor.css\";i:467;s:24:\"shortcode/editor.min.css\";i:468;s:24:\"site-logo/editor-rtl.css\";i:469;s:28:\"site-logo/editor-rtl.min.css\";i:470;s:20:\"site-logo/editor.css\";i:471;s:24:\"site-logo/editor.min.css\";i:472;s:23:\"site-logo/style-rtl.css\";i:473;s:27:\"site-logo/style-rtl.min.css\";i:474;s:19:\"site-logo/style.css\";i:475;s:23:\"site-logo/style.min.css\";i:476;s:27:\"site-tagline/editor-rtl.css\";i:477;s:31:\"site-tagline/editor-rtl.min.css\";i:478;s:23:\"site-tagline/editor.css\";i:479;s:27:\"site-tagline/editor.min.css\";i:480;s:26:\"site-tagline/style-rtl.css\";i:481;s:30:\"site-tagline/style-rtl.min.css\";i:482;s:22:\"site-tagline/style.css\";i:483;s:26:\"site-tagline/style.min.css\";i:484;s:25:\"site-title/editor-rtl.css\";i:485;s:29:\"site-title/editor-rtl.min.css\";i:486;s:21:\"site-title/editor.css\";i:487;s:25:\"site-title/editor.min.css\";i:488;s:24:\"site-title/style-rtl.css\";i:489;s:28:\"site-title/style-rtl.min.css\";i:490;s:20:\"site-title/style.css\";i:491;s:24:\"site-title/style.min.css\";i:492;s:26:\"social-link/editor-rtl.css\";i:493;s:30:\"social-link/editor-rtl.min.css\";i:494;s:22:\"social-link/editor.css\";i:495;s:26:\"social-link/editor.min.css\";i:496;s:27:\"social-links/editor-rtl.css\";i:497;s:31:\"social-links/editor-rtl.min.css\";i:498;s:23:\"social-links/editor.css\";i:499;s:27:\"social-links/editor.min.css\";i:500;s:26:\"social-links/style-rtl.css\";i:501;s:30:\"social-links/style-rtl.min.css\";i:502;s:22:\"social-links/style.css\";i:503;s:26:\"social-links/style.min.css\";i:504;s:21:\"spacer/editor-rtl.css\";i:505;s:25:\"spacer/editor-rtl.min.css\";i:506;s:17:\"spacer/editor.css\";i:507;s:21:\"spacer/editor.min.css\";i:508;s:20:\"spacer/style-rtl.css\";i:509;s:24:\"spacer/style-rtl.min.css\";i:510;s:16:\"spacer/style.css\";i:511;s:20:\"spacer/style.min.css\";i:512;s:20:\"table/editor-rtl.css\";i:513;s:24:\"table/editor-rtl.min.css\";i:514;s:16:\"table/editor.css\";i:515;s:20:\"table/editor.min.css\";i:516;s:19:\"table/style-rtl.css\";i:517;s:23:\"table/style-rtl.min.css\";i:518;s:15:\"table/style.css\";i:519;s:19:\"table/style.min.css\";i:520;s:19:\"table/theme-rtl.css\";i:521;s:23:\"table/theme-rtl.min.css\";i:522;s:15:\"table/theme.css\";i:523;s:19:\"table/theme.min.css\";i:524;s:24:\"tag-cloud/editor-rtl.css\";i:525;s:28:\"tag-cloud/editor-rtl.min.css\";i:526;s:20:\"tag-cloud/editor.css\";i:527;s:24:\"tag-cloud/editor.min.css\";i:528;s:23:\"tag-cloud/style-rtl.css\";i:529;s:27:\"tag-cloud/style-rtl.min.css\";i:530;s:19:\"tag-cloud/style.css\";i:531;s:23:\"tag-cloud/style.min.css\";i:532;s:28:\"template-part/editor-rtl.css\";i:533;s:32:\"template-part/editor-rtl.min.css\";i:534;s:24:\"template-part/editor.css\";i:535;s:28:\"template-part/editor.min.css\";i:536;s:27:\"template-part/theme-rtl.css\";i:537;s:31:\"template-part/theme-rtl.min.css\";i:538;s:23:\"template-part/theme.css\";i:539;s:27:\"template-part/theme.min.css\";i:540;s:24:\"term-count/style-rtl.css\";i:541;s:28:\"term-count/style-rtl.min.css\";i:542;s:20:\"term-count/style.css\";i:543;s:24:\"term-count/style.min.css\";i:544;s:30:\"term-description/style-rtl.css\";i:545;s:34:\"term-description/style-rtl.min.css\";i:546;s:26:\"term-description/style.css\";i:547;s:30:\"term-description/style.min.css\";i:548;s:23:\"term-name/style-rtl.css\";i:549;s:27:\"term-name/style-rtl.min.css\";i:550;s:19:\"term-name/style.css\";i:551;s:23:\"term-name/style.min.css\";i:552;s:28:\"term-template/editor-rtl.css\";i:553;s:32:\"term-template/editor-rtl.min.css\";i:554;s:24:\"term-template/editor.css\";i:555;s:28:\"term-template/editor.min.css\";i:556;s:27:\"term-template/style-rtl.css\";i:557;s:31:\"term-template/style-rtl.min.css\";i:558;s:23:\"term-template/style.css\";i:559;s:27:\"term-template/style.min.css\";i:560;s:27:\"text-columns/editor-rtl.css\";i:561;s:31:\"text-columns/editor-rtl.min.css\";i:562;s:23:\"text-columns/editor.css\";i:563;s:27:\"text-columns/editor.min.css\";i:564;s:26:\"text-columns/style-rtl.css\";i:565;s:30:\"text-columns/style-rtl.min.css\";i:566;s:22:\"text-columns/style.css\";i:567;s:26:\"text-columns/style.min.css\";i:568;s:19:\"verse/style-rtl.css\";i:569;s:23:\"verse/style-rtl.min.css\";i:570;s:15:\"verse/style.css\";i:571;s:19:\"verse/style.min.css\";i:572;s:20:\"video/editor-rtl.css\";i:573;s:24:\"video/editor-rtl.min.css\";i:574;s:16:\"video/editor.css\";i:575;s:20:\"video/editor.min.css\";i:576;s:19:\"video/style-rtl.css\";i:577;s:23:\"video/style-rtl.min.css\";i:578;s:15:\"video/style.css\";i:579;s:19:\"video/style.min.css\";i:580;s:19:\"video/theme-rtl.css\";i:581;s:23:\"video/theme-rtl.min.css\";i:582;s:15:\"video/theme.css\";i:583;s:19:\"video/theme.min.css\";}}','on'),(123,'_site_transient_timeout_wp_theme_files_patterns-b24c4b64a1fe6f9f73313f730ddfc1cf','1770039304','off'),(124,'_site_transient_wp_theme_files_patterns-b24c4b64a1fe6f9f73313f730ddfc1cf','a:2:{s:7:\"version\";s:3:\"1.4\";s:8:\"patterns\";a:98:{s:21:\"banner-about-book.php\";a:4:{s:5:\"title\";s:28:\"Banner with book description\";s:4:\"slug\";s:34:\"twentytwentyfive/banner-about-book\";s:11:\"description\";s:66:\"Banner with book description and accompanying image for promotion.\";s:10:\"categories\";a:1:{i:0;s:6:\"banner\";}}s:28:\"banner-cover-big-heading.php\";a:4:{s:5:\"title\";s:22:\"Cover with big heading\";s:4:\"slug\";s:41:\"twentytwentyfive/banner-cover-big-heading\";s:11:\"description\";s:82:\"A full-width cover section with a large background image and an oversized heading.\";s:10:\"categories\";a:3:{i:0;s:6:\"banner\";i:1;s:5:\"about\";i:2;s:8:\"featured\";}}s:22:\"banner-intro-image.php\";a:4:{s:5:\"title\";s:49:\"Short heading and paragraph and image on the left\";s:4:\"slug\";s:35:\"twentytwentyfive/banner-intro-image\";s:11:\"description\";s:68:\"A Intro pattern with Short heading, paragraph and image on the left.\";s:10:\"categories\";a:2:{i:0;s:6:\"banner\";i:1;s:8:\"featured\";}}s:16:\"banner-intro.php\";a:4:{s:5:\"title\";s:35:\"Intro with left-aligned description\";s:4:\"slug\";s:29:\"twentytwentyfive/banner-intro\";s:11:\"description\";s:66:\"A large left-aligned heading with a brand name emphasized in bold.\";s:10:\"categories\";a:1:{i:0;s:6:\"banner\";}}s:17:\"banner-poster.php\";a:4:{s:5:\"title\";s:19:\"Poster-like section\";s:4:\"slug\";s:30:\"twentytwentyfive/banner-poster\";s:11:\"description\";s:78:\"A section that can be used as a banner or a landing page to announce an event.\";s:10:\"categories\";a:2:{i:0;s:6:\"banner\";i:1;s:5:\"media\";}}s:43:\"banner-with-description-and-images-grid.php\";a:4:{s:5:\"title\";s:39:\"Banner with description and images grid\";s:4:\"slug\";s:47:\"twentytwentyfive/banner-description-images-grid\";s:11:\"description\";s:75:\"A banner with a short paragraph, and two images displayed in a grid layout.\";s:10:\"categories\";a:2:{i:0;s:6:\"banner\";i:1;s:8:\"featured\";}}s:18:\"binding-format.php\";a:4:{s:5:\"title\";s:16:\"Post format name\";s:4:\"slug\";s:31:\"twentytwentyfive/binding-format\";s:11:\"description\";s:75:\"Prints the name of the post format with the help of the Block Bindings API.\";s:10:\"categories\";a:1:{i:0;s:28:\"twentytwentyfive_post-format\";}}s:12:\"comments.php\";a:5:{s:5:\"title\";s:8:\"Comments\";s:4:\"slug\";s:25:\"twentytwentyfive/comments\";s:11:\"description\";s:63:\"Comments area with comments list, pagination, and comment form.\";s:10:\"categories\";a:1:{i:0;s:4:\"text\";}s:10:\"blockTypes\";a:1:{i:0;s:13:\"core/comments\";}}s:32:\"contact-centered-social-link.php\";a:5:{s:5:\"title\";s:30:\"Centered link and social links\";s:4:\"slug\";s:45:\"twentytwentyfive/contact-centered-social-link\";s:11:\"description\";s:73:\"Centered contact section with a prominent message and social media links.\";s:10:\"categories\";a:1:{i:0;s:7:\"contact\";}s:8:\"keywords\";a:3:{i:0;s:7:\"contact\";i:1;s:3:\"faq\";i:2;s:9:\"questions\";}}s:26:\"contact-info-locations.php\";a:6:{s:5:\"title\";s:27:\"Contact, info and locations\";s:4:\"slug\";s:39:\"twentytwentyfive/contact-info-locations\";s:11:\"description\";s:78:\"Contact section with social media links, email, and multiple location details.\";s:13:\"viewportWidth\";i:1400;s:10:\"categories\";a:1:{i:0;s:7:\"contact\";}s:8:\"keywords\";a:2:{i:0;s:7:\"contact\";i:1;s:8:\"location\";}}s:29:\"contact-location-and-link.php\";a:4:{s:5:\"title\";s:25:\"Contact location and link\";s:4:\"slug\";s:42:\"twentytwentyfive/contact-location-and-link\";s:11:\"description\";s:89:\"Contact section with a location address, a directions link, and an image of the location.\";s:10:\"categories\";a:2:{i:0;s:7:\"contact\";i:1;s:8:\"featured\";}}s:18:\"cta-book-links.php\";a:4:{s:5:\"title\";s:30:\"Call to action with book links\";s:4:\"slug\";s:31:\"twentytwentyfive/cta-book-links\";s:11:\"description\";s:74:\"A call to action section with links to get the book in different websites.\";s:10:\"categories\";a:1:{i:0;s:14:\"call-to-action\";}}s:22:\"cta-book-locations.php\";a:4:{s:5:\"title\";s:29:\"Call to action with locations\";s:4:\"slug\";s:35:\"twentytwentyfive/cta-book-locations\";s:11:\"description\";s:82:\"A call to action section with links to get the book in the most popular locations.\";s:10:\"categories\";a:1:{i:0;s:14:\"call-to-action\";}}s:24:\"cta-centered-heading.php\";a:4:{s:5:\"title\";s:16:\"Centered heading\";s:4:\"slug\";s:37:\"twentytwentyfive/cta-centered-heading\";s:11:\"description\";s:53:\"A hero with a centered heading, paragraph and button.\";s:10:\"categories\";a:1:{i:0;s:14:\"call-to-action\";}}s:19:\"cta-events-list.php\";a:4:{s:5:\"title\";s:11:\"Events list\";s:4:\"slug\";s:32:\"twentytwentyfive/cta-events-list\";s:11:\"description\";s:37:\"A list of events with call to action.\";s:10:\"categories\";a:1:{i:0;s:14:\"call-to-action\";}}s:26:\"cta-grid-products-link.php\";a:5:{s:5:\"title\";s:54:\"Call to action with grid layout with products and link\";s:4:\"slug\";s:39:\"twentytwentyfive/cta-grid-products-link\";s:11:\"description\";s:42:\"A call to action featuring product images.\";s:13:\"viewportWidth\";i:1400;s:10:\"categories\";a:2:{i:0;s:14:\"call-to-action\";i:1;s:8:\"featured\";}}s:22:\"cta-heading-search.php\";a:4:{s:5:\"title\";s:23:\"Heading and search form\";s:4:\"slug\";s:35:\"twentytwentyfive/cta-heading-search\";s:11:\"description\";s:54:\"Large heading with a search form for quick navigation.\";s:10:\"categories\";a:1:{i:0;s:14:\"call-to-action\";}}s:18:\"cta-newsletter.php\";a:5:{s:5:\"title\";s:18:\"Newsletter sign-up\";s:4:\"slug\";s:31:\"twentytwentyfive/cta-newsletter\";s:11:\"description\";s:0:\"\";s:10:\"categories\";a:1:{i:0;s:14:\"call-to-action\";}s:8:\"keywords\";a:2:{i:0;s:14:\"call-to-action\";i:1;s:10:\"newsletter\";}}s:15:\"event-3-col.php\";a:5:{s:5:\"title\";s:46:\"Events, 3 columns with event images and titles\";s:4:\"slug\";s:28:\"twentytwentyfive/event-3-col\";s:11:\"description\";s:95:\"A header with title and text and three columns that show 3 events with their images and titles.\";s:10:\"categories\";a:1:{i:0;s:6:\"banner\";}s:8:\"keywords\";a:3:{i:0;s:6:\"events\";i:1;s:7:\"columns\";i:2;s:6:\"images\";}}s:14:\"event-rsvp.php\";a:7:{s:5:\"title\";s:10:\"Event RSVP\";s:4:\"slug\";s:27:\"twentytwentyfive/event-rsvp\";s:11:\"description\";s:64:\"RSVP for an upcoming event with a cover image and event details.\";s:13:\"viewportWidth\";i:1400;s:10:\"categories\";a:1:{i:0;s:14:\"call-to-action\";}s:8:\"keywords\";a:3:{i:0;s:14:\"call-to-action\";i:1;s:4:\"rsvp\";i:2;s:5:\"event\";}s:10:\"blockTypes\";a:1:{i:0;s:17:\"core/post-content\";}}s:18:\"event-schedule.php\";a:5:{s:5:\"title\";s:14:\"Event schedule\";s:4:\"slug\";s:31:\"twentytwentyfive/event-schedule\";s:11:\"description\";s:54:\"A section with specified dates and times for an event.\";s:10:\"categories\";a:1:{i:0;s:5:\"about\";}s:8:\"keywords\";a:4:{i:0;s:6:\"events\";i:1;s:6:\"agenda\";i:2;s:8:\"schedule\";i:3;s:8:\"lectures\";}}s:19:\"footer-centered.php\";a:5:{s:5:\"title\";s:15:\"Centered footer\";s:4:\"slug\";s:32:\"twentytwentyfive/footer-centered\";s:11:\"description\";s:44:\"Footer with centered site title and tagline.\";s:10:\"categories\";a:1:{i:0;s:6:\"footer\";}s:10:\"blockTypes\";a:1:{i:0;s:25:\"core/template-part/footer\";}}s:18:\"footer-columns.php\";a:5:{s:5:\"title\";s:19:\"Footer with columns\";s:4:\"slug\";s:31:\"twentytwentyfive/footer-columns\";s:11:\"description\";s:45:\"Footer columns with title, tagline and links.\";s:10:\"categories\";a:1:{i:0;s:6:\"footer\";}s:10:\"blockTypes\";a:1:{i:0;s:25:\"core/template-part/footer\";}}s:21:\"footer-newsletter.php\";a:5:{s:5:\"title\";s:29:\"Footer with newsletter signup\";s:4:\"slug\";s:34:\"twentytwentyfive/footer-newsletter\";s:11:\"description\";s:51:\"Footer with large site title and newsletter signup.\";s:10:\"categories\";a:1:{i:0;s:6:\"footer\";}s:10:\"blockTypes\";a:1:{i:0;s:25:\"core/template-part/footer\";}}s:17:\"footer-social.php\";a:5:{s:5:\"title\";s:33:\"Centered footer with social links\";s:4:\"slug\";s:30:\"twentytwentyfive/footer-social\";s:11:\"description\";s:49:\"Footer with centered site title and social links.\";s:10:\"categories\";a:1:{i:0;s:6:\"footer\";}s:10:\"blockTypes\";a:1:{i:0;s:25:\"core/template-part/footer\";}}s:10:\"footer.php\";a:5:{s:5:\"title\";s:6:\"Footer\";s:4:\"slug\";s:23:\"twentytwentyfive/footer\";s:11:\"description\";s:51:\"Footer columns with logo, title, tagline and links.\";s:10:\"categories\";a:1:{i:0;s:6:\"footer\";}s:10:\"blockTypes\";a:1:{i:0;s:25:\"core/template-part/footer\";}}s:16:\"format-audio.php\";a:4:{s:5:\"title\";s:12:\"Audio format\";s:4:\"slug\";s:29:\"twentytwentyfive/format-audio\";s:11:\"description\";s:73:\"An audio post format with an image, title, audio player, and description.\";s:10:\"categories\";a:1:{i:0;s:28:\"twentytwentyfive_post-format\";}}s:15:\"format-link.php\";a:4:{s:5:\"title\";s:11:\"Link format\";s:4:\"slug\";s:28:\"twentytwentyfive/format-link\";s:11:\"description\";s:77:\"A link post format with a description and an emphasized link for key content.\";s:10:\"categories\";a:1:{i:0;s:28:\"twentytwentyfive_post-format\";}}s:15:\"grid-videos.php\";a:4:{s:5:\"title\";s:16:\"Grid with videos\";s:4:\"slug\";s:28:\"twentytwentyfive/grid-videos\";s:11:\"description\";s:19:\"A grid with videos.\";s:10:\"categories\";a:1:{i:0;s:5:\"about\";}}s:24:\"grid-with-categories.php\";a:5:{s:5:\"title\";s:20:\"Grid with categories\";s:4:\"slug\";s:37:\"twentytwentyfive/grid-with-categories\";s:11:\"description\";s:41:\"A grid section with different categories.\";s:13:\"viewportWidth\";i:1400;s:10:\"categories\";a:1:{i:0;s:6:\"banner\";}}s:19:\"header-centered.php\";a:5:{s:5:\"title\";s:20:\"Centered site header\";s:4:\"slug\";s:32:\"twentytwentyfive/header-centered\";s:11:\"description\";s:52:\"Site header with centered site title and navigation.\";s:10:\"categories\";a:1:{i:0;s:6:\"header\";}s:10:\"blockTypes\";a:1:{i:0;s:25:\"core/template-part/header\";}}s:18:\"header-columns.php\";a:5:{s:5:\"title\";s:19:\"Header with columns\";s:4:\"slug\";s:31:\"twentytwentyfive/header-columns\";s:11:\"description\";s:54:\"Site header with site title and navigation in columns.\";s:10:\"categories\";a:1:{i:0;s:6:\"header\";}s:10:\"blockTypes\";a:1:{i:0;s:25:\"core/template-part/header\";}}s:22:\"header-large-title.php\";a:5:{s:5:\"title\";s:23:\"Header with large title\";s:4:\"slug\";s:35:\"twentytwentyfive/header-large-title\";s:11:\"description\";s:63:\"Site header with large site title and right-aligned navigation.\";s:10:\"categories\";a:1:{i:0;s:6:\"header\";}s:10:\"blockTypes\";a:1:{i:0;s:25:\"core/template-part/header\";}}s:10:\"header.php\";a:5:{s:5:\"title\";s:6:\"Header\";s:4:\"slug\";s:23:\"twentytwentyfive/header\";s:11:\"description\";s:43:\"Site header with site title and navigation.\";s:10:\"categories\";a:1:{i:0;s:6:\"header\";}s:10:\"blockTypes\";a:1:{i:0;s:25:\"core/template-part/header\";}}s:36:\"heading-and-paragraph-with-image.php\";a:4:{s:5:\"title\";s:45:\"Heading and paragraph with image on the right\";s:4:\"slug\";s:49:\"twentytwentyfive/heading-and-paragraph-with-image\";s:11:\"description\";s:89:\"A two-column section with a heading and paragraph on the left, and an image on the right.\";s:10:\"categories\";a:1:{i:0;s:5:\"about\";}}s:13:\"hero-book.php\";a:5:{s:5:\"title\";s:9:\"Hero book\";s:4:\"slug\";s:26:\"twentytwentyfive/hero-book\";s:11:\"description\";s:66:\"A hero section for the book with a description and pre-order link.\";s:10:\"categories\";a:1:{i:0;s:6:\"banner\";}s:8:\"keywords\";a:3:{i:0;s:7:\"podcast\";i:1;s:4:\"hero\";i:2;s:7:\"stories\";}}s:25:\"hero-full-width-image.php\";a:4:{s:5:\"title\";s:22:\"Hero, full width image\";s:4:\"slug\";s:38:\"twentytwentyfive/hero-full-width-image\";s:11:\"description\";s:68:\"A hero with a full width image, heading, short paragraph and button.\";s:10:\"categories\";a:1:{i:0;s:6:\"banner\";}}s:41:\"hero-overlapped-book-cover-with-links.php\";a:4:{s:5:\"title\";s:38:\"Hero, overlapped book cover with links\";s:4:\"slug\";s:54:\"twentytwentyfive/hero-overlapped-book-cover-with-links\";s:11:\"description\";s:47:\"A hero with an overlapped book cover and links.\";s:10:\"categories\";a:1:{i:0;s:6:\"banner\";}}s:16:\"hero-podcast.php\";a:5:{s:5:\"title\";s:12:\"Hero podcast\";s:4:\"slug\";s:29:\"twentytwentyfive/hero-podcast\";s:11:\"description\";s:0:\"\";s:10:\"categories\";a:1:{i:0;s:6:\"banner\";}s:8:\"keywords\";a:3:{i:0;s:7:\"podcast\";i:1;s:4:\"hero\";i:2;s:7:\"stories\";}}s:14:\"hidden-404.php\";a:4:{s:5:\"title\";s:3:\"404\";s:4:\"slug\";s:27:\"twentytwentyfive/hidden-404\";s:11:\"description\";s:0:\"\";s:8:\"inserter\";b:0;}s:23:\"hidden-blog-heading.php\";a:4:{s:5:\"title\";s:19:\"Hidden blog heading\";s:4:\"slug\";s:36:\"twentytwentyfive/hidden-blog-heading\";s:11:\"description\";s:52:\"Hidden heading for the home page and index template.\";s:8:\"inserter\";b:0;}s:17:\"hidden-search.php\";a:4:{s:5:\"title\";s:6:\"Search\";s:4:\"slug\";s:30:\"twentytwentyfive/hidden-search\";s:11:\"description\";s:0:\"\";s:8:\"inserter\";b:0;}s:18:\"hidden-sidebar.php\";a:4:{s:5:\"title\";s:7:\"Sidebar\";s:4:\"slug\";s:31:\"twentytwentyfive/hidden-sidebar\";s:11:\"description\";s:0:\"\";s:8:\"inserter\";b:0;}s:21:\"hidden-written-by.php\";a:4:{s:5:\"title\";s:10:\"Written by\";s:4:\"slug\";s:34:\"twentytwentyfive/hidden-written-by\";s:11:\"description\";s:0:\"\";s:8:\"inserter\";b:0;}s:9:\"logos.php\";a:4:{s:5:\"title\";s:5:\"Logos\";s:4:\"slug\";s:22:\"twentytwentyfive/logos\";s:11:\"description\";s:77:\"Showcasing the podcast\'s clients with a heading and a series of client logos.\";s:10:\"categories\";a:1:{i:0;s:6:\"banner\";}}s:24:\"media-instagram-grid.php\";a:5:{s:5:\"title\";s:14:\"Instagram grid\";s:4:\"slug\";s:37:\"twentytwentyfive/media-instagram-grid\";s:11:\"description\";s:62:\"A grid section with photos and a link to an Instagram profile.\";s:13:\"viewportWidth\";i:1440;s:10:\"categories\";a:3:{i:0;s:5:\"media\";i:1;s:7:\"gallery\";i:2;s:8:\"featured\";}}s:14:\"more-posts.php\";a:5:{s:5:\"title\";s:10:\"More posts\";s:4:\"slug\";s:27:\"twentytwentyfive/more-posts\";s:11:\"description\";s:45:\"Displays a list of posts with title and date.\";s:10:\"categories\";a:1:{i:0;s:5:\"query\";}s:10:\"blockTypes\";a:1:{i:0;s:10:\"core/query\";}}s:21:\"overlapped-images.php\";a:4:{s:5:\"title\";s:41:\"Overlapping images and paragraph on right\";s:4:\"slug\";s:34:\"twentytwentyfive/overlapped-images\";s:11:\"description\";s:53:\"A section with overlapping images, and a description.\";s:10:\"categories\";a:2:{i:0;s:5:\"about\";i:1;s:8:\"featured\";}}s:22:\"page-business-home.php\";a:8:{s:5:\"title\";s:17:\"Business homepage\";s:4:\"slug\";s:35:\"twentytwentyfive/page-business-home\";s:11:\"description\";s:28:\"A business homepage pattern.\";s:13:\"viewportWidth\";i:1400;s:10:\"categories\";a:2:{i:0;s:21:\"twentytwentyfive_page\";i:1;s:8:\"featured\";}s:8:\"keywords\";a:1:{i:0;s:7:\"starter\";}s:10:\"blockTypes\";a:1:{i:0;s:17:\"core/post-content\";}s:9:\"postTypes\";a:2:{i:0;s:4:\"page\";i:1;s:11:\"wp_template\";}}s:20:\"page-coming-soon.php\";a:8:{s:5:\"title\";s:11:\"Coming soon\";s:4:\"slug\";s:33:\"twentytwentyfive/page-coming-soon\";s:11:\"description\";s:96:\"A full-width cover banner that can be applied to a page or it can work as a single landing page.\";s:13:\"viewportWidth\";i:1400;s:10:\"categories\";a:2:{i:0;s:21:\"twentytwentyfive_page\";i:1;s:8:\"featured\";}s:8:\"keywords\";a:1:{i:0;s:7:\"starter\";}s:10:\"blockTypes\";a:1:{i:0;s:17:\"core/post-content\";}s:9:\"postTypes\";a:2:{i:0;s:4:\"page\";i:1;s:11:\"wp_template\";}}s:15:\"page-cv-bio.php\";a:7:{s:5:\"title\";s:6:\"CV/bio\";s:4:\"slug\";s:28:\"twentytwentyfive/page-cv-bio\";s:11:\"description\";s:36:\"A pattern for a CV/Bio landing page.\";s:13:\"viewportWidth\";i:1400;s:10:\"categories\";a:3:{i:0;s:21:\"twentytwentyfive_page\";i:1;s:5:\"about\";i:2;s:8:\"featured\";}s:8:\"keywords\";a:1:{i:0;s:7:\"starter\";}s:10:\"blockTypes\";a:1:{i:0;s:17:\"core/post-content\";}}s:21:\"page-landing-book.php\";a:8:{s:5:\"title\";s:21:\"Landing page for book\";s:4:\"slug\";s:34:\"twentytwentyfive/page-landing-book\";s:11:\"description\";s:104:\"A landing page for the book with a hero section, pre-order links, locations, FAQs and newsletter signup.\";s:13:\"viewportWidth\";i:1400;s:10:\"categories\";a:2:{i:0;s:21:\"twentytwentyfive_page\";i:1;s:8:\"featured\";}s:8:\"keywords\";a:1:{i:0;s:7:\"starter\";}s:10:\"blockTypes\";a:1:{i:0;s:17:\"core/post-content\";}s:9:\"postTypes\";a:2:{i:0;s:4:\"page\";i:1;s:11:\"wp_template\";}}s:22:\"page-landing-event.php\";a:8:{s:5:\"title\";s:22:\"Landing page for event\";s:4:\"slug\";s:35:\"twentytwentyfive/page-landing-event\";s:11:\"description\";s:87:\"A landing page for the event with a hero section, description, FAQs and call to action.\";s:13:\"viewportWidth\";i:1400;s:10:\"categories\";a:2:{i:0;s:21:\"twentytwentyfive_page\";i:1;s:8:\"featured\";}s:8:\"keywords\";a:1:{i:0;s:7:\"starter\";}s:10:\"blockTypes\";a:1:{i:0;s:17:\"core/post-content\";}s:9:\"postTypes\";a:2:{i:0;s:4:\"page\";i:1;s:11:\"wp_template\";}}s:24:\"page-landing-podcast.php\";a:8:{s:5:\"title\";s:24:\"Landing page for podcast\";s:4:\"slug\";s:37:\"twentytwentyfive/page-landing-podcast\";s:11:\"description\";s:111:\"A landing page for the podcast with a hero section, description, logos, grid with videos and newsletter signup.\";s:13:\"viewportWidth\";i:1400;s:10:\"categories\";a:2:{i:0;s:21:\"twentytwentyfive_page\";i:1;s:8:\"featured\";}s:8:\"keywords\";a:1:{i:0;s:7:\"starter\";}s:10:\"blockTypes\";a:1:{i:0;s:17:\"core/post-content\";}s:9:\"postTypes\";a:2:{i:0;s:4:\"page\";i:1;s:11:\"wp_template\";}}s:50:\"page-link-in-bio-heading-paragraph-links-image.php\";a:7:{s:5:\"title\";s:59:\"Link in bio heading, paragraph, links and full-height image\";s:4:\"slug\";s:63:\"twentytwentyfive/page-link-in-bio-heading-paragraph-links-image\";s:11:\"description\";s:84:\"A link in bio landing page with a heading, paragraph, links and a full height image.\";s:13:\"viewportWidth\";i:1400;s:10:\"categories\";a:3:{i:0;s:21:\"twentytwentyfive_page\";i:1;s:6:\"banner\";i:2;s:8:\"featured\";}s:8:\"keywords\";a:1:{i:0;s:7:\"starter\";}s:10:\"blockTypes\";a:1:{i:0;s:17:\"core/post-content\";}}s:33:\"page-link-in-bio-wide-margins.php\";a:7:{s:5:\"title\";s:48:\"Link in bio with profile, links and wide margins\";s:4:\"slug\";s:46:\"twentytwentyfive/page-link-in-bio-wide-margins\";s:11:\"description\";s:86:\"A link in bio landing page with social links, a profile photo and a brief description.\";s:13:\"viewportWidth\";i:1400;s:10:\"categories\";a:3:{i:0;s:21:\"twentytwentyfive_page\";i:1;s:6:\"banner\";i:2;s:8:\"featured\";}s:8:\"keywords\";a:1:{i:0;s:7:\"starter\";}s:10:\"blockTypes\";a:1:{i:0;s:17:\"core/post-content\";}}s:39:\"page-link-in-bio-with-tight-margins.php\";a:8:{s:5:\"title\";s:30:\"Link in bio with tight margins\";s:4:\"slug\";s:52:\"twentytwentyfive/page-link-in-bio-with-tight-margins\";s:11:\"description\";s:90:\"A full-width, full-height link in bio section with an image, a paragraph and social links.\";s:13:\"viewportWidth\";i:1400;s:10:\"categories\";a:2:{i:0;s:21:\"twentytwentyfive_page\";i:1;s:6:\"banner\";}s:8:\"keywords\";a:1:{i:0;s:7:\"starter\";}s:10:\"blockTypes\";a:1:{i:0;s:17:\"core/post-content\";}s:9:\"postTypes\";a:2:{i:0;s:4:\"page\";i:1;s:11:\"wp_template\";}}s:23:\"page-portfolio-home.php\";a:8:{s:5:\"title\";s:18:\"Portfolio homepage\";s:4:\"slug\";s:36:\"twentytwentyfive/page-portfolio-home\";s:11:\"description\";s:29:\"A portfolio homepage pattern.\";s:13:\"viewportWidth\";i:1400;s:10:\"categories\";a:2:{i:0;s:21:\"twentytwentyfive_page\";i:1;s:5:\"posts\";}s:8:\"keywords\";a:1:{i:0;s:7:\"starter\";}s:10:\"blockTypes\";a:1:{i:0;s:17:\"core/post-content\";}s:9:\"postTypes\";a:2:{i:0;s:4:\"page\";i:1;s:11:\"wp_template\";}}s:18:\"page-shop-home.php\";a:8:{s:5:\"title\";s:13:\"Shop homepage\";s:4:\"slug\";s:31:\"twentytwentyfive/page-shop-home\";s:11:\"description\";s:24:\"A shop homepage pattern.\";s:13:\"viewportWidth\";i:1400;s:10:\"categories\";a:1:{i:0;s:21:\"twentytwentyfive_page\";}s:8:\"keywords\";a:1:{i:0;s:7:\"starter\";}s:10:\"blockTypes\";a:1:{i:0;s:17:\"core/post-content\";}s:9:\"postTypes\";a:2:{i:0;s:4:\"page\";i:1;s:11:\"wp_template\";}}s:19:\"post-navigation.php\";a:5:{s:5:\"title\";s:15:\"Post navigation\";s:4:\"slug\";s:32:\"twentytwentyfive/post-navigation\";s:11:\"description\";s:29:\"Next and previous post links.\";s:10:\"categories\";a:1:{i:0;s:4:\"text\";}s:10:\"blockTypes\";a:1:{i:0;s:25:\"core/post-navigation-link\";}}s:17:\"pricing-2-col.php\";a:5:{s:5:\"title\";s:18:\"Pricing, 2 columns\";s:4:\"slug\";s:30:\"twentytwentyfive/pricing-2-col\";s:11:\"description\";s:88:\"Pricing section with two columns, pricing plan, description, and call-to-action buttons.\";s:13:\"viewportWidth\";i:1400;s:10:\"categories\";a:1:{i:0;s:14:\"call-to-action\";}}s:17:\"pricing-3-col.php\";a:4:{s:5:\"title\";s:18:\"Pricing, 3 columns\";s:4:\"slug\";s:30:\"twentytwentyfive/pricing-3-col\";s:11:\"description\";s:100:\"A three-column boxed pricing table designed to showcase services, descriptions, and pricing options.\";s:10:\"categories\";a:3:{i:0;s:14:\"call-to-action\";i:1;s:6:\"banner\";i:2;s:8:\"services\";}}s:18:\"services-3-col.php\";a:4:{s:5:\"title\";s:19:\"Services, 3 columns\";s:4:\"slug\";s:31:\"twentytwentyfive/services-3-col\";s:11:\"description\";s:56:\"Three columns with images and text to showcase services.\";s:10:\"categories\";a:3:{i:0;s:14:\"call-to-action\";i:1;s:6:\"banner\";i:2;s:8:\"services\";}}s:36:\"services-subscriber-only-section.php\";a:4:{s:5:\"title\";s:33:\"Services, subscriber only section\";s:4:\"slug\";s:49:\"twentytwentyfive/services-subscriber-only-section\";s:11:\"description\";s:72:\"A subscriber-only section highlighting exclusive services and offerings.\";s:10:\"categories\";a:2:{i:0;s:14:\"call-to-action\";i:1;s:8:\"services\";}}s:24:\"services-team-photos.php\";a:4:{s:5:\"title\";s:21:\"Services, team photos\";s:4:\"slug\";s:37:\"twentytwentyfive/services-team-photos\";s:11:\"description\";s:59:\"Display team photos in a services section with grid layout.\";s:10:\"categories\";a:3:{i:0;s:6:\"banner\";i:1;s:14:\"call-to-action\";i:2;s:8:\"featured\";}}s:37:\"template-404-vertical-header-blog.php\";a:5:{s:5:\"title\";s:17:\"Right-aligned 404\";s:4:\"slug\";s:50:\"twentytwentyfive/template-404-vertical-header-blog\";s:11:\"description\";s:0:\"\";s:13:\"viewportWidth\";i:1400;s:13:\"templateTypes\";a:1:{i:0;s:3:\"404\";}}s:30:\"template-archive-news-blog.php\";a:6:{s:5:\"title\";s:17:\"News blog archive\";s:4:\"slug\";s:43:\"twentytwentyfive/template-archive-news-blog\";s:11:\"description\";s:0:\"\";s:13:\"viewportWidth\";i:1400;s:8:\"inserter\";b:0;s:13:\"templateTypes\";a:1:{i:0;s:7:\"archive\";}}s:31:\"template-archive-photo-blog.php\";a:6:{s:5:\"title\";s:18:\"Photo blog archive\";s:4:\"slug\";s:44:\"twentytwentyfive/template-archive-photo-blog\";s:11:\"description\";s:0:\"\";s:13:\"viewportWidth\";i:1400;s:8:\"inserter\";b:0;s:13:\"templateTypes\";a:1:{i:0;s:7:\"archive\";}}s:30:\"template-archive-text-blog.php\";a:6:{s:5:\"title\";s:17:\"Text blog archive\";s:4:\"slug\";s:43:\"twentytwentyfive/template-archive-text-blog\";s:11:\"description\";s:0:\"\";s:13:\"viewportWidth\";i:1400;s:8:\"inserter\";b:0;s:13:\"templateTypes\";a:1:{i:0;s:7:\"archive\";}}s:41:\"template-archive-vertical-header-blog.php\";a:6:{s:5:\"title\";s:21:\"Right-aligned archive\";s:4:\"slug\";s:54:\"twentytwentyfive/template-archive-vertical-header-blog\";s:11:\"description\";s:0:\"\";s:13:\"viewportWidth\";i:1400;s:8:\"inserter\";b:0;s:13:\"templateTypes\";a:1:{i:0;s:7:\"archive\";}}s:27:\"template-home-news-blog.php\";a:6:{s:5:\"title\";s:14:\"News blog home\";s:4:\"slug\";s:40:\"twentytwentyfive/template-home-news-blog\";s:11:\"description\";s:0:\"\";s:13:\"viewportWidth\";i:1400;s:8:\"inserter\";b:0;s:13:\"templateTypes\";a:3:{i:0;s:10:\"front-page\";i:1;s:5:\"index\";i:2;s:4:\"home\";}}s:28:\"template-home-photo-blog.php\";a:6:{s:5:\"title\";s:15:\"Photo blog home\";s:4:\"slug\";s:41:\"twentytwentyfive/template-home-photo-blog\";s:11:\"description\";s:0:\"\";s:13:\"viewportWidth\";i:1400;s:8:\"inserter\";b:0;s:13:\"templateTypes\";a:3:{i:0;s:10:\"front-page\";i:1;s:5:\"index\";i:2;s:4:\"home\";}}s:38:\"template-home-posts-grid-news-blog.php\";a:5:{s:5:\"title\";s:34:\"News blog with featured posts grid\";s:4:\"slug\";s:51:\"twentytwentyfive/template-home-posts-grid-news-blog\";s:11:\"description\";s:0:\"\";s:8:\"inserter\";b:0;s:13:\"templateTypes\";a:3:{i:0;s:10:\"front-page\";i:1;s:5:\"index\";i:2;s:4:\"home\";}}s:27:\"template-home-text-blog.php\";a:6:{s:5:\"title\";s:14:\"Text blog home\";s:4:\"slug\";s:40:\"twentytwentyfive/template-home-text-blog\";s:11:\"description\";s:0:\"\";s:13:\"viewportWidth\";i:1400;s:8:\"inserter\";b:0;s:13:\"templateTypes\";a:2:{i:0;s:10:\"front-page\";i:1;s:4:\"home\";}}s:38:\"template-home-vertical-header-blog.php\";a:6:{s:5:\"title\";s:18:\"Right-aligned home\";s:4:\"slug\";s:51:\"twentytwentyfive/template-home-vertical-header-blog\";s:11:\"description\";s:0:\"\";s:13:\"viewportWidth\";i:1400;s:8:\"inserter\";b:0;s:13:\"templateTypes\";a:3:{i:0;s:10:\"front-page\";i:1;s:5:\"index\";i:2;s:4:\"home\";}}s:40:\"template-home-with-sidebar-news-blog.php\";a:6:{s:5:\"title\";s:22:\"News blog with sidebar\";s:4:\"slug\";s:53:\"twentytwentyfive/template-home-with-sidebar-news-blog\";s:11:\"description\";s:0:\"\";s:13:\"viewportWidth\";i:1400;s:8:\"inserter\";b:0;s:13:\"templateTypes\";a:3:{i:0;s:10:\"front-page\";i:1;s:5:\"index\";i:2;s:4:\"home\";}}s:28:\"template-page-photo-blog.php\";a:5:{s:5:\"title\";s:15:\"Photo blog page\";s:4:\"slug\";s:41:\"twentytwentyfive/template-page-photo-blog\";s:11:\"description\";s:0:\"\";s:13:\"viewportWidth\";i:1400;s:13:\"templateTypes\";a:1:{i:0;s:4:\"page\";}}s:38:\"template-page-vertical-header-blog.php\";a:5:{s:5:\"title\";s:18:\"Right-aligned page\";s:4:\"slug\";s:51:\"twentytwentyfive/template-page-vertical-header-blog\";s:11:\"description\";s:0:\"\";s:13:\"viewportWidth\";i:1400;s:13:\"templateTypes\";a:1:{i:0;s:4:\"page\";}}s:33:\"template-query-loop-news-blog.php\";a:4:{s:5:\"title\";s:20:\"News blog query loop\";s:4:\"slug\";s:46:\"twentytwentyfive/template-query-loop-news-blog\";s:11:\"description\";s:0:\"\";s:8:\"inserter\";b:0;}s:34:\"template-query-loop-photo-blog.php\";a:6:{s:5:\"title\";s:16:\"Photo blog posts\";s:4:\"slug\";s:47:\"twentytwentyfive/template-query-loop-photo-blog\";s:11:\"description\";s:54:\"A list of posts, 3 columns, with only featured images.\";s:13:\"viewportWidth\";i:1400;s:10:\"categories\";a:1:{i:0;s:5:\"query\";}s:10:\"blockTypes\";a:1:{i:0;s:10:\"core/query\";}}s:33:\"template-query-loop-text-blog.php\";a:4:{s:5:\"title\";s:20:\"Text blog query loop\";s:4:\"slug\";s:46:\"twentytwentyfive/template-query-loop-text-blog\";s:11:\"description\";s:0:\"\";s:8:\"inserter\";b:0;}s:44:\"template-query-loop-vertical-header-blog.php\";a:4:{s:5:\"title\";s:24:\"Right-aligned query loop\";s:4:\"slug\";s:57:\"twentytwentyfive/template-query-loop-vertical-header-blog\";s:11:\"description\";s:0:\"\";s:8:\"inserter\";b:0;}s:23:\"template-query-loop.php\";a:5:{s:5:\"title\";s:23:\"List of posts, 1 column\";s:4:\"slug\";s:36:\"twentytwentyfive/template-query-loop\";s:11:\"description\";s:61:\"A list of posts, 1 column, with featured image and post date.\";s:10:\"categories\";a:1:{i:0;s:5:\"query\";}s:10:\"blockTypes\";a:1:{i:0;s:10:\"core/query\";}}s:29:\"template-search-news-blog.php\";a:6:{s:5:\"title\";s:24:\"News blog search results\";s:4:\"slug\";s:42:\"twentytwentyfive/template-search-news-blog\";s:11:\"description\";s:0:\"\";s:13:\"viewportWidth\";i:1400;s:8:\"inserter\";b:0;s:13:\"templateTypes\";a:1:{i:0;s:6:\"search\";}}s:30:\"template-search-photo-blog.php\";a:6:{s:5:\"title\";s:25:\"Photo blog search results\";s:4:\"slug\";s:43:\"twentytwentyfive/template-search-photo-blog\";s:11:\"description\";s:0:\"\";s:13:\"viewportWidth\";i:1400;s:8:\"inserter\";b:0;s:13:\"templateTypes\";a:1:{i:0;s:6:\"search\";}}s:29:\"template-search-text-blog.php\";a:6:{s:5:\"title\";s:24:\"Text blog search results\";s:4:\"slug\";s:42:\"twentytwentyfive/template-search-text-blog\";s:11:\"description\";s:0:\"\";s:13:\"viewportWidth\";i:1400;s:8:\"inserter\";b:0;s:13:\"templateTypes\";a:1:{i:0;s:6:\"search\";}}s:40:\"template-search-vertical-header-blog.php\";a:6:{s:5:\"title\";s:26:\"Right-aligned blog, search\";s:4:\"slug\";s:53:\"twentytwentyfive/template-search-vertical-header-blog\";s:11:\"description\";s:0:\"\";s:13:\"viewportWidth\";i:1400;s:8:\"inserter\";b:0;s:13:\"templateTypes\";a:1:{i:0;s:6:\"search\";}}s:40:\"template-single-left-aligned-content.php\";a:6:{s:5:\"title\";s:30:\"Post with left-aligned content\";s:4:\"slug\";s:47:\"twentytwentyfive/post-with-left-aligned-content\";s:11:\"description\";s:0:\"\";s:13:\"viewportWidth\";i:1400;s:8:\"inserter\";b:0;s:13:\"templateTypes\";a:2:{i:0;s:5:\"posts\";i:1;s:6:\"single\";}}s:29:\"template-single-news-blog.php\";a:6:{s:5:\"title\";s:34:\"News blog single post with sidebar\";s:4:\"slug\";s:42:\"twentytwentyfive/template-single-news-blog\";s:11:\"description\";s:0:\"\";s:13:\"viewportWidth\";i:1400;s:8:\"inserter\";b:0;s:13:\"templateTypes\";a:2:{i:0;s:5:\"posts\";i:1;s:6:\"single\";}}s:26:\"template-single-offset.php\";a:6:{s:5:\"title\";s:34:\"Offset post without featured image\";s:4:\"slug\";s:39:\"twentytwentyfive/template-single-offset\";s:11:\"description\";s:0:\"\";s:13:\"viewportWidth\";i:1400;s:8:\"inserter\";b:0;s:13:\"templateTypes\";a:2:{i:0;s:5:\"posts\";i:1;s:6:\"single\";}}s:30:\"template-single-photo-blog.php\";a:6:{s:5:\"title\";s:22:\"Photo blog single post\";s:4:\"slug\";s:43:\"twentytwentyfive/template-single-photo-blog\";s:11:\"description\";s:0:\"\";s:13:\"viewportWidth\";i:1400;s:8:\"inserter\";b:0;s:13:\"templateTypes\";a:2:{i:0;s:5:\"posts\";i:1;s:6:\"single\";}}s:29:\"template-single-text-blog.php\";a:6:{s:5:\"title\";s:21:\"Text blog single post\";s:4:\"slug\";s:42:\"twentytwentyfive/template-single-text-blog\";s:11:\"description\";s:0:\"\";s:13:\"viewportWidth\";i:1400;s:8:\"inserter\";b:0;s:13:\"templateTypes\";a:2:{i:0;s:5:\"posts\";i:1;s:6:\"single\";}}s:40:\"template-single-vertical-header-blog.php\";a:6:{s:5:\"title\";s:25:\"Right-aligned single post\";s:4:\"slug\";s:53:\"twentytwentyfive/template-single-vertical-header-blog\";s:11:\"description\";s:0:\"\";s:13:\"viewportWidth\";i:1400;s:8:\"inserter\";b:0;s:13:\"templateTypes\";a:2:{i:0;s:5:\"posts\";i:1;s:6:\"single\";}}s:22:\"testimonials-2-col.php\";a:5:{s:5:\"title\";s:21:\"2 columns with avatar\";s:4:\"slug\";s:35:\"twentytwentyfive/testimonials-2-col\";s:11:\"description\";s:42:\"Two columns with testimonials and avatars.\";s:10:\"categories\";a:1:{i:0;s:12:\"testimonials\";}s:8:\"keywords\";a:1:{i:0;s:11:\"testimonial\";}}s:22:\"testimonials-6-col.php\";a:5:{s:5:\"title\";s:35:\"3 column layout with 6 testimonials\";s:4:\"slug\";s:35:\"twentytwentyfive/testimonials-6-col\";s:11:\"description\";s:86:\"A section with three columns and two rows, each containing a testimonial and citation.\";s:10:\"categories\";a:1:{i:0;s:12:\"testimonials\";}s:8:\"keywords\";a:1:{i:0;s:11:\"testimonial\";}}s:22:\"testimonials-large.php\";a:5:{s:5:\"title\";s:32:\"Review with large image on right\";s:4:\"slug\";s:35:\"twentytwentyfive/testimonials-large\";s:11:\"description\";s:46:\"A testimonial with a large image on the right.\";s:10:\"categories\";a:1:{i:0;s:12:\"testimonials\";}s:8:\"keywords\";a:1:{i:0;s:11:\"testimonial\";}}s:13:\"text-faqs.php\";a:6:{s:5:\"title\";s:4:\"FAQs\";s:4:\"slug\";s:26:\"twentytwentyfive/text-faqs\";s:11:\"description\";s:68:\"A FAQs section with a FAQ heading and list of questions and answers.\";s:13:\"viewportWidth\";i:1400;s:10:\"categories\";a:2:{i:0;s:4:\"text\";i:1;s:5:\"about\";}s:8:\"keywords\";a:5:{i:0;s:3:\"faq\";i:1;s:5:\"about\";i:2;s:10:\"frequently\";i:3;s:5:\"asked\";i:4;s:9:\"questions\";}}s:19:\"vertical-header.php\";a:6:{s:5:\"title\";s:20:\"Vertical site header\";s:4:\"slug\";s:32:\"twentytwentyfive/vertical-header\";s:11:\"description\";s:52:\"Vertical site header with site title and navigation.\";s:13:\"viewportWidth\";i:300;s:10:\"categories\";a:1:{i:0;s:6:\"header\";}s:10:\"blockTypes\";a:1:{i:0;s:34:\"core/template-part/vertical-header\";}}}}','off'),(126,'recovery_keys','a:0:{}','off'),(127,'_site_transient_update_core','O:8:\"stdClass\":4:{s:7:\"updates\";a:1:{i:0;O:8:\"stdClass\":10:{s:8:\"response\";s:6:\"latest\";s:8:\"download\";s:57:\"https://downloads.wordpress.org/release/wordpress-6.9.zip\";s:6:\"locale\";s:5:\"en_US\";s:8:\"packages\";O:8:\"stdClass\":5:{s:4:\"full\";s:57:\"https://downloads.wordpress.org/release/wordpress-6.9.zip\";s:10:\"no_content\";s:68:\"https://downloads.wordpress.org/release/wordpress-6.9-no-content.zip\";s:11:\"new_bundled\";s:69:\"https://downloads.wordpress.org/release/wordpress-6.9-new-bundled.zip\";s:7:\"partial\";s:0:\"\";s:8:\"rollback\";s:0:\"\";}s:7:\"current\";s:3:\"6.9\";s:7:\"version\";s:3:\"6.9\";s:11:\"php_version\";s:6:\"7.2.24\";s:13:\"mysql_version\";s:5:\"5.5.5\";s:11:\"new_bundled\";s:3:\"6.7\";s:15:\"partial_version\";s:0:\"\";}}s:12:\"last_checked\";i:1770037517;s:15:\"version_checked\";s:3:\"6.9\";s:12:\"translations\";a:0:{}}','off'),(128,'_site_transient_update_plugins','O:8:\"stdClass\":5:{s:12:\"last_checked\";i:1770037518;s:8:\"response\";a:0:{}s:12:\"translations\";a:0:{}s:9:\"no_update\";a:2:{s:19:\"akismet/akismet.php\";O:8:\"stdClass\":10:{s:2:\"id\";s:21:\"w.org/plugins/akismet\";s:4:\"slug\";s:7:\"akismet\";s:6:\"plugin\";s:19:\"akismet/akismet.php\";s:11:\"new_version\";s:3:\"5.6\";s:3:\"url\";s:38:\"https://wordpress.org/plugins/akismet/\";s:7:\"package\";s:54:\"https://downloads.wordpress.org/plugin/akismet.5.6.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:60:\"https://ps.w.org/akismet/assets/icon-256x256.png?rev=2818463\";s:2:\"1x\";s:60:\"https://ps.w.org/akismet/assets/icon-128x128.png?rev=2818463\";}s:7:\"banners\";a:2:{s:2:\"2x\";s:63:\"https://ps.w.org/akismet/assets/banner-1544x500.png?rev=2900731\";s:2:\"1x\";s:62:\"https://ps.w.org/akismet/assets/banner-772x250.png?rev=2900731\";}s:11:\"banners_rtl\";a:0:{}s:8:\"requires\";s:3:\"5.8\";}s:9:\"hello.php\";O:8:\"stdClass\":10:{s:2:\"id\";s:25:\"w.org/plugins/hello-dolly\";s:4:\"slug\";s:11:\"hello-dolly\";s:6:\"plugin\";s:9:\"hello.php\";s:11:\"new_version\";s:5:\"1.7.2\";s:3:\"url\";s:42:\"https://wordpress.org/plugins/hello-dolly/\";s:7:\"package\";s:60:\"https://downloads.wordpress.org/plugin/hello-dolly.1.7.2.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:64:\"https://ps.w.org/hello-dolly/assets/icon-256x256.jpg?rev=2052855\";s:2:\"1x\";s:64:\"https://ps.w.org/hello-dolly/assets/icon-128x128.jpg?rev=2052855\";}s:7:\"banners\";a:2:{s:2:\"2x\";s:67:\"https://ps.w.org/hello-dolly/assets/banner-1544x500.jpg?rev=2645582\";s:2:\"1x\";s:66:\"https://ps.w.org/hello-dolly/assets/banner-772x250.jpg?rev=2052855\";}s:11:\"banners_rtl\";a:0:{}s:8:\"requires\";s:3:\"4.6\";}}s:7:\"checked\";a:2:{s:19:\"akismet/akismet.php\";s:3:\"5.6\";s:9:\"hello.php\";s:5:\"1.7.2\";}}','off'),(129,'_site_transient_timeout_theme_roots','1770039318','off'),(130,'_site_transient_theme_roots','a:3:{s:16:\"twentytwentyfive\";s:7:\"/themes\";s:16:\"twentytwentyfour\";s:7:\"/themes\";s:17:\"twentytwentythree\";s:7:\"/themes\";}','off'),(131,'_site_transient_update_themes','O:8:\"stdClass\":5:{s:12:\"last_checked\";i:1770037518;s:7:\"checked\";a:3:{s:16:\"twentytwentyfive\";s:3:\"1.4\";s:16:\"twentytwentyfour\";s:3:\"1.4\";s:17:\"twentytwentythree\";s:3:\"1.6\";}s:8:\"response\";a:0:{}s:9:\"no_update\";a:3:{s:16:\"twentytwentyfive\";a:6:{s:5:\"theme\";s:16:\"twentytwentyfive\";s:11:\"new_version\";s:3:\"1.4\";s:3:\"url\";s:46:\"https://wordpress.org/themes/twentytwentyfive/\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/theme/twentytwentyfive.1.4.zip\";s:8:\"requires\";s:3:\"6.7\";s:12:\"requires_php\";s:3:\"7.2\";}s:16:\"twentytwentyfour\";a:6:{s:5:\"theme\";s:16:\"twentytwentyfour\";s:11:\"new_version\";s:3:\"1.4\";s:3:\"url\";s:46:\"https://wordpress.org/themes/twentytwentyfour/\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/theme/twentytwentyfour.1.4.zip\";s:8:\"requires\";s:3:\"6.4\";s:12:\"requires_php\";s:3:\"7.0\";}s:17:\"twentytwentythree\";a:6:{s:5:\"theme\";s:17:\"twentytwentythree\";s:11:\"new_version\";s:3:\"1.6\";s:3:\"url\";s:47:\"https://wordpress.org/themes/twentytwentythree/\";s:7:\"package\";s:63:\"https://downloads.wordpress.org/theme/twentytwentythree.1.6.zip\";s:8:\"requires\";s:3:\"6.1\";s:12:\"requires_php\";s:3:\"5.6\";}}s:12:\"translations\";a:0:{}}','off'),(132,'_site_transient_timeout_browser_4925b4ba558db41c0df87e47df1ba2fc','1770642318','off'),(133,'_site_transient_browser_4925b4ba558db41c0df87e47df1ba2fc','a:10:{s:4:\"name\";s:7:\"Firefox\";s:7:\"version\";s:5:\"140.0\";s:8:\"platform\";s:7:\"Windows\";s:10:\"update_url\";s:32:\"https://www.mozilla.org/firefox/\";s:7:\"img_src\";s:44:\"http://s.w.org/images/browsers/firefox.png?1\";s:11:\"img_src_ssl\";s:45:\"https://s.w.org/images/browsers/firefox.png?1\";s:15:\"current_version\";s:2:\"56\";s:7:\"upgrade\";b:0;s:8:\"insecure\";b:0;s:6:\"mobile\";b:0;}','off'),(134,'_site_transient_timeout_php_check_478252eea4acfca65f7d24ee29253bbe','1770642319','off'),(135,'_site_transient_php_check_478252eea4acfca65f7d24ee29253bbe','a:5:{s:19:\"recommended_version\";s:3:\"8.3\";s:15:\"minimum_version\";s:6:\"7.2.24\";s:12:\"is_supported\";b:1;s:9:\"is_secure\";b:1;s:13:\"is_acceptable\";b:1;}','off'),(137,'can_compress_scripts','0','on'),(138,'_site_transient_timeout_community-events-d5da354fe93faaf1b295dbd93e368db6','1770080720','off'),(139,'_site_transient_community-events-d5da354fe93faaf1b295dbd93e368db6','a:4:{s:9:\"sandboxed\";b:0;s:5:\"error\";N;s:8:\"location\";a:1:{s:2:\"ip\";s:11:\"10.90.131.0\";}s:6:\"events\";a:4:{i:0;a:10:{s:4:\"type\";s:8:\"wordcamp\";s:5:\"title\";s:18:\"WordCamp Nice 2026\";s:3:\"url\";s:31:\"https://nice.wordcamp.org/2026/\";s:6:\"meetup\";N;s:10:\"meetup_url\";N;s:4:\"date\";s:19:\"2026-03-06 08:00:00\";s:8:\"end_date\";s:19:\"2026-03-06 08:00:00\";s:20:\"start_unix_timestamp\";i:1772780400;s:18:\"end_unix_timestamp\";i:1772780400;s:8:\"location\";a:4:{s:8:\"location\";s:12:\"Nice, France\";s:7:\"country\";s:2:\"FR\";s:8:\"latitude\";d:43.6945679;s:9:\"longitude\";d:7.2831987;}}i:1;a:10:{s:4:\"type\";s:6:\"meetup\";s:5:\"title\";s:47:\"#107 WordPress-Updates eine Übersicht zu viert\";s:3:\"url\";s:55:\"https://www.meetup.com/wordpress-bern/events/313116472/\";s:6:\"meetup\";s:14:\"WordPress Bern\";s:10:\"meetup_url\";s:38:\"https://www.meetup.com/wordpress-bern/\";s:4:\"date\";s:19:\"2026-03-26 18:00:00\";s:8:\"end_date\";s:19:\"2026-03-26 20:00:00\";s:20:\"start_unix_timestamp\";i:1774544400;s:18:\"end_unix_timestamp\";i:1774551600;s:8:\"location\";a:4:{s:8:\"location\";s:17:\"Bern, Switzerland\";s:7:\"country\";s:2:\"ch\";s:8:\"latitude\";d:46.948257;s:9:\"longitude\";d:7.442258;}}i:2;a:10:{s:4:\"type\";s:8:\"wordcamp\";s:5:\"title\";s:20:\"WordCamp Torino 2026\";s:3:\"url\";s:33:\"https://torino.wordcamp.org/2026/\";s:6:\"meetup\";N;s:10:\"meetup_url\";N;s:4:\"date\";s:19:\"2026-05-08 00:00:00\";s:8:\"end_date\";s:19:\"2026-05-09 00:00:00\";s:20:\"start_unix_timestamp\";i:1778191200;s:18:\"end_unix_timestamp\";i:1778277600;s:8:\"location\";a:4:{s:8:\"location\";s:13:\"Torino, Italy\";s:7:\"country\";s:2:\"IT\";s:8:\"latitude\";d:45.0501866;s:9:\"longitude\";d:7.6688509;}}i:3;a:10:{s:4:\"type\";s:8:\"wordcamp\";s:5:\"title\";s:22:\"WordCamp Mannheim 2026\";s:3:\"url\";s:35:\"https://mannheim.wordcamp.org/2026/\";s:6:\"meetup\";N;s:10:\"meetup_url\";N;s:4:\"date\";s:19:\"2026-07-03 00:00:00\";s:8:\"end_date\";s:19:\"2026-07-04 00:00:00\";s:20:\"start_unix_timestamp\";i:1783029600;s:18:\"end_unix_timestamp\";i:1783116000;s:8:\"location\";a:4:{s:8:\"location\";s:17:\"Mannheim, Germany\";s:7:\"country\";s:2:\"DE\";s:8:\"latitude\";d:49.4820104;s:9:\"longitude\";d:8.4674385;}}}}','off'),(140,'_site_transient_timeout_feed_9bbd59226dc36b9b26cd43f15694c5c3','1770080720','off'),(141,'_site_transient_feed_9bbd59226dc36b9b26cd43f15694c5c3','a:6:{s:5:\"child\";a:1:{s:0:\"\";a:1:{s:3:\"rss\";a:1:{i:0;a:6:{s:4:\"data\";s:3:\"\n\n\n\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:7:\"version\";s:3:\"2.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:1:{s:7:\"channel\";a:1:{i:0;a:6:{s:4:\"data\";s:52:\"\n \n \n \n \n \n \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:8:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"WordPress News\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:26:\"https://wordpress.org/news\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:59:\"The latest news about WordPress and the WordPress community\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:13:\"lastBuildDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 30 Jan 2026 21:13: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:8:\"language\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"en-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:9:\"generator\";a:1:{i:0;a:5:{s:4:\"data\";s:40:\"https://wordpress.org/?v=7.0-alpha-61576\";s: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:\"image\";a:1:{i:0;a:6:{s:4:\"data\";s:11:\"\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:3:\"url\";a:1:{i:0;a:5:{s:4:\"data\";s:29:\"https://s.w.org/favicon.ico?2\";s: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:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"WordPress News\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:26:\"https://wordpress.org/news\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:5:\"width\";a:1:{i:0;a:5:{s:4:\"data\";s:2:\"32\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:6:\"height\";a:1:{i:0;a:5:{s:4:\"data\";s:2:\"32\";s: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:\"item\";a:10:{i:0;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:\"New AI Agent Skill for WordPress\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:54:\"https://wordpress.org/news/2026/01/new-ai-agent-skill/\";s: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, 30 Jan 2026 17:13: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:8:\"category\";a:2:{i:0;a:5:{s:4:\"data\";s:11:\"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:\"\";}i:1;a:5:{s:4:\"data\";s:11:\"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:35:\"https://wordpress.org/news/?p=19798\";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:338:\"Faster Way For AI Agents To Test AI code agents are getting better at writing WordPress plugins and themes, but testing can still be the slow part. WordPress contributor Brandon Payton has published wp-playground, a new AI agent skill designed to run WordPress via the Playground CLI, giving agents a fast, repeatable way to run […]\";s: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:5989:\"\n

Faster Way For AI Agents To Test

\n\n\n\n

AI code agents are getting better at writing WordPress plugins and themes, but testing can still be the slow part. WordPress contributor Brandon Payton has published wp-playground, a new AI agent skill designed to run WordPress via the Playground CLI, giving agents a fast, repeatable way to run WordPress and verify their work as they iterate.

\n\n\n\n
\n

“AI agents work better when they have a clear feedback loop. That’s why I made the wp-playground skill. It gives agents an easy way to test WordPress code and makes building and experimenting with WordPress a lot more accessible.”

\n\n\n\n

— Brandon Payton, WordPress Contributor

\n
\n\n\n\n

What the Playground skill does

\n\n\n\n

When launched, the skill starts WordPress and detects where the current code should live inside a WordPress install. For example, it can mount a plugin into wp-content/plugins or a theme into wp-content/themes by recognizing common file signatures (such as plugin headers or a theme’s style.css). This helps agents move from “generated code” to “running site” with fewer manual steps.

\n\n\n\n
\n

Install and try it today.

\n\n\n\n

Find more information on this GitHub link:

\n\n\n\n\n
\n\n\n\n

Early results and testing workflow

\n\n\n\n

In testing, agents were able to start WordPress, build playful plugins, and validate behavior in a tight feedback loop. Once Playground was running, the agent alternated between tools such as curl and Playwright to interact with WordPress, verify results, apply fixes when needed, and then re-verify with Playground.

\n\n\n\n

Faster startup and smoother iteration

\n\n\n\n

Helper scripts handle startup and shutdown, so an agent doesn’t waste time guessing when WordPress is ready. Using helper scripts reduced the “ready to test” moment from roughly a minute to a few seconds on the author’s machine. The Playground CLI can also log in automatically for easier WP-Admin access during testing.

\n\n\n\n

Install and try it now

\n\n\n\n

For those who want to try it in Claude Code, Codex, or another AI agent, installation requires Node.js and npm and looks like this:

\n\n\n\n

# Run this in a project directory to install the skills for that project 
npx openskills install WordPress/agent-skills

# Make skills available to non-Claude agents
npx openskills sync

\n\n\n\n

A new repo for WordPress agent skills

\n\n\n\n

This release also comes with a new home for this kind of work:
https://github.com/WordPress/agent-skills

\n\n\n\n

It’s an early step in exploring how AI agents can collaborate with WordPress tooling, and contributions from the community are welcome. Future additions being explored include persistent Playground sites based on the current directory, running commands against an existing Playground instance (including wp-cli), and Blueprint generation.

\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:\"19798\";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: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:29:\"Be Part of WordCamp Asia 2026\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:54:\"https://wordpress.org/news/2026/01/wordcamp-asia-2026/\";s: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, 21 Jan 2026 12:07: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: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=19738\";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:333:\"WordCamp Asia is back in 2026, this time in Mumbai, India, and it’s building on a year that showed just how ambitious and connected the WordPress community has become. Now is the time to get involved. Get your ticket, explore sponsorship opportunities, and help spread the word. In 2025, more than 1,400 attendees from 71 […]\";s: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:\"Nicholas Garofalo\";s: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:36121:\"\n

WordCamp Asia is back in 2026, this time in Mumbai, India, and it’s building on a year that showed just how ambitious and connected the WordPress community has become. Now is the time to get involved. Get your ticket, explore sponsorship opportunities, and help spread the word.

\n\n\n\n\n\n\n\n

In 2025, more than 1,400 attendees from 71 countries gathered in person, with nearly 15,000 more joining online for WordCamp Asia 2025. With notable guests like WordPress Co-founder Matt Mullenweg and Gutenberg Lead Architect Matías Ventura, and a diverse lineup of speakers and panelists from across the ecosystem, WordCamp Asia 2025 brought together a community actively shaping the future of the open web.

\n\n\n\n
\n

It’s the people. It’s the friendships and the stories.

\n\n\n\n

Matt Mullenweg, WordPress Cofounder

\n
\n\n\n\n

WordCamp isn’t just about sessions and schedules. It’s about connection. It’s about learning directly from people who are building, scaling, and sustaining WordPress in the real world. It’s about sharing ideas, debating the future of the open web, and leaving with renewed energy for the work ahead. And in 2026, that spirit returns stronger than ever.

\n\n\n\n\n\n\n\n

Tickets for WordCamp Asia 2026 are on sale now, and this is the moment to secure your spot. WordCamps are intentionally priced to remain accessible, and early ticket sales help organizers plan an inclusive, high-quality experience for everyone.

\n\n\n\n
\"\"
\n

Join 3,000+ Web Professionals

\n\n\n\n

April 9 – 11, 2026 | Jio World Convention Centre, Mumbai, India

\n\n\n\n\n
\n\n\n\n

WordCamp Asia is also made possible by the organizations that step up to support it. Sponsorship plays a critical role in keeping the event accessible, supporting contributors and volunteers, and ensuring the experience reflects the values of the WordPress project. For sponsors, WordCamp Asia 2026 offers a rare opportunity to connect with a highly engaged, global audience in a setting built on trust, collaboration, and shared purpose.

\n\n\n\n

Sponsorship packages are designed to support a wide range of organizations, from local companies to global businesses building products and services on WordPress. Beyond visibility, sponsors become part of the story—helping sustain the ecosystem and invest directly in the community that makes WordPress possible.

\n\n\n\n
\n
\n
\n\n
\n
\n\n\n\n

If your company is interested in becoming a sponsor or you would like to know more, please reach out.

\n\n\n\n\n
\n\n\n\n

At every level, WordCamp Asia is powered by people. Organizers, volunteers, speakers, sponsors, and attendees all contribute to an experience that reflects WordPress’s shared values of openness and collaboration. It’s a place where new voices are welcomed, long-time contributors reconnect, and ideas move from conversation to action.

\n\n\n\n\n\n\n\n

WordCamp Asia 2026 is more than an event—it’s a moment to come together, reflect on where we are, and help shape what comes next. Whether you’re attending for the first time, returning for another year, or supporting the event as a sponsor, your involvement helps strengthen the WordPress ecosystem and the global community behind it.

\n\n\n\n

We’ll see you in Mumbai.

\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:\"19738\";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:43:\"A New Home for WordPress Education Programs\";s: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://wordpress.org/news/2026/01/wordpress-education-programs-new-home/\";s: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, 20 Jan 2026 17:14: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: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:7:\"Updates\";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:9:\"Education\";s: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=19636\";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:392:\"Over the past few weeks, a new space has taken shape on WordPress.org for students who want to learn, build, and contribute. WordPress Education programs bring together initiatives that help students enter the WordPress ecosystem through clear, accessible entry points that lead to real-world practice. With hands-on initiatives and supportive communities, participants can grow new […]\";s: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:17688:\"\n

Over the past few weeks, a new space has taken shape on WordPress.org for students who want to learn, build, and contribute. WordPress Education programs bring together initiatives that help students enter the WordPress ecosystem through clear, accessible entry points that lead to real-world practice.

\n\n\n\n

With hands-on initiatives and supportive communities, participants can grow new skills and take their first steps as contributors. Across campuses and communities worldwide, learners publish real projects, build practical experience, and gain confidence as part of open source creation.

\n\n\n\n
\"\"
CC0 licensed photo by Virendra Kumar Yadav from the WordPress Photo Directory.
\n\n\n\n

A clearer path into the WordPress ecosystem

\n\n\n\n

WordPress Education is designed to help students turn knowledge into practice, discover their strengths, and understand how their contributions can make a real impact through three core programs: WordPress Campus Connect, WordPress Credits, and WordPress Student Clubs.

\n\n\n\n

Through hands-on campus events, such as WordPress Campus Connect, on-campus groups like WordPress Student Clubs, and a practice-based program called WordPress Credits, participants can gain practical experience, publish real-world projects, and build confidence as contributors to a global culture of open-source creation.

\n\n\n\n

At its heart, these WordPress education programs are about three simple ideas:

\n\n\n\n

Learn. Build. Connect.

\n\n\n\n

This update brings WordPress education programs together in one place, with an easy way to explore initiatives, understand how they work, and take the next step.

\n\n\n\n

You will find:

\n\n\n\n
    \n
  • A home for WordPress Education programs and updates
  • \n\n\n\n
  • Clear “how to get involved” paths for students, educators, mentors, organizers, and sponsors
  • \n\n\n\n
  • Stories, highlights, and examples of real projects created through the programs
  • \n\n\n\n
  • Links to the Education Handbook for program guidelines and resources
  • \n
\n\n\n\n
\n

Want to learn more about WordPress education opportunities?

\n\n\n\n\n\n\n\n

You can also view more information from the WordPress Community Education Programs Handbook. Learn how this serves as a central guide and resource for all community-driven educational initiatives.

\n
\n\n\n\n
\n
\n

WordPress
Campus Connect

\n\n\n\n

WordPress Campus Connect is a growing global learning initiative that brings hands-on WordPress learning directly to the students on their campus.

\n\n\n\n

The organizers can come from within educational institutions or from the local communities to help deliver WordPress programming and create the future stewards of WordPress.

Learn more: https://wordpress.org/education/campus-connect/

\n
\n\n\n\n
\n

WordPress
Credits

\n\n\n\n

WordPress Credits is a contribution-based program by the WordPress Foundation that connects higher education students with the global WordPress community.

\n\n\n\n

Educational institutions partner with the WordPress Foundation to offer students credits toward their degrees for contributing 150 hours to the WordPress project.

Learn more: https://wordpress.org/education/credits/

\n
\n\n\n\n
\n

WordPress
Student Clubs

\n\n\n\n

WordPress Student Clubs empower students to build on-campus WordPress communities that keep learning going throughout the year.

\n\n\n\n

In the spirit of our local community meetups, these groups operate as on-campus equivalents, keeping students engaged and connected with their local WordPress communities.

Learn more: https://wordpress.org/education/student-clubs/

\n
\n
\n\n\n\n

Support This Growing Movement

\n\n\n\n

Help spread the word, and let friends, students, and others know how they can contribute to this growing effort, including a widely expanding translation effort. WordPress Education has already been translated into 10 new languages. WordPress Education is powered by people who believe in open learning and the power of collaboration.

\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:\"19636\";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: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:58:\"WordPress Playground Brings Speed, Stability, and Momentum\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:81:\"https://wordpress.org/news/2026/01/wordpress-playground-speed-stability-momentum/\";s: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, 15 Jan 2026 16:53: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: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=19673\";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:399:\"WordPress Playground had a busy year in 2025, with updates that make it more capable for day-to-day development, plugin previews, and learning environments. The project’s latest year-in-review highlights progress across performance, compatibility, database support, and tooling, expanding what can be done in a WordPress environment that runs in the browser and through the command line. […]\";s: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:12643:\"\n

WordPress Playground had a busy year in 2025, with updates that make it more capable for day-to-day development, plugin previews, and learning environments. The project’s latest year-in-review highlights progress across performance, compatibility, database support, and tooling, expanding what can be done in a WordPress environment that runs in the browser and through the command line.

\n\n\n\n

From faster load times to broader plugin support, the throughline is clear: Playground is moving beyond quick demos and into workflows that help developers and educators test, iterate, and share WordPress experiences more easily.

\n\n\n\n\n\n\n\n
\"\"
\n\n\n\n
\n\n\n\n
\n

Key Takeaways

\n\n\n\n
\n\n\n\n
    \n
  • Plugin previews are more reliable: 99% of the top 1,000 plugins can be installed and activated successfully, making demos and evaluations more trustworthy.
  • \n\n\n\n
  • Everything is faster: A performance upgrade reduced average response time by 42%, and further optimizations improved overall “time to first useful click.”
  • \n\n\n\n
  • Database tools work in browser: Improved database compatibility enabled tools like phpMyAdmin to be used directly on playground.wordpress.net.
    More practical tooling for real work: Testing configurations and previewing changes can happen in one place, without a complete local environment first.
  • \n\n\n\n
  • New visual gallery of blueprints: A new visual gallery of blueprints provides excellent starting points for various types of sites.
  • \n\n\n\n
  • Global adoption: Playground was used 1.4 million times globally, with growing documentation translations and community contributions.
  • \n
\n
\n\n\n\n

Reliable Plugin Previews and Experimentation

\n\n\n\n

A headline update from 2025 is the focus on compatibility. In testing with the top 1,000 plugins from the WordPress plugin directory, 99% installed and activated successfully. That matters because it raises confidence in what Playground is best known for: letting people try things quickly, without a complex setup, and with fewer surprises.

\n\n\n\n

This highlighted that Playground is increasingly useful as a general-purpose PHP sandbox. Alongside WordPress, it can support standard PHP tools and projects, which makes it easier to explore how WordPress fits into broader development workflows and to share reproducible environments with others.

\n\n\n\n

If you try something new and unexpected in Playground, the update encourages you to share what you learn in the #playground Slack channel, so the community can build a clearer picture of what works well today and what is improving next.

\n\n\n\n

Faster Load Times

\n\n\n\n

Speed was a central theme in 2025. A recent year-in-review report revealed a 42% reduction in average response time, and this is not just a single change. A series of improvements make Playground feel quicker in the moments people notice most, such as loading WordPress, opening wp-admin, and switching between tasks.

\n\n\n\n

Several behind-the-scenes updates were described in plain terms as “less waiting”: checks happen earlier, parts of the experience load in a smarter order, and more content is reused from cache, so repeat actions are snappier.

\n\n\n\n

For people using Playground to review a plugin, validate a bug fix, or teach a class, these improvements mean the same thing: faster feedback loops, with fewer pauses that break concentration.

\n\n\n\n

Better Tooling and Compatibility

\n\n\n\n

In 2025, Playground also became more “toolbox-like” in the browser. The update highlighted features that reduce context switching, such as editing files on the page, building and testing starter configurations (Blueprints) in a dedicated editor, and launching database tools such as phpMyAdmin and Adminer with a single click.

\n\n\n\n

On the database side, a significant compatibility upgrade was introduced to improve support for more complex database behavior. The practical outcome is that more WordPress sites and plugins behave as expected in Playground, and more developer tools can run inside the environment.

\n\n\n\n

Blueprints also advanced in ways that benefit both builders and sharers. The updates focus on making starter setups easier to create, browse, and reuse, especially when a demo requires content, media, or a specific configuration that should launch consistently.

\n\n\n\n

One of the clearest ways to see that progress is the WordPress Blueprints Gallery, a community library of ready-to-launch WordPress environments. From practical “building block” examples (such as starting with a specific login role) to demos that automatically install themes and plugins, to richer setups that generate posts and featured images via WP-CLI, the gallery demonstrates how quickly an idea can become a fully functional site that you can browse and share.

\n\n\n\n

Examples:

\n\n\n\n
\n
\n
\"\"
\n
\n\n\n\n
\n
\"\"
\n
\n\n\n\n
\n
\"\"
\n
\n
\n\n\n\n

For anyone who wants to experience the power of WordPress without the setup, the gallery serves as a strong reminder of what Playground makes possible: shareable, repeatable site experiences that work the same way every time — ideal for demos, workshops, testing, and “try it now” links. 

\n\n\n\n

Clear adoption signals back all of this. The review reports 1.4 million uses globally, documentation translations in multiple languages, and growing integration across the plugin directory through Playground-powered previews. It also points to a steady increase in community contribution, from documentation and support to talks and real-world workflows built on top of Playground.

A huge thank you to everyone who tried Playground over the past year,  whether you launched a quick demo, tested a change, taught a workshop, or helped make the documentation more accessible in your language. And if there’s anything that would make Playground even more helpful for your day-to-day work, the project actively welcomes ideas and feature requests via the WordPress Playground GitHub issues tracker.

\n\n\n\n

Looking Ahead

\n\n\n\n

As we closed out 2025 and now look forward to 2026, we can see several forward-looking initiatives, including work on MySQL binary protocol support (to enhance broader compatibility with MySQL tools) and continued exploration of debugging enhancements, such as expanded XDebug access.

\n\n\n\n

For anyone who last tried Playground as a quick demo environment, 2025’s updates suggested a shift in direction: Playground is increasingly positioned as a practical layer for testing, teaching, previewing, and reviewing WordPress, both in the browser and in local workflows.

\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:\"19673\";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: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:40:\"2026 Global Partner Program Announcement\";s: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:63:\"https://wordpress.org/news/2025/12/2026-global-partner-program/\";s: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, 10 Dec 2025 17:16:48 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s: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=19534\";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:412:\"Become a driving force behind WordPress innovation by joining the Global Community Sponsorship Program: a comprehensive initiative that supports the events and people powering our open source mission. As a Global Sponsor, your organization gains meaningful visibility across the international WordPress ecosystem while helping to fund events that foster growth, collaboration, and community. Why Choose […]\";s: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:\"Harmony Romo\";s: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:11677:\"\n

Become a driving force behind WordPress innovation by joining the Global Community Sponsorship Program: a comprehensive initiative that supports the events and people powering our open source mission. As a Global Sponsor, your organization gains meaningful visibility across the international WordPress ecosystem while helping to fund events that foster growth, collaboration, and community.

\n\n\n\n
\"\"
\n\n\n\n

Why Choose Global Sponsorship?

\n\n\n\n

Instead of managing multiple individual sponsorships, this streamlined program consolidates your efforts into one efficient and impactful partnership.

\n\n\n\n

Efficiency and Simplified Administration

\n\n\n\n

Skip the complexity of coordinating invoice payments with numerous volunteer teams. Our centralized approach saves time and resources. In 2026, sponsors will benefit from:

\n\n\n\n
    \n
  • A dedicated Slack channel for direct communication with the WordPress Community Support team and Community Program Managers
  • \n\n\n\n
  • Monthly updates listing upcoming WordPress events, their current planning stages, and scheduled dates
  • \n
\n\n\n\n

Expanded Reach and Impact

\n\n\n\n

Your sponsorship amplifies your presence worldwide, ensuring consistent visibility across global WordPress community events.

\n\n\n\n

Stability and Reliability

\n\n\n\n

Your commitment strengthens locally organized events by providing predictable funding that supports venues, logistics, and growth.

\n\n\n\n

Flexible Branding Options

\n\n\n\n

Adapt across your portfolio—Global Sponsors can represent different brands at different events (subject to approval and advance notice).

\n\n\n\n

Program Benefits

\n\n\n\n
Global LeaderRegional PowerhouseCommunity Builder




Best for:
Established brands seeking global reach and year-round visibility.Companies aiming for regional dominance and strong brand recognition.Organizations supporting the next generation of WordPress education.
Sponsorship payable in full or through quarterly installments$180,000$110,000$60,000
Top tier sponsorship benefits at all local WordCamp events (excludes flagships) with priority access to claim a sponsor table at in-person WordPress events\"✔\"
Option to feature multiple brands across events\"✔\"
Dedicated sponsor landing page\"✔\"\"✔\"
Complimentary WordPress event tickets for your team\"✔\"\"✔\"
Recognition across all WordPress events\"✔\"\"✔\"
Sponsor Spotlight post on WordPress.org/news featuring highlights from recent WordCampsQuarterlyAnnually
Inclusion of your company logo in signage and materials for WordPress Campus Connect eventsAll signage & materials for the year (digital and printed)Signage & materials for 5 events per year (printed only)All signage & materials for the year (digital and printed)
Opportunity to be featured in an exclusive digital binder for WordPress Campus Connect event organizersPriority placement (logos & text)Feature listing (text only)Feature listing (text only)
Regular recognition in monthly education buzz report\"✔\"
\n\n\n\n

How Sponsorship Funds Are Used

\n\n\n\n

Global Sponsorship funds directly support:

\n\n\n\n
    \n
  • Local WordPress events worldwide (venue rental, catering, A/V, and more)
  • \n\n\n\n
  • Meetup.com license fees for over 671 WordPress Meetup groups globally
  • \n\n\n\n
  • Administrative costs like insurance, banking, and annual financial audits that ensure transparent operations
  • \n
\n\n\n\n

Your partnership helps sustain the community that powers more than 43% of the web. Together, we can keep the WordPress project thriving and expanding for years to come.

\n\n\n\n
\n

If your company is interested in joining the Global Sponsorship program or you would like to know more, please reach out.

\n\n\n\n\n\n\n\n
\n\n\n\n

Please see Rules for Sponsor Materials for more details about terms of sponsorship. Please also see our sample sponsorship agreement.

\n
\n\n\n\n

If you’d like to go one step further, please consider donating directly to the WordPress Foundation. We operate lean—every dollar goes toward keeping WordPress free, supporting education, and funding the community that makes the web a better place. In short, your donation helps us keep the lights on and the mission alive.

\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:\"19534\";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:65:\"\n \n \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:7:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:54:\"State of the Word 2025: Innovation Shaped by Community\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:45:\"https://wordpress.org/news/2025/12/sotw-2025/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 03 Dec 2025 18:26: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: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:\"\";}i:2;a:5:{s:4:\"data\";s:17:\"state of the word\";s: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=19447\";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:354:\"State of the Word 2025 brought the WordPress community together for an afternoon that felt both reflective and forward-moving, blending stories of global growth with technical milestones and glimpses of the future. This year also marked the twentieth State of the Word since the first address in 2006, a milestone noted in the WordPress history […]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:9:\"enclosure\";a:2:{i:0;a:5:{s:4:\"data\";s:0:\"\";s:7:\"attribs\";a:1:{s:0:\"\";a:3:{s:3:\"url\";s:59:\"https://wordpress.org/news/files/2025/12/Telex-demo-776.mp4\";s:6:\"length\";s:8:\"29136831\";s:4:\"type\";s:9:\"video/mp4\";}}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:0:\"\";s:7:\"attribs\";a:1:{s:0:\"\";a:3:{s:3:\"url\";s:53:\"https://wordpress.org/news/files/2025/12/wapu-513.mp4\";s:6:\"length\";s:9:\"102323371\";s:4:\"type\";s:9:\"video/mp4\";}}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:\"Nicholas Garofalo\";s: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:37924:\"\n
\n\n
\n\n\n\n

State of the Word 2025 brought the WordPress community together for an afternoon that felt both reflective and forward-moving, blending stories of global growth with technical milestones and glimpses of the future. This year also marked the twentieth State of the Word since the first address in 2006, a milestone noted in the WordPress history book Milestones: The Story of WordPress as the beginning of a tradition that has helped the project tell its own story.

\n\n\n\n

From the outset, the keynote carried a sense of momentum shaped by thousands of contributors, educators, students, and creators whose steady participation continues to define the open web. It was a reminder that WordPress is more than software. It is a community writing its future together.

\n\n\n\n
\n

What we have is more than code. It’s momentum, it’s culture, and it’s a system that lets people learn by doing and lead by showing up.  — Mary Hubbard, WordPress Executive Director

\n
\n\n\n\n

Mary opened the evening by reflecting on her first full year as Executive Director, a year spent listening deeply and seeing firsthand how people across regions learn, contribute, and lead. Her remarks grounded the keynote in the lived reality of a community that grows because people invest in one another, teach openly, and build trust through contribution.

\n\n\n\n
\n

I’ve met people using WordPress to unlock new careers. I’ve met contributors who started a single translation or forum post and are now leading major pieces of the project. In LatAm, Europe, and the States, I’ve seen students get access to WordPress tools and start building faster than we could have ever imagined. I’ve watched communities build in public, resolve disagreements in the open, and collaborate across languages and time zones.

\n
\n\n\n\n

That reflection offered a clear reminder of what makes WordPress resilient through change: a culture of showing up, learning by doing, and supporting others along the way. The project moves forward because people choose to participate in ways both large and small, strengthening the foundation that has carried WordPress for more than two decades.

\n\n\n\n

With that foundation in place, the keynote moved through a series of stories and demonstrations that highlighted where WordPress stands today and where it is headed next — from a historic live release of WordPress 6.9 to expanding global education pathways, emerging AI capabilities, and deeper collaboration across the entire ecosystem.

\n\n\n\n

WordPress by the Numbers

\n\n\n\n

Project Cofounder Matt Mullenweg began with a wide-angle view of the project’s growth. WordPress powers over 43% of the web, with 60.5% of the CMS market. Shopify, its nearest competitor, holds 6.8%. Among the top 1,000 websites, WordPress’s share climbed to 49.4%, up 2.3% from the previous year.

\n\n\n\n
\"Globe
\n\n\n\n

Multilingual usage continued its strong rise. Over 56% of WordPress sites now run in languages other than English. Japan stood out, with WordPress powering 58.5% of all Japanese websites and 83% of the CMS market. Japanese became the second most-used language on WordPress at 5.82%. Spanish followed, then German, French, and Brazilian Portuguese.

\n\n\n\n

The plugin ecosystem saw explosive growth. The directory surpassed 60,000 plugins, and plugin downloads were on pace to reach 2.1 billion by year-end. Over 1,500 themes have been released this year as well.

\n\n\n\n

Contributors also hit new highs. The 6.8 release included 921 contributors, the largest group yet. WordPress 6.8 saw 79.5 million downloads, up 13%, and WordPress 6.9 included contributions from 230 first-time contributors and more than 340 enhancements and fixes.

\n\n\n\n

A Release Moment to Remember

\n\n\n\n

This year’s keynote delivered something WordPress had never attempted before: a live on-stage release of WordPress 6.9.

\n\n\n\n
\"WordPress
\n\n\n\n

Mary set the moment up earlier in the program, calling WordPress 6.9 “fast, polished, and built for collaboration.” She explained that it reflected a year of intentional iteration, improved workflows, and deeper cross-team participation. 

\n\n\n\n

Matt took the stage with some of the release leads, the release button in hand. The room counted down, and then WordPress 6.9 shipped live, instantly updating millions of sites around the world. It was both a celebration and a testament to the reliability and trust the WordPress community has built into its release processes. Shipping a major version of WordPress in real time, on stage, without drama, is something the early contributors could hardly have imagined.

\n\n\n\n
\"Photo
\n\n\n\n

That reflection connected back to WordPress’s origin story. Matt talked about discovering the B2 forums, asking questions, and eventually reaching the point where he could answer someone else’s. That transition from learner to contributor remains at the heart of the project today. Two decades later, WordPress has grown from those early interactions into a platform that can ship a major release in front of the world, powered by thousands of contributors building together.

\n\n\n\n

WordPress and the Future of AI

\n\n\n\n

As the keynote shifted toward the future, Matt acknowledged what has become an essential truth of the moment: it would be impossible to talk about the next chapter of WordPress without talking about AI. He reminded the audience that in 2022, long before ChatGPT entered global conversation, he encouraged the community to “learn AI deeply.” The speed of change since then, he said, has exceeded every expectation, and WordPress has been preparing for it in ways both visible and behind the scenes.

\n\n\n\n
\"Timeline
\n\n\n\n

Matt introduced one of the most important architectural developments of the year: the Abilities API and the MCP adapter. The Abilities API defines what WordPress can do in a structured way that AI systems can interpret, while the MCP adapter exposes those abilities through a shared protocol. This means AI agents — whether built by individuals, companies, or larger platforms — can understand and interact with WordPress safely and predictably. Instead of relying on one-off integrations or brittle interfaces, WordPress now participates in a broader ecosystem of tools that can query its capabilities and perform tasks using a standard, governed approach.

\n\n\n\n

Matt then highlighted how developers are already using AI in their everyday work through tools like Cursor, Claude Code, and next-generation CLIs. These tools can explore entire codebases, generate documentation, produce tests, refactor large components, and even coordinate sequences of WP-CLI commands. For many developers, they expand what a single person can accomplish in an afternoon. They don’t eliminate the need for human judgment — they amplify it.

\n\n\n\n

With that foundation laid, Matt turned the audience’s attention to Telex, the experimental environment designed to turn natural-language prompts into Gutenberg Blocks. Telex has already moved beyond experimentation and into real use. Matt showed examples from community creator Nick Hamze, who uses Telex to power micro-business tools that represent practical, revenue-generating workflows that previously required custom engineering.

\n\n\n\n
\n\n\n\n

Matt then widened the lens to show what companies across the ecosystem are building with AI. Hostinger’s Kodee can generate a complete WordPress site from a single description. Elementor AI demonstrated similarly rapid creation inside its own editor, producing full sections and layouts in seconds. WordPress.com showcased how its AI tools help users draft, rewrite, and refine content while keeping language aligned with the site’s voice. Yoast demonstrated how AI can support SEO workflows by generating structured suggestions and improving readability. Together, these examples illustrated that AI is not arriving in one place — it is arriving everywhere.

\n\n\n\n

Experimental browsers can navigate WP Admin autonomously, performing tasks such as clicking buttons, opening menus, changing settings, and performing multi-step tasks without requiring any custom plugins or APIs. This raised a key question that Matt encouraged the community to consider: Which AI capabilities should live inside WordPress itself, and which should remain external, operating through the browser or operating system?

\n\n\n\n

Matt closed the section by discussing WordPress-specific AI benchmarks and evaluation suites. These shared tests will measure how well AI systems understand and execute WordPress tasks, from enabling plugins to navigating WP Admin to modifying content and settings. The goal is to create a foundation where future AI tools behave predictably and responsibly across the entire ecosystem, giving creators confidence that intelligent tools understand the platform deeply.

\n\n\n\n

A Global Community Growing Together

\n\n\n\n

Mary then returned to the stage to celebrate the ecosystem that supports WordPress’s growth. Across continents, diverse groups of people have hosted WordPress events, training new contributors and welcoming newcomers into the project. WordCamp growth in 2025 reflected that: more than 81 WordCamps across 39 countries, powered by over 5,000 volunteers and attended by nearly 100,000 people, with sixteen more events still underway.

\n\n\n\n
\"\"
\n\n\n\n

Education played a major role in this community expansion. Learn.WordPress.org served over 1.5 million learners this year, with clearer pathways into more structured programs like Campus Connect and WordPress Credits. This bridging was deliberate. Many learners arrive through tutorials or workshops but need clearer guidance on how to deepen their skills. By reshaping navigation and improving wayfinding across WordPress.org, the project began closing that gap.

\n\n\n\n

She spotlighted Costa Rica’s Universidad Fidélitas, where WordPress moved beyond extracurricular interest into formal academic integration. Long before signing an agreement with the WordPress Foundation, their students were hosting WordCamp San José, forming student clubs, and treating WordPress as a crucial part of digital literacy and professional development.

\n\n\n\n
\"\"
Students of the WordPress Fidélitas Club
\n\n\n\n

Wapuu appeared across events as a familiar companion and a cultural thread running through contributor tools and community projects. Its presence was a reminder that creativity and playfulness are as essential to open source as documentation or code.

\n\n\n\n
\"Various
\n\n\n\n

Matt highlighted the story of Youth Day in Managua, Nicaragua. Seventy-five young people spent a full day building their first WordPress sites. Sessions were taught by teenagers, for teenagers. They learned to pick themes, customize layouts, create contact forms, and publish content. Contribution often starts with a simple moment of confidence, and those early sparks can shape entire careers.

\n\n\n\n
\n\n\n\n

Together, these moments illustrated a project expanding not just in numbers, but in depth, diversity, and global reach. WordPress is growing because communities are finding their own ways to embrace it.

\n\n\n\n

What’s New in WordPress 6.9

\n\n\n\n

Joining virtually, WordPress Lead Architect, Matías Ventura, shifted the keynote from vision to practice. Matías offered a detailed walkthrough of what makes WordPress 6.9 one of the most refined, collaborative, and forward-looking releases the project has shipped in years. He returned to the four familiar lenses of creation — writing, designing, building, and developing — and showed how each evolved in this release cycle.

\n\n\n\n

He began with notes in the Block Editor, one of the most anticipated features. Notes allow collaborators to comment directly on individual blocks in a post or page. When a note is selected, the surrounding content subtly fades, helping contributors stay focused on context. Because notes are built on WordPress’s native comment system, they integrate seamlessly with existing communication workflows, including email notifications. Matías highlighted that notes development exemplified collaboration at its best, with contributors from various companies working together to bring the feature to life.

\n\n\n\n
\n\n
\n\n\n\n

From there, he turned to refinements across the writing and design experience. Editor interactions feel smoother and more consistent. Patterns behave more predictably. Spacing and typography controls are clearer, more organized, and more intuitive. Together these capabilioties make the experience of writing and designing inside WordPress calmer, more reliable, and more empowering.

\n\n\n\n

Block bindings now provide a more intuitive, visual way to connect blocks to dynamic data sources. Users can switch or remove bindings with a single click, and developers can register additional sources to support custom workflows. This work lays the foundation for a future where dynamic data flows more naturally through blocks, enabling site creators to build richer interfaces without writing code.

\n\n\n\n

On the developer front, Matías focused on three foundational upgrades that represent major steps forward in how WordPress will evolve over the coming years.

\n\n\n\n
    \n
  • The first was the Abilities API, a unified registry that describes what WordPress can do — across PHP, REST endpoints, the command palette, and future AI-driven interactions.
  • \n\n\n\n
  • The HTML API introduces new ways of working with and modifying HTML server-side. The API ensures safer, more reliable handling, lowering the barrier for theme and block developers who work with dynamic or structured markup.
  • \n\n\n\n
  • The Interactivity API delivers smoother, faster interactions without requiring heavy JavaScript frameworks. Improved routing, better state management, and clearer conventions help developers create rich, modern interfaces without leaving the WordPress philosophy of simplicity and flexibility.
  • \n
\n\n\n\n

After Matías wrapped his presentation, Matt stepped back in to highlight several developments that build on the foundations of 6.9 and strengthen the overall WordPress ecosystem. He pointed first to the Plugin Check Plugin, a tool designed to help developers align with current WordPress standards and catch common issues early, making plugins more reliable for users and easier to maintain over time. Matt then spoke about ongoing progress in Data Liberation, noting improvements to the WordPress importer that make it easier for people to bring their content into WordPress without disruption or loss, an important step toward ensuring the open web remains portable and resilient. He also highlighted advances across the Playground ecosystem, including WordPress Studio, the Playground CLI, and an expanding set of Blueprints. These allow developers and learners to spin up complete WordPress environments in seconds, test ideas, and experiment without servers or configuration. Matt closed this portion by emphasizing work on safer updates, which help WordPress avoid partial installs and ensure that updates complete smoothly even in less predictable hosting conditions, reinforcing WordPress’s commitment to stability as the platform continues to grow.

\n\n\n\n

Matt emphasized that WordPress 6.9 is not defined by any single headline feature, but by a broad spectrum of refinements across the entire experience. It is a release that deepens reliability, expands capability, and sets the stage for future innovation.

\n\n\n\n

Insights from the AI Panel

\n\n\n\n

The keynote transitioned into a live AI panel moderated by Mary Hubbard. The panel brought together four perspectives from across the ecosystem: James LePage (Automattic), Felix Arntz (Google), and Jeff Paul (Fueled, FKA 10up), and Matt Mullenweg. Their conversation touched on the philosophy, practice, and future of AI inside WordPress — not as a distant trend, but as an active part of the project’s evolution.

\n\n\n\n

A central theme was AI’s ability to amplify human creativity. James LePage put it plainly:

\n\n\n\n
\n

It’s not that we’re going to just add sparkle buttons everywhere. We’re going to do some crazy stuff here — things we’re going to build into the way you interact with creating content, with expressing yourself digitally. We want to give you more power, more control, and make you more effective at creating.

\n
\n\n\n\n

Jeff Paul echoed this sentiment, emphasizing that AI should make developers more productive by handling repetitive work and freeing them to focus on higher-level decisions. Felix Arntz expanded the idea further, describing how Google sees AI as a way to make the web more accessible and intuitive, especially for new creators who may not have formal technical training.

\n\n\n\n
\"\"
From left to right: Mary Hubbard, Matt Mullenweg, Jeff Paul, Felix Arntz, James LePage
\n\n\n\n

Looking ahead, the panelists predicted deeper contextual integrations, AI-assisted debugging and scaffolding for developers, and workflows where agents can take on sequences of tasks while remaining directed by human decisions. They also highlighted the importance of standards, shared protocols, and privacy-focused design as essential components of WordPress’s long-term approach.

\n\n\n\n
\n

The next 20 years looks like WordPress remaining what it is today, which is the center of the open web.

\n
\n\n\n\n

The panel closed on a forward-looking but steady note. AI is accelerating, but WordPress is designing its foundations with flexibility and values that endure. The tools may change, but the commitment to openness, agency, and creative freedom remains the compass.

\n\n\n\n

Questions That Push Us Forward

\n\n\n\n

Matt introduced the Q&A as one of his favorite parts of State of the Word because it reveals what people are imagining, struggling with, or eager to build.

\n\n\n\n
\"Q&A\"
\n\n\n\n

The first question addressed the growing interconnectedness of today’s web. What happens, a participant asked, when a major provider like Cloudflare goes down? As tools and agents rely more heavily on external services, failures can cascade. Matt acknowledged that outages are increasingly visible, but also argued that each one strengthens the system.

\n\n\n\n
\n

“Every failure, every edge case, everything that you never imagined is just another opportunity to find that new edge case,” he said. Resilience is not avoidance of failure, but the ability to grow stronger after it.

\n
\n\n\n\n

Another question focused on the longevity of web content. With platforms shutting down or links breaking over time, how can creators ensure their work endures? Matt pointed to the Internet Archive as one of the great stabilizers of the open web. He highlighted a new plugin that automatically scans posts and replaces dead links with archived versions, helping preserve the historical fabric of the web even as individual services come and go.

\n\n\n\n

The next question turned to real-time collaboration inside WordPress. A participant asked how co-editing fits into the future of WordPress and how these tools might help creators work more confidently. Matt talked about how collaboration tools can support people who are just starting their creative journeys — whether they are entrepreneurs, students, or first-time site builders. He described real-time editing as part of a broader vision of WordPress “just doing the work for you” in high-pressure or early-stage creative moments.

\n\n\n\n

The final question considered long-term decision-making. Matt noted that predicting what will change is difficult, but identifying what will remain the same is much easier. For WordPress, he said, the invariant is clear: people will always want agency, openness, and the ability to publish on their own terms. These values guide decisions not only in the present, but across decades of future evolution.

\n\n\n\n

TBPN Podcast Appearance

\n\n\n\n
\n\n
\n\n\n\n

After the Q&A, the keynote shifted gears with a live crossover segment featuring TBPN (the Technology Business Programming Network), a tech-focused podcast. The segment introduced a lively, unscripted energy into the room.

\n\n\n\n

The hosts kicked things off by asking Matt what the “word of the year” should be. He chose “freedom”, connecting it directly to the core philosophy of open source. He described open source licenses as a kind of “bill of rights for software,” giving users inalienable rights that no company can revoke. In a world increasingly shaped by software platforms and digital ecosystems, these freedoms form the heart of what keeps the web open and accessible.

\n\n\n\n

Conversation then moved to Beeper, the multi-network messaging client. Asked whether Beeper aims to “tear down walled gardens,” Matt rejected that framing. Instead, he offered a more collaborative metaphor: bringing gardens together. Most people have friends and colleagues scattered across WhatsApp, Instagram, LinkedIn, Messenger, and SMS. Beeper doesn’t replace those apps — it brings messages together into a unified interface..

\n\n\n\n

The conversation eventually returned to publishing. Matt referenced the same principle he noted earlier: the importance of identifying what won’t change. For WordPress, he said, that means doubling down on freedom, agency, and the ability to publish without gatekeepers. Even as AI evolves, even as platforms shift, even as new tools emerge, these are the values that will guide the project forward.

\n\n\n\n

Building the Web We Believe In

\n\n\n\n

As the keynote drew to a close, Matt returned to a message that had threaded through every section of the evening. The future of WordPress is not arriving from outside forces — it is being crafted, questioned, tested, and expanded by the people who show up. Contributors, students, educators, community organizers, designers, developers, business owners, and first-time site builders all play a role in shaping the platform.

\n\n\n\n

He spoke about the opportunities ahead: new tools that expand what creators can build, collaborative features that make teamwork feel natural, and AI systems that enhance creativity rather than diminish it. Across continents, generations, and skill levels, people are discovering WordPress as a path to learning, empowerment, and expression.

\n\n\n\n

The values that brought the project this far remain the ones that will carry it forward: freedom, participation, learning, and community. These aren’t abstract principles. They are lived every day in the decisions contributors make, the ideas they pursue, and the care they bring to the work.

\n\n\n\n

Future Events

\n\n\n\n

If you’re feeling inspired to revisit past moments from the project’s annual address, the State of the Word YouTube playlist offers a look back at years of community milestones and product progress. The excitement continues into 2026, with major WordPress events already on the horizon: WordCamp Asia in Mumbai, India,WordCamp Europe in Kraków, Poland, and WordCamp US in Phoenix. We hope to see you there as the community continues building what comes next.

\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:\"19447\";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:66:\"\n \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:24:\"WordPress 6.9 “Gene”\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:40:\"https://wordpress.org/news/2025/12/gene/\";s: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, 02 Dec 2025 20:12: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:8:\"category\";a:4:{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: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:2;a:5:{s:4:\"data\";s:3:\"6.9\";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: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=19398\";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:495:\"WordPress 6.9, code-named \"Gene,\" brings major upgrades to how teams collaborate and create. The Notes feature introduces block-level commenting to streamline reviewing and polishing content, navigating across the entire dashboard with the Command Palette is now faster for power users, and the new Abilities API provides a standardized way to open the door for AI-powered and automated workflows. Combined with all the performance and accessibility improvements, 6.9 is one to write home about.\";s: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:\"Matt Mullenweg\";s: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:80443:\"\n
\"WordPress
\n\n\n\n

Each WordPress release celebrates an artist who has made an indelible mark on the world of music. WordPress 6.9, code-named “Gene,” honors the American Jazz pianist Gene Harris. 

\n\n\n\n

A piano veteran, self taught at the age of six, Harris infused mainstream jazz with elements of soul, blues, and gospel, creating a warm, signature sound that is both elegant and iconic. Harris’ bluesy jazz lived at the intersection of worlds, weaving a rich landscape of texture and mood, with a thread of soulfulness that ignited listeners.

\n\n\n\n

Welcome to WordPress 6.9

\n\n\n\n

WordPress 6.9 brings major upgrades to how teams collaborate and create. The new Notes feature introduces block-level commenting when writing posts and pages that streamlines reviews, while the expanded Command Palette makes it faster for power users to navigate and operate across the entire dashboard. The new Abilities API provides a standardized, machine-readable permissions system that opens the door for next generation AI-powered and automated workflows. This release also delivers notable performance improvements for faster page loads and adds several practical new blocks alongside a more visual drag and drop to help creators build richer, more dynamic content.

\n\n\n\n

Download WordPress 6.9 “Gene”

\n\n\n\n

Introducing Notes: Seamless, Block-Level Collaboration

\n\n\n\n

Collaborate Smarter : Leave Feedback Right Where You’re Working

\n\n\n\n

With notes attached directly to blocks in the post editor, your team can stay aligned, track changes, and turn feedback into action all in one place. Whether you’re working on copy or refining design in your posts or pages, collaboration happens seamlessly on the canvas itself.

\n\n\n\n
\"View
\n\n\n\n

Command Palette Throughout the Dashboard

\n\n\n\n

Your tools are always at hand.

\n\n\n\n

Access the Command Palette from any part of the dashboard, whether you’re writing your latest post, deep in design in the Site Editor, or browsing your plugins. Everything you need, just a few keystrokes away.

\n\n\n\n
\"Command
\n\n\n\n

Fit text to container

\n\n\n\n

Content that adapts.

\n\n\n\n

There’s a new typography option for text-based blocks that’s been added to the Paragraph and Heading blocks. This new option automatically adjusts font size to fill its container perfectly, making it ideal for banners, callouts, and standout moments in your design.

\n\n\n\n
\""Novem"
\n\n\n\n

The Abilities API

\n\n\n\n

Unlocking the next generation of site interactions.

\n\n\n\n

WordPress 6.9 lays the groundwork for the future of automation with the unified Abilities API. By creating a standardized registry for site functionality, developers can now register, validate, and execute actions consistently across any context—from PHP and REST endpoints to AI agents—paving the way for smarter, more connected WordPress experiences.

\n\n\n\n
\"Abstract
\n\n\n\n

Accessibility Improvements

\n\n\n\n

More than 30 accessibility fixes sharpen the core WordPress experience. These updates improve screen reader announcements, hide unnecessary CSS-generated content from assistive tech, fix cursor placement issues, and make sure typing focus stays put even when users click an autocomplete suggestion.

\n\n\n\n

Performance enhancements

\n\n\n\n

WordPress 6.9 delivers significant frontend performance enhancements, optimizing the site loading experience for visitors. 6.9 boasts an improved LCP (Largest Contentful Paint) through on-demand block styles for classic themes, minifying block theme styles, and increasing the limit for inline styles – removing blockages to page rendering and clearing the rendering path by deprioritizing non-critical scripts. This release comes with many more performance boosts, including optimized database queries, refined caching, improved spawning of WP Cron, and a new template enhancement output buffer that opens the door for more future optimizations.

\n\n\n\n

And much more

\n\n\n\n

For a comprehensive overview of all the new features and enhancements in WordPress 6.9, please visit the feature-showcase website.

\n\n\n\n

Check out What’s New

\n\n\n\n

Learn more about WordPress 6.9

\n\n\n\n

Learn WordPress is a free resource for new and experienced WordPress users. Learn is stocked with how-to videos on using various features in WordPress, interactive workshops for exploring topics in-depth, and lesson plans for diving deep into specific areas of WordPress.

\n\n\n\n

Read the WordPress 6.9 Release Notes for information on installation, enhancements, fixed issues, release contributors, learning resources, and the list of file changes.

\n\n\n\n

Explore the WordPress 6.9 Field Guide. Learn about the changes in this release with detailed developer notes to help you build with WordPress.

\n\n\n\n

The 6.9 release squad

\n\n\n\n

Every release comes to you from a dedicated team of enthusiastic contributors who help keep things on track and moving smoothly. The team that has led 6.9 is a cross-functional group of contributors who are always ready to champion ideas, remove blockers, and resolve issues.

\n\n\n\n\n\n\n\n

Thank you, contributors

\n\n\n\n

The mission of WordPress is to democratize publishing and embody the freedoms that come with open source. A global and diverse community of people collaborating to strengthen the software supports this effort.

\n\n\n\n

WordPress 6.9 reflects the tireless efforts and passion of more than 900+ contributors in countries all over the world. This release also welcomed over 279 first-time contributors!

\n\n\n\n

Their collaboration delivered more than 340 enhancements and fixes, ensuring a stable release for all – a testament to the power and capability of the WordPress open source community.

\n\n\n\n

2046 · Aakash Verma · Aaron Jorbin · Aaron Robertshaw · Aarti Chauhan · Aashish Sharma · aatospaja · Abdur Rahman Emon · Abu Hurayra · Adam Harley (Kawauso) · Adam Silverstein · Adam Zieliński · Aditya Bansode · Aditya Dhade · aditya shah · Aditya Singh · aduth · agulbra · Ahmed · Ahmed Kabir Chaion · ajaxStardust · Ajit Bohra · Akanshu Singh · Akeda Bagus · Aki Hamano · Akira Tachibana · Akramul Hasan · Akshat Kakkad · Akshay Dhere · Akshaya Rane · Albert Juhé Lluveras · alejandrogonzalvo · Alex Cuadra · Alex Lende · Alex Lion (阿力獅) · Alex Stine · Alexandre Buffet · Alexei Samarschi · Alexis Pandaan · alordiel · Alvaro Gómez · Amber Hinds · Amin · Aminul Islam · Aminul Islam Alvi · Amit Bhosale · Amy Kamala · Anatol Broder · Anders Norén · Andrea Fercia · Andrea Roenning · Andrei Draganescu · Andrew Hoyer · Andrew Nacin · Andrew Ozz · Andrew Serong · André Maneiro · Andy Fragen · Anita C · Ankit K Gupta · Ankit Kumar Shah · Ankit Panchal · Anne McCarthy · Anne-Mieke Bovelett · Anton Vlasenko · Antonio Sejas · Anuj Singh · Anveshika Srivastava · apmeyer · Ari Stathopoulos · Arkadiusz Rzadkowolski · Armando · Artemio Morales · Arthur Chu · Artur Piszek · ArtZ91 · asafm7 · asdofindia · Ashish Kumar (Ashfame) · Ashraful Haque Akash · askapache · Aslam Doctor · Aurooba Ahmed · aut0poietic · Axel DUCORON · Ayesh Karunaratne · Azhar Deraiya · Béryl de La Grandière · bartnv · bchecketts · Beee · Ben Dwyer · Benazeer · Benjamin Denis · Benjamin Zekavica · Benny · Benoit Chantre · Bernhard Kau · Bernhard Reiter · Bernie Reiter · bgermann · bhattaganesh · Bhavesh Desai · BiDbMAK · Bigul Malayi · Birgir Erlendsson (birgire) · Birgit Pauli-Haack · Bishal Shrestha · bobbyleenoblestudios · BogdanUngureanu · bonger · Boro Sitnikovski · Brad Griffin · brad hogan · Brad Jorsch · bradshawtm · Brandon Hubbard · Brandon Kraft · Brandon Zhang · Brennan Goewert · brhodes · Brian Alexander · Brian Coords · Brian Gardner · Brian Haas · brumack · Bryan Schneidewind · bshuchter · burnuser · byteninjaa0 · Cédric Chevillard · Callum Bridgford-Whittick · Calvin Alkan · Carlo Cannas · Carlos Bravo · Carlos G. P. · CarlSteffen · Carolina Nymark · Carolina Romo · Catalin Ciobanu · catgofire · cbirdsong · ccharel · Chad Butler · Chad Chadbourne · Chakrapani Gautam · Chi-Hsuan Huang · Chillifish · ChloeD · Chouby · Chris Zarate · chriscct7 · chrisdotdotdot · chrismattix · christinecooper · Christoph Daum · Christy Nyiri · cikrimcin · Ciprian Popescu · cjhaas · ckoerner · claimableperch · Code Amp · codebuddy · coleatkinson1 · Colin Stewart · ColinD · Cooper Dalrymple · Coralie Tixeront · Corey Salzano · Corey Worrell · Cornwell · Cory Hughart · Courtney Robertson · cucocreative · Cullen Whitmore · Cyrille37 · Daan van den Bergh · Dakota Chichester · damchtlv · Damir · Damon Cook · Dan Cameron · Dan Waldschmidt · Daniel Bachhuber · Daniel Iser · Daniel Richards · Daniele Scasciafratte · daniellacatus · danielmorell · Danny Schmarsel · dannyreaktiv · Darren Ethier (nerrad) · Darshit Rajyaguru · Dave Ryan · daveguitaruno · David Aguilera · David Arenas · David Artiss · David Baumwald · David Calhoun · David Herrera · David Levine · David Perez · David Riviera · David Smith · DavidB · dawidadach · Dean Sas · Debabrata Karfa · DEBARGHYA BANERJEE · Denis de Bernardy · Denis Žoljom · Dennis Ploetner · Dennis Snell · Dennys Dionigi · Densi Nakum · derekherman · Devasheesh Kaul · Dhananjay Kuber · Dhrumil Kumbhani · Dhruval Shah · Dhruvang21 · Dhruvik Malaviya · diebombe · Dilip Bheda · Dilip Modhavadiya · Dion Hulse · divinenephron · dj.cowan · Dominik Schilling · dominiquepijnenburg · donalirl · doughamlin · DougMelvin · drawcard · dretzlaff · Drew Jaynes · Drivingralle · dsawyers · dustintechsmith · eclev91 · eduwass · Ehti · elialum · Eliezer Peña · Ella van Durpe · Elvis Morales · emaildano · Emerson Maningo · Emilie LEBRUN · Emran Ahmed · Enaan Farhan · Enrico Battocchi · Enrique Sánchez · epeicher · Eric · Eric Andrew Lewis · Erick Hitter · Erik · Erik Joling · Eshaan Dabasiya · ethanscorey · Evan Mullins · Even Tobiesen · Fabian Kägy · Fabian Todt · Faisal Ahammad · Faisal Alvi · fakhriaz (Fakhri Azzouz) · Falguni Desai · Felix Arntz · Felix Renicks · Fellyph Cintra · Florian TIAR · Francisco Torres · Francisco Vera · FrogDesk Strategy · Fumiki Takahashi · Gael Denysiak · Gajendra Singh · Gan Eng Chin · Garrett Hyder · Gary Jones · Gary Pendergast · Gaurang Dabhi · Gautam Mehta · Gennady Kovshenin · George Mamadashvili · George Stephanis · Georgi Stoyanov · gernberg · giuliorubelli · Glen Davies · Gopal Krishnan · Grant M. Kinney · Greg Ziółkowski · Guido · Guido Scialfa · Guillaume TURPIN · Gulamdastgir Momin · H. Adam Lenz · H. Kabir · hanimbarek · hanneslsm · Hans-Gerd Gerhards · Hardik Raval · Hareesh S · Harsh Gajipara · Harshal Kadu · harshbhonsle08 · harshdeepgill · Harun · Helen Hou-Sandi · HelgaTheViking · Hidenori ISHIKAWA · Hilay Trivedi · Himani Panchal · Himanshu Pathak · Hiroshi Sato · Hit Bhalodia · Hitendra Chopda · Hitesh Talpada · Hozefa Saleh · Hrohh · hugod · hugosolar · humanify · huubl · Huzaifa Al Mesbah · Héctor Prieto · Ian Dunn · ignatiusjeroe · Igor Radovanov · ikriv · imokweb · Imran · Indira Biswas · Ipstenu (Mika Epstein) · Iqbal Hossain · Isabel Brison · Ishika Bansal · Ivan Ottinger · Jabe · Jacob Cassidy · Jagir Bahesh · Jaimin Prajapati · Jakaria Istauk · Jake Spurlock · jakeparis · James Koster · James LePage · James Monroe · James Sansbury · James Titus · Jamie · Jamie Burchell · Jamie Marsland · janthiel · Jarda Snajdr · jarekmorawski · Jarkko Saltiola · Jason Adams · Jason LeMahieu (MadtownLems) · Jason Sauerwald · Javier Casares · Jay McPartland · Jayaram · Jaydip · Jean-Baptiste Audras · Jeff Chi · Jeff Matson · Jeff Ong · Jeff Paul · Jeffrey de Wit · Jeffro · jeflopo · Jenny Dupuy · Jeremiah Bratton · Jeremy Felt · Jeremy Massel · Jeroen Schmit · jeryj · Jesin A · jessedyck · Jessica Lyschik · Jigar Bhanushali · Jigar Panchal · jikamens · jnweaver · Joan Namunina · JoAnne Obata · JochenT · jodamo5 · Joe Dolson · Joe Hoyle · Joe McGill · Joen Asmussen · Johannes Jülg · John Blackbourn · John Brand · John Godley · John James Jacoby · John Parris · John Regan · JohnVieth · Jon Surrell · Jonathan Bossenger · Jonathan Champ · Jonathan Desrosiers · Joni Erkkilä · Jonny Harris · Jono Alderson · jordesign · Jorge Costa · Jos Velasco · Joseph Scott · Josh Habdas · Joshua Goode · jrmd · Juan Aldasoro · Juan Cook · JuanMa Garrido · juliengardair · Juliette Reinders Folmer · Justin Ahinon · Justin Tadlock · Jyotirmoy Roy · K. Adam White · Kai Hao · Kailey (trepmal) · Kaito Hanamori · Kakoma · Kalpesh · Karin Christen · Karol Manijak · Karthick Murugan · Karthikeya Bethu · Kaspars · Kat Hagan · Kateryna K. a11n · Kathryn Presner · Katrina Massey · Kausar Alam · Kaushik Domadiya · Kawshar Ahmed · kaygee79 · Kazuto Takeshita · Kelly Choyce-Dwan · Kelly Hoffman · Kelly Mears · Ken Gagne · Kerfred · Kerry Liu · kesselb · Kevin Leary · Khoi Pro · Khushi Patel · killerbishop · Kingsley Felix · Kira Schroder · Kishan Jasani · kitchin · Kjell Reigstad · kkmuffme · Kleor · Knut Sparhell · Konstantin Obenland · Konstantinos Xenos · kpapazov · kprocyszyn · krishaamer · Krunal Bhimajiyani · Krupa Nanda · kshaner · kub1x · kubiq · kunalpuri123 · Kush Sharma · Kushagra Goyal · Lachezar Gadzhev · lakrisgubben · Lakshyajeet Singh Goyal · Lalit Kumawat · Lance Willett · Laura Byrne · Lauri Saarni · ldanielgiuliani · Lee Willis · leedxw · leemon · Lena Morita · Leonidas Milosis · Levin Baria · lgseo · LilGames · liviopv · logiclink · LogicRays Technologies · lordandy1984 · Lovro Hrust · Lucas Martins · Luigi Teschio · luisherranz · LukasFritzeDev · Lukasz · Luke Cavanagh · maccyd · Madhavi Shah · Madhu Dollu · Maggie Cabrera · Maikuolan · manfcarlo · manhatthien98 · Manuel Camargo · Manzoor Wani · maorb · Marc · Marc Armengou · Marcio Duarte · Marco Ciampini · Marcus · Marcus Kazmierczak · marian1 · Marie · Marin Atanasov · Mario Santos · mariohamann · mariushosting · Marty · MartyThornley · Mary Baum · Mary Hubbard · Mat Lipe · mathiscode · Matias Benedetto · Matias Ventura · Matt Mullenweg · Matt Robinson · Matt West · Matteo Enna · Matthias Pfefferle · mattryanwalker · Max Schmeling · Maxime Pertici · Mayank Tripathi · Mayur Prajapati · Md Abdullah Al Arif · Md Abdullah Al Fahad · Md Abul Bashar · MD ISMAIL · MD Kawsar Chowdhury · Md Masum Molla Alhaz · Md Obidullah (obiPlabon) · Md Rashed Hossain · Md Sabbir Hossain · Md. Najmul Islam · Md.Mehedi Hasan · mdmoreau · mdviralsampat · Meet Makadia · megane9988 · Meher Bala · Mel Choyce-Dwan · Micha Krapp · Michael Burridge · Michael Keck · Michael Nelson · Michael Sumner · michaelreetz · Michal Czaplinski · Michelle Schulp Hunt · Miguel Fonseca · Miguel Lezama · Mikael Korpela · Mike · Mike Fitzpatrick · Mike Hansen · Mike Jolley · Mike McAlister · Mike Ritter · Mikin Chauhan · Milan Ricoul · Minal Diwan · Miroku · missveronica · Mitchell Austin · mkeck · mlaetitia1986 · mleray · mleraygp · Mobarak Ali · Mohammad Rockeybul Alam · Mohammed Kateregga · Moses Cursor Ssebunya · mrwweb · mtg169 · mujuonly · Mukesh Panchal · Mukul Singh · Mumtahina Faguni · Núria Nadal i Rovira · Naman Vyas · NANI SAMIREDDY · Narendra Sishodiya · Naresh Bheda · Nasim Miah · Nate Finch · Naveen Dwivedi · Navneet Kaur · Nazar Hotsa · Nazmul Hosen · Ned Zimmerman · nexbridge · Nextendweb · Neycho Kalaydzhiev · Nick · Nick · Nick Diego · Nick Halsey · nickbrazilian · nickjbedford · nickpagz · nickwilmot · Nico · nidhidhandhukiya · Niels Lange · nigelnelles · Nik Tsekouras · Nikan Radan · Nikunj Hatkar · Nimesh · Nino Mihovilic · Ninos · Noah Allen · Noel Santos · Noruzzaman · nosilver4u · oceantober · oferlaor · okat · Okawa Yasuno · Olga Gleckler · Oliver Campion · Omar Alshaker · Ophelia Rose · Optimizing Matters · owi · Paal Joachim Romdahl · Pablo Honey · Palak Patel · Paragon Initiative Enterprises · Parin Panjari · Parth vataliya · Partho Hore · Pascal Birchler · Patel Jaymin · Patricia BT · Patrick Lumumba · Patrick Piwowarczyk · Paul · Paul Bearne · Paul Biron · Paul Bonneau · Paul Kevan · Paulo Trentin · paulstanos · pcarvalho · Pedro Figueroa · Per Egil Roksvaag · Peter Ingersoll · Peter Westwood · Peter Wilson · petitphp · Philip John · Philip Sola · Philipp Bammes · Phill · piskvorky · Pooja Bhimani · poojapadamad · porg · Prabhat Mishra · Praful Patel · Pranjal Pratap Singh · Prasad Karmalkar · prasadgupte · Prashant Baldha · Pratik Londhe · Presskopp · prettyboymp · puggan · quentinr64600 · Rachel Baker · Rafiqul Islam · Raluca · Ramanan · Rami Yushuvaev · Ramon Ahnert · Ramon Corrales · Ramon James · Ravi Chudasama · Ravi Gadhiya · rcrdortiz · Rehan Ali · Rejaul Alom Khan · Remy Perona · Renato Alves · renishsurani · retrofox · Rezwan Shiblu · Riad Benguella · riadev · Rich Tabor · Richard Korthuis · Riddhi Dave · Rinat · Rinkal Pagdar · Rishabh Gupta · Rishav Dutta · Rishit Gupta · Risto Jovanovic · Ritoban · Robert Anderson · Robert Chapin · Robert Ghetau · Robert O\'Rourke · Robmcclel · Rodrigo Primo · roelof · Rolly Bueno · Ronak prajapati · Room 34 Creative Services, LLC · Rostislav Wolný · Rotem Gelbart · Rufaro Madamombe · Rutvik Bhambhi · Ryan McCue · Ryan Welcher · S Page · Sören Wünsch · Sabbir Ahmed · Sabbir Sam · SACHINRAJ CP · Sahil Jadhav · Sainath Poojary · Sajjad Hossain Sagor · sakibmoon · Sam · sam_a · Samir Malpande · Sampat Viral · Samuel Paget · Samuel Wood (Otto) · Sandeep Dahiya · Sandip Sinh · Sandy McFadden · Sarah Norris · sarah semark · Sarthak Nagoshe · Satish Prajapati · saurabh.dhariwal · Saxon Fletcher · scholdstrom · Scott Buscemi · Scott Kingsley Clark · Scott Reilly · Scott Taylor · scribu · Sebastian Pisula · Seif Radwane · Sergey Biryukov · Seth Rubenstein · SH Sajal Chowdhury · Shadi G شادي جـ · Shail Mehta · Shalin Shah · Shane Muirhead · Shashank Jain · Shashank Shekhar · Shazzad Hossain Khan · Sheri Grey · Shipon Karmakar · Shreya Shrivastava · Shubham Patil · Shyamsundar Gadde · sidharthpandita · siliconforks · Silpa TA · simonefontana · Slava Abakumov · smerriman · Sneha Patil · Sophie Dimitrov · Sourabh Jain · Sourav Pahwa · Soyeb Salar · Spenser Hale · spstrap · Sridhar Katakam · stankea · Stanko Metodiev · staurand · Stefan Pasch · Stefan Velthuys · Stephen Bernhardt · Stephen Harris · Steve Dufresne · strarsis · Subrata Sarkar · Sudip Dadhaniya · Sujan Sarkar · Sukhendu Sekhar Guria · Sumit Bagthariya · SunilPrajapati · sunnykasera · sunyatasattva (a11n) · supernovia · SuzuKube · svedish · Svetoslav Marinov · Sybre Waaijer · syhussaini · T4ng · Taco Verdonschot · Takashi Irie · Takuro · Tammie Lister · tatof · tecnogaming · Tetsuro Higuchi · tharsheblows · thelmachido a11n · ThemeAWESOME · theMikeD · Thomas Kräftner · Thorsten Frommen · Till Krüss · Tim Havinga · Tim Sheehan · Timo Tijhof · Timothée Brosille · Timothée Moulin · Timothy Jacobs · TJarrett · Tobias Bäthge · Tobias Zimpel · tobifjellner (Tor-Bjorn “Tobi” Fjellner) · Tom de Visser · Tom J Nowell · Tomoki Shimomura · Toni Viemerö · Tonya Mork · Toro_Unit (Hiroshi Urabe) · Torsten Landsiedel · Travis Smith · traxus · Trevor Mills · tristanleboss · Troy Chaplin · Trupti Kanzariya · tsteel · Tung Du · Tushar Bharti · Tushar Patel · Tussendoor B.V. · Ugyen Dorji · Umesh Nevase · Umesh Singh · Unsal Korkmaz · upadalavipul · Utsav Ladani · Utsav tilava · Valentin Grenier · Vape tsimshatsui · vbbp · Vedansh Mishra · Vegard S. · vgnavada · Vicente Canales · vidugupta · Vijendra Jat · Viktor Szépe · Vinit · Vipul Ghori · Vipul Gupta · Vipul Patil · Vishit Shah · vladimiraus · vortfu · Vrishabh Jasani · Walter Ebert · WebMan Design | Oliver Juhas · websupporter · webwrotter · Weston Ruter · whaze · widhy980 · Will Skora · wplmillet · xate · xavilc · xerpa43 · xipasduarte · Yagnik Sangani · Yash · Yash B · Yash Jawale · Yogesh Bhutkar · YogieAnamCara · Yui · Zebulan Stanphill · Zeel Thakkar · Zunaid Amin · Łukasz Strączyński · 耗子

\n\n\n\n

More than 71 locales have fully translated WordPress 6.9 into their language. Community translators are working hard to ensure more translations are on their way. Thank you to everyone who helps make WordPress available in 200+ languages.

\n\n\n\n

Last but not least, thanks to the volunteers who contribute to the support forums by answering questions from WordPress users worldwide.

\n\n\n\n

Get involved

\n\n\n\n

Participation in WordPress goes far beyond coding. And learning more and getting involved is easy.  Discover the teams that come together to Make WordPress and use this interactive tool to help you decide which is right for you.

\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:\"19398\";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:75:\"\n \n \n \n \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:33:\"WordPress 6.9 Release Candidate 3\";s: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://wordpress.org/news/2025/11/wordpress-6-9-release-candidate-3/\";s: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, 25 Nov 2025 15:33:10 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:7:{i:0;a:5:{s:4:\"data\";s:11:\"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:\"\";}i:1;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: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:\"\";}i:3;a:5:{s:4:\"data\";s:3:\"6.9\";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:5:{s:4:\"data\";s:11:\"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:\"\";}i:5;a:5:{s:4:\"data\";s:18:\"release candidates\";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: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=19373\";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:366:\"The third Release Candidate (“RC3”) for WordPress 6.9 is ready for download and testing! This version of the WordPress software is under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, it’s recommended that you evaluate RC3 on a test server and site. Reaching this phase […]\";s: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:\"Amy Kamala\";s: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:8652:\"\n

The third Release Candidate (“RC3”) for WordPress 6.9 is ready for download and testing!

\n\n\n\n

This version of the WordPress software is under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, it’s recommended that you evaluate RC3 on a test server and site.

\n\n\n\n

Reaching this phase of the release cycle is an important milestone. While release candidates are considered ready for release, testing remains crucial to ensure that everything in WordPress 6.9 is the highest quality possible.

\n\n\n\n

You can test WordPress 6.9 RC3 in four ways:

\n\n\n\n
PluginInstall and activate the WordPress Beta Tester plugin on a WordPress install. (Select the “Bleeding edge” channel and “Beta/RC Only” stream.)
Direct DownloadDownload the RC3 version (zip). and install it on a WordPress website.
Command LineUse this WP-CLI command:
wp core update --version=6.9-RC3
WordPress PlaygroundUse the 6.9 WordPress Playground instance to test the software directly in your browser.  No setup is required – just click and go! 
\n\n\n\n

The scheduled final release date for WordPress 6.9 is December 2, 2025. The full release schedule can be found here. Your help testing RC versions is vital to making this release as stable and powerful as possible.

\n\n\n\n

Please continue checking the Make WordPress Core blog for 6.9-related posts in the coming weeks for more information.

\n\n\n\n

What’s in WordPress 6.9 RC3?

\n\n\n\n

Want to look deeper into the details and technical notes for this release? Take a look at the WordPress 6.9 Field Guide. For technical information related to issues addressed since RC2, you can browse the following links:

\n\n\n\n\n\n\n\n

How you can contribute

\n\n\n\n

WordPress is open source software made possible by a passionate community of people collaborating on and contributing to its development. The resources below outline various ways you can get involved with the world’s most popular open source web platform, regardless of your technical expertise.

\n\n\n\n

Get involved in testing

\n\n\n\n

Testing for issues is crucial to the development of any software. It’s also a meaningful way for anyone to contribute. 

\n\n\n\n

Your help testing the WordPress 6.9 RC3 prerelease is key to ensuring that the final release is the best it can be. While testing the upgrade process is essential, trying out new features is equally important. This detailed guide will walk you through testing features in WordPress 6.9. For those new to testing, follow this general testing guide for more details on getting set up.

\n\n\n\n

If you encounter an issue, please report it to the Alpha/Beta/RC area of the support forums or directly to WordPress Trac if you are comfortable writing a reproducible bug report. You can also check your issue against a list of known bugs.

\n\n\n\n

Curious about testing releases in general?  Follow along with the testing initiatives in Make Core and join the #core-test channel on Making WordPress Slack..

\n\n\n\n

Update your theme or plugin

\n\n\n\n

For plugin and theme authors, your products play an integral role in extending the functionality and value of WordPress for all users.

\n\n\n\n

Thanks for continuing to test your themes and plugins with the WordPress 6.9 prereleases. If you haven’t yet, please conclude your testing and update the “Tested up to” version in your theme and plugin readme files to 6.9.

\n\n\n\n

If you find compatibility issues, please post detailed information in the support forum.

\n\n\n\n

Test on your hosting platforms

\n\n\n\n

Web hosts provide vital infrastructure for supporting WordPress and its users. Testing on hosting systems helps inform the development process while ensuring that WordPress and hosting platforms are fully compatible, free of errors, optimized for the best possible user experience, and that updates roll out to customer sites without issue.

\n\n\n\n

Want to test WordPress on your hosting system? Get started with configuring distributed hosting tests here

\n\n\n\n

Help translate WordPress

\n\n\n\n

Do you speak a language other than English? ¿Español? Français? Русский? 日本語? हिन्दी? বাংলা? मराठी? ಕನ್ನಡ? You can help translate WordPress into more than 100 languages.

\n\n\n\n

An RC3 haiku

\n\n\n\n

Some folks make money,

\n\n\n\n

some folks make time to travel,

\n\n\n\n

and we Make WordPress.

\n\n\n\n

Props to @akshayar, @davidbaumwald, @westonruter, @ellatrix, @mobarak and @tacoverdo for proofreading and review.

\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:\"19373\";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:69:\"\n \n \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:33:\"WordPress 6.9 Release Candidate 2\";s: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://wordpress.org/news/2025/11/wordpress-6-9-release-candidate-2/\";s: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, 18 Nov 2025 15:26: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:8:\"category\";a:5:{i:0;a:5:{s:4:\"data\";s:11:\"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:\"\";}i:1;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: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:\"\";}i:3;a:5:{s:4:\"data\";s:3:\"6.9\";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:5:{s:4:\"data\";s:7:\"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=19350\";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:367:\"The second Release Candidate (“RC2”) for WordPress 6.9 is ready for download and testing! This version of the WordPress software is under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, it’s recommended that you evaluate RC2 on a test server and site. Reaching this phase […]\";s: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:\"Akshaya Rane\";s: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:11181:\"\n

The second Release Candidate (“RC2”) for WordPress 6.9 is ready for download and testing!

\n\n\n\n

This version of the WordPress software is under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, it’s recommended that you evaluate RC2 on a test server and site.

\n\n\n\n

Reaching this phase of the release cycle is an important milestone. While release candidates are considered ready for release, testing remains crucial to ensure that everything in WordPress 6.9 is the best it can be.

\n\n\n\n

You can test WordPress 6.9 RC2 in four ways:

\n\n\n\n
PluginInstall and activate the WordPress Beta Tester plugin on a WordPress install. (Select the “Bleeding edge” channel and “Beta/RC Only” stream).
Direct DownloadDownload the RC2 version (zip) and install it on a WordPress website.
Command LineUse the following WP-CLI command:
wp core update --version=6.9-RC2
WordPress PlaygroundUse the 6.9 RC2 WordPress Playground instance to test the software directly in your browser without the need for a separate site or setup.
\n\n\n\n

The scheduled final release date for WordPress 6.9 is December 2, 2025. The full release schedule can be found here. Your help testing RC versions is vital to making this release as stable and powerful as possible.

\n\n\n\n

Please continue checking the Make WordPress Core blog for 6.9-related posts in the coming weeks for more information.

\n\n\n\n

What’s in WordPress 6.9 RC2?

\n\n\n\n

Get a recap of WordPress 6.9’s highlighted features in the Beta 1 announcement. For more technical information related to issues addressed since RC1, you can browse the following links:

\n\n\n\n\n\n\n\n

Want to look deeper into the details and technical notes for this release? These recent posts cover some of the latest updates:

\n\n\n\n\n\n\n\n

How you can contribute

\n\n\n\n

WordPress is open source software made possible by a passionate community of people collaborating on and contributing to its development. The resources below outline various ways you can help the world’s most popular open source web platform, regardless of your technical expertise.

\n\n\n\n

Get involved in testing

\n\n\n\n

Testing for issues is crucial to the development of any software. It’s also a meaningful way for anyone to contribute. 

\n\n\n\n

Your help testing the WordPress 6.9 RC2 version is key to ensuring that the final release is the best it can be. While testing the upgrade process is essential, trying out new features is equally important. This detailed guide will walk you through testing features in WordPress 6.9. For those new to testing, follow this general testing guide for more details on getting set up.

\n\n\n\n

If you encounter an issue, please report it to the Alpha/Beta area of the support forums or directly to WordPress Trac if you are comfortable writing a reproducible bug report.  You can also check your issue against a list of known bugs

\n\n\n\n

Curious about testing releases in general?  Follow along with the testing initiatives in Make Core and join the#core-test channel on Making WordPress Slack.

\n\n\n\n

Update your theme or plugin

\n\n\n\n

For plugin and theme authors, your products play an integral role in extending the functionality and value of WordPress for all users.

\n\n\n\n

Thanks for continuing to test your themes and plugins with the WordPress 6.9 beta releases. If you haven’t yet, make sure to conclude your testing and update the “Tested up to” version in your plugin’s readme file to 6.9.

\n\n\n\n

If you find compatibility issues, please post detailed information to the support forum.

\n\n\n\n

Test on your hosting platforms

\n\n\n\n

Web hosts provide vital infrastructure for supporting WordPress and its users. Testing on hosting systems helps inform the development process while ensuring that WordPress and hosting platforms are fully compatible, free of errors, optimized for the best possible user experience, and that updates roll out to customer sites without issue.

\n\n\n\n

Want to test WordPress on your hosting system? Get started with configuring distributed hosting tests here.

\n\n\n\n

Help translate WordPress

\n\n\n\n

Do you speak a language other than English? ¿Español? Français? Русский? 日本語? हिन्दी? বাংলা? मराठी? ಕನ್ನಡ?  You can help translate WordPress into more than 100 languages. This release milestone (RC2) also marks the hard string freeze point of the 6.9 release cycle.

\n\n\n\n

An RC2 haiku

\n\n\n\n

A calm hillside sighs,
Work of many now complete —
RC2 stays true.

\n\n\n\n

Props to @amykamala, @annezazu, @davidbaumwald, @westonruter and @joedolson for proofreading and review.

\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:\"19350\";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:75:\"\n \n \n \n \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:33:\"WordPress 6.9 Release Candidate 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:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:69:\"https://wordpress.org/news/2025/11/wordpress-6-9-release-candidate-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:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 11 Nov 2025 15:34:48 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:7:{i:0;a:5:{s:4:\"data\";s:11:\"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:\"\";}i:1;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: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:\"\";}i:3;a:5:{s:4:\"data\";s:3:\"6.9\";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:5:{s:4:\"data\";s:11:\"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:\"\";}i:5;a:5:{s:4:\"data\";s:18:\"release candidates\";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: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=19317\";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 first Release Candidate (“RC1”) for WordPress 6.9 is ready for download and testing! This version of the WordPress software is still under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, it’s recommended to evaluate RC1 on a test server and site. WordPress 6.9 RC1 […]\";s: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:\"Amy Kamala\";s: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:10146:\"\n

The first Release Candidate (“RC1”) for WordPress 6.9 is ready for download and testing!

\n\n\n\n

This version of the WordPress software is still under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, it’s recommended to evaluate RC1 on a test server and site.

\n\n\n\n

WordPress 6.9 RC1 can be tested using any of the following methods:

\n\n\n\n
PluginInstall and activate the WordPress Beta Tester plugin on a WordPress install. (Select the “Bleeding edge” channel and “Beta/RC Only” stream.)
Direct DownloadDownload the RC1 version (zip) and install it on a WordPress website.
Command LineUse this WP-CLI command:
wp core update --version=6.9-RC1
WordPress PlaygroundUse the 6.9 RC1 WordPress Playground instance to test the software directly in your browser. No setup is required – just click and go! 
\n\n\n\n

The scheduled final release date for WordPress 6.9 is December 2, 2025. The full release schedule can be found here. Your help testing Beta and RC versions is vital to making this release as stable and powerful as possible.

\n\n\n\n

Please continue checking the Make WordPress Core blog for 6.9-related posts in the coming weeks for more information.

\n\n\n\n

What’s in WordPress 6.9 RC1?

\n\n\n\n

Check out the Beta 1 announcement for details on WordPress 6.9.

\n\n\n\n

You can browse the technical details for all issues addressed since Beta 4 using these links:

\n\n\n\n\n\n\n\n

Want to know more about this release? Here are some highlights:

\n\n\n\n
    \n
  • Site Editor improvements and Refined content creation\n
      \n
    • Ability to hide blocks
    • \n\n\n\n
    • New blocks
    • \n\n\n\n
    • Notes on blocks
    • \n\n\n\n
    • Universal command palette in wp-admin
    • \n
    \n
  • \n\n\n\n
  • Developer updates\n
      \n
    • Updates to dataviews and dataforms components
    • \n\n\n\n
    • New abilities API
    • \n\n\n\n
    • Updates to interactivity API
    • \n\n\n\n
    • Updates to block binding API
    • \n
    \n
  • \n\n\n\n
  • Performance Improvements\n
      \n
    • Improved script and style handling
    • \n\n\n\n
    • Optimized queries and caching
    • \n\n\n\n
    • Added ability to handle “fetchpriority” in ES Modules and Import Maps
    • \n\n\n\n
    • Standardizing output buffering
    • \n
    \n
  • \n
\n\n\n\n

The final release is on track for December 2nd. As always, a successful release depends on your confirmation during testing. So please download and test!

\n\n\n\n

How you can contribute

\n\n\n\n

WordPress is open source software made possible by a passionate community of people collaborating on and contributing to its development. The resources below outline various ways you can help the world’s most popular open source web platform, regardless of your technical expertise.

\n\n\n\n

Get involved in testing

\n\n\n\n

Testing for issues is crucial to the development of any software. It’s also a meaningful way for anyone to contribute. 

\n\n\n\n

Your help testing the WordPress 6.9 RC1 version is key to ensuring that the final release is the best it can be. While testing the upgrade process is essential, trying out new features is equally important. This detailed guide will walk you through testing features in WordPress 6.9.

\n\n\n\n

Calls for testing

\n\n\n\n

Thank you to everyone who helps test the following enhancements and bug fixes:

\n\n\n\n\n\n\n\n

If you encounter an issue, please report it to the Alpha/Beta area of the support forums, or directly to WordPress Trac if you are comfortable writing a reproducible bug report. You can also check your issue against a list of known bugs.

\n\n\n\n

Thank you to everyone who helps with testing!

\n\n\n\n

Update your theme or plugin

\n\n\n\n

For plugin and theme authors, your products play an integral role in extending the functionality and value of WordPress for all users.

\n\n\n\n

Thanks for continuing to test your themes and plugins with the WordPress 6.9 beta releases. With RC1, you’ll want to conclude your testing and update the “Tested up to” version in your plugin’s readme file to 6.9.

\n\n\n\n

If you find compatibility issues, please post detailed information to the support forum.

\n\n\n\n

Test on your hosting platforms

\n\n\n\n

Web hosts provide vital infrastructure for supporting WordPress and its users. Testing on hosting systems helps inform the development process while ensuring that WordPress and hosting platforms are fully compatible, free of errors, optimized for the best possible user experience, and that updates roll out to customer sites without issue.

\n\n\n\n

Want to test WordPress on your hosting system? Get started with configuring distributed hosting tests here. Thank you to all web hosts who help test WordPress!

\n\n\n\n

Curious about testing releases in general? Follow along with the testing initiatives in Make Core and join the #core-test channel on Making WordPress Slack.

\n\n\n\n

An RC1 haiku

\n\n\n\n

As the sun rises,

\n\n\n\n

RC1 breaks its cocoon

\n\n\n\n

and emerges strong.

\n\n\n\n

Props to @akshayar, @davidbaumwald, @jeffpaul, @desrosj, @westonruter, @ellatrix, @priethor, @krupajnanda and @cbravobernal for proofreading and review.

\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:\"19317\";s: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\";a:12:{s:6:\"server\";s:5:\"nginx\";s:4:\"date\";s:29:\"Mon, 02 Feb 2026 13:05:20 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:\"Fri, 30 Jan 2026 21:13:37 GMT\";s:4:\"link\";s:63:\"; rel=\"https://api.w.org/\"\";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:1760643936;s:21:\"cache_expiration_time\";i:1770080720;s:23:\"__cache_expiration_time\";i:1770080720;}','off'),(142,'_site_transient_timeout_feed_mod_9bbd59226dc36b9b26cd43f15694c5c3','1770080720','off'),(143,'_site_transient_feed_mod_9bbd59226dc36b9b26cd43f15694c5c3','1770037520','off'),(144,'_site_transient_timeout_feed_d117b5738fbd35bd8c0391cda1f2b5d9','1770080721','off'),(145,'_site_transient_feed_d117b5738fbd35bd8c0391cda1f2b5d9','a:6:{s:5:\"child\";a:1:{s:0:\"\";a:1:{s:3:\"rss\";a:1:{i:0;a:6:{s:4:\"data\";s:3:\"\n\n\n\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:7:\"version\";s:3:\"2.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:1:{s:7:\"channel\";a:1:{i:0;a:6:{s:4:\"data\";s:112:\"\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\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\";s: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:16:\"WordPress Planet\";s: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:28:\"http://planet.wordpress.org/\";s: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:\"language\";a:1:{i:0;a:5:{s:4:\"data\";s:2:\"en\";s: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:47:\"WordPress Planet - http://planet.wordpress.org/\";s: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:\"item\";a:50:{i:0;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:127:\"Gutenberg Times: Navigation Overlays, WordPress 7.0, Interactivity API Helper, AI Skills, and #WCAsia — Weekend Edition #355\";s: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=44172\";s: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://gutenbergtimes.com/navigation-overlays-wordpress-7-0-interactivity-api-helper-ai-skills-and-wcasia-weekend-edition-355/\";s: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:25910:\"

Hi, there \"👋\"

\n\n\n\n

this week, you’ll find a great mix of new releases, new tools, new plugins and events.

\n\n\n\n

Outside the WordPress sphere I signed up for the FediForum Un-Workshop, an event bringing together people who will discuss obstacles and ideas on growing the Open Social Web. It’ll be a three-hour virtual event on March 2, 2026. It’s NOT on the same day as Human Made’s WP:26 event, which takes place 10 days later.

\n\n\n\n

I hope you enjoy this week’s edition and I wish you a great weekend!

\n\n\n\n

Yours, \"💕\"
Birgit

\n\n\n\n\n\n

Human Made announced WP:26, a virtual event on March 12th exploring where WordPress is heading this year. You’ll hear from Mary Hubbard (WordPress executive director), speakers from Pantheon, Yoast, News UK, and PMC on topics like hybrid CMS architectures, agentic AI systems, and the CMS as orchestration layer. Following last year’s WP:25 with 700+ attendees, this one targets digital leaders, architects, and teams betting on WordPress long-term—registration is open now. It’s free and will be recorded, I reckon.

\n\n\n\n
\n\n\n\n

WordCamp Asia communication team is publishing great content to get ready for the event: Tickets are still available, Sponsorships as well and you can learn more about Mumbai, Indian culture and food. The WordCamp will take place between April 9 and 11, 2026. The first rounds of speakers are announced, too. Will I see you there? It would be wonderful to meet you! You are welcome to use my public calendar to schedule a meeting.

\n\n\n\n
\"Announced
\n\n\n\n

If WordCamp Asia is not on your radar, check out the WordCamp calendar for in person or educational event closer to you or on a different date.

\n\n\n\n

Developing Gutenberg and WordPress

\n\n\n\n

WordPress 6.9.1 RC1 is now available. Led by Aaron Jorbin and Aki Hamano, the final release is planned for February 3, 2026. You can test using the Beta Tester plugin, WP-CLI, or a direct download. This maintenance release addresses bugs introduced in 6.9, with 23 Core fixes and 25 Block Editor fixes. Notable corrections include mail function errors, broken styling on the Add Plugins screen, widget accessibility issues, and several Interactivity API router fixes.

\n\n\n\n
\n\n\n\n

Gutenberg 22.5 RC 1 is also available for testing. The final release is scheduled for February 4, 2025. It will bring practical refinements for your editing workflow. You can now add custom CSS to individual blocks, and the Image block shows aspect ratio controls for wide and full alignments. List View gets more useful with full block titles and actual content displayed for list items. The release also stabilizes viewport-based block visibility and pattern editing, plus adds focal point controls for fixed Cover backgrounds and text column support for Paragraphs.

\n\n\n\n
\n\n\n\n

Mary Hubbard, executive director of WordPress open-source project, outlines the big picture goals for WordPress in 2026, signaling a return to three releases annually with WordPress 7.0 arriving at WordCamp Asia. You’ll see real-time co-editing move into Phase 3: Collaboration, client-side media processing graduate to Core, and new blocks like Tabs and Icon ship out of the box.

\n\n\n\n

What I am most excited about is Hubbard’s emphasis on WordPress meetups as the primary front door to contribution and calls on Make teams to prepare clearer onboarding paths for incoming contributors. If there isn’t a WordPress Meetup in your city or region, the community team would love to help you start one. Before my year-end vacation I collaborated with co-organizers, and we revitalized the München WordPress Meetup. If you are in the city, join us on February 11 at 19:00. Or every second Wednesday of the month.

\n\n\n\n
\n\n\n\n

Anne McCarthy shares her latest round of exploring work in progress for WordPress 7.0, with beta 1 just weeks away. You’ll find hands-on looks at real-time collaboration transport layers, visual revisions, responsive block hiding, customizable navigation overlays, and the Cover block’s new video embed support. The Gallery block gains lightbox navigation, while Tabs and Breadcrumbs blocks continue maturing. McCarthy encourages you to test via WordPress Playground and to leave feedback on GitHub.

\n\n\n\n
\n\n\n\n


David Smith posted a call for testing customizable navigation mobile overlays targeting WordPress 7.0. This feature finally gives you full control over mobile hamburger menus using blocks and patterns—add branding, calls-to-action, images, and custom styling instead of being stuck with WordPress defaults. Overlays are saved as template parts, so themes can ship their own variations. Feedback is requested by February 9th, with a ready-to-go Playground instance for quick testing.

\n\n\n\n

Your feedback would ddirectly shapes what ships in core—catching bugs, validating UX decisions, and surfacing edge cases before millions of sites receive the update. It’s one of the most impactful ways to contribute to WordPress without writing code, and the Test Team provides clear scenarios and templates for reporting issues. Give it a whirl, and learn first hand how this new feature works.

\n\n\n\n
\n

\"🎙\" The latest episode is Gutenberg Changelog #125 – WordPress 6.9, Gutenberg 22.1 and Gutenberg 22.2 with JC Palmes, WebDev Studios

\n\n\n\n
\"Gutenberg
\n\n\n
\n
\n\n
\n
\n\n\n\n

Ryan Welcher highlights the most important updates from the What’s New for Developer (January 2026) post in his latest video: Responsive Grids, PHP Blocks, Smarter Tools: WordPress in January.

\n\n\n\n\n
\n
\n\n
\n
\n\n\n
\n\n\n\n

Brandon Payton published wp-playground, a new AI agent skill that lets tools like Claude Code and Codex run WordPress via the Playground CLI for fast, repeatable testing. The skill auto-detects where your code belongs—mounting plugins or themes by recognizing file signatures—and reduces the “ready to test” moment from roughly a minute to a few seconds. You can install it via npx openskills install WordPress/agent-skills, and contributions are welcome at the new WordPress/agent-skills repository.

\n\n\n\n

Plugins, Themes, and Tools for #nocode site builders and owners

\n\n\n\n

Varun Dubey‘s comprehensive look at Gutenberg blocks in 2026 and WordPress development in the AI era walks you through how the block revolution has fundamentally shifted WordPress workflows. You’ll find practical guidance on when to choose patterns over custom blocks, explore emerging AI tools like WordPress Telex and Kadence’s inline generation, and understand why block metadata makes AI integration particularly powerful. Solid reading whether you’re building blocks or simply trying to keep pace with where WordPress is heading.

\n\n\n\n
\n\n\n\n

Troy Chaplin‘s Block Finder plugin gives you a dashboard metabox to quickly locate any core or custom Gutenberg block across your entire site. You can filter by post type, detect InnerBlocks nested within parent containers, and jump directly to editing posts containing specific blocks. Particularly handy if you’re managing large-scale migrations or hunting down where a particular block lives—one reviewer credited it with helping audit over 700 sites during a Classic-to-Gutenberg transition.

\n\n\n\n
\n\n\n\n

Weston Ruter released Post Date Block: Published & Modified, a plugin addressing a long-standing gap in the Date block. You can now display both publish and modified dates when they differ—with configurable prefixes, suffixes, and single-line or two-line layouts. The plugin uses the HTML Tag Processor to inject clean markup with proper microformat classes, and it’s now live on WordPress.org. Ruter positions it as a prototype until something similar lands in core, possibly via the upcoming Shortblocks feature.

\n\n\n\n
\n\n\n\n

On the WP Builds podcast episode 452, Nathan Wrigley chats with photographer and developer Michael Campanella about FolioBlocks, his block-based gallery plugin built from a working photographer’s perspective. You’ll hear about grid, justified, masonry, carousel, and the clever modular gallery that uses rows and stacks for visual priority. The plugin includes real-time filtering via comma-separated keywords, WooCommerce integration for selling prints, and image downloads—all with true visual parity between editor and frontend.

\n\n\n\n
\"\"
\n\n\n\n

Theme Development for Full Site Editing and Blocks

\n\n\n\n

Kadim Gültekin’s Block Theme Color Switcher lets your visitors preview every style variation your block theme offers without you creating multiple demo sites. The plugin automatically parses theme.json and the styles folder to generate a floating frontend menu where users can swap color palettes instantly—no page reload required. Selections persist via localStorage, making it particularly useful for theme developers showcasing their work or sites offering accessibility options like high-contrast modes.

\n\n\n\n
\n\n\n\n

Johanne Courtright‘s tutorial on the real power of CSS Grid goes well beyond basic column setups into territory useful for theme builders. You’ll learn how minmax() creates flexible-yet-constrained layouts, how named grid lines with -start and -end suffixes unlock implicit areas, and how grid-template-areas lets you draw layouts in code. The full-width breakout pattern—achieving edge-to-edge elements without negative margins—offers a cleaner alternative to the margin-based approach WordPress core currently uses for wide and full alignments.

\n\n\n\n

Building Blocks and Tools for the Block editor.

\n\n\n\n

Ryan Welcher released WordPress Interactivity API Helper, a VS Code extension that brings intelligent autocomplete and validation to data-wp-* directives. You get context-aware suggestions for state, actions, and callbacks based on detected stores in your PHP and JavaScript files, plus warnings for duplicate directives and undefined namespaces with typo suggestions. If you’re building interactive blocks and find yourself constantly referencing the documentation for directive syntax, this extension should smooth out your workflow considerably. Go to Extension > Search for Interactivity and install.

\n\n\n\n
\"\"
\n\n\n\n
\n\n\n\n

Nick Diego announced WordPress Studio 1.7.0 with a major CLI upgrade that turns the command line into a full-featured companion for local development. You can now create, start, stop, and delete local sites entirely from the terminal, plus run WP-CLI commands without installing it yourself—Studio handles all the environment configuration. Diego walks through practical examples of pairing the CLI with AI coding tools like Claude Code and Cursor, where agents can spin up sites, run diagnostics, and deploy preview sites without you touching the Studio UI.

\n\n\n\n
\n\n\n\n

JuanMa Garrido‘s WPSmith brings the Laravel php artisan experience to WordPress, wrapping Playground’s CLI and WP-CLI into one streamlined tool. You can spin up disposable sites with wpsmith new, manage database snapshots via checkpoint and rollback commands, reset to fresh state, or seed test data—workflows that don’t yet exist in tool like Studio’s CLI. Scaffold shortcuts like forge:plugin and forge:block round out the toolkit. It’s designed for both developers and AI agents working entirely from the terminal.You can take a glimspe on how it works on YouTube.

\n\n\n\n
\"\"
\n\n\n\n

WordPress and AI

\n\n\n\n

On his personal blog, Jonathan Bossenger shared four WordPress apps he built with AI that he uses daily. You’ll find

\n\n\n\n
    \n
  • WP Debug for quick access to WordPress debug logs,
  • \n\n\n\n
  • WP SQLite for inspecting WordPress Studio databases,
  • \n\n\n\n
  • WP Mail for capturing local emails during development, and
  • \n\n\n\n
  • WP Shell for running PHP snippets.
  • \n
\n\n\n\n

Each scratches a specific itch without a steep learning curve—and in a fun twist, the post itself was largely AI-generated using the WP AI Client.

\n\n\n\n

In his latest video “Benchmarking AI models for WordPress development” , Bossenger walks you through getting started with WP Bench, the AI benchmarking tool for WordPress development tasks. You’ll follow along as he clones the repository, sets up the Python environment, and configures API keys. The real fun comes when he pits his MacBook against an Intel workstation, testing local and cloud models including GPT, Claude Sonnet, Qwen Coder, and Deepseek Coder to see which delivers the best performance for WordPress coding workflows.

\n\n\n

Need a plugin .zip from Gutenberg’s master branch?
Gutenberg Times provides daily build for testing and review.

\n\n
\"\"
\n\n

Now also available via WordPress Playground. There is no need for a test site locally or on a server. Have you been using it? Email me with your experience.

\n\n\n
\n\n\n\n

Questions? Suggestions? Ideas?
Don’t hesitate to send them via email or
send me a message on WordPress Slack or Twitter @bph.

\n\n\n\n
\n\n\n\n

For questions to be answered on the Gutenberg Changelog,
send them to changelog@gutenbergtimes.com

\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:\"Sat, 31 Jan 2026 03:50:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:18:\"Birgit Pauli-Haack\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:1;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:\"WordPress.org blog: New AI Agent Skill for WordPress\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=19798\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:54:\"https://wordpress.org/news/2026/01/new-ai-agent-skill/\";s: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:4931:\"

Faster Way For AI Agents To Test

\n\n\n\n

AI code agents are getting better at writing WordPress plugins and themes, but testing can still be the slow part. WordPress contributor Brandon Payton has published wp-playground, a new AI agent skill designed to run WordPress via the Playground CLI, giving agents a fast, repeatable way to run WordPress and verify their work as they iterate.

\n\n\n\n
\n

“AI agents work better when they have a clear feedback loop. That’s why I made the wp-playground skill. It gives agents an easy way to test WordPress code and makes building and experimenting with WordPress a lot more accessible.”

\n\n\n\n

— Brandon Payton, WordPress Contributor

\n
\n\n\n\n

What the Playground skill does

\n\n\n\n

When launched, the skill starts WordPress and detects where the current code should live inside a WordPress install. For example, it can mount a plugin into wp-content/plugins or a theme into wp-content/themes by recognizing common file signatures (such as plugin headers or a theme’s style.css). This helps agents move from “generated code” to “running site” with fewer manual steps.

\n\n\n\n
\n

Install and try it today.

\n\n\n\n

Find more information on this GitHub link:

\n\n\n\n\n
\n\n\n\n

Early results and testing workflow

\n\n\n\n

In testing, agents were able to start WordPress, build playful plugins, and validate behavior in a tight feedback loop. Once Playground was running, the agent alternated between tools such as curl and Playwright to interact with WordPress, verify results, apply fixes when needed, and then re-verify with Playground.

\n\n\n\n

Faster startup and smoother iteration

\n\n\n\n

Helper scripts handle startup and shutdown, so an agent doesn’t waste time guessing when WordPress is ready. Using helper scripts reduced the “ready to test” moment from roughly a minute to a few seconds on the author’s machine. The Playground CLI can also log in automatically for easier WP-Admin access during testing.

\n\n\n\n

Install and try it now

\n\n\n\n

For those who want to try it in Claude Code, Codex, or another AI agent, installation requires Node.js and npm and looks like this:

\n\n\n\n

# Run this in a project directory to install the skills for that project
npx openskills install WordPress/agent-skills

# Make skills available to non-Claude agents
npx openskills sync

\n\n\n\n

A new repo for WordPress agent skills

\n\n\n\n

This release also comes with a new home for this kind of work:
https://github.com/WordPress/agent-skills.

\n\n\n\n

It’s an early step in exploring how AI agents can collaborate with WordPress tooling, and contributions from the community are welcome. Future additions being explored include persistent Playground sites based on the current directory, running commands against an existing Playground instance (including wp-cli), and Blueprint generation.

\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:\"Fri, 30 Jan 2026 17:13: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: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:2;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:41:\"Open Channels FM: Take the Time to Listen\";s: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=114583\";s: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:48:\"https://openchannels.fm/take-the-time-to-listen/\";s: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:62:\"We are too busy adding to the conversation vs. just listening.\";s: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, 30 Jan 2026 14:37: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:3;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:105:\"Open Channels FM: Inside WooCommerce: Competitive Advantages, Community Events, and New Design Directions\";s: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=114775\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:109:\"https://openchannels.fm/inside-woocommerce-competitive-advantages-community-events-and-new-design-directions/\";s: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:225:\"In this episode of Do the Woo, guest Beau Lebens and hosts James and Katie chat about key WooCommerce topics, including community concerns, competitive advantages, AI developments, and the future of the WooCommerce ecosystem.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 29 Jan 2026 11:06:41 +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:4;a:6:{s:4:\"data\";s:21:\"\n \n \n \n \n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:83:\"WPTavern: #202 – Charly Leetham on Using WordPress to Enable a Digital Nomad Life\";s: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=202405\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:97:\"https://wptavern.com/podcast/202-charly-leetham-on-using-wordpress-to-enable-a-digital-nomad-life\";s: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:59965:\"
Transcript
\n

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

\n\n\n\n

Jukebox is a podcast which is dedicated to all things WordPress. The people, the events, the plugins, the blocks, the themes, and in this case, using WordPress to enable a digital nomad life.

\n\n\n\n

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

\n\n\n\n

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

\n\n\n\n

So on the podcast today we have Charly Leetham. Charly’s journey with technology spans over four decades, from tinkering with amateur radio as a teenager in Australia, to working in electronic engineering and eventually building a career in WordPress and small business tech support. With a background in field service, sales, and running retail businesses, Charly pivoted to helping people with their websites and tech needs right around the time WordPress was in its infancy. Today, nearly 20 years later, she’s still involved in the WordPress ecosystem, providing troubleshooting, support, and plain English tech translations for business owners who need their digital lives demystified.

\n\n\n\n

But in this episode, we are focusing less on her technical skills and more on her unique lifestyle. Charly is a true digital nomad. Someone who’s not bound to a fixed address, but instead lives and works from a camper van fitted with a Starlink system traveling and working all over Australia.

\n\n\n\n

We talk about what it was like to embrace remote working long before it was commonplace, and how she built a business that supports complete flexibility. We explore both the upsides of the digital nomad life, the freedom to travel, spend quality time with family, and work from beautiful locations, as well as the trade-offs such as limited space, and having to ruthlessly prioritize her longings.

\n\n\n\n

Charlie discusses the essential tech setup that empowers her nomadism. From laptops and microphones to how Starlink satellite internet lets her work reliably from almost anywhere, even in places with little or no mobile signal.

\n\n\n\n

There’s practical advice on working with clients, so support can happen on her schedule, and reflections on building a business that matches her values, even if it sometimes means saying goodbye to clients who aren’t the right fit.

\n\n\n\n

If you’ve ever imagined trading your desk for the open road, or wondered what’s technologically, and personally possible, as a remote WordPress worker this episode is for you.

\n\n\n\n

If 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\n

And so without further delay, I bring you Charly Leetham.

\n\n\n\n

I am joined on the podcast by Charly Leetham. Hello Charly.

\n\n\n\n

[00:03:29] Charly Leetham: Hi Nathan. It’s really good to be here, and we are literally on other side of the world from each other.

\n\n\n\n

[00:03:35] Nathan Wrigley: We could probably not be further apart. You are in Australia, and we’ve never met. We spent probably the last 20 minutes or so having a good old natter. It’s been really interesting. And actually, the way that this podcast was going to go, I think has been upended by the conversation that we just had. Because you talked to me about your digital nomadism, I’m going to say, and I want to lean into that.

\n\n\n\n

But before we get into all of that story about how you’ve ended up working remotely and things, do you just want to give us a little bit of background about how you’ve come to work, be on a WordPress podcast? What’s your background with tech, your life in general? Whatever you wish.

\n\n\n\n

[00:04:09] Charly Leetham: Okay, well, look, I’ll try and keep it short. There is like 40 years to sort of condense into three or four minutes here.

\n\n\n\n

Look, I have always been interested in tech from a very, very, very young age. My dad kind of encouraged me, if I was showed interest in anything, he’d say, well, go and find out about and let’s do this and let’s do that. The age of 13, I had my amateur radio license. By the time I was 16, I’d just left year 10, grade 10, and I went and did an associate diploma, electronic engineering. I worked full-time as a junior laboratory technician in an electronics lab at the Australian University while I was doing that.

\n\n\n\n

And from there I went to be a field service tech with a private company. I’ve done field service, I’ve done pre-sales, I’ve done sales, I’ve done contract management. I’ve done customer service management. Done bid management.

\n\n\n\n

And then I had a need after I decided, I was really, really sick and tired of doing all of this, so I went and bought myself a business with a franchise. We ran retail businesses for four years. They failed spectacularly. And I had a need that I had to actually get some money through the door so that I could feed the kids, pay the bills, eventually feed myself, and the husband is part of it.

\n\n\n\n

So this was born. And this was, people need help with their technology. People need help with their websites, people need help with their emails, people need help with all of this. And at that point in time, that was 2007 and WordPress was just in its infancy. I think it was, maybe three or four generations in at that point, but it was still in its infancy. And I learned, WordPress from that.

\n\n\n\n

Someone said, I’ve got a WordPress website, it’s not working. Can you look at it? Sure. I can look at it. I know C++, I know Pascal, I know Basic. Oh, this is PHP. What’s that? I learned PHP, I learned themes, I learned plugins, I learned how to troubleshoot things. And here we are nearly 20 years later, doing the thing that I love the most.

\n\n\n\n

[00:06:16] Nathan Wrigley: There’s a lot in there, Charly. Genuinely, there is a lot in there. But what I’ve taken from that is that you have always been a bit of a tinkerer. You’ve always been somebody that’s fascinated by the technology side of things. Not just the software, but also, you know, the engineering side of things. And so, gosh, what a history you’ve got.

\n\n\n\n

We’ll get onto all the WordPress stuff a little bit later. Obviously that’s a big part of why you’re on this particular podcast because we are a WordPress focussed podcast. But it was the conversation that we had about half an hour ago that captured my attention and is just going to divert us for a little while.

\n\n\n\n

And that is, you got on the call, we started talking about where we are in the world and the fact that you are over there and I’m over here, and isn’t it amazing that we can talk to each other? And the fact that this technology is here and, you know, when we were both children, this was the realm of science fiction. Being able to speak to somebody on the other side of the planet without prearranging it, and organising it with a telephone network and a great expense and all that.

\n\n\n\n

And then we started talking about literally where you are. And I was kind of curious about your location. It turns out you are a digital nomad. Now, for those people tuning in who don’t know what this is, a digital nomad, I guess is somebody who is not bound to a specific location. I live in the UK. I have a house and a mortgage and all those kind of things. So I’ve kind of saddled myself to that, and I’ve got this definite spot in the world where I call home. You’ve decided to kind of get rid of all of that. And so just tell us about your life and what it is that you do, and how you move around and how you empower that with technology, and what technology you use to make that even possible.

\n\n\n\n

[00:07:53] Charly Leetham: Okay. Let’s start by telling you a story. When my kids were all, all my kids are now in their early thirties, late twenties, so they’re adults. They’re gone, they’re out doing their own thing. But when my kids were born in the mid nineties, I wanted nothing more than to be able to stay home with them. But because of my experience, because of what I was doing, I was the breadwinner. I was the one that had the money coming in, so I had to go back to work. Went back to it when my kids were really young.

\n\n\n\n

And as much as I loved my job and I loved what I was doing, I really hated not being able to be with him. And what I wanted to do was what I’m doing now, then. The ability to help people with their tech. The technology didn’t exist. We couldn’t remote into computers, we couldn’t do video conferencing. We couldn’t even do audio calls like phone networks for what we had. So if you just think about, you know, a young 20-year-old woman with two kids, working in IT, wanting to do this.

\n\n\n\n

Now we come forward nearly 20 years, or nearly 30 years because my kids are 30. I can do exactly what I wanted to do 30 years ago today. I can sit wherever I am, I can run up my computer, I can get an internet connection, I can talk to you. Someone says to me, my computer’s not working, or my email’s not sending, I can’t do this. I can remote into their computer. I can do a face-to-face call with them. I can remote into their computer. I can give them that support. I don’t have to be on site to do that.

\n\n\n\n

That is what a digital nomad is. That’s what me as a digital nomad does. I provide tech support to people wherever I am, literally in the world. I said to you, I traveled in the US for a couple of years. Well, I got stuck in the US for a couple of years. And I didn’t work over there. I want to be really, really clear because you’re allowed to work in the US when you’re over there on a visitor visa. But I was helping people. People would say to me, my computer’s broken, well, let me remote in. I’ll have a look. Let me go and do this, I’ll help you. My dad would ring me from Australia and say, my email’s broken. What can I do? I’d fix it for him.

\n\n\n\n

So that’s what I do. So how does that work for me today? There is a housing crisis. That’s the first thing that we really need to recognise is there is a housing crisis. Finding a house is really, really difficult. Finding a house that is affordable is even more difficult. Rather than stressing on the fact that I can’t find a house, or I can’t afford the rent for a house, or I don’t want to have that stress of having a rent for a house. I fitted out a vehicle, I got a Starlink system. My brother fitted the vehicle out for me. My son, who is the electrician, put the electrical into it. And I literally live on the road. I go from place to place. I find somewhere I can hook into power for a couple of days. I throw my Starlink out the site, and I work. I support people.

\n\n\n\n

You could talk to me tomorrow, well, not tomorrow. Talk to me in a month, and I’m going to be in far North Queensland. A month from today, I will be in far North Queensland doing things up in far North Queensland because I’ve got to be up there for something. That’s what my life is like.

\n\n\n\n

[00:10:55] Nathan Wrigley: If we rewind the clock, I don’t know, 10 years, did you desire something like that? From what you said, it sounds like you did. You always had some sort of intuition that if the technology allowed, you would wish for something like that. But obviously, kids and bills and all of that kind of got in the way. Has this been something which, if you sort of look back on your life, you think instinctively this was something that you wished to do?

\n\n\n\n

[00:11:17] Charly Leetham: Not on the road. Not mobile like I am. Being able to do it from home, being able to be a work from home mum, absolutely. Being on the road and moving around, no, not even my wildest dreams would I have even imagined it. I didn’t even know that was available to us. I had no idea.

\n\n\n\n

Look, I’ve met people, just to sort of segue very quickly. I have met people while I’m doing this, and they are young families. They are mum and dad and the kids, and they’re living on the road. They’ve got homeschooling curriculums for the kids. The kids do all their schooling. They get all these extra education of the places they’re in, all the things that they’re doing. Mum and dad will arrange to take the kids out on a bushwalk, and go and see a place that very few people in Australia will ever get to see. And these kids are living this life. I didn’t know that was available. If I had known that was available, I might have done that with my kids.

\n\n\n\n

[00:12:08] Nathan Wrigley: I think one of the curious things is that, if you are working in the tech space, and obviously we’ll talk more about WordPress in a moment, there is a significant chance that this is available to you. I mean obviously you may have a job which is office bound. We understand that that means that you’ve got to show up to the office and what have you. But I’m imagining that there’s quite a few people listening to this podcast who, if they were to really examine it, these possibilities are open to them.

\n\n\n\n

But it may not be something that they, A, wish to do, or B, they’ve not really thought about it too much. You know, they’ve decided that, okay, life is fine, I like my local environment or what have you.

\n\n\n\n

What are like the key benefits, if you know what I mean? If you were to advertise this lifestyle to our audience, so we’ll do this in two parts. Let’s do the benefits first and then we’ll do the drawbacks later. What are the key things which you look at in your life at the moment and think, I’m so grateful for that? What are they?

\n\n\n\n

[00:12:57] Charly Leetham: Freedom. Absolutely the freedom. I mean, we’re going to talk about drawbacks in a minute, so that’s going to get balanced out. But it is the freedom. It’s the ability to say, it’s getting cold in the south of Australia, remembering we’re in the southern hemisphere. So, I actually have to say that because people like, it’s hot in the south. No, it’s cold in the south. So as the winter months come and it gets colder, we migrate north. So I can literally say, no, it’s too cold here, I’m going to go north. Going to go to Queensland and spend winter in Queensland. It still gets cold, but not as cold as it does in the south. So you’ve got that ability.

\n\n\n\n

I guess one of the biggest benefits is my dad is, he’s in his late seventies and I get to travel with dad. Dad’s traveled for many, many years and he still is. But I get to travel with dad. I get to spend these years with my dad. There’s not many people that can say they get to spend this sort of time, and this quality time, with their parents at this stage of life, because life gets in our way. But we make it work.

\n\n\n\n

We will, once a week, arrange to go and do something. He’ll come and knock on the door and say, you are working too hard. I’m like, I’m working, go away, leave me alone. But then it’ll be, okay, yes, you’re right. I’m working too hard, so why don’t I take this morning off and we go and visit this place where we are staying. Go and find a touristy place or a bush walk to do, or go for a swim in the sea, or go and do something together so I can spend time with my dad. If the family needs me to be somewhere, I can be there, generally.

\n\n\n\n

I also just to sort of pad this out a little, I also house sit while I’m doing it. So sometimes I’ll get to a place, someone will be advertising, we need a house sitter. We need someone to come and live in the house, or live at the house, for a couple of weeks while we’re away. So I’ll go and house sit for them, and I get another experience in all of that. So that’s the benefits. It’s just that flexibility. I would be doing exactly what I’m doing, but I would be stuck in a house. I’d be stuck in a room, in a house, grinding. I can grind and be in some of the most beautiful places in the country.

\n\n\n\n

[00:15:02] Nathan Wrigley: Do you know, it’s so curious because I’m imagining there’s a proportion of the people listening to this who are just so in awe of that description. You know, oh gosh, you can really spend the time in the locations that you wish. I’m imagining there’ll also be other people who think, no, that’s not what I want at all. But I’ve got to say, I’m really drawn to what you’re saying. The idea of being able to go and, I don’t know, work with a spectacular view. Or work in a particular city for a period of time, and then go somewhere slightly more rural. In other words, it’s not the same view that you get every day when you wake up. There’s that variety in life which, certainly for me, there’s a lot of appeal there. Okay, let’s do the drawbacks. What are the downsides?

\n\n\n\n

[00:15:44] Charly Leetham: The downsize is I live in a car. Literally, I live in a little camper van. My workspace is probably, because I fitted out a little commercial vehicle, a little commercial van as my van and as, you know, as my income improves, my savings improve, I will probably upgrade it. But my workspace is probably a metre by a metre. It’s not very big. And when I finish up for the day, I’ve got to pack everything up so I’ve got room for relaxation. I can’t sort of just walk out of a room, shut the door and say, well, that’s work done.

\n\n\n\n

Now, work’s done for me, I’ve got to pack everything up, I’ve got to put everything away. You are living on the road, so you don’t have all of your stuff. And I’m going to put stuff in double quotes, they’re in inverted commas. You learn very quickly what is important to you, and what is necessary, and you have what is necessary. And then you have a few of those things that you go, these are really important to me and I’m not going to give them up.

\n\n\n\n

So it is not like you can say, oh, I’ve got that plate that is really good for this entertaining thing, and go to a cupboard and pull that plate out that you use maybe once a year. No, you don’t have that. You’ve got the plates that you use every day.

\n\n\n\n

[00:16:50] Nathan Wrigley: Yeah. The plates.

\n\n\n\n

[00:16:52] Charly Leetham: Yeah, well, I travel on my own. I could literally live with one plate, one cup, one bowl, knife and fork. You are trading off that flexibility of having a house where you can have things stored, and all of storage space. You really have to think about what it is you want. I have a rule. I literally have a rule and I think everyone should live with this rule anyway. I have to have needed it four times before I go and buy it. If I haven’t needed it four times, then I’m not going to buy it. If I look at something, I go, oh, that’d be really cool and it’d be really convenient. Then I go, but would I use it? Have I needed it four times? Have I needed the functionality that gives me four times? No, don’t buy it. Because where the hell am I going to put it?

\n\n\n\n

[00:17:37] Nathan Wrigley: Yeah, and I guess whatever you’re buying, you have to buy the tiny version of it as well. You can’t get the sort of jumbo version of whatever it is.

\n\n\n\n

[00:17:44] Charly Leetham: There’s your other trade off is you can’t buy food in bulk. Like, I used to go and buy several cans of food and put them in the cupboard. Whether I used them or not immediately, there would be several cans of the same thing in the cupboard just in case I needed it. And if it was sort of, oh, I’m down to the last can, I’ll go and buy a few more. Well, now I’m down to buying two or three cans at a time. And once I’ve run those out, I’ve got to go and find the nearest shop and go and buy another one just to sort of keep it topped up.

\n\n\n\n

You’re not buying in bulk, you’re not buying your meat, you’re not buying your fruit veg in bulk. Does that matter? No, because when you get to certain places, you normally find the local providers, you normally find the local fruit seller or the local fruit and veg shop, and go and buy there. You go and support the local community, and you pick up a few things there and, yep, that’s what you’re going to use. That’s what we do.

\n\n\n\n

[00:18:31] Nathan Wrigley: Just to interrupt there, Charly, do you try to spend a significant portion of time in a particular place so that rather than just sort of driving through it, I guess, and spending a couple of days here and a couple of days there, do you spend significant amounts of time there, and therefore begin to have some feeling of what that community is like?

\n\n\n\n

I guess the underpinnings of that question really is, how do you get that sort of human interaction that so many people think is important? Because clearly you are meeting fresh people every day, and you probably don’t get the chance to form those roots and what have you. So there’s a lot there. But do you know what I mean? Do you try to sort of spend a bit of time so that you gather some of those human connections along the way?

\n\n\n\n

[00:19:12] Charly Leetham: Okay, so there’s a couple of things there that you’ve touched on. On my way to a location, I may only spend a day in a location, as I’m heading to a final destination or the next stop along the way. When I get to that next stop along the way, I do try to spend a bit of time, because I like to put my roots down. I like to be able to just settle on in, be able to work for really long periods and not have to worry about, oh, I’ve got to pack everything up and be on the road again. I’ve worked for three days, now I’ve got to spend the next two or three hours packing everything up so I can get on the road and drive for another couple of hours. Yes, I know English people are going to say, couple of hours driving, you’d be across the country.

\n\n\n\n

We’d spend a couple of hours driving and then you get to the other end and you’ve got to set it up. So you’re losing a day when you’re doing that. So my preference is when I get to where I want to be, getting my feet down and staying there for a couple of weeks if I can. And then from there, I use that as a base of, okay, what is within a hundred kilometers that I can go and visit, and do the site seeing, and do the local colour, and make that a hub for my activities.

\n\n\n\n

You then asked about human interaction and honestly, I think I’m a little different to people. I don’t need it as much as others. I am really, really quite happy to just be in my sphere. I’ve got my online connections. If I need to speak to someone, I’ve normally got someone on the other, on Discord, or one of the chat programs that I can chat to. And then if I feel like I’m getting to that stir crazy point, you go to the local pub or you go to the local cafe and you sort of sit around and you have a chat to the locals.

\n\n\n\n

That fills that need for me. I’m not a person who is, it sounds terrible, I’m actually really good in a public environment, but it drains me. So I really, once that’s done, I’m done for a couple of days and I can just go sit in nature and not worry about it.

\n\n\n\n

[00:20:58] Nathan Wrigley: Yeah, I think everybody can totally see that. There’s just so many different personality types, isn’t there? I can identify exactly with what you’re saying. I can go for extended periods of time, and not really require that human interaction. And then occasionally I sort of crave it, and so I satisfy it and go and meet people and hang out with all sorts of different people.

\n\n\n\n

And so I guess really that is the piece that you would need to examine in your own life. Because if you were going to go nomadic, for want of a better word, you’ve got to really understand that bit. What is your need? On what level do you need to be with other people and interact with other people? Because that’s really the fulcrum around what makes this whole thing possible.

\n\n\n\n

Speaking of what makes the whole thing possible, I’m interested to delve into the tech a little bit. Because you mentioned this sort of one metre square, and the fact that you’ve got to pack things away and what have you. I’m curious as to what technology do you have which enables this? Ignoring the vehicle and all that, I’m just trying to imagine what you might put in your shopping cart. If you were telling somebody this digital nomad life was available, what would be the requirements to make that happen?

\n\n\n\n

[00:22:01] Charly Leetham: So I’m doing this with my laptop computer. Now, I buy as top of the range as I can when I buy, and it lasts me for years. So I’ve got, I don’t know if you’re familiar with them, I have an MSI gaming computer, because it’s got the extra fans in it. So it really, really works well when you’re doing a lot of processor intensive stuff. So it’s not just for gaming, because I do a bit of graphic design and I do a bit of this and I do a bit of that. So the extra fans make the world a difference.

\n\n\n\n

So I’ve got an MSI gaming computer, or an MSI computer. I have an external microphone. I’ve actually just recently bought an external webcam. I was using the webcam on the computer. It was perfectly fine. I’ve changed my setup to where I now have an external monitor mounted on the wall in my van. So when I settle in, I pull my 21 inch monitor out and I plug my computer into it and I’ve got this beautiful big monitor. I’ve got my external keyboard, and I’ve got my mouse.

\n\n\n\n

[00:22:56] Nathan Wrigley: Okay. I mean it’s the bare essentials, isn’t it? I think we can all understand that. And then I think you mentioned the internet connectivity bit, which I suppose is also a crucial part of the tech. Because where I am, it’s a landline. I obviously have, you know, I’ve got a mobile phone, so there’s the cell signal, which will allow me to roam within Europe and North America and what have you, but there’s all the cost and everything associated with that. Where you go, I think it’s fair to say that you would quickly lose all manner of possibilities because the reception in Australia, you said is not that great in terms of the internet. So how do you overcome that? I think you said Starlink.

\n\n\n\n

[00:23:30] Charly Leetham: Yes, Starlink. I kind of looked into it for a very long time. I was relying on our mobile data and using my phone as a hot link. But in Australia, I was joking with you about it when we started this call, I’m on the NBN here. And if anyone knows anything about the NBN, you’ll know that most Australians hate the NBN. It’s terrible. If it works, you’ve got to consider yourself lucky.

\n\n\n\n

It’s great if you are in a capital city, but you go a hundred kilometers, and I’m being a little flippant when I say that, but I’m not too far wrong. Go a hundred kilometers away from a regional center and you’ve got nothing. There’s no radio signal. By radio signal, I mean mobile signal. You can’t make phone calls. You’ve got that little, there is no signal icon on your phone. You can’t actually get a connection. I say a hundred kilometers, maybe it’s 200, maybe it’s 250, but that’s not a very long way in Australia. It really isn’t.

\n\n\n\n

So I bought Starlink. I spoke to someone who was traveling along the way. And I actually want to come back to just the nomadic lifestyle when we’re done here, Nathan. And I met someone while they were traveling. They said, oh, Starlink, it’s wonderful. And it was still relatively new at the time. I’m like, oh, really? Are you sure? And he explained it to me like, oh. So when I got the car, I went and bought myself the Starlink and it’s fantastic.

\n\n\n\n

Oh my goodness, it’s so good. You’ve got to have power because the routers take power. You can just get, you know, one of the, I don’t know if you’ve got them there, the power stations, the USB power station that you charge up and you can run all your devices off it for a couple of hours. You could do that. I’ve seen people run them off of just car batteries with the clamps on the battery terminals. I’m an Australian, this is pretty normal.

\n\n\n\n

So you’ve got to have the power for the router, to run the router. That then powers the dish and you’ve basically got, in inverted commas, uninterruptable internet for as long as your power lasts. For as long as you’ve got power, you’ve got uninterruptable internet. I have found where I’ve been, I house sat for my sister-in-law during winter, and her internet was terrible. So I went and got my Starlink out and threw it up and connected to it, and I had better internet. The connection speed on the internet on the Starlink versus her landline connection was like 10 times. I had 10 times better internet connection using Starlink than I did on a landline.

\n\n\n\n

[00:25:50] Nathan Wrigley: With the Starlink technology, do you have to, so I really am ignorant of this. I mean I know it’s to do with satellites, and I know that you can have it bolted onto the side of your house, I guess if you live in a rural area where there is no regular landline. But yours is this sort of peripatetic, mobile version of that.

\n\n\n\n

Firstly, do you have to point it at a particular part of the sky? Do you have to spend time lining it up or do you just have to, just plonk it in daylight? So you know, outside basically? And is it bulky, or is it the kind of stuff that you could throw in a backpack if you were nomadic in that sense? You know, you didn’t have wheels, you didn’t have a vehicle, you were just sort of backpacking around. So two things. Where do you have to point it and is it big?

\n\n\n\n

[00:26:27] Charly Leetham: Okay. You asked some really great questions. I’m just going to say they are really, really inspired questions. The first thing I want to say is that the stuff that you see bolted onto the side of a house is typically the stuff that we would use when we’re out mobile. It’s the same hardware. They’ve just got mounting technology, or mounting systems, that will allow you to mount it to the house.

\n\n\n\n

Quick story before I answer the second question about how big is it and all the rest of it. I had a version 2 Starlink, which, it would now be five or six years old, and it’s got a pole and it’s got the dish on it. And the dish is, I say dish, it’s a rectangular panel and you’ve got put it on a base so that it’s stable. That’s heavier than the version three. I had that last week, the week before I had a problem with it and I was a bit concerned. So I contacted Starlink and I said, listen, it’s doing this, here’s all my, being a tech I had all the diagnostics and stuff I’d done and I laid it all out and I said, and I just really want to say that I’m a little concerned. Because I’m traveling and I’m often outside of mobile range, I don’t want to get outside of mobile range, put my Starlink on and have it fail. I’m concerned that I’ve got an intermittent fault that is going to be a problem.

\n\n\n\n

And they said, no worries, we’ll send you a version 3, no charge. Because I’ve been with Starlink now, probably two, two and a half, no, two years now. And they just sent me the new hardware. So I’ve just upgraded to the version 3. So I can actually talk about both. So the version two is a little bigger. You’re probably talking, I’m just holding my hands up. It’s probably about 40 centimeters wide and 70 centimeters tall, the panel. It’s only 10 mil, five centimeters deep, I guess.

\n\n\n\n

[00:28:06] Nathan Wrigley: It’s like the sort of size of a modestly big laptop screen. Something along those lines.

\n\n\n\n

[00:28:13] Charly Leetham: Actually, it would be about the same size as my, I’m just looking at, it would be a little larger than my computer here. And I’ve got a 21, is this the 15? No, this is a 17 inch. This is a 17 inch monitor. So I’ve got a 17 inch laptop.

\n\n\n\n

[00:28:24] Nathan Wrigley: Yeah, so we’re in the order of, got my hands out and I’m imagining how big that is. It certainly answers my backpacking question anyway.

\n\n\n\n

[00:28:32] Charly Leetham: Well, let me answer that question for you in a different way. There is now actually what they call a Starlink Mini, which is designed for backpacks. It’s designed to fit inside a backpack. It’s got a portable power supply so that you can go hiking, you can go backpacking and take your Starlink with you. I don’t know a lot about it. I do know that the plan that you put it on is a little different to what you would put our plans on, the plans you would use for ours, because it’s designed for you to be really, really mobile, not just mobile like we are. And it’s really light. It’s designed for a backpack.

\n\n\n\n

So that answers that question as well as like, you’ve got the technology. The version 3, and I wanted you to say this, the version 3 would probably be half as light as the version 2. So it’s much lighter. And one of the things that I really liked about the way this all works is that they’ve got ground mounts, right? So you just put them down on the ground, which is going to answer your next question. Do you need to position it? No. You just put it out. You’ve got to make sure it’s got a clear view of the sky. You’ve got to make sure that there’s no real obstructions, and that means no trees, no buildings. So nothing that’s going to sort of overshadow it as the satellites go over. And it will find the satellites for you. You don’t have to do anything. You just hit the button and it just works.

\n\n\n\n

[00:29:45] Nathan Wrigley: Miraculous really when you think about it. I mean, actually think about it. You’ve got this box that you just plonk out under the stars somewhere, and a bunch of, I mean, I’m just actually thinking about what I’m about to say, and it is ridiculous. There’s a bunch of satellites, so they had to go into space, moving around the planet. And they connect to the little box somehow send TCP IP packets all over the place, literally off the planet, which then get bounced down somewhere and, you know, end up in this case talking to me. Insane that any of that works.

\n\n\n\n

[00:30:19] Charly Leetham: So let me just add to that, at faster speeds than your standard internet will give you in Australia. I don’t know what it’s like in the US, I don’t know what it’s like in Britain, the UK, but it’s faster and more stable speeds than you get in Australia in general.

\n\n\n\n

[00:30:36] Nathan Wrigley: Yeah, I actually, so it’s probably about six months ago I looked at Starlink. I’ve never seriously looked at it. I’m always just curious about it so I’ve ended up on the Starlink website. In terms of the speeds that you can get, they’re not comparable to what you can get through a landline. You can get significantly faster. But they are still impressive. And there’s nothing that day-to-day use wouldn’t be afforded by a Starlink package. I mean, maybe if you were sort of streaming 4K video left, right and center, maybe it would struggle in that scenario. But for any normal, and I’m doing air quotes, any normal use of the internet, more than enough. Absolutely incredible.

\n\n\n\n

Okay, so all of that stuff, absolutely amazing. I’m so impressed with everything that you’ve just said. It really, it speaks to me. I think there’s an awful lot in your life that I think, oh gosh, wish I was Charly. But I’m kind of curious then as to the kind of work that you do actually do, because you painted this picture of all these infinite possibilities and what have you. And now I’m turning the attention really to what is it that you do do? What are the kind of things that you’ve been able to create in your life in this nomadic way? What kind of work are you able to pull off?

\n\n\n\n

[00:31:43] Charly Leetham: So what I do, what my business is, is I help businesses manage their tech. I like to sit between a business and they’re tech. Some people might call me their CTO, some people might just call me their technical team. I try to translate tech into plain English for business owners so that it takes all of that stress out of it.

\n\n\n\n

When your business owner says, I need an email address, or I need a new email account, or whatever it is, and they’re talking to a provider, and the provider’s giving them all of the marketing guff, and all of the sales thing, and then it’s not working. So then they’re speaking to the technical people and the technical people are talking their jargon to them. It’s overwhelming for them, and they’re not spending time running their businesses when they’re dealing with that.

\n\n\n\n

They need someone who can sit between them and that morass, if you like, and then say, okay, what is it you want? Oh, right, cool. Let me go and talk to people. Let me get you some answers and I’ll come back to you. So I often say, I don’t walk into a business and say, the answer is this, now what was the question? Which is what a lot of product salespeople would do. And I don’t want to, I’m not trying to bag salespeople here, because they’re needed. But I don’t go in and say, the answer is this, now what was the question? I go in and I say, okay, what is it you’re trying to do?

\n\n\n\n

I don’t want to know about the technology you want to use. I want to know about what your business application is. I want to know, what is your input and what is your output? What are you trying to do here? Cool. Now, what systems do you already have? Let me go and investigate those systems. Let me see what they can do for you. Let me see if we can make those systems work to do what you want them to do. They can’t do it, okay, let me go and find some technology that we can plug in and we’ll work with what you’ve got.

\n\n\n\n

The big thing I find with a lot of small businesses is, two things. They get caught with the bright shiny object syndrome. Oh, this new technology’s coming out. It’s going to make my business run well, it’s going to make me money. Technology never makes you money, by the way. Technology only ever helps you make money if you use it right. So they get caught with the bright shiny object syndrome. Or they get caught with the sales person said it would work. I didn’t understand what it did, and I bought this system and now it doesn’t interact with the rest of my systems and I’ve now got to put all these other processes and all these other things in places to make it work.

\n\n\n\n

That’s kind of where I sit. But I’m a tech as well, so I can make it work, I can troubleshoot it. I build websites, which is how I got into WordPress. I build websites. I fix websites. Like I actually also troubleshoot plugins. You know when we upgrade something or something’s not working and you’re getting all the error message? I’ll go and actually troubleshoot a plugin and say, oh, that plugin’s doing this. Can I fix it? No. Okay, I’ll send a support response off to the plugin provider and say, here’s all the logs, here’s what I’ve done, here’s what I’ve found. Can you get this fixed up for me? Or can you get it fixed up for us? Or, I’m really stuck because I’m getting to this point and it’s just not working and I don’t know where it’s going wrong, but I’m pretty certain it’s between here and here.

\n\n\n\n

The other thing I do in all of that is, when you get the two suppliers going, it’s them with the fingers going both ways. I tend to be the one that sits between it and mediates to try and get that sorted out. So that’s what I do, and I do that all remotely.

\n\n\n\n

[00:34:54] Nathan Wrigley: I’ve totally understood all of that. You know, you’ve got this, you’re sort of sitting in between, and being that kind of agent that helps people with the tech because they’re busy and they’re doing all the things and they haven’t got the time to gain that expertise in all of that.

\n\n\n\n

So the follow up question, I guess from that, and it’s kind of leaning into your nomadic thing a little bit as well, is I guess that kind of work, the kind of work that you’ve got for yourself there, you can do it because, and I’m going to say this like it’s true and then you can correct me if I’m false, because you can do that when you have time available.

\n\n\n\n

And what I mean by that is, it’s not like if you were working in an office and you need to be there from nine o’clock in the morning until five o’clock at night, because the telephone lines open up and you’ve got to field all this support. I’m guessing you’ve built a business where the channels of communication are a little bit more async than that. I don’t know, like an email exchange, or Discord, or Slack or whatever it may be. In other words, you can be in the car driving at 7:30 in the morning or 5:30 in the afternoon, or 3 or whatever it may be, because you are not needed at that exact moment by, I’m going to say your employer, but in this case, your clients. It’s more async than that. So I’ve said that like it’s true. Is that true?

\n\n\n\n

[00:36:07] Charly Leetham: It is true for me. You are entirely correct. I’m sort of laughing because you’re like, oh, you can be driving in the car. The amount of times where I’ve been traveling with dad and my phone’s buzzed at me and I’ve gone, oh. And he goes, okay, hang on, I’ll pull over. Because we’ve got radio signal, we’ve got mobile signal. And he pulls over and I’ll fix the problem. Like, it might be a five minute fix and I will actually fix the problem then and we’ll keep moving. I’m sitting having a cup of coffee somewhere and one of my clients messages. And they message. I rarely spend time on the phone, or on video conferences with them. They know that the best way to get me is to book a time. I’ve trained my clients.

\n\n\n\n

[00:36:44] Nathan Wrigley: That’s fascinating. So to you, that piece of the jigsaw puzzle is entirely obvious. And so it kind of just gets glossed over in your head. But you have created a business where that bit is the kind of foundational piece. If you had clients that wanted you on call 24/7, that really wouldn’t work because you’ve carved out a life for yourself where you don’t want to be on call 24/7. You want be able to do what you want to do when you want to do it, with the understanding that the clients are important, but the async nature of it is, they’ll message you. As soon as you can get to it, you’ll get to it.

\n\n\n\n

And I’m guessing that when you onboard these clients, there’s that whole education piece. This is what I do, this is the way we respond to support. You’ll get an answer with, I don’t know, 12 hours, 24 hours, whatever it may be. And it may be that somebody listening to this podcast is firefighting all the time and they kind of haven’t figured that piece out. So I think that’s really interesting that you’ve got that, but yet it’s self-evident to you.

\n\n\n\n

[00:37:39] Charly Leetham: I think I want to also add to that is that my clients trust me. So there might be point in time where I am always on for that client for a while at least. And when, I’m always on for them. If they message me, I will, and I do this for all of my clients actually. If they message me and say, hey, this is a problem, and I’ve got access, I actually have the ability to respond to them. I will normally respond to them and say, I’m letting you know, I’ve seen this on the road today, or I’ve got meetings all day. I’ve got this, you are in my queue, I’ll get to you as soon as I can. And they know that actually means not tomorrow, not the next day, not, whenever it is. I really do mean as soon as I get a space available, they’re going to get my attention. We’ve built that trust relationship.

\n\n\n\n

[00:38:26] Nathan Wrigley: I think probably that is another foundational piece of your business. Without that trust, that’s going to be difficult to onboard clients. Do you tend to gather clients by word of mouth more, or do you have a marketing website where people onboard to you and you have to build that trust up over time? Or is it more a case of your clients recommend your services to other clients who then bring in that trust with them, if you know what I mean?

\n\n\n\n

[00:38:49] Charly Leetham: Mostly column A, little bit of column B and more of column C. So yeah, it’s a bit of everything. I am actually just starting to ramp up my marketing as I start to get more comfortable with what I’m doing. And it sounds strange, right? Because I’ve been doing it for a while, but I’m starting to get more comfortable.

\n\n\n\n

So now I’m starting to ramp up my marketing, because I can talk to people about how it works and what it does. And I have very frank conversations. It’s one of my things is to be, make sure that I am upfront, I am frank, I am honest about what goes on. I don’t like. I can talk salesy. I prefer not to. I prefer to be plain English and real world with people.

\n\n\n\n

I think the other thing because, if we are talking to your audience, the other thing that I really wanted to highlight there is that I have had clients sack me because they don’t like the way I work. That’s not a reflection on me. That’s not a reflection on the surface I provide. It was a reflection on the relationship that was developed, and that relationship didn’t work for them. I’m good with that. I hope I found someone that can actually work with them the way they need them to work.

\n\n\n\n

The other side of that is I have actually suggested to some clients that they would be better off with another provider. And as a service provider, that’s something that we have to be utterly comfortable with. Being able to say this client is not the client that works for us. We are going to spend too much time, too much energy, too much money supporting them, than we are going to get out of that relationship. It is commercial, and it sounds mercantile, and it sounds cutthroat, and it is. But by doing that, what you’re also doing is making space for another client to come in that is actually going to fit your ideals better, it’s going to fit the way you work better. You’re also allowing that client to find a provider that works better for them.

\n\n\n\n

[00:40:39] Nathan Wrigley: This has been such an interesting conversation Charly. This is your life, right? So it’s just oh, this is the way I wake up and I do these things and what have you. But it’s in such contrast to my life at the moment, and yet there’s so many bits of the jigsaw puzzle that you’ve just described that are really fascinating to me.

\n\n\n\n

I would imagine there’s going to be quite a lot of people listening to this who have intuitions that, I got into tech and I got into building WordPress websites so that I too could have a little bit more of that freedom. Maybe even going as far as you’ve done to make it more nomadic. So they own their own vehicle and potter about all over the place. Or they backpack for three months of the year. It’s just fascinating. And because it’s your life, it probably doesn’t seem that extraordinary, but from where I’m sitting, totally remarkable.

\n\n\n\n

[00:41:24] Charly Leetham: No, it doesn’t seem like it’s every day to me. I will say that I think I have a concept of how blessed I am being able to do it. I try not to become so blase about, oh, this is just the way my life is. It’s yeah, I worked hard to get it to this point. So I’ve got to accept that I’ve put in a lot of work to get there, but I’ve also got to accept that there is a lot of blessings that have come from it. And I thank the Lord every day for the life that I have.

\n\n\n\n

[00:41:50] Nathan Wrigley: Well Charly, we’ve reached the 45 minute mark, and although we had a whole range of different things that we could talk about, I hope that you are happy that’s where we ended up. We talked mostly about digital nomadism. We didn’t really stray into WordPress too much, but what a fascinating conversation.

\n\n\n\n

Maybe we’ll have a conversation another day, and lean in heavily to the WordPress side of things, but digital nomadism it was.

\n\n\n\n

Charly, where can people reach you? And I don’t mean that in a physical sense because obviously we have no idea where you’re going to be, but if they were to reach out online, or try and find you on a social network, or a website or whatever it may be, where would be some of the places where we could find you?

\n\n\n\n

[00:42:27] Charly Leetham: The best place to find me is on my website. If you go to askcharlyleetham.com, and then at the end of it put /connect-me. So connect to me with the dashes between it, you will get wherever you can find me. All the networks I’m on. You can book a free 30 minute breakthrough session. And guys, if you just want to come and talk to me about how you can set up your business, or the things that you’re doing and the things that you need to consider, I’d happily talk to you for 30 minutes about that. That’s not a problem at all. And just so you know, I’m on Facebook, I’m on X, I’m on LinkedIn. I’ve got a YouTube channel.

\n\n\n\n

I do a podcast every other day. I do a podcast, Making Tech Easy for Small Business Owners. It’s a 10 to 15, or 15 to 20 minute episode about something tech, and tries to try to simplify it out. I do interviews every now and again, much like this that I put up on there. I’m on Rumble, I’m on Odyssey.

\n\n\n\n

[00:43:22] Nathan Wrigley: I will link to all of those different bits and pieces. Anything that we’ve mentioned just then I will put into the show notes. So if you head to wptavern.com. Search for the episode with Charly in it. And Charly, I should have said at the beginning is not a typical spelling, it’s c h a r l y. So if you search for that this episode will surface.

\n\n\n\n

So absolutely fascinating, Charly. Thank you so much for chatting to me today and good luck. I hope that you managed to get wherever it is that you are going in the days, weeks, months, and years to come. Thank you so much.

\n\n\n\n

[00:43:52] Charly Leetham: Thank you Nathan. I have had an absolute ball. I’ve really enjoyed this conversation, and I love talking about the life I’ve built, so thank you.

\n
\n\n\n\n

On the podcast today we have Charly Leetham.

\n\n\n\n

Charly’s journey with technology spans over four decades, from tinkering with amateur radio as a teenager in Australia, to working in electronic engineering, and eventually building a career in WordPress and small business tech support. With a background in field service, sales, and running retail businesses, Charly pivoted to helping people with their websites and tech needs right around the time WordPress was in its infancy. Today, nearly 20 years later, she’s still involved in the WordPress ecosystem, providing troubleshooting, support, and plain-English tech translations for business owners who need their digital lives demystified.

\n\n\n\n

But in this episode, we’re focusing less on her technical skills and more on her unique lifestyle. Charly is a true digital nomad, someone who’s not bound to a fixed address, but instead lives and works from a camper van fitted with a Starlink system, traveling, and working, all over Australia.

\n\n\n\n

We talk about what it was like to embrace remote working long before it was commonplace, and how she built a business that supports complete flexibility. We explore both the upsides of the digital nomad life, the freedom to travel, spend quality time with family, and work from beautiful locations, as well as the tradeoffs, such as limited space and having to ruthlessly prioritise her belongings.

\n\n\n\n

Charly discusses the essential tech setup that empowers her nomadism: from laptops and microphones to how Starlink satellite internet lets her work reliably from almost anywhere, even in places with little or no mobile signal. There’s practical advice on working with clients, so support can happen on her schedule, and reflections on building a business that matches her values, even if it sometimes means saying goodbye to clients who aren’t the right fit.

\n\n\n\n

If you’ve ever imagined trading your desk for the open road, or wondered what’s technologically and personally possible as a remote WordPress worker, this episode is for you.

\n\n\n\n

Useful links

\n\n\n\n

Charly’s website

\n\n\n\n

Charly can be found on the following platforms:

\n\n\n\n\n\n\n\n

Starlink

\n\n\n\n

Charly’s podcast

\";s: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, 28 Jan 2026 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:\"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:5;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:46:\"HeroPress: How Art School Led Me To Web Design\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:56:\"https://heropress.com/?post_type=heropress-essays&p=8325\";s: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:144:\"https://heropress.com/essays/how-art-school-led-me-to-web-design/#utm_source=rss&utm_medium=rss&utm_campaign=how-art-school-led-me-to-web-design\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:14108:\"\"Pull
\n
Here is Emily reading her own story aloud.
\n
\n\n\n\n\n

There are two, possibly conflicting, values inherent to my work and general enjoyment of life – collaboration and autonomy.

\n\n\n\n

My background is in fine art. I studied painting in Chicago and New York in the mid-90s. I very much saw the web as another pliant artistic medium to work with, as well as a non-traditional way to show my artwork (since I didn’t have gallery representation). I created fun websites for myself, cropping my photographs for backgrounds and custom buttons, assembling content within tables, interviewing inanimate objects and making animated GIFs. And, yes, I did display an animated hit-counter and a “Built for Netscape Navigator” badge – if that helps you visualize this cacophony.

\n\n\n\n

Living in capitalism, I was also governed by self-interest. I thought I might apply my creative abilities to the earning of a living wage since being a “professional artist” seemed to involve more social skills and luck than I could depend on.

\n\n\n\n

Checking Out The Web

\n\n\n\n

Aside from one class I took in college that covered HTML5 and Macromedia Director, I mostly taught myself by reading books by Lynda Weinman and Peachpit Press and building things. Learning HTML then, and later CSS, was powerful and a much more accessible entry point for a person like me – not especially technical but able to endure lots of trial and error to figure out how to make things work (eventually).

\n\n\n\n
\n

After graduating, I did not get a job at a prestigious design firm.

\n
\n\n\n\n

I was a terrible designer and I didn’t know how to dress or behave in a corporate environment. I probably still don’t. Instead, I waited tables and made websites for friends and fellow artists. After a few years of this, I started to wonder what I was doing with my life and whether I would ever be an artist myself. I volunteered to work with a small neighborhood arts group. I knew they needed a website, so I made one and later worked with a local web development company to migrate it to their proprietary CMS for our volunteer group. Finding I had an aptitude for coordinating people, creating content, and assembling something from nothing – being a web designer began to glimmer as a possibility in the back of my mind. I thought about pursuing arts administration but while at a nonprofit bootcamp had the epiphany that I needed to do my own art and not just support other artists. (Aside: This was to become the underlying struggle of my adult life, #WIP.)

\n\n\n\n

Moving On

\n\n\n\n

Back to waiting tables, I built a few more sites for friends who had started their own businesses. These early sites were all made with HTML, CSS, and a sprinkle of JavaScript. After a few projects, I began to realize that if I had to be the master of all content, I would quickly max out my capacity to take on new work. This was around 2010. I had recently met another web designer who lived near me in Chicago – Becky Davis. Becky also ran the Chicago WordPress MeetUp and, through her, I started my journey into WordPress theme development. I purchased “Digging into WordPress,” the non-official WordPress manual created by Chris Coyier and Jeff Starr. What could go wrong?

\n\n\n\n
\n

Learning a new technology came with its own challenges.

\n
\n\n\n\n

I landed my first non-friend client, hosted them on GoDaddy, and was almost immediately felled by some nefarious exploit. So, I figured out how to resuscitate a hacked site, I learned from bitter experience that I must always (always) have a backup, and I experimented with various commercial themes as I tried to figure out how to build a child theme in this new frontier of PHP code. It’s not as perilous for newbies now; hosts understand how to manage WordPress better and there is a ton of excellent documentation on how to do things (necessary for developing for the complexity and popularity of WordPress today).

\n\n\n\n

Getting A “Real” Job

\n\n\n\n

I worked on my own, slowly building up a business that supported me, but I felt that I was hitting a capacity ceiling again. This time, PHP programming was the biggest challenge. In 2015, I decided I was going to get a “real” job. My hope was that within a company, I would work directly with “real” programmers and develop my skills. I put “real” in quote marks because – people are just people, with flaws and failures like anyone else. Being a freelancer isn’t a “not real” job. There’s just pros and cons to each situation.

\n\n\n\n
\n

Also, even real programmers don’t understand semantic HTML or CSS.

\n
\n\n\n\n

The only designer on a very small team with remote developers, I was still working with clients and building websites with little direction. My work hadn’t really changed; I just had more pressure and no capacity to choose what projects I wanted to work on. I listened to lots of podcasts during this time – mainly Jeffrey Zeldman’s The Big Web Show, Jen Simmons’ The Web Ahead, Jason Ogle’s User Defenders – these inspired me with what was possible and what was important. I wasn’t finding this meaning in my day to day work however and that was a problem for me.

\n\n\n\n

Back To My Roots

\n\n\n\n

One day, walking back from the neighborhood grocery store, I saw a storefront for rent. It had high ceilings, big front windows and lots of wall space. Sure, the main view was a giant empty lot but this felt like an opportunity to reclaim some of that autonomy I was missing and maybe pursue my artwork again. I gave notice at my job and invested some of my savings into renting the commercial space.

\n\n\n\n

From 2018 to 2022 I ran the storefront as a gallery showing emerging artists as well as my own work. I hosted artist talks, local musicians, and generally interfaced with the public. I also rebuilt my web design business in order to support this financially unprofitable venture. Though enjoyable, especially curating, I learned that running a gallery is also marketing, sales, writing, public speaking, and lots of people management.

\n\n\n\n
\n

So, I had effectively given myself two challenging jobs for the price of one with still less time to make my own art.

\n
\n\n\n\n
\n

\n
\n\n\n\n

Although I wasn’t painting as much as I wanted to, in my web development work, I found that I had learned something working at a design firm with other developers after all. I no longer relied on commercial builder themes. I was coding custom themes with Underscores – albeit haltingly, with many Google searches. I started to follow more WordPress folks on the now extant Twitter, people like Aurooba Ahmed, Fränk Klein, Carolina Nymark, Nick Diego, Brian Coords, Birgit Pauli-Haack and many others. I was staying current on WordPress news and through the conversations online, felt more a part of a community than I ever had at my former job.

\n\n\n\n

Refocusing

\n\n\n\n

By March 2020, the pandemic mostly meant the gallery was closed. I couldn’t host public events. Without openings, there weren’t as many sales. Lots of neighborhood businesses closed. The vacant lot across the street that had promised to be a new apartment building remained a weedy lot with half-finished cement foundations and an increasingly elaborate display of graffiti. In 2022, the building I was renting space in was sold. I decided it was time to retrench. I went back to my home office and focused on web development work.

\n\n\n\n

When Jonathan Bossenger tweeted that he was looking for a designer to provide a block theme that he could code up in a tutorial, I eagerly volunteered. It was still early days for block themes and they required a big mental shift from PHP development. A lot of traditional developers were unhappy and vocal about it. Although we didn’t complete the block theme project, it was exciting to connect with people in WordPress in other parts of the world and to feel that we were all invested in learning together. I’d like to try to build that theme at some point – I mean, I got the domain so I have to, right?

\n\n\n\n

For a few years, I kept to a hybrid theme approach, adding theme.json to a custom Underscore theme.

\n\n\n\n
\n

I teetered on the edge of going for a pure block theme up until last year. Now, I believe it’s absolutely doable even for complex websites.

\n
\n\n\n\n

With block themes, I can now set aside the several, weighty PHP books I had intended to study, and remain a generalist. If my development / Googling time is reduced, I can explore other aspects of web design that are interesting and fulfilling to me – like content strategy and web accessibility.

\n\n\n\n

Where I Go From Here

\n\n\n\n

WordPress has enabled me to build a career for myself and to wholly determine my own path. It’s also, as self-employment options go, relatively profitable. The overhead is low, there’s a lot of avenues to follow a specific interest or stay broad, collaboration opportunities, and above all to keep learning (if you’re into that).

\n\n\n\n

Web design and development in 2009 was different then it is in 2026.

\n\n\n\n
\n

I’m not sure I could do today what I was able to do 20 years ago as a mostly non-technical person.

\n
\n\n\n\n

Node, build processes, GitHub, tech bros, (not that those things are synonymous) are a little off-putting. The best way to learn is to do and, if there are too many prerequisites, you don’t.

\n\n\n\n

But, WordPress is large and contains multitudes. The majority of people I’ve met through WordPress genuinely care about what they are building, why, and for whom. The open web is about inclusion, connection, and community – so, whether you are writing a blog post, contributing to a theme or plugin, or volunteering for WordPress in some way, everything we do matters. That cumulative effort is tangible and it’s a unique element of what WordPress is at its essence.

\n\n\n
\n\n
\n

Emily’s Work Environment

\n\n\n\n

We asked Emily for a view into her development life and this is what she sent!

\n\n\n
\n \"Emily\n
\n\n\n\n\n

HeroPress would like to thank Draw Attention for their donation of the plugin to make this interactive image!

\n
\n\n
\n\n

The post How Art School Led Me To Web Design 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, 28 Jan 2026 13:42: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:13:\"Emily Rapport\";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:73:\"Open Channels FM: How WooCommerce’s Open Source Model Spawns 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=114271\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:77:\"https://openchannels.fm/how-woocommerces-open-source-model-spawns-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:168:\"Looking at WooCommerce’s open source nature, we learn how community contributions drive innovation, foster flexibility, and ensure collaborative growth in ecommerce.\";s: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, 28 Jan 2026 09:35: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:7;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:75:\"Open Channels FM: Fostering a Culture of Positive Learning in Accessibility\";s: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=114143\";s: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://openchannels.fm/fostering-a-culture-of-positive-learning-in-accessibility/\";s: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:232:\"Accessibility in digital design should be an engaging process, fostering a supportive learning culture. When approached with empathy, it transforms obligation into enthusiasm, promoting effective learning and advocacy for inclusion.\";s: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 Jan 2026 14:56:44 +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: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:65:\"Open Channels FM: Underfunded PHP Tools: A Global Business Threat\";s: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=114701\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:78:\"https://openchannels.fm/how-an-overlooked-php-tool-keeps-the-internet-running/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:231:\"In this episode of Open Web, host Anne chats with Juliette, the sole maintainer of PHP_CodeSniffer. They dive into the challenges of maintaining crucial open-source projects, funding issues, and AI\'s impact on software 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:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 27 Jan 2026 10: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: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:17:\"Matt: What a Week\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=151148\";s: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:34:\"https://ma.tt/2026/01/what-a-week/\";s: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:3576:\"
\n

There are decades where nothing happens, and there are weeks where decades happen

\n
\n\n\n\n

No attribution, but fun Quote Investigator dive.

\n\n\n\n

Sorry for dropping off the daily blogging train; it just turned out to be a week of pleasant surprises and life-changing events. I’ll share with y’all the second-most exciting one. 

\n\n\n\n

I know I’ve been pushing you all to learn the AI coding stuff as deeply as possible, and I have been doing some myself, my favorite a few years ago, a script to count when we had too many words in a presentation slide, but I knew Claude Code was something different and better.

\n\n\n\n

However, I fell into the trap of bookmarking and downloading tens of hours of Claude Code tutorials and not installing the thing itself. And work has been busy! My colleague Dave Martin was hosting an internal livestream. I joined late, then had to leave because an important call came in. I decided to forget it all, throwing caution to the wind, and just install Claude Code and play with it without reading anything.

\n\n\n\n

The next 24-36 hours are a bit of a blur. I haven’t locked into a multi-day coding session fueled by energy drinks, sugar, and cheesy carbs since my early 20s! There were some interruptions for previous commitments, but I basically became addicted to the feeling of that steep learning curve. Every minor annoyance or workflow became an opportunity to create new software in languages I’d never touched before. 

\n\n\n\n

It also really rewired my brain, even in how I talk. (Found myself saying “thinking” after a colleague’s question. \"😂\") I’m thinking about problems in a much more structured manner now, how to divide and chunk tasks, and provide appropriate context and skills. I really do feel like my brain is being terraformed a bit.

\n\n\n\n

So far I’ve written scripts or apps for grabbing daily summaries from my calendar, spinning up new projects and syncing them with Github, switching between Brave tabs better, an app to search and launch Brave tabs quickly…

\n\n\n\n

Did you know that macOS Preview regressed and no longer lets you export a single page of a PDF as an image? I have an app that does that. What do I do with it? Do I open source it? Am I a Mac App developer now? Do I want to support this for other people forever? Should I even put it in source control? Or publish a set of tests and prompts, as Drew Brenig did with whenwords.

\n\n\n\n

It’s a strange and wonderful time to be a lover of software and computers. A little bit of code goes a long way. I’m at a CCL leadership training this week so offline during the days and exhausted at night but I gotta keep all those little bots running.

\";s: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 Jan 2026 08:53:16 +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: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:126:\"Gutenberg Times: AI Experiments, WordPress 7.0, Gutenberg 22.3 and 22.4, Playground for theme builders — Weekend Edition 354\";s: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=44026\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:130:\"https://gutenbergtimes.com/ai-experiments-wordpress-7-0-gutenberg-22-3-and-22-4-playground-for-theme-builders-weekend-edition-354/\";s: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:33252:\"

Hi there!

\n\n\n\n

Yes, it’s been a while. Did you miss me? I hope you and yours had a great start to the new year, and I wish you a healthy, happy and prosperous 2026. I am infinitely grateful you are a reader on this site and newsletter. Thank you for your ongoing support.

\n\n\n\n

My Year-End vacation directly merged into an intensive training and exploration into AI-first software development. It was eye-opening to say the least and entirely liberating. Ideas can be prototyped fairly quickly and their implementation is not stifled by the level of my personal coding skills. Success heavily depends on a clear vision, architectural consistency and radical quality control.

\n\n\n\n

Although there was a downturn in publishing over the holidays, I found a plethora of posts and plugins again. This edition catches up on most of it.

\n\n\n\n

Looking forward to going through our connecting with you in our eighth year of Gutenberg Times.

\n\n\n\n

Yours, \"💕\"
Birgit

\n\n\n\n\n\n

Developing Gutenberg and WordPress

\n\n\n\n

Aaron Jorbin published the WordPress 6.9.1 Release Schedule. RC1 will be next week on January 29, 2026, and the final release on February 3, 2026.

\n\n\n\n

The GitHub project board of WordPress 6.9.x Editor Tasks lists the PRs that will make it into the release in the Done column. Other core updates are available in this trac report.

\n\n\n\n

WordPress 7.0

\n\n\n\n

Jeff Paul announced the WordPress 7.0 release squad, led by Gutenberg’s chief architect Matias Ventura. It’s a team of veterans and newbies spread around the globe.

\n\n\n\n

Rae Morey, The Repository, also reported with more background and details on the state of real-time collaboration feature in her post: Matías Ventura Named WordPress 7.0 Release Lead as Contributors Close In on Real-Time Collaboration Approach

\n\n\n\n
\n\n\n\n

WordPress 7.0 will run your post editor inside an iframe by default, so now’s the time to test your blocks for compatibility. If you’re still registering blocks with apiVersion 2, you’ll start seeing console warnings in WordPress 6.9. The main gotcha: your document and window references won’t work inside an iframe. You’ll need to switch to useRefEffect with ownerDocument and defaultView instead of globals. You can find more details in the official migration guide.

\n\n\n\n

In his post WordPress 7.0 Enforces Block API v3: Why Existing Blocks Begin to Fail, Benjamin Zekavica, core-team rep, also provides some tips and Tricks. Custom blocks that target admin selectors like .wp-admin or .editor-styles-wrapper, rely on global document queries, or initialize libraries globally and now fail consistently. Reading through the article, it seems this is mostly related to agency work, with bespoke theme and block development on sites of the early block era.

\n\n\n\n

Gutenberg releases

\n\n\n\n

Gutenberg 22.3 and 22.4 have been released.

\n\n\n\n

Hector Prieto highlights in his release post Gutenberg 22.3 (December 17)

\n\n\n\n\n\n\n\n

JuanMa Garrido led the 22.4 release together with Anne McCarthy and they had to tame quite a large changelog with more than 400 PRs merged by 77 contributors, of whom 16 were first-timers! It must have been difficult to pick the top highlights for their release post What’s new in Gutenberg 22.4? (20 January):

\n\n\n\n\n\n\n\n
\n\n\n\n
\n

\"🎙\" The latest episode is Gutenberg Changelog #125 – WordPress 6.9, Gutenberg 22.1 and Gutenberg 22.2 with JC Palmes, WebDev Studios

\n\n\n\n
\"Gutenberg
\n\n\n
\n
\n\n
\n
\n\n\n\n

Justin Tadlock‘s January developer roundup covers new responsive Grid blocks with adjustable columns and widths, an easy-to-use Fonts admin screen, and experimental PHP-only block registration with full metadata. New tools include an image cropper and an updated Abilities API client. The Breadcrumbs block is on track for WordPress 7.0, and Navigation overlay tests are allowing template part assignments. Playground now features a DevTools extension and a new dashboard interface.

\n\n\n\n

Plugins, Themes, and Tools for #nocode site builders and owners

\n\n\n\n

If you’ve ever watched a client accidentally drag your carefully crafted block layout into chaos, Eric Karkovack has your back. In his guide on How to Protect WordPress Block Layouts From Accidental Changes he walks you through two built-in WordPress safeguards: save your layouts as exportable block patterns you can restore anytime, then use the Lock feature to let clients update content without rearranging your design. You can even lock entire Group blocks at once for extra security.

\n\n\n\n
\n\n\n\n

Wes Theron demonstrates the Details block for WordPress, showcasing how you can create collapsible sections perfect for FAQs, definitions, transcripts, and supplemental content. The tutorial covers inserting the block, navigating with List View, and customization options for keeping pages organized and tidy. Theron walks through practical examples showing how the accordion-style functionality helps hide and reveal content on demand, offering a native WordPress solution for managing long explanations without cluttering the page layout.

\n\n\n
\n
\n\n
\n
\n\n\n
\n\n\n\n

Matthew Cowan released Find Blocks, Patterns & Shortcodes, a plugin that helps users locate Gutenberg blocks on WordPress sites and allows CSV export for content audits. The tool includes batch processing, post-type filtering, synced pattern searches, and WP-CLI support, with sortable results tables. It also features security measures like rate limiting and XSS prevention, and improves accessibility for screen readers and keyboard navigation.

\n\n\n\n
\n\n\n\n

In his post How to create magic effects in WordPress with core blocks, Joel Olawanle demonstrates creating cinematic effects using only WordPress core blocks, focusing on the Cover block’s layering capabilities. In his tutorial, Olawanle covers fixed backgrounds for parallax simulation, scroll snap with minimal CSS, creative typography using duotone filters and blend modes, and multi-layered depth through nested Group blocks. Olawanle emphasizes building premium visuals while maintaining performance through native blocks, avoiding heavy page builders and keeping sites lightweight, accessible, and fast.

\n\n\n\n
\n\n\n\n

Matt Cromwell created the Synced Pattern Popups plugin, which turns WordPress’s reusable synced patterns into modal popups that load content with AJAX and use smart caching. Triggers can be activated using simple class or href attributes, and third-party blocks display correctly with good styling. The plugin supports accessibility with keyboard navigation and ARIA support, has an optional AI-powered summary feature, and works with WordPress 6.9’s Abilities API for automated workflows—all without any setup needed.

\n\n\n\n
\n\n\n\n

Justin Tadlock‘s Media Data plugin reveals hidden information from uploaded files—like camera settings, audio tags, and video codecs—through easy-to-use editor blocks that need no coding. Photographers can show exposure details below images, podcasters can add artist info next to players, and archivists can log file sizes and lengths, all using WordPress’s existing metadata with customizable labels and complete block theme integration. Users of WordPress 6.9 also benefit from Block Bindings support for improved workflows.

\n\n\n\n
\n\n\n\n

Troy Chaplin‘s Priority Plus Navigation plugin enhances the core Navigation block by managing menu items more efficiently. When space is limited, it moves items into a dropdown for better accessibility. Using ResizeObserver, it monitors width and changes submenus into a “More” dropdown while following core overlay settings. The plugin fully supports theme.json for customizing dropdown styles, hover effects, and separators, and ensures keyboard navigation and screen reader compatibility.

\n\n\n\n
\n\n\n\n

Kadim Gültekin created Block Style Modifiers plugin to enhance Gutenberg’s block styles with additional CSS classes that can layer together. Developers can easily add modifiers for specific blocks or globally using simple PHP functions and can reorder these classes in the editor sidebar. An experimental companion pack showcases hover effects, responsive utilities, and overlay treatments.

\n\n\n\n
\n\n\n\n

In his post, Bernhard Kau presents his Campaign Archive Block plugin, which fixes Mailchimp’s complicated archive problem by creating dynamic API-driven listings instead of manual archives. Annoyed with Mailchimp’s clunky JavaScript and formatting issues, Kau developed a plugin that automatically pulls archives and can share API credentials with other Mailchimp plugins. Users can set the display count, choose between title and subject, and include sender metadata, reducing the need for manual updates after sending emails.

\n\n\n\n
\n\n\n\n

Johanne Courtright released Groundworx Core 1.3.0 with Dynamic Flow, a query-powered carousel filtering posts by taxonomy or keywords with curated mode for manual selection, Static Flow for building custom slide carousels with any blocks and media pause controls, and Featured Posts displaying content in responsive grids. The update adds responsive breakpoint systems across layouts, block transforms between post disp

\n\n\n\n

Theme Development for Full Site Editing and Blocks

\n\n\n\n

In my latest post, I show how WordPress Playground Blueprints turn theme demos from basic setups into fully functional sites in a browser. Developers create demo content locally, export it, and host assets on GitHub to avoid CORS issues. They then make JSON files that define installation steps, including content import and site setup. The WordPress Importer automatically resizes media and updates URLs. Using this method theme builders can share links that launch complete working demos with sample content, navigation, and settings preserved.

\n\n\n\n
\n\n\n\n

On the Developer Blog, you can read my article Streamlining block theme development with WordPress Playground and GitHub, where I explained a simple workflow using WordPress Playground, the Create Block Theme plugin, and GitHub to connect visual design with version control. Designers can work entirely within browser-based Playground instances, using CBT’s Save Changes to update theme files and submit pull requests to GitHub—without needing to use a terminal or code editor. This method makes it easier for anyone to work on block themes while upholding professional development standards. It’s the blog post to the presentation I gave at WordCamp Gdynia last September. The video is now available on WordPressTV.

\n\n\n\n
\n\n\n

“Keeping up with Gutenberg – Index 2025”
A chronological list of the WordPress Make Blog posts from various teams involved in Gutenberg development: Design, Theme Review Team, Core Editor, Core JS, Core CSS, Test, and Meta team from Jan. 2024 on. Updated by yours truly. 

\n\n

The previous years are also available:
2020 | 2021 | 2022 | 2023 | 2024

\n\n\n

Building Blocks and Tools for the Block editor

\n\n\n\n

Carlo Daniele explores the Block Bindings API for Kinsta, demonstrating how to connect external data sources to Gutenberg blocks. The tutorial walks you through registering custom binding sources, fetching weather data from Open-Meteo API, and creating a UI for custom sources introduced in WordPress 6.9. Daniele builds a practical example binding temperature and conditions to Paragraph blocks, showcasing how the API transforms WordPress into a dynamic application platform beyond traditional blogging.

\n\n\n\n
\n\n\n\n

Ian Svoboda helps developers with creating custom blocks using the create-block package. He covers static and dynamic rendering options and explains important files like block.json, edit.js, and save.js. In his tutorial, he builds a dismissible Notice block, outlines naming conventions for assets in the editor and frontend, and demonstrates automatic block registration with glob pattern matching. Developers need local environments and build tools like wordpress/scripts or 10up-toolkit.

\n\n\n\n
\n\n\n\n

In his last week’s live stream, Ryan Welcher went fully into PHP mode and build Custom WordPress Blocks WITHOUT JavaScript. The Gutenberg plugin now also entails a PHP-only block API in version 22.2 and refined in 22.3. Check out the video and see how it all works.

\n\n\n
\n
\n\n
\n
\n\n\n
\n\n\n\n

Paulo Carvajal published a comprehensive guide on managing Interactivity API state flow for large-scale WordPress applications. You’ll learn the three foundational pillars: Global State for page-wide data, Local Context for component isolation, and Derived State for reactive consistency. You also learn unidirectional data patterns, asynchronous actions with withSyncEvent, store namespacing, and server-side hydration strategies to help you build performant enterprise projects.

\n\n\n\n

WordPress and AI

\n\n\n\n

In his latest video, Jonathan Bossenger discussed recent AI-related news in WordPress, including the Plugin Check Namer tool for evaluating plugin names and the introduction of the Abilities API JavaScript client in Gutenberg. He also showcased the AI Experiments plugin and WP Bench for evaluating the AI capabilities in WordPress development.

\n\n\n
\n
\n\n
\n
\n\n\n
\n\n\n\n

As James Le Page announced on X, the AI Experiments plugin has received significant updates that include AI-powered excerpt generation fully integrated with the editor, along with a new Abilities Explorer admin screen for viewing registered AI features. The backend now supports Content Summarization and Image Generation experiments, which are pending UI development. Additionally, documentation and onboarding materials were improved, and WordPress Playground preview support was added to streamline workflows, allowing developers to test changes directly from pull requests.

\n\n\n\n

Ray Morey has the skinny for you here: AI Experiments 0.2.0 Adds Excerpt Generation and Abilities Explorer

\n\n\n\n
\n\n\n\n

WordVell‘s editorial team examined fourteen practical MCP implementations changing WordPress and WooCommerce workflows from manual tasks to AI-driven automation. This protocol allows natural language commands, such as “publish this post,” to be executed instantly via servers like InstaWP, OttoKit, and n8n. Use cases include AI-driven content creation with SEO, automating admin tasks across sites, product search conversations, personalized customization, and guided checkout experiences.

\n\n\n\n
\n\n\n\n

James Le Page also announced WP-Bench, a benchmark that measures how well language models understand WordPress development. This tool assesses models on WordPress APIs, hooks, security patterns, and features like the Abilities API while testing code in a secure WordPress environment. The goal is to set a standard evaluation for AI providers, encouraging them to improve for WordPress’s many developers.

\n\n\n\n
\n\n\n\n

David Levine, a senior software engineer at rtCamp, explained in the article Beyond AI: What the Abilities API means for WordPress Composability that the new Abilities API allows developers to register specific “abilities” using a clear, machine-readable format. This approach replaces scattered hooks and custom REST endpoints, making plugins and core features more composable. It helps third-party code integrate easily without needing extensive knowledge of internal functions. The API also allows AI and automated tools to find and use capabilities automatically, leading to a more modular and future-ready WordPress ecosystem while maintaining backward compatibility for gradual changes.

\n\n\n

Need a plugin .zip from Gutenberg’s master branch?
Gutenberg Times provides daily build for testing and review.

\n\n
\"\"
\n\n

Now also available via WordPress Playground. There is no need for a test site locally or on a server. Have you been using it? Email me with your experience.

\n\n\n
\n\n\n\n

Questions? Suggestions? Ideas?
Don’t hesitate to send them via email or
send me a message on WordPress Slack or Twitter @bph.

\n\n\n\n
\n\n\n\n

For questions to be answered on the Gutenberg Changelog,
send them to changelog@gutenbergtimes.com

\n\n\n

\n\n

Featured Image: Ai generated.

\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:\"Sat, 24 Jan 2026 06:05:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:18:\"Birgit Pauli-Haack\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i: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:39:\"Open Channels FM: It’s Okay to Let Go\";s: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=114519\";s: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:48:\"https://openchannels.fm/when-its-time-to-let-go/\";s: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:156:\"Being a creator also means there are many times where it\'s tough to let go of ideas or even businesses. You need to figure out that sweet spot for yourself.\";s: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, 23 Jan 2026 12: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:12;a:6:{s:4:\"data\";s:21:\"\n \n \n \n \n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:93:\"Open Channels FM: Growing Agency Success with People-Centric Values and Open Source Education\";s: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=114458\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:100:\"https://openchannels.fm/growing-agency-success-with-people-centric-values-and-open-source-education/\";s: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 this episode, Anne Bovelett chats with Rahul Bansal and Aviral Mittal from rtCamp, highlighting the agency\'s growth since 2009, commitment to accessibility, and innovative training programs 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:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 22 Jan 2026 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:13;a:6:{s:4:\"data\";s:21:\"\n \n \n \n \n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:81:\"WPTavern: #201 – Marc Benzakein on How Life Has Changed During the Internet Era\";s: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=202326\";s: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://wptavern.com/podcast/201-marc-benzakein-on-how-life-has-changed-during-the-internet-era\";s: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:66612:\"
Transcript
\n

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

\n\n\n\n

Jukebox is a podcast which is dedicated to all things WordPress, the people, the events, the plugins, the blocks, the themes, and in this case how life has changed during the internet era.

\n\n\n\n

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

\n\n\n\n

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

\n\n\n\n

So on the podcast today, we have Marc Benzakein. Marc’s story is one that spans nearly the entire history of the internet, with roots reaching back to the mid nineties. He explores, how curiosity and an enthusiastic embrace of technology led him from running a small coffee importing business, accepting payments by snail mail, fax, then email, to helping wire up schools for internet access when modems worked incredibly slowly, and only a handful of people were online.

\n\n\n\n

This episode is a departure from our usual topic about plugins, themes, and WordPress community news. Instead, we are more in the business of reminiscing this week, taking a reflective walk down memory lane to look at how the internet has evolved, not just as a technology, but as an integral part of society that’s transformed how we work, communicate, and think.

\n\n\n\n

Marc shares some personal stories, building bulletin board systems, forging long distance friendships over phone lines and slow modems, and watching as internet access shifted from an intentional, difficult to navigate hobby for a few, to an invisible always on utility that we all take for granted.

\n\n\n\n

We talk about how technology has affected not only business and productivity, often creating more work instead of less, but also our attention spans, expectations around entertainment, the pace of life, and even the social fabric that binds us together.

\n\n\n\n

We discuss the cultural shifts that came with always connected living, digital minimalism, and the recent push by younger generations to step back from tech and reclaim a bit of analog life.

\n\n\n\n

We chat about the early optimism of open standards, the rise of walled gardens and social networks, and the challenges of regulation, commercialisation, and the balancing act between freedom and responsibility online.

\n\n\n\n

Marc’s perspective is shaped by decades of direct technical experience, as well as thoughtful observations of how technology is reshaping the world around us, sometimes for the better, sometimes in ways we need to pause and question.

\n\n\n\n

Whether you are nostalgic for the old days of dial up, intrigued by how the internet’s culture has shifted, or curious about how these transformations might play out as new technologies like AI reshape society, this episode is for you.

\n\n\n\n

If 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\n

And so without further delay, I bring you Marc Benzakein.

\n\n\n\n

I am joined on the podcast by Marc Benzakein. Hello, Marc.

\n\n\n\n

[00:03:44] Marc Benzakein: Hello, Nathan. How are you?

\n\n\n\n

[00:03:45] Nathan Wrigley: Yeah, good. This is going to be an episode unlike one I think we’ve ever done on the WP Tavern podcast. Because usually we have a conversation about, I don’t know, a plugin, a theme, a community idea, something along those lines. And today we’re just going to do memory lane. We’re going to go hand in hand down memory lane.

\n\n\n\n

I think Marc’s memory lane is a little bit longer than my memory lane because it’s all about the internet and the way we’ve been using it and how it’s evolved and all of that. So if you’ve got an expectation of a plugin show, this is not the one for you. This is going to be a little bit different.

\n\n\n\n

So before we crack in properly and have that conversation, Marc, would you just sort of paint the picture a little bit about your bio? Maybe go back right to the beginning of your experiences on the internet. When did you first get online and all that kind of stuff?

\n\n\n\n

[00:04:30] Marc Benzakein: So I want to go back to, I think it was 1995 or 1996. There was a, of course people hear about, and it still exists, AOL and things like that. And then there was Prodigy. I got involved as a user of the internet with a company called Netcom. And it was kind of one of the first true internet service providers that I knew of at the time. It wasn’t like, it didn’t have like this interface and kind of guide you through where you needed to go and everything. You had to use things like Gopher, and you had to do research in order to be able to use the internet.

\n\n\n\n

I of course, became fascinated with it always being a, kind of a tech head or just curious. I’m just infinitely curious. It doesn’t really matter, it doesn’t have to be technology. It can be anything and I find it, like I said, I’m infinitely curious and that leads to distractions sometimes, but it also leads me down paths that I never would’ve thought.

\n\n\n\n

And while I was working on the internet, so this was at a time that I was actually importing coffee from Africa. So yeah, so related. So related. And I had actually made some pretty good money with the coffee business. I was doing the email thing. I had like my three friends who had email addresses and we were like, oh, this is cool. Look at this, instant gratification. And I thought, man, it sure would be cool to see what this looks like from the other side of things. Because I have no clue how any of this works.

\n\n\n\n

And so curious thing happened with the coffee company. I was importing from a country called Burundi in Africa. Some people know where it is, some people don’t. I actually never visited, but my uncle was actually a big shot in the agriculture department there which is how I had the connection to be able to import coffee into the United States. They had a lot of civil and political unrest, and essentially burned the coffee fields. And my uncle fled the country because it had become so dangerous.

\n\n\n\n

So one day I’m, basically I had set up a system in which I import the coffee, it goes to a distributor. Once a month I would go out to the mailbox and collect a cheque. And that was my job. It was the easiest thing I ever did, once I got the system built. And so, lo and behold, civil unrest and all that, which was just awful by the way, but I’m out of business because I can’t import coffee from Burundi. And I was really young, and probably not smart enough to think, maybe I should back this up with other countries too.

\n\n\n\n

But coincidentally, a person that I had gone to high school with, they built computers for schools and things like that, so they had some government contracts and things like that. And they had this crazy idea that they wanted to connect schools to the internet. And they wanted to give them high speed access. Now, keep in mind that back in these days we’re talking about 14.4K, it was, well, we thought it was fast at the time. You know, you had US robotics with their HST standard. And we thought that we were doing well, but most people were actually on 24 hundreds back then.

\n\n\n\n

So if you can imagine that, 2,400 baud modems. I remember it like it was a meal ago. I mean it was just crazy. And so now, I was like importing coffee and I was trying to figure out what to do next and Greg Franklin, who I have partnered with since like the eighties, we’ve been through a lot. We were partners at ServerPress. We’ve been through it all. He and I, you know, we were always good friends. And he says, hey, I’m going to work with Phil and Steve on this internet thing, and it’d be kind of cool if you help me out because I have no clue what I’m doing. I’m like, well, I have no clue what I’m doing either. And he said, yeah, but between the two of us, we can figure it out.

\n\n\n\n

So the idea was, they had already set up, Phil and Steve, who were the other partners in this company, they had set up digital ISDN access. Now, ISDN, let’s see, what did that stand for? Something, something, digital network.

\n\n\n\n

[00:08:32] Nathan Wrigley: I can’t remember what the acronym stood for, but it was banded around a lot, I remember that.

\n\n\n\n

[00:08:36] Marc Benzakein: Yeah. And what made it fantastic was you had a modem, okay, but it was kind of on demand. So when your computer sent out a network request that was outside of your internal network, which nobody had home internal networks back then. You know, if they had a computer, that was it, right? Back then, internal networks were things like, there was like LANtastic was one of them, and then there was Novell networking and all that stuff. So it was like that token ring network stuff, right? Okay. So you have to go way back, right? So I can’t believe I’m remembering some of these terms because it’s been so long.

\n\n\n\n

[00:09:11] Nathan Wrigley: Yeah, I remember all of the ways that they could be connected. I remember seeing the, you know, you’d read through TCP IP documentation and there’d be diagrams of computers connected with T cables all in circles because that was the most efficient way to connect them all. Oh gosh, you’ve taken me back.

\n\n\n\n

[00:09:26] Marc Benzakein: It wasn’t just the most efficient way, it was, if any part of that ring broke, the whole network broke down. You had have it, you know? So this concept of plugging into a switch or a router or something like that was like completely, pardon the pun, but completely novel. Not Novell, novel.

\n\n\n\n

[00:09:45] Nathan Wrigley: Novell, yeah, very good. Very good.

\n\n\n\n

[00:09:48] Marc Benzakein: So I built a lot of token ring systems for local businesses and things like that, but nobody had a network at home. They generally, at most had one computer at home. And when they wanted to go online, I should go back even before that, I used to run a bulletin board service, a BBS, which was even more ridiculous than a 2,400 baud modem.

\n\n\n\n

[00:10:11] Nathan Wrigley: This was when there were like three people in the United States online.

\n\n\n\n

[00:10:14] Marc Benzakein: Yeah. And essentially I would have my computer, I was living in an apartment at the time. I would have my computer set up and only one person could connect at a time to my computer, which was set up with this BBS software on it. And they would play games. I had downloads of different files and things like that. I was the first BBS in our region to have a one gigabyte SCSI hard drive. And so I became very, obviously my BBS became very popular, not because I offered anything incredible, but because I had a one gigabyte hard drive.

\n\n\n\n

[00:10:47] Nathan Wrigley: Yeah, you had the badge of honor.

\n\n\n\n

[00:10:48] Marc Benzakein: Yeah. And word spread quickly and all that. In the old fashioned ways, which was carrier pigeons and things like that.

\n\n\n\n

[00:10:53] Nathan Wrigley: That’s right. There was no, yeah, or the bulletin board.

\n\n\n\n

[00:10:57] Marc Benzakein: Yeah, or the bulletin, yeah. And I think that was probably where I got kind of this taste of like how cool it could be because I would modify my own stuff. So I would, we used a bulletin board software called WWIV. It was all C++ coded. And there was this guy that somehow I found, I don’t even know, in Virginia. His name was Tony. And he and I got to be really good friends because he ran a bulletin board system too in Virginia and I’m in California. And we would get on phone calls, long distance mind you. If you remember what long distance was.

\n\n\n\n

We would talk for hours and this guy was one of the funniest guys I’ve ever met. I mean we would, he would just call me up to tell me, we got to the point where he’d just call me up to tell me jokes and we would just laugh for hours. But he was in the military. He worked on the helicopters that flew George Bush senior around. He was in the Marines.

\n\n\n\n

And we met up one time because he flew out to California. But that’s a whole side story. So that’s where I got started. And then I invested in a US Robotics 14.4 HST modem. So I could do, yeah, 14,400K per second, which was like, I don’t know what the time of $500 modem or something ridiculous like that.

\n\n\n\n

[00:12:10] Nathan Wrigley: Yeah, you’ve suddenly taken your computer onto the highway instead of being stuck on back lanes.

\n\n\n\n

[00:12:16] Marc Benzakein: Right. So not only did I have my one gigabyte SCSI drive, but I also had high speed BBS connection.

\n\n\n\n

[00:12:23] Nathan Wrigley: You got all the bling that you can have.

\n\n\n\n

[00:12:26] Marc Benzakein: I had all the bling on my 286 computer. It might have been a 486, I don’t know. I don’t remember the computer. But what was funny was like you would sit there, we’d be watching TV and I’d hear my modem go off because someone would be connecting to the BBS. I would drop what I was doing just so that I could go and see what they were doing, right? Because at my end I could see everything that people were doing, so on top of it all. That was probably my foray into the internet, even though I didn’t realise it at the time.

\n\n\n\n

[00:12:53] Nathan Wrigley: Although for a proportion of the listeners, they’ll be kind of nodding their head and going, oh yeah, all of the things that you described make perfect sense. I guess for a significant proportion of the audience, all of this will sort of sound like a mystery. But hopefully you’ll have got some impression, deal listener, the internet as we now know it, where it’s ubiquitous, it really is everywhere. You know, you’ve got a connection if you’re walking down the street with your cellular network and what have you.

\n\n\n\n

In the part of the world, certainly where I live, and I imagine where you live, there’s no real black spot where the internet does not really exist. And everything’s really straightforward. You buy a device from a shop, turn it on and it connects almost immediately. And yet that really wasn’t the case. It was kind of like more pioneering days. Most things didn’t work, but it was a heck of a lot of fun, and a heck of a lot hobbying. So more of actually. Now that I think about it, that’s the best way to phrase it. It was a hobby, things to do.

\n\n\n\n

[00:13:48] Marc Benzakein: It absolutely was a hobby. Very few of us actually had, well, I don’t think any of us had the foresight that the internet would become what it is right now. At least none of the people in my circles. I think it was, it would be the equivalent of like being a Ham radio operator. You know, it’s kind of the same sort of thing. You kind of felt like you were part of this like little elite group of people who understood how it worked and could make it work, and it made you feel special. And for those of us who grew up kind of being that nerd in high school and things like that, and especially back in the seventies and eighties when, I mean I went to school, there were only three people who even knew how to use a keyboard on a computer. And of course we, I mean they made a fricking movie called Revenge of the Nerds. They made fun of us.

\n\n\n\n

It’s amazing that we haven’t had, well, I think a lot of us have had to go through years and years and years of therapy. And I think that I just probably deflected a lot of that sort of treatment of nerds with like a very sharp tongue and a, you know, a very, I would laugh at it and things like that. So that was kind of my coping mechanism probably. And I probably have some trauma from all that that I don’t even remember. But there’s probably something there, but that’s a whole other show. We can talk about that another time.

\n\n\n\n

[00:15:00] Nathan Wrigley: Yeah. So the fact that it was a hobby and also the fact that, so my recollections start a little bit later than yours, but we’re not like a whole decade out of kilter. I think you definitely started at times where I can remember some of that stuff. You certainly got the march on me. But nevertheless, I don’t think in my estimation I had any conception that it would grow beyond a thing that hobbyists did.

\n\n\n\n

So I think it was always going to remain this sort of niche hobby thing. Maybe some sort of place where you would communicate with a handful of people, and that handful of people would be, you know, equally nerdy in the same way that you or I were. But no expectation that it would be adopted en masse. No expectation that every single human being would have some sort of device, either that they’re walking around with or just in their home or anything like that.

\n\n\n\n

And so I think, looking back, I predicted it would just be this hobby thing and would never grow into anything else. And so it was just a bit of a lark, a bit of fun. Something that you’d put away from time, you know, you would set it down, go and do your regular day, then come back. There was no email, nothing like that. So you could safely put it away and then come back to it.

\n\n\n\n

I look back on it very fondly. It’s almost like halcyon days. And so many things that the internet has been connected with, and is connected with now are fabulous, but there’s also a lot of downsides which have come serendipitously along the way as well. Nobody foresaw those either. So I think, like I say, it was sort of halcyon days. Just this notion that it would be, I don’t know, unicorns and rainbows all the way down.

\n\n\n\n

[00:16:33] Marc Benzakein: Right. The closest prediction that I had made back then was I said, you know, one day we are all going to be connected. But I thought it was going to be one of these kind of like, we go on and we intentionally connect with each other, not like we’re always connected all the time kind of thing. Of course I was young and quite the gamer at the time. I said, here’s what’s going to happen is, I predict that one day games will exist where we keep all the files on our own systems, and the only thing that’s being transmitted to each other is just data to like, so we can like play together all at the same time in these games.

\n\n\n\n

That was my prediction and people would laugh at me. And now of course it’s gone way, way, way beyond that. But every once in a while I’m like, see, I told them and I did nothing about it. I just knew it was going to happen and I did nothing about it.

\n\n\n\n

[00:17:20] Nathan Wrigley: I remember when I was at school, sitting in a physics class, and I for some reason got sat next to probably the nerdiest nerd I’ve ever met. I won’t name him, but he is still very nerdy. He really was like on the extreme end of interested in all of this kind of stuff. And I remember we got into a conversation once where he said, do you know what I think is going to happen in the future? I think you’ll be able to, so we still had cathode ray tellies, so you’d turn the tele on, you’d wait for three minutes for the TV to warm up, and then the picture would slowly appear. And that was the level that we were at, and you had to walk over and press a button on the screen if you want to change it between the four channels or three channels that were available in the UK at the time.

\n\n\n\n

[00:18:01] Marc Benzakein: Yeah, the kids were the remotes back in those days.

\n\n\n\n

[00:18:03] Nathan Wrigley: That’s right. We were literally, either that or a big stick that you could try and prod from the sofa. But he said to me, in the future we’ll have televisions that are just connected to computers somehow, and we’ll pick what we want to watch, and we won’t have to just watch what’s provided to us. We’ll be able to say, I’d like that now, and this now, and watch this film now. And he just predicted this future. And I remember sitting there thinking, that’s never going to happen.

\n\n\n\n

Now that’s kind of like the starting gate for children growing up in this era. That’s like the basic provision. If you haven’t got, you know, the computer switched on and the TV and the music and the radio and all of that on demand, yeah, that’s not life, that’s just some sort of poor version of life. It’s so interesting how it’s transformed what we expect.

\n\n\n\n

[00:18:55] Marc Benzakein: It’s funny because, yeah, you hear the kids being like, what do you mean you had to wait till Tuesday night at eight o’clock in order to watch? And if you didn’t see it, you’d miss it completely. What do you mean by that?

\n\n\n\n

[00:19:04] Nathan Wrigley: Yeah. But even map that further back and, you know, you go back a whole generation or a generation and a half prior to you and I, even the notion that you could watch anything on a box in a house, what do you mean, the theater? Somebody brought the theater to your house. Well, yeah, kind of, in a little box. What, they shrunk the people down? How? It’s insane.

\n\n\n\n

And yet, every single generation, this is now the assumption. The technology of the magnitude that we’ve got now, and the complexity that we’ve got now, and the miniaturisation that we’ve got now, this is now the benchmark for the beginning of the next generation. And it’s so interesting watching it happen.

\n\n\n\n

I don’t know what you feel. I’m probably jumping ahead because I want to go back and talk about some of the things which have gone wrong. But what’s your, do you see yourself fully able to engage with all of the new things that are happening?

\n\n\n\n

So we’re in the year, we’re at the very, very end of 2025 and, you know, we’ve got things like AI. We’ve had all sorts of interesting things happening. And I do wonder, for me at least anyway, I do wonder if there’s a point in time where it just races ahead at such a speed that somebody like me really does genuinely struggle to kind of keep up. I don’t know if you’ve got the same intuitions.

\n\n\n\n

[00:20:13] Marc Benzakein: I actually think everybody does. I think that kids do too. I just think that kids are focused, for instance, on what’s important to them. And they’re at a different point in their life, so what’s important to them is not important to us. And so the technology that’s important to them like, say for instance, TikTok or whatever, is just an example, right? I only care about TikTok insofar as, what can it do to boost my brand? Or something like that.

\n\n\n\n

Although it is interesting that kids are interested in boosting their brand on TikTok and they’re kids. But that’s, they may not realise that that’s what they’re doing, but that’s what they’re doing. But as far as technologies go, I think we just tend to use a technology, I think we’ve reached an age where, with the exception of maybe teleportation, we really feel like, if I can think this, we can do this. And so we just kind of like, now we’re just like, okay, I want to do this, what do I have to do in order to do it? Not, that’s impossible. You know, I think we’ve crossed over that hump of things being impossible.

\n\n\n\n

[00:21:15] Nathan Wrigley: I remember sitting in the car with my children. So this is going back several years now. I mean quite, maybe a decade or more. And I remember my child asking to play a certain song on the car radio. I said to him, we don’t have that. And he looked at me and he said, what do you mean we don’t have it? Because the setup that I had in the car still required compact disks. You know, the old CD player. You would put the CD in and so the arrangement of CDs that we had in the car was the available catalog of songs.

\n\n\n\n

But he could not get over, unavailable. What? What do you mean? I mean, genuinely, it was a real moment where he had to think, the song is bound to that round thing. It’s not just coming out of the ether somehow. And that was quite a profound moment for me thinking, wow, your world is a lot bigger than mine, well, smaller and bigger at the same time, but your expectations are so different to what mine were when I grew up.

\n\n\n\n

[00:22:10] Marc Benzakein: I think that, oh, I mean I hate to sound like, oh, kids today, but kids today, I mean they barely know what an iPod is. And how long ago was that? That wasn’t even that long ago. Because it’s like, what, you had to download your music onto this device? Yeah, because it could hold more music than a CD. For us, the iPod was groundbreaking, right? But I remember the first time I could put music on my phone and I was like, oh, this is awesome. I don’t even, once again, I don’t even know why we call them phones anymore. I hardly ever use it to talk to people.

\n\n\n\n

[00:22:38] Nathan Wrigley: Yeah, your pocket computer.

\n\n\n\n

[00:22:40] Marc Benzakein: It’s way more powerful than anything I ever had in the past. I think because kids are in a constant state of having to adapt anyway, that’s just what growing up is, is a constant state of adaptation. I think that it’s easier for them. I do find that I’m a little bit slower or I might be just more selective. I might just be like, you know, this doesn’t interest me. And it may this be like I’m becoming more and more, get off my lawn as I get older. Or it may be that I’ve always, even back when we started the internet service provider, my feeling was that we have all this power at our hands and we are still children when it comes to us as a society and our ability to be responsible.

\n\n\n\n

[00:23:25] Nathan Wrigley: Yeah, that’s a curious insight isn’t it?

\n\n\n\n

[00:23:28] Marc Benzakein: Technology has always been kind of a double-edged sword for me. It’s amazing what you can do, but going back to the coffee days, I remembered how the speed of business changed for me because we had fax machines. And so I would fax to the people in Burundi because we would, coffee would go to auction. I’d have to bid on it and, you know, get the lot and then have it shipped over here. And the next morning I would, you know, because of the time difference, I would send them a fax in my morning and then the next morning I’d have a fax from them.

\n\n\n\n

And we’re talking about not even 10 years ago, everything had to be done by courier and things like that. And it would be days and days and days before you got information or you’d have to make a phone call. And so that was like the first part of, you could sign contracts in a fax machine. And then we got email, which became even more instantaneous. And as a result, going back to like when personal computers came into our homes, a big part of it was, hey, these things, well, you can do in two hours, what you used to be able to do it eight hours.

\n\n\n\n

And I very quickly learned that nobody was working a two hour day once technology came into our homes. In fact, people were not only bringing their work home, but they were working 14 and 16 hour days. And my thought, I was probably 18 or 20 years old, and my thought even at that time was like, we are not responsible enough to have this kind of technology at our fingertips. And I still feel that way. And so I’ve always struggled with this like, we have technology but we do not have the ability to limit ourselves or to discipline ourselves to say, okay, but how much is actually enough here?

\n\n\n\n

[00:25:06] Nathan Wrigley: Do you know? That’s really curious. It’s not something I dwell on a lot, but when you say it, it makes perfect sense. It’s not like the amount of work that we were doing 50 years ago, the amount that needs to be done objectively is the same now than it was then. I don’t think that’s the case. I think the amount of work always fills up the available time.

\n\n\n\n

And so this promise, which has been offered in multiple generations over hundreds of years, you know, you can go back to the industrial revolution or the agricultural revolution, just the idea that the technology will free up time. Clearly it does, but I think it’s true to say that other things occupy that time because there’s an efficiency gained over here. Well, that leaves you a little bit of time to do this extra other task over here. And because everybody’s bound up to the technology, everybody has this available time, which they then fill up. And so the cycle begins.

\n\n\n\n

And in many ways, I feel exactly like you’ve just described. Instead of going from an eight hour day, the fact that we’ve got the technology in our homes and we can check the email during the middle of the night, and so on and so forth, I think it is entirely possible that the workday could be longer now than it ever has been. I mean not for everybody, and not all the time, but it certainly could be.

\n\n\n\n

Curiously, last night I went to, there’s a history society that I attend locally and we had a magic lantern show. And I don’t know if you’ve come across a magic lantern show, but a magic lantern show is, it’s a wooden box with a whole bunch of candles in it. They put painted glass slides in, and some of the painted glass slides, if they manipulate them in a certain way, they can simulate movement, or arms moving around or.

\n\n\n\n

[00:26:41] Marc Benzakein: Yeah, they’re really cool.

\n\n\n\n

[00:26:42] Nathan Wrigley: Yeah, I really was hit by a sense of, that was entertainment. And there was such pleasure and innovation in that. And it’s the same now, right? Along comes the internet and we get the same pleasure out of that. And along comes AI and the next generation will get the same amount of pleasure out of that. But it was also curious to see, and I’m just going to use the word slow, how slow that activity was.

\n\n\n\n

There was a lot of breathing room. There was a lot of space for you to inject your own thoughts. There was a lot of time waiting for the chap to pull out one slide and put the other one in. Whole minutes would go by and nothing would happen. But there was no expectation that, well, we just lost a couple of minutes there.

\n\n\n\n

So I think that’s kind of leading me onto an unexpected consequence of the internet is maybe that we’ve lost the capacity to think in that kind of slow manner, which I really hadn’t parsed it until last night when I saw what entertainment was 150 years ago. And it was so gentle and slow and enormously pleasurable. Once you’d suspended that there’s no CGI, there’s no Tom Cruise there, it’s just a person on a glass slide. But it was absolutely fascinating. It gave me a real window into the pace of life and what that might have been and how that has changed. And it will, I presume, never, that genie will never go back in the box.

\n\n\n\n

[00:28:05] Marc Benzakein: Well, no. I mean it’s impossible for any of that. I mean I can bring it to modern day terms. When you watch or listen to a podcast, do you listen to it at regular speed or do you listen to it at 1.5 or 2?

\n\n\n\n

[00:28:15] Nathan Wrigley: Yeah, there you go. Yeah, most people I think.

\n\n\n\n

[00:28:18] Marc Benzakein: Yeah. If I have a day where I am doing nothing, I even watch my movies now, I watch them at 1.5x or 2x. And it’s crazy because your brain adapts to it very quickly. But then what happens is, if I’ve gone through a whole day of like listening to podcasts or something like that, which I’ll have going on in the background and I have no interaction with people, when I’m done listening to them, it is dreadfully dreadful. I become impatient talking to people because they talk so slowly.

\n\n\n\n

And then I wonder, am I speaking faster than I normally do now because I’ve been listening to this podcast. And I have to reset my brain. And the thing is, I kind of feel like, I have this theory on ADHD, which I definitely have. My theory on ADHD is, there’s this misconception that ADHD is something where you can’t keep your attention on any one thing, which we’re finding out that’s not true. You either hyperfocus or you’re not focused, in simple terms.

\n\n\n\n

And I feel like what it boils down to is a ADHDers have to have 100% of their bandwidth taken up all the time. That’s what it boils down to. So if what I’m working on requires a hundred percent of my bandwidth, I can hyper focus on it and do nothing else. If I don’t then, I’ve got four screens on my computer. I used to have six, but I’ve got four. I’ve pared it down to four and I’ve got something going on on all those screens. If I’m doing something that’s kind of mundane and just, because I have to have that filled all the time.

\n\n\n\n

But I think that as a society, you talked about time, and it’s really kind of a rule of economics, right? You spend what you make. No matter what you’re making, you’re going to spend it all. That’s kind of like this echo. And it’s the same with time. Unless we actually discipline ourselves to say, look, mental health is just as important, so that means downtime, meditation, all these things are just as important no matter what society tells us. Those things are just as productive as putting out a widget or whatever you’re doing.

\n\n\n\n

And so I think that what has to happen at a societal level, in order for us to gain back some of this discipline, is we need to recognise that while, yes, we need to take up a hundred percent of our time, what are the important things that we need to do in order to take up that a hundred percent of the time? And the reality is, some of that is downtime. Some of that is sleep, some of that is eating, some of that is interacting with people or whatever it may be. And I think technology, because it is constantly the shining new object, takes us away from all of that.

\n\n\n\n

[00:30:45] Nathan Wrigley: I think for me, the profundity of the internet, let’s just use that term, you know, whatever is bound up inside that term, is enormous. You know, it’s probably the most, up till now, maybe AI will come to surpass that, but up until this point, I think the internet is probably the most profound technological invention of all time.

\n\n\n\n

[00:31:04] Marc Benzakein: I call it the eighth wonder of the world.

\n\n\n\n

[00:31:05] Nathan Wrigley: Yeah, right. So the capacity for all that it brings. The fact that you can communicate with people, as I am with you. You are literally on the other side of the planet, and I’m talking to you as if you are stood next to me. The mind boggles. But also access to news, access to publishing your own information, seeking out communities that are just like you and the myriad way, oh, commerce. Let’s not forget that. That whole thing. The capacity for that, remarkable. All of it, remarkable and amazing.

\n\n\n\n

But I think fair to say that there’s always swings and roundabouts. All of those wonderful things that we’ve just described, there’s probably some missteps along the way. And that was one of the things that I wanted to ask you. Are there any bits during the internet’s evolution to where we are now, where you think, do you know what, maybe we shouldn’t have done that? Maybe that wasn’t a good idea. Have you got any sort of thoughts on that, where you look back and you think the internet probably could have avoided that aspect?

\n\n\n\n

[00:31:58] Marc Benzakein: I could think of a lot of little things. I think it’s one of those million little things, right? So going back to those days, it was really quite interesting. You know, I didn’t know what DNS was. I didn’t know, I barely knew what an ethernet cable was. We had this box sitting there that was a Cisco router. I had no idea what a router was. I mean, all this stuff because it was all pre-configured.

\n\n\n\n

And I think the thing that blew me away back then, and this doesn’t really answer your question, but the thing that blew me away was, here we had people that we would get on phone calls with each other to work through problems, because this guy understood DNS, this guy understood routing. The two didn’t both understand both. It was really insane that it worked at all.

\n\n\n\n

And I remembered sitting there going, this is a worldwide thing and it’s going to become a worldwide phenomenon. I mean it’s already working on a worldwide level. And it’s a bunch of people who don’t know each other, who probably if they were in the same room as each other, wouldn’t like each other.

\n\n\n\n

I mean there were guys that I dealt with, there was this one guy, Frank, every time there was a DNS problem, I had to call him. I would dread calling him because his first question would be, what did you do now? It wouldn’t be like, ironically, it would be like, accusatorily, right? If that’s a word. I hated calling this guy, right? But somehow or another, we knew that we were working on something bigger than all of us, and so we tolerated each other at these various levels.

\n\n\n\n

[00:33:22] Nathan Wrigley: Can I just inject a couple of my things? Yeah. Is that all right?

\n\n\n\n

[00:33:25] Marc Benzakein: Yeah, sure. Go ahead. Absolutely.

\n\n\n\n

[00:33:26] Nathan Wrigley: Because where I was going with this was, at the outset of the internet, I think there was a widespread assumption, and hope, that open things would win. And for a period of time, I think they did. So an example would be, I don’t know, things like RSS and things like that. Just widespread, open standards, everybody understood. And I think a lot of that has been upended, you know, the social networks came along, and made these utterly beguiling interfaces, which consumed lots of time. I’ll get onto that as my second point in a moment.

\n\n\n\n

But the standards sort of got, not thrown out the window because they’re still there and, you know, you can still build on top of them, but they got usurped. More utilitarian things that were more easily understood because you were in this silo worked. And so closed things started to dominate.

\n\n\n\n

I have this notion, I have this hope that we are maybe seeing a little bit of a pushback against that. Obviously you and I are in the WordPress space where those kind of things are incredibly important. So that would be one of my things.

\n\n\n\n

And the other thing, which I think I can say for me, and I think it maps across many people, but I can’t be certain about that, is the time that can be consumed on the internet, which with the benefit of hindsight could have been better spent doing other things. I think it’s easy to become, not addicted, but for me to really get lost in the internet.

\n\n\n\n

[00:34:51] Marc Benzakein: What you’re talking about is a natural evolution though, because there’s no real way to regulate that. That’s like, you can’t. How do you regulate that? And I mean that was of course the appeal of all of it back then. Just like blockchain, that’s the appeal of blockchain is like, how do you regulate it? We knew that eventually people would figure out how to regulate it, even then. Because I remember us having these congressional hearings and things about monopolies and things like that, and all these things that had to do with the internet.

\n\n\n\n

And it was very clear that the people asking questions had no clue what they were asking, because they had no clue what the internet really was other than they used email. They had no clue how far reaching. And so they would try to put standards in that just didn’t make sense. But we all knew that eventually people would be in those positions that actually grew up with the internet, understood it. And, of course, you can be cynical or whatever, the government is going to figure out a way to regulate everything so they can get their piece of the pie somehow.

\n\n\n\n

And we saw a little bit of that with the regulation of, say, for instance, IP addresses, which back then were a lot harder to come by because there was a big concern about IP address shortages because we were on IP v4 and there was no such thing as what they call network address translation. So like every single website, if you had a web server, every website had its own IP address. If you were at home, you had a static IP address that was assigned to you.

\n\n\n\n

And I remember filling out the forms, which was like a 20 page application, it may not have been 20, but it sure felt like it, application for more IP addresses, more blocks of IP addresses because after, so we had ISDN, which was kind of a big flop, and then we went to the modem standard which was dial up, which was actually, became very highly profitable for us. But then we got into DSL, which was the digital subscriber line concept. And it was cable or DSL. Those were the two high speed or broadband options.

\n\n\n\n

And even when DSL just came out, we had to assign people IP addresses. So it’d be like, here’s your DSL modem. We would go out, we would install it in their home. Here’s your IP address. And with your DSL subscription comes a dial up subscription, so that when you’re traveling, you can access the internet and you can dial in from your hotel room or whatever.

\n\n\n\n

And I’d say that the only thing we could have changed maybe was the messaging. Because everything else, and it’s still a matter of, look, the internet represents freedom. It represents the freedom to do what you want, when you want, how you want. And hopefully you’re not doing anything illegal. But of course there was a lot of that going on as well. But I don’t, the whole point of the wild westiness of it is that it was the wild west and you could do whatever you wanted. And people loved that freedom.

\n\n\n\n

And so I don’t know, you know, my big frustration is I’d have people call me at two in the morning on my home phone line, because their internet was down and they were going to go on a raid on World of Warcraft or something like that, and they were the raid leader and, by the way, true story. I’m not making this up. And somehow this guy got my phone number and death threat. I mean, I got a death threat because he couldn’t go on this raid.

\n\n\n\n

I mean the stories during that time are crazy. And I think it really is just a matter of, I think as always, with everything, messaging is everything, but people are still going to do what they’re going to do, whether it’s legal or not. So I’m not sure that there were any mistakes that were made because it was an evolution. It wasn’t, there was nothing intentional.

\n\n\n\n

[00:38:21] Nathan Wrigley: I mean, it’s a technology which is just flooded with all of humanity. So the idea that it was going to be unicorns and rainbows all the way down was misguided because it was just waiting for humans to come in with all their interesting, fun, curious, illegal, time wasting stuff, and pour all of that into the internet. I am so fascinated about where all of that will go.

\n\n\n\n

The bit that makes me most interested is that I had quite a significant portion of my life when the internet didn’t exist. And so I had a childhood which was completely inoculated from the internet. And so I have that perspective and so, okay, here’s the bit where I sound like the curmudgeonly old man and, you know, the youths of today and all of that. And that’s not really the intention.

\n\n\n\n

But my children’s generation have never had that. And it’ll be curious to see how they grow up in a world in which always on was always a thing. From very early age, they had access to technology. The endeavor to acquire information is now more or less trivial. You just log onto something and all of that is available to you. We’ve got AI coming at a breathtaking pace. It would just be so interesting to see how this goes. And also very interesting to see how my generation cope with its onset because, sure as anything, it doesn’t look like it’s going to slow down. And so we are going to have to try and keep up, and hopefully we will, without becoming too curmudgeonly.

\n\n\n\n

[00:39:52] Marc Benzakein: My son is going to be 21 this next year, and he hates everything that has to do with technology, which is really fascinating. He’s in college and outside of college, he works at a Barnes and Noble. He has his girlfriend and they go hiking every single day. He takes a hammock with him and puts it between two trees and lays in his hammock and reads books. And this is not something that I trained him to do.

\n\n\n\n

This was, I mean I appreciate that about him other than he’s, you know, not nearby so the only way I can contact him is texting and phone calls, but he prefers phone calls to texting. He prefers email to texting because emails, you check your email when you want to, you don’t get interrupted by the text message notification. And he’s very, very bright and his whole circle of friends are very, very bright and they’re not into technology either.

\n\n\n\n

[00:40:44] Nathan Wrigley: I was just going to say, I’ve noticed that that seemingly would be a bit of a trend over this side of the pond as well. There does seem to be a groundswell of turning things off or minimalising, tech minimalism, let’s call it that. So things like vinyl is coming back as a format for consuming music. The phone’s getting simplified so that there’s less on there. Apps being deleted because the assumption that it’s good to have more things coming in and that more connection is a good thing has been sort of pushed to the back.

\n\n\n\n

Actually many of my children’s generations seem to have now grown weary of that, and they realise that actually that’s not in their best interest to be engaged all the time, every day. And so that will be a curious pushback. It almost seems like a sort of Hollywood plot that, doesn’t it?

\n\n\n\n

[00:41:24] Marc Benzakein: Maybe it’s just that it’s so taken for granted now just like a car is or anything else, that they don’t think of it as anything other than what it is.

\n\n\n\n

[00:41:36] Nathan Wrigley: So we were sort of caught up, our generation were caught up with this constant cycle of innovation, newness, the shiny thing. And actually for a whole sort of 20 years, there was no let up in that, was there? The internet came along, home computers came along. They got smaller. They became laptops, which you could then take everywhere. Internet and mobile phone networks got switched on. Then the advent of a computer, which you could hold in your hand came along. Social networks came along. All of that completely switched on, connectivity came along. There was a constant churn of evolution and next new thing. Maybe you’re right.

\n\n\n\n

[00:42:09] Marc Benzakein: It’s like you’re talking about the television set. In our house growing up, the TV set was something that was kind of always on, and so when we turned it off, it wasn’t a big deal or we didn’t feel the need to watch it constantly. We didn’t need to, I mean let’s say that you live in a place where, out your front window, you have like this beautiful view. But every single day you see that same exact view, to the point where you can acknowledge that it’s a beautiful view, but you’re not as likely to acknowledge it every single day.

\n\n\n\n

I think that that’s the way that technology has become. And of course, I welcome that because I want our kids to have some of the same experiences that we Gen Xers had, you know, where we had to drink water out of the garden hose because our parents told us to go out the door and not come back until after dark. And I don’t want to go that extreme but the point is that they have these things at their disposal, and they just know that they’re there, so they don’t feel like they have to constantly pursue it.

\n\n\n\n

And I mean, I remember last year when my son was out visiting, I took him to this place called, it’s called the Medicine Buddha, which is about, it’s out by Santa Cruz. And it’s about, I don’t know how many acres it is, but it’s redwoods. It’s nothing but redwoods. And we were out there for about two hours hiking. He’s like, Dad, why didn’t you bring me here two days ago? We could have spent the whole weekend here. I mean, it was like, to give you an idea of what it’s like, it is so quiet there because the trees are so tall that the birds don’t even come down,

\n\n\n\n

So I think that the pendulum is swinging in the right direction. I do think that youth today has a lot of the right ideas. You know, hopefully our generations haven’t screwed it up too much for them, that they get to appreciate all of that. But I’m not as worried about it.

\n\n\n\n

But I will also say that with our kids, we were not super restrictive with the screen time with our kids. And it was always funny, you know, we kind of started it out as an experiment and what we found was that they’d play on their tablets, or on their computers for an hour or whatever, and then they’d be like, let’s go play basketball, or let’s go play football, or whatever.

\n\n\n\n

And they would just put the things down and they’d go out and explore on their own. And my kids, it’s crazy how sometimes hard it is to get a hold of them because, oh, I left my phone at home, sorry Dad. And so I see it going in a good direction. But that’s the funny thing is like we went from this period, and I know this was supposed to be about the whole evolution of the internet and we kind of, as you and I do, went down.

\n\n\n\n

[00:44:36] Nathan Wrigley: We segued.

\n\n\n\n

[00:44:37] Marc Benzakein: We segued. But there was a time as crazy as it is, that when you wanted to get on the internet, it had to be intentional. You had to deliberately want to get on the internet. So if you went traveling and you had dial up access, you would have to hook up your laptop computer to a modem, unplug the phone line from the hotel phone line, plug it into your computer, and then hope that the dialing worked, right? That you could get an outside line and that it would take you to the internet and that you’d be able to have a connection. And then it would, nine times out of ten, it would be a long distance number that you had to call because you were in a hotel somewhere else. And now if we go into a hotel that doesn’t have WiFi, we freak out.

\n\n\n\n

[00:45:21] Nathan Wrigley: Yeah. It’s like, what’s going on? This isn’t normal.

\n\n\n\n

[00:45:25] Marc Benzakein: Welcome to the 20th century, I mean.

\n\n\n\n

[00:45:27] Nathan Wrigley: I feel like we’ve grown up in such an interesting time. If you look back and if, like me, you’re into things like archaeology. Archaeology really does show that for most of humanity, especially if you go pre-history, thousands of years go by and the innovation is very small. You know, there might be one or two little things which built up this growing corpus of things which humanity use.

\n\n\n\n

But it might be that somebody invents a slightly new way of cutting the wheat down, or it might be a new way of building a wall or what have you. And that’s the pattern of history. Slow, fairly slow, pedestrian until you get to much more recent times, couple of hundred years ago, and things start to pick up speed. And now we’re at a point where, goodness knows what is going to happen even in the next six months, especially in the realm of AI. We really are at a rate of change, which is very difficult to keep track of.

\n\n\n\n

But it’s exciting. It’s a time when everything is up for grabs. It really is exciting. And hopefully we are going to maintain that enthusiasm, maintain that interest. Make sure that, you know, we’re all safe and well fed and everybody’s looked after. Let’s hope those kind of things happen. But what a breathtaking time to live in. What an interesting time we are in.

\n\n\n\n

[00:46:43] Marc Benzakein: Well, I mean the idea of the internet, and I remember saying this when we started our internet service provider. I said, look, we have an opportunity to level the playing field for businesses. It doesn’t matter if you’re small or if you’re big. On the web, it all looks the same. And I think that that’s always been kind of one of the drivers for a lot of us, especially in the open source world, is this idea of leveling the playing field between kind of the haves and the have nots, right?

\n\n\n\n

So we have the same access to knowledge that people with means might have. We have the same access to products. We have all the same accesses. So in many ways, from a consumption level, I’m talking about consuming knowledge as well as products, but from a consumption level, we have a level playing field. From the other side of things, it’s not as level as it used to be.

\n\n\n\n

A Walmart or an Amazon obviously is going to show up in every search for everything, as opposed to back in the day, all you really had to do was just put in a few keywords and somehow or another you’d show up on Yahoo or AltaVista or Ask Jeeves or whatever it was at the time, you know, before Google came along. And then Google came along and the same thing was still true for a while, where you could like do just minimal amounts of SEO and get attention to your website and get business.

\n\n\n\n

So the idea and I think the mission of the internet kind of should always be to keep the playing field level. I just don’t know that that’s necessarily possible because obviously the people who have the power and the money are going to be able to tilt things in their direction. But having said that, it is still the greatest opportunity for us to level the playing field of anything out there.

\n\n\n\n

[00:48:33] Nathan Wrigley: Oh, that’s such a good way, I think we should probably end it on that, because that’s such a nice and optimistic note actually, in many ways.

\n\n\n\n

We began this conversation not really knowing where we were going to end up, and that has proved to be the case. We really did go in all sorts of different directions there, but absolutely fascinating.

\n\n\n\n

You know, we revealed a lot about our own past and our sort of heuristics and intuitions about how it’s going to be for our children’s generation, and what we’ve enjoyed and what we think might be of concern in the future. That was absolutely fascinating. Marc Benzakein, where can we find you online, 24/7?

\n\n\n\n

[00:49:05] Marc Benzakein: You can find me online, not 24/7, I actually do try to take some time off of technology. But I am with MainWP. I do their marketing and partnerships, for MainWP, which is a fantastic WordPress management dashboard. That’s my plug. And you can also find me on LinkedIn. You can find me on Twitter, Marc Benzakein. I’m pretty sure I’m the only Marc Benzakein out there. I’m marcbenzak Twitter and Bluesky and those things. And then you can find me on Facebook and I’m just kind of generally all over the place.

\n\n\n\n

[00:49:38] Nathan Wrigley: I will endeavor to find those links and I’ll drop them into the show notes. So if you go to wptavern.com and search for, well, I suspect if you just search for Marc’s first name, which is Marc with a C, M-A-R-C. If you search for that, you’ll probably come up in the search. But Benzakein, B-E-N-Z, as we say in the UK, A-K-E-I-N. Marc Benzakein, thank you so much for a really interesting chat today. I appreciate that.

\n\n\n\n

[00:50:03] Marc Benzakein: Thanks for having me, Nathan. Appreciate it.

\n
\n\n\n\n

On the podcast today we have Marc Benzakein.

\n\n\n\n

Marc’s story is one that spans nearly the entire history of the Internet. With roots reaching back to the mid-90s. He explores how curiosity and an enthusiastic embrace of technology led him from running a small coffee importing business, accepting payments by snail mail, fax, then email, to helping wire up schools for Internet access when modems worked incredibly slowly, and only a handful of people were online.

\n\n\n\n

This episode is a departure from our usual topics about plugins, themes, and WordPress community news. Instead, we’re more in the business of reminiscing this week. Taking a reflective walk down memory lane to look at how the Internet has evolved, not just as a technology, but as an integral part of society that’s transformed how we work, communicate, and think.

\n\n\n\n

Marc shares some personal stories, building bulletin board systems, forging long-distance friendships over phone lines and slow modems, and watching as Internet access shifted from an intentional, difficult-to-navigate hobby for the few, to an invisible, always-on utility that we all take for granted.

\n\n\n\n

We talk about how technology has affected not only business and productivity (often creating more work instead of less), but also our attention spans, expectations around entertainment, the pace of life, and even the social fabric that binds us together. We discuss the cultural shifts that came with always-connected living, digital minimalism, and the recent push by younger generations to step back from tech and reclaim a bit of analog life.

\n\n\n\n

We chat about the early optimism of open standards, the rise of walled gardens and social networks, and the challenges of regulation, commercialisation, and the balancing act between freedom and responsibility online.

\n\n\n\n

Marc’s perspective is shaped by decades of direct technical experience, as well as thoughtful observations of how technology is reshaping the world around us, sometimes for the better, sometimes in ways we need to pause and question.

\n\n\n\n

Whether you’re nostalgic for the old days of dial-up, intrigued by how the Internet’s culture has shifted, or curious about how these transformations might play out as new technologies like AI reshape society, this episode is for you.

\n\n\n\n

Useful links

\n\n\n\n

MainWP

\n\n\n\n

AOL

\n\n\n\n

 Prodigy

\n\n\n\n

 Gopher

\n\n\n\n

ServerPress Is Shutting Down

\n\n\n\n

LANtastic

\n\n\n\n

Novell

\n\n\n\n

BBS (Bulletin board system)

\n\n\n\n

WWIV

\n\n\n\n

Ham radio

\n\n\n\n

Marc on X

\n\n\n\n

Marc on LinkedIn

\n\n\n\n

Marc on Bluesky

\";s: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, 21 Jan 2026 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:\"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: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:49:\"WordPress.org blog: Be Part of WordCamp Asia 2026\";s: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=19738\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:54:\"https://wordpress.org/news/2026/01/wordcamp-asia-2026/\";s: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:16192:\"

WordCamp Asia is back in 2026, this time in Mumbai, India, and it’s building on a year that showed just how ambitious and connected the WordPress community has become. Now is the time to get involved. Get your ticket, explore sponsorship opportunities, and help spread the word.

\n\n\n\n\n\n\n\n

In 2025, more than 1,400 attendees from 71 countries gathered in person, with nearly 15,000 more joining online for WordCamp Asia 2025. With notable guests like WordPress Co-founder Matt Mullenweg and Gutenberg Lead Architect Matías Ventura, and a diverse lineup of speakers and panelists from across the ecosystem, WordCamp Asia 2025 brought together a community actively shaping the future of the open web.

\n\n\n\n
\n

It’s the people. It’s the friendships and the stories.

\n\n\n\n

Matt Mullenweg, WordPress Cofounder

\n
\n\n\n\n

WordCamp isn’t just about sessions and schedules. It’s about connection. It’s about learning directly from people who are building, scaling, and sustaining WordPress in the real world. It’s about sharing ideas, debating the future of the open web, and leaving with renewed energy for the work ahead. And in 2026, that spirit returns stronger than ever.

\n\n\n\n\n\n\n\n

Tickets for WordCamp Asia 2026 are on sale now, and this is the moment to secure your spot. WordCamps are intentionally priced to remain accessible, and early ticket sales help organizers plan an inclusive, high-quality experience for everyone.

\n\n\n\n
\"\"
\n

Join 3,000+ Web Professionals

\n\n\n\n

April 9 – 11, 2026 | Jio World Convention Centre, Mumbai, India

\n\n\n\n\n
\n\n\n\n

WordCamp Asia is also made possible by the organizations that step up to support it. Sponsorship plays a critical role in keeping the event accessible, supporting contributors and volunteers, and ensuring the experience reflects the values of the WordPress project. For sponsors, WordCamp Asia 2026 offers a rare opportunity to connect with a highly engaged, global audience in a setting built on trust, collaboration, and shared purpose.

\n\n\n\n

Sponsorship packages are designed to support a wide range of organizations, from local companies to global businesses building products and services on WordPress. Beyond visibility, sponsors become part of the story—helping sustain the ecosystem and invest directly in the community that makes WordPress possible.

\n\n\n\n
\n
\n
\n\n
\n
\n\n\n\n

If your company is interested in becoming a sponsor or you would like to know more, please reach out.

\n\n\n\n\n
\n\n\n\n

At every level, WordCamp Asia is powered by people. Organizers, volunteers, speakers, sponsors, and attendees all contribute to an experience that reflects WordPress’s shared values of openness and collaboration. It’s a place where new voices are welcomed, long-time contributors reconnect, and ideas move from conversation to action.

\n\n\n\n\n\n\n\n

WordCamp Asia 2026 is more than an event—it’s a moment to come together, reflect on where we are, and help shape what comes next. Whether you’re attending for the first time, returning for another year, or supporting the event as a sponsor, your involvement helps strengthen the WordPress ecosystem and the global community behind it.

\n\n\n\n

We’ll see you in Mumbai.

\";s: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, 21 Jan 2026 12:07: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:17:\"Nicholas Garofalo\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:15;a:6:{s:4:\"data\";s:21:\"\n \n \n \n \n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:49:\"Open Channels FM: Open Channels FM v7.0 Changelog\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:33:\"https://openchannels.fm/?p=114485\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:56:\"https://openchannels.fm/open-channels-fm-v7-0-changelog/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:141:\"Our v.7.0 changelog highlights Open Channels FM structure, including new channels, a podcast revival, updated features, and plugin additions.\";s: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, 21 Jan 2026 09:39: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: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:16;a:6:{s:4:\"data\";s:21:\"\n \n \n \n \n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:25:\"Matt: Cancer Founder Mode\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=151128\";s: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:42:\"https://ma.tt/2026/01/cancer-founder-mode/\";s: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:1593:\"

Sid Sijbrandi, a friend and a former CEO of Gitlab, has started to share some of the story of his journey with cancer.

\n\n\n\n
\n

Manager mode assumes that existing systems will surface the best options. When I was first diagnosed with cancer in 2022, I delegated the crucial analyses and decisions about my care to others. In late 2024, when my cancer reappeared and my doctors told me I had exhausted the standard of care and there were no trials for my situation, I realized that assumption might, quite literally, kill me. Founder Mode was my only option.

\n\n\n\n

Founder Mode meant going deep on every diagnostic and treatment option. It meant assembling a team of physicians and scientists to work from first principles to understand what was possible beyond standard protocols. Together, we paved new roads to access the very cutting edge of science and technology. Today, thanks to the efforts of many people around the world and the support of my wife Karen, I currently have no evidence of disease.

\n
\n\n\n\n

Sid was already very inspiring before this journey, and this is especially impressive. Elliot Hershberg has the full story and analysis, including some predictions for the future of cancer treatment.

\";s: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, 21 Jan 2026 06:14:30 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s: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:17;a:6:{s:4:\"data\";s:21:\"\n \n \n \n \n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:63:\"WordPress.org blog: A New Home for WordPress Education Programs\";s: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=19636\";s: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://wordpress.org/news/2026/01/wordpress-education-programs-new-home/\";s: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:8775:\"

Over the past few weeks, a new space has taken shape on WordPress.org for students who want to learn, build, and contribute. WordPress Education programs bring together initiatives that help students enter the WordPress ecosystem through clear, accessible entry points that lead to real-world practice.

\n\n\n\n

With hands-on initiatives and supportive communities, participants can grow new skills and take their first steps as contributors. Across campuses and communities worldwide, learners publish real projects, build practical experience, and gain confidence as part of open source creation.

\n\n\n\n
\"\"
CC0 licensed photo by Virendra Kumar Yadav from the WordPress Photo Directory.
\n\n\n\n

A clearer path into the WordPress ecosystem

\n\n\n\n

WordPress Education is designed to help students turn knowledge into practice, discover their strengths, and understand how their contributions can make a real impact through three core programs: WordPress Campus Connect, WordPress Credits, and WordPress Student Clubs.

\n\n\n\n

Through hands-on campus events, such as WordPress Campus Connect, on-campus groups like WordPress Student Clubs, and a practice-based program called WordPress Credits, participants can gain practical experience, publish real-world projects, and build confidence as contributors to a global culture of open-source creation.

\n\n\n\n

At its heart, these WordPress education programs are about three simple ideas:

\n\n\n\n

Learn. Build. Connect.

\n\n\n\n

This update brings WordPress education programs together in one place, with an easy way to explore initiatives, understand how they work, and take the next step.

\n\n\n\n

You will find:

\n\n\n\n
    \n
  • A home for WordPress Education programs and updates
  • \n\n\n\n
  • Clear “how to get involved” paths for students, educators, mentors, organizers, and sponsors
  • \n\n\n\n
  • Stories, highlights, and examples of real projects created through the programs
  • \n\n\n\n
  • Links to the Education Handbook for program guidelines and resources
  • \n
\n\n\n\n
\n

Want to learn more about WordPress education opportunities?

\n\n\n\n\n\n\n\n

You can also view more information from the WordPress Community Education Programs Handbook. Learn how this serves as a central guide and resource for all community-driven educational initiatives.

\n
\n\n\n\n
\n
\n

WordPress
Campus Connect

\n\n\n\n

WordPress Campus Connect is a growing global learning initiative that brings hands-on WordPress learning directly to the students on their campus.

\n\n\n\n

The organizers can come from within educational institutions or from the local communities to help deliver WordPress programming and create the future stewards of WordPress.

Learn more: https://wordpress.org/education/campus-connect/

\n
\n\n\n\n
\n

WordPress
Credits

\n\n\n\n

WordPress Credits is a contribution-based program by the WordPress Foundation that connects higher education students with the global WordPress community.

\n\n\n\n

Educational institutions partner with the WordPress Foundation to offer students credits toward their degrees for contributing 150 hours to the WordPress project.

Learn more: https://wordpress.org/education/credits/

\n
\n\n\n\n
\n

WordPress
Student Clubs

\n\n\n\n

WordPress Student Clubs empower students to build on-campus WordPress communities that keep learning going throughout the year.

\n\n\n\n

In the spirit of our local community meetups, these groups operate as on-campus equivalents, keeping students engaged and connected with their local WordPress communities.

Learn more: https://wordpress.org/education/student-clubs/

\n
\n
\n\n\n\n

Support This Growing Movement

\n\n\n\n

Help spread the word, and let friends, students, and others know how they can contribute to this growing effort, including a widely expanding translation effort. WordPress Education has already been translated into 10 new languages. WordPress Education is powered by people who believe in open learning and the power of collaboration.

\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:\"Tue, 20 Jan 2026 17:14: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: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: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:47:\"Open Channels FM: Open Channels FM v7.0 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:33:\"https://openchannels.fm/?p=114441\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:54:\"https://openchannels.fm/open-channels-fm-v7-0-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:219:\"In this episode, BobWP announces the release of Open Channels FM version 7.0, detailing significant updates, rebranding changes, new hosting voices, and improved sponsorship strategies for a revamped podcast experience.\";s: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, 20 Jan 2026 09:57:04 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s: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:59:\"Weston Ruter: Post Date Block: Published &amp; Modified\";s: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=38580\";s: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://weston.ruter.net/2026/01/19/post-date-block-published-modified/\";s: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:22580:\"

I’ve had an itch I’ve wanted to scratch for a while. A year ago, I re-developed my blog here to use the Twenty Twenty-Five block theme replacing the Twenty Twenty classic theme. Something I wanted to do was show a post’s published date followed by the modified date if it differed. For example, for WCUS 2024 I published My Portland Picks to share my favorite things to do in the city. Since WCUS 2025 was also in Portland last year, I updated the post with my latest picks. To make it clear it had been changed, I manually added a “Post updated for 2025” paragraph at the beginning of the post. But I wanted to avoid having to keep doing this for such evergreen content.

\n\n\n\n

There are two blocks listed in the block inserter for dates: Date and Modified Date. (Previously these block names started with “Post” but these were removed in WordPress 6.4.) In reality, these two blocks are just variations of the one Date block. You could turn a Date block into a Modified Date block by enabling this block setting:

\n\n\n\n
\"Display
\n\n\n\n

With block bindings in WordPress 6.9, the Date block became further abstracted to be able to represent any date, not just a post’s publish date or modified date. When a Date block is inserted, you can now decide to bind the block to either of these dates:

\n\n\n\n
\"Date
\n\n\n\n

The key word there is “either”. The setting I was looking for was missing: the ability to display the publish date and the modified date (if it differs).

\n\n\n\n

I did find Gutenberg issue #53099 opened by Carolina Nymark where she was reporting that it was confusing that the old “display modified date” toggle actually causes the modified date to be displayed instead of the publish date:

\n\n\n\n
\n

The info I was looking for was whether, when toggled on, it would display both the published and modified dates, or display the modified date instead of the published date, as from the settings alone it’s not immediately clear

\n
\n\n\n\n

Commenting on that issue, Ronnie Burt said:

\n\n\n\n
\n

Feedback after using this block on multiple sites in templates for both posts and pages. The ‘modified date’ block doesn’t show anything if the post has never been updated. This makes it really challenging to use, as there will be a blank spot on the front end for new posts or pages without any edits.

\n\n\n\n

It would be more useful to show the date published if the post has no edits.

\n
\n\n\n\n

Carolina responded:

\n\n\n\n
\n

The problem is that there is no one scenario that will work for all use cases. Some users and designs wants to display both the original publishing date and the modified date. So no matter how this block is updated, it will break for someone.

\n\n\n\n

Your best option may be to register a block binding with a callback function that displays the post date, to get the exact conditions that you need, and then insert a paragraph with this block binding, instead of using the post date block.

\n
\n\n\n\n

A few months later, when I discovered the issue, I commented:

\n\n\n\n
\n

To me it seems like the block should facilitate showing the published date and then also show the modified date if it is different, with a prefix like “Updated: ” or some other parenthetical treatment. I don’t think the modified date should ever take over the published date. I’m not sure the best way to achieve that other than by adding a plugin which filters the Date block to append the desired content. I’m not sure how that could be handled in the UI, given we’re dealing with inline content and there is no ability to hide blocks (cf. #50756), and there’d have to be a condition like “Only show this block if the rendered date/time of the published date is not the same as the rendered date/time of the modified date.”

\n
\n\n\n\n

So this is what I wanted, but the Date block didn’t support it. So I started exploring something that would implement my desired use case.

\n\n\n\n

Accounting for all the different scenarios adds complexity to the block. Rendering a single publish date or modified date is simple enough. But if the modified date needs to be displayed conditionally then how is this configured in the editor? Namely, if both dates are displayed, then one or both of the dates would need to have some prefix indicating what the date refers to. The two configurations I had in mind were prefixing the modified date only:

\n\n\n\n
\n

December 25, 2025 (Modified: January 1, 2026)

\n
\n\n\n\n

Or else putting each on a separate line and having prefixes for each:

\n\n\n\n
\n

Published: December 25, 2025
Modified: January 1, 2026

\n
\n\n\n\n

There is an existing Gutenberg issue #61920 which is about adding prefixes and suffixes to the block similarly to the Categories block. But these prefixes are unconditional for only a single date. I wanted these prefixes added conditionally for when the modified date is displayed in addition to the published date.

\n\n\n\n

A New Plugin

\n\n\n\n

Ultimately, I put together a plugin to implement what I wanted: Post Date Block: Published & Modified. It’s currently on GitHub but I’ve also submitted it to the WordPress.org directory.

\n\n\n\n
\"Try
\n\n\n\n

Update: It’s now live on plugin directory!

\n\n\n\n
\n\n\n\n

Once active, when you are editing the settings for the Date block for the Post Date variation, a new “With Modified Date” panel appears. Inside that panel there is a new toggle:

\n\n\n\n
\n

Show modified date when different from published date

\n
\n\n\n\n

The two dates are rendered in the supplied date format, and only if they then differ will the modified date be displayed after the published date. This prevents the modified date from appearing as a duplicate when the post is updated on the same day it was published.

\n\n\n\n

When that toggle is enabled, two new sets of fields are presented for adding a prefix and suffix to both the published date and the modified date. There is also a toggle for whether the modified date should be displayed on a separate line. Here are the settings for the two configurations I mentioned previously, one where the modified date is displayed on a separate line and another where it is displayed on the same line:

\n\n\n\n
\n
\n
\"Settings
\n
\n\n\n\n
\n
\"Settings
\n
\n
\n\n\n\n

In terms of the frontend rendering, here’s what the Date markup looks like right after publishing on Christmas:

\n\n\n
<div class=\"wp-block-post-date\">\n	<time datetime=\"2025-12-25T18:14:21-08:00\">\n		December 25, 2025\n	</time>\n</div>
\n\n\n

And here is how the block is rendered after having been modified on New Year’s Day, in the two-line configuration:

\n\n\n
<div class=\"wp-block-post-date post-date-modified\">\n	Published:\n	<time class=\"entry-date published\" datetime=\"2025-12-25T18:14:21-08:00\">\n		December 25, 2025\n	</time>\n	<br>\n	<span class=\"modified\">\n		Modified:\n		<time class=\"updated\" datetime=\"2026-01-01T21:20:05-08:00\">\n			January 1, 2026\n		</time>\n	</span>\n</div>
\n\n\n

Note the added microformat classes to disambiguate the published date from the modified date. I was really happy to be able to leverage the HTML Tag Processor to handle insertion of the prefixes, suffixes, newline, and class names!

\n\n\n\n

This plugin solves my use case, but it’s primarily a prototype/stopgap until something lands in core. The user experience for this doesn’t feel ideal, but I can’t think of a better option at the moment. Note also that there is currently no preview in the editor, so you have to save the changes and go to the frontend to see the results. (My Customizer self weeps.) I didn’t want to fork the Date block’s edit function to implement full preview in the editor, and it would be of little value anyway since when editing a block template the Date block now just shows ”Invalid date” anyway due to there being no post context for the block binding.

\n\n\n\n

The Future

\n\n\n\n

The ideal solution perhaps would involve Bits (now Shortblocks). Maybe the default view for a Post Date block when editing a block template would be to show the view when the modified date is the same as the published date. But then there could potentially be a popover that could allow configuring how the block should render when the modified date is different. With Shortblocks, these tokens could be inserted inline with the content and moved around inside of a paragraph block. This would avoid the need to supply a suffix/prefix in the detached block settings sidebar.

\n\n\n\n

In the meantime, I hope my plugin is helpful for keeping your readers updated!

\n\n\n\n
\n\n\n\n

Where I’ve posted about this:

\n\n\n\n\n\n\n\n

\n

The post Post Date Block: Published & Modified 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:\"Tue, 20 Jan 2026 05:45:15 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s: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:20;a:6:{s:4:\"data\";s:21:\"\n \n \n \n \n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:18:\"Matt: AI Psychosis\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=151118\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://ma.tt/2026/01/ai-psychosis/\";s: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:1531:\"

One of the most concerning trends I’ve seen is that, as people adopt AI, it captures those for whom it was designed. That previous sentence went through several revisions at various layers of intelligence… the spell-checker, grammar-checker, Grammarly, Harper, maybe more, all attacking the words that spill from my divine intelligence and then interact with yours.

\n\n\n\n

Anthropic has published a really interesting essay and paper, The assistant axis: situating and stabilizing the character of large language models. You need infoguards to protect your mind.

\n\n\n\n

Sam Altman was prescient in 2023 when he said,

\n\n\n\n
\n

i expect ai to be capable of superhuman persuasion well before it is superhuman at general intelligence, which may lead to some very strange outcomes

\n
\n\n\n\n

Some very smart and talented friends are going down rabbit holes that don’t have good ends. My world is small; when you extrapolate this out to the 800M+ MAUs of ChatGPT, there’s probably a lot of weird stuff happening out there. We live in the most interesting times.

\";s: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, 20 Jan 2026 04:26:33 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s: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: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:55:\"Open Channels FM: Thoughts From the Brain, Not a Prompt\";s: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=114414\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:61:\"https://openchannels.fm/thoughts-from-the-brain-not-a-prompt/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:50:\"BobWP kicks off his posts with Creator Meanderings\";s: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, 19 Jan 2026 11:21: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:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:22;a:6:{s:4:\"data\";s:21:\"\n \n \n \n \n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Matt: Bob Weir\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=151110\";s: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:31:\"https://ma.tt/2026/01/bob-weir/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:372:\"
\n

They say that blood is thicker than water, and what we had was way thicker than blood.

\n
\n\n\n\n

Bob Weir on Jerry Garcia. John Mayer gave Bob a great eulogy.

\";s: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, 19 Jan 2026 06:51:34 +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:23;a:6:{s:4:\"data\";s:21:\"\n \n \n \n \n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:22:\"Matt: Bacon Egg Cheese\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=151102\";s: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:39:\"https://ma.tt/2026/01/bacon-egg-cheese/\";s: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:2072:\"

One of my favorite travel hacks is finding the Neapolitan pizza oven in the airport, as there’s nothing quite like a fresh pizza sizzling on your plate.

\n\n\n\n

At Houston Intercontinental, which I know like the back of my hand, there was a divine experience at the C Gate nexus at Forno Magico, especially in the morning, when they offer a bacon, egg, and cheese pizza that I would beeline for whenever I had a morning flight. It’s big enough to feed two.

\n\n\n\n

That said, I am disappointed to report that Forno Magico is no longer magical. They stopped salting the oven floor or rotating the pie, and the eggs were sloppily bunched. The dough was dry; it was like they’d never had a good pizza. They’re only heating the oven to 498, not the 905 recommended by the Associazione Verace Pizza Napoletana. It was edible but not a delight, as you can see here.

\n\n\n\n
\"\"
\n\n\n\n

I hope they rediscover the art of firing pizzas they started with. They’re charging over $20 for it, so plenty of margin for fuel. It would also serve customers much faster! I’ll keep searching for great pizzas in other airports.

\n\n\n\n

If you have a Gozney or Ooni at home (highly recommended!), try making a breakfast pizza. My friend Chris Young recommends this dough recipe.

\";s: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, 17 Jan 2026 22:03:23 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"Matt\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:24;a:6:{s:4:\"data\";s:21:\"\n \n \n \n \n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:21:\"Matt: A Better Writer\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=151093\";s: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:38:\"https://ma.tt/2026/01/a-better-writer/\";s: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:4915:\"

RIP Scott Adams. Early Dilbert was the first cartoon I fell in love with, and early dilbert.com was one of the first websites I remember visiting. My dad would print out cartoons and put them on his cubicle wall. Between the Dilbert comics, books, 2600, and Wired, I was swimming between what felt like a radical transgressive world online and the reality of my dad putting on a suit and tie every day and working a giant cubicle farm programming computers.

\n\n\n\n

It’s probably underappreciated how Dilbert (and Office Space) made millions of better managers by making fun and teaching people what not to do.

\n\n\n\n

Scott could put in a few words things that could transform the way you think, reframe the world. One of his classics, from a now-gone Typepad blog, was The Day You Became A Better Writer, which I’ll reproduce here:

\n\n\n\n
\n\n\n\n

I went from being a bad writer to a good writer after taking a one-day course in “business writing.” I couldn’t believe how simple it was. I’ll tell you the main tricks here so you don’t have to waste a day in class.

\n\n\n\n

Business writing is about clarity and persuasion. The main technique is keeping things simple. Simple writing is persuasive. A good argument in five sentences will sway more people than a brilliant argument in a hundred sentences. Don’t fight it.

\n\n\n\n

Simple means getting rid of extra words. Don’t write, “He was very happy” when you can write “He was happy.” You think the word “very” adds something. It doesn’t. Prune your sentences.

\n\n\n\n

Humor writing is a lot like business writing. It needs to be simple. The main difference is in the choice of words. For humor, don’t say “drink” when you can say “swill.”

\n\n\n\n

Your first sentence needs to grab the reader. Go back and read my first sentence to this post. I rewrote it a dozen times. It makes you curious. That’s the key.

\n\n\n\n

Write short sentences. Avoid putting multiple thoughts in one sentence. Readers aren’t as smart as you’d think.

\n\n\n\n

Learn how brains organize ideas. Readers comprehend “the boy hit the ball” quicker than “the ball was hit by the boy.” Both sentences mean the same, but it’s easier to imagine the object (the boy) before the action (the hitting). All brains work that way. (Notice I didn’t say, “That is the way all brains work”?)

\n\n\n\n

That’s it. You just learned 80% of the rules of good writing. You’re welcome.

\n\n\n\n
\n\n\n\n

Powerful. Profound.

\n\n\n\n

Scott also said some not-great things, as the obituary notes. I’ll share something I posted internally at Automattic.

\n\n\n\n
\n

When I was younger, I used to have a more binary view of people, but as I’ve grown, read a ton of biographies, seen the press cycles, and been lucky enough to meet some idols and villains, I’ve become much more comfortable taking everyone as a flawed human being.

\n\n\n\n

I admire or learn from aspects, but that doesn’t mean I would 100% agree with everything. I don’t even 100% agree with my past self!

\n\n\n\n

One thing you’ll note in a lot of biographies is that people who have accomplished great achievements often have flaws or mistakes in equal measure.

\n
\n\n\n\n

Take what lessons you like from people.

\n\n\n\n

I love reading and writing about writing, and improving your writing is one of the best force multipliers for everything else you do in life. If you’d like to go further on this, the best book I’ve read on the subject is On Writing Well by William Zinsser. And if you want more Scott Adams, read this piece from his doppelgänger Scott Alexander.

\";s: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, 17 Jan 2026 06:48:07 +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: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:78:\"WordPress.org blog: WordPress Playground Brings Speed, Stability, and Momentum\";s: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=19673\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:81:\"https://wordpress.org/news/2026/01/wordpress-playground-speed-stability-momentum/\";s: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:10575:\"

WordPress Playground had a busy year in 2025, with updates that make it more capable for day-to-day development, plugin previews, and learning environments. The project’s latest year-in-review highlights progress across performance, compatibility, database support, and tooling, expanding what can be done in a WordPress environment that runs in the browser and through the command line.

\n\n\n\n

From faster load times to broader plugin support, the throughline is clear: Playground is moving beyond quick demos and into workflows that help developers and educators test, iterate, and share WordPress experiences more easily.

\n\n\n\n\n\n\n\n
\"\"
\n\n\n\n
\n\n\n\n
\n

Key Takeaways

\n\n\n\n
\n\n\n\n
    \n
  • Plugin previews are more reliable: 99% of the top 1,000 plugins can be installed and activated successfully, making demos and evaluations more trustworthy.
  • \n\n\n\n
  • Everything is faster: A performance upgrade reduced average response time by 42%, and further optimizations improved overall “time to first useful click.”
  • \n\n\n\n
  • Database tools work in browser: Improved database compatibility enabled tools like phpMyAdmin to be used directly on playground.wordpress.net.
    More practical tooling for real work: Testing configurations and previewing changes can happen in one place, without a complete local environment first.
  • \n\n\n\n
  • New visual gallery of blueprints: A new visual gallery of blueprints provides excellent starting points for various types of sites.
  • \n\n\n\n
  • Global adoption: Playground was used 1.4 million times globally, with growing documentation translations and community contributions.
  • \n
\n
\n\n\n\n

Reliable Plugin Previews and Experimentation

\n\n\n\n

A headline update from 2025 is the focus on compatibility. In testing with the top 1,000 plugins from the WordPress plugin directory, 99% installed and activated successfully. That matters because it raises confidence in what Playground is best known for: letting people try things quickly, without a complex setup, and with fewer surprises.

\n\n\n\n

This highlighted that Playground is increasingly useful as a general-purpose PHP sandbox. Alongside WordPress, it can support standard PHP tools and projects, which makes it easier to explore how WordPress fits into broader development workflows and to share reproducible environments with others.

\n\n\n\n

If you try something new and unexpected in Playground, the update encourages you to share what you learn in the #playground Slack channel, so the community can build a clearer picture of what works well today and what is improving next.

\n\n\n\n

Faster Load Times

\n\n\n\n

Speed was a central theme in 2025. A recent year-in-review report revealed a 42% reduction in average response time, and this is not just a single change. A series of improvements make Playground feel quicker in the moments people notice most, such as loading WordPress, opening wp-admin, and switching between tasks.

\n\n\n\n

Several behind-the-scenes updates were described in plain terms as “less waiting”: checks happen earlier, parts of the experience load in a smarter order, and more content is reused from cache, so repeat actions are snappier.

\n\n\n\n

For people using Playground to review a plugin, validate a bug fix, or teach a class, these improvements mean the same thing: faster feedback loops, with fewer pauses that break concentration.

\n\n\n\n

Better Tooling and Compatibility

\n\n\n\n

In 2025, Playground also became more “toolbox-like” in the browser. The update highlighted features that reduce context switching, such as editing files on the page, building and testing starter configurations (Blueprints) in a dedicated editor, and launching database tools such as phpMyAdmin and Adminer with a single click.

\n\n\n\n

On the database side, a significant compatibility upgrade was introduced to improve support for more complex database behavior. The practical outcome is that more WordPress sites and plugins behave as expected in Playground, and more developer tools can run inside the environment.

\n\n\n\n

Blueprints also advanced in ways that benefit both builders and sharers. The updates focus on making starter setups easier to create, browse, and reuse, especially when a demo requires content, media, or a specific configuration that should launch consistently.

\n\n\n\n

One of the clearest ways to see that progress is the WordPress Blueprints Gallery, a community library of ready-to-launch WordPress environments. From practical “building block” examples (such as starting with a specific login role) to demos that automatically install themes and plugins, to richer setups that generate posts and featured images via WP-CLI, the gallery demonstrates how quickly an idea can become a fully functional site that you can browse and share.

\n\n\n\n

Examples:

\n\n\n\n
\n
\n
\"\"
\n
\n\n\n\n
\n
\"\"
\n
\n\n\n\n
\n
\"\"
\n
\n
\n\n\n\n

For anyone who wants to experience the power of WordPress without the setup, the gallery serves as a strong reminder of what Playground makes possible: shareable, repeatable site experiences that work the same way every time — ideal for demos, workshops, testing, and “try it now” links.

\n\n\n\n

Clear adoption signals back all of this. The review reports 1.4 million uses globally, documentation translations in multiple languages, and growing integration across the plugin directory through Playground-powered previews. It also points to a steady increase in community contribution, from documentation and support to talks and real-world workflows built on top of Playground.

A huge thank you to everyone who tried Playground over the past year, whether you launched a quick demo, tested a change, taught a workshop, or helped make the documentation more accessible in your language. And if there’s anything that would make Playground even more helpful for your day-to-day work, the project actively welcomes ideas and feature requests via the WordPress Playground GitHub issues tracker.

\n\n\n\n

Looking Ahead

\n\n\n\n

As we closed out 2025 and now look forward to 2026, we can see several forward-looking initiatives, including work on MySQL binary protocol support (to enhance broader compatibility with MySQL tools) and continued exploration of debugging enhancements, such as expanded XDebug access.

\n\n\n\n

For anyone who last tried Playground as a quick demo environment, 2025’s updates suggested a shift in direction: Playground is increasingly positioned as a practical layer for testing, teaching, previewing, and reviewing WordPress, both in the browser and in local workflows.

\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:\"Thu, 15 Jan 2026 16:53:33 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Brett McSherry\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i: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:103:\"Open Channels FM: Matt Mullenweg on WooCommerce’s Future and Competitive Strengths in Online Commerce\";s: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=114249\";s: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:107:\"https://openchannels.fm/matt-mullenweg-on-woocommerces-future-and-competitive-strengths-in-online-commerce/\";s: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:171:\"In a special relaunch episode of Do the Woo, hosts discuss WooCommerce\'s evolution with Matt Mullenweg, exploring its advantages, community impact, and future innovations.\";s: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, 15 Jan 2026 12:20:43 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i: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:16:\"Matt: Do the Woo\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=151089\";s: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:33:\"https://ma.tt/2026/01/do-the-woo/\";s: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:530:\"

For my first podcast of the year with the WordPress community, I joined the new Do the Woo podcast! It started with a little technical difficulty but ended up being a great conversation about WooCommerce, WordPress, and AI.

\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:\"Thu, 15 Jan 2026 05:48: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:4:\"Matt\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:28;a:6:{s:4:\"data\";s:21:\"\n \n \n \n \n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:95:\"WPTavern: #200 – Corey Maass on His Real-Life AI Tools and Workflows in WordPress 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:48:\"https://wptavern.com/?post_type=podcast&p=202227\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:109:\"https://wptavern.com/podcast/200-corey-maass-on-his-real-life-ai-tools-and-workflows-in-wordpress-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:78591:\"
Transcript
\n

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

\n\n\n\n

Jukebox is a podcast which is dedicated to all things WordPress, the people, the events, the plugins, the blocks, the themes, and in this case real life AI tools and workflows in WordPress development.

\n\n\n\n

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

\n\n\n\n

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

\n\n\n\n

So on the podcast today, we have Corey Maass. Corey’s been building for the web since the late nineties, starting out in the early days of Photoshop and tables. Learning JavaScript, ASP Classic and PHP, and eventually falling into the world of WordPress around 2010. Since then, he’s taken on building SaaS apps, managing client projects, and experimenting with a growing number of productivity tools and frameworks.

\n\n\n\n

He’s joined us before, and today he’s here to share his perspective on what it’s been like adopting AI tools into his workflows, especially from the point of view of building projects for clients.

\n\n\n\n

Although AI has dominated headlines over the last couple of years, Corey brings a practical angle to the conversation. He discusses the evolution of his tech stack and how embracing AI tools like Cursor, Claude Code and GitHub Copilot have completely changed the way he builds software and manages projects, allowing him to work faster, automate code, review, and unlock creativity in places he hadn’t expected.

\n\n\n\n

We hear about how his journey with AI started, how he’s reimagined old projects using new tools, and how learning to interact with these models, sometimes granular, sometimes letting them run freely, has reshaped his daily workflow.

\n\n\n\n

Corey describes the shift from using AI to just save time, to using it as a sounding board for inspiration and idea generation, even weaving it into artistic endeavors like music production.

\n\n\n\n

Much of the discussion centers around how these advances have affected client work with Corey exploring the real world balance of responsibility, efficiency, and the changing nature of value for developers. Do clients care who, or what, wrote the code? Or just that it works? What does authentic creativity mean in an era where prompting and randomness a part of the toolkit?

\n\n\n\n

Whether you’re a developer, curious about what working alongside AI means, or just wondering about the future of tech, and WordPress, in an increasingly automated world, this episode is for you.

\n\n\n\n

If 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\n

And so without further delay, I bring you, Corey Maass.

\n\n\n\n

I am joined on the podcast by Corey Maass. Hello, Corey.

\n\n\n\n

[00:03:33] Corey Maass: Hello.

\n\n\n\n

[00:03:33] Nathan Wrigley: Very nice to have you with us. Corey’s been on the podcast several times before. He’s here today to talk about the subject, which almost nobody has touched during the year 2025, that’s AI.

\n\n\n\n

But actually I think we’ve got a curious angle because we’re not just going to touch it from a sort of more generic point of view, although we might. We’re going to talk about it from a client point of view and building things for clients and how, I guess, Corey is leveraging that to make life a little bit easier for himself. Let’s find out.

\n\n\n\n

First of all, Corey, would you just introduce yourself? Give us you a little bio, tell us about you.

\n\n\n\n

[00:04:04] Corey Maass: Absolutely, Corey Maass. I currently live in New Hampshire, which is in the northeast of the United States. I’ve been building for the web since 97, I think. Back in the day when we would do designs in Photoshop and then slice them up and put them in tables. And then I learned JavaScript, and I learned ASP Classic, and I learned PHP, and I got obsessed with building SaaS apps, you know, making websites actually do stuff instead of just look pretty. And then I found WordPress in about 2010 and it’s all been a wonderful, joyous, rollercoaster ride of happiness without exception.

\n\n\n\n

[00:04:45] Nathan Wrigley: That’s lovely. And I think we should end the podcast right there.

\n\n\n\n

[00:04:48] Corey Maass: And I met this wonderful guy named Nathan somewhere along the way, and my heart is full.

\n\n\n\n

[00:04:53] Nathan Wrigley: It does not get better than that. I really think we should end there. Congratulations, Corey Maass, we’ll see you next time. No, let’s get into it properly.

\n\n\n\n

[00:05:01] Corey Maass: And then the robots came.

\n\n\n\n

[00:05:03] Nathan Wrigley: That’s right. That’s what we are going to talk about. But you’ve been building for a long time. I mean, in terms of the internet, you really are like the heritage, aren’t you? 1997 was when people were just sort of starting out. I mean, there’s a few people that go maybe a little bit longer than that, but you’ve seen the whole thing.

\n\n\n\n

Seems like in the year 2023, something like that, maybe 2024, certainly 2025, we’ve now got the advent of companions, AI companions that are helping us to do things online and build websites and so on. And I’m kind of just curious, let’s talk about your stack and where it is at the moment, and then we’ll get into how that stack has changed. But just tell us what you’re using right now. And we’re recording that December, 2025. And no doubt that will change fairly soon.

\n\n\n\n

[00:05:45] Corey Maass: Still changes frequently. We’re chatting before we started recording and you said, have you updated Mac OS to this glass nonsense? And I went, absolutely. I bought into, to put myself in context, like I bought into the Apple ecosystem a few years ago. And I tend to, when they say update, I update. I might wait a day or two. Usually I will hear about, if something is truly crashing your computer, I’ll usually hear about it on Reddit or what have you. And so I might wait a day or a week, but I’m generally an early adopter is the point I’m trying to make.

\n\n\n\n

But with that said, I’m also a pragmatic developer. So I want to use the tools that are the most beneficial, but I’m also not cutting edge, bleeding edge on what model is the absolute best and all that kind of stuff. But I’m also not not going to use AI once it actually benefits me. So I’m probably somewhere on one side of the bell curve or the other, but I’m not bleeding edge.

\n\n\n\n

Anyway. So as of today, I am using Cursor as an IDE, but I am not using the AI in Cursor at all. I have been meaning to, but again, it’s pragmatically. I’m not trying to use things because they’re in front of me or what have you. So we can talk about why I wound up using Cursor. But what I generally am doing during the day is opening Terminal inside Cursor and using Claude Code almost exclusively. Which then, a buddy of mine has gotten me back into the process of actually doing pull requests, so that the code gets pushed to Git. And then I’m running Copilot, which is GitHub’s AI to do code reviews. That’s what I was trying to say. I’ve got Claude generally writing the code, and then I’ve got GitHub’s Copilot checking the code.

\n\n\n\n

[00:07:40] Nathan Wrigley: Okay. Yeah, so that’s where you’re at the moment. But historically, if we were to gaze back over the last year, let’s go with that, how often does that iteration change? How often do you move from one thing to another because the landscape has moved or something superior appears to have come along?

\n\n\n\n

[00:07:53] Corey Maass: Yeah, it’s kind of amazing. This is part of why I wanted to have this conversation is, for me it started pretty much in March. I went to Thailand for a few weeks visiting a buddy of mine there who’s a developer, he had to work. Like, every weekend we were running around looking at temples and stuff like that. During the week he had to work, and so I was left to entertain myself. And so doing my usual client work, which was still very clicky, clickly, because it’s still WordPress, and WordPress hasn’t quite crossed that bridge, though we’re working on it.

\n\n\n\n

But I said, okay, I want to use this time to start my AI journey. That’s where I said, let me subscribe to Cursor, 20 bucks a month, not unreasonable in the scheme of all of the software subscriptions that I have, and let me see what I can do.

\n\n\n\n

And I have an app called Timerdoro, which is a productivity timer app, Pomodoro and that kind of thing. Friends and I built it, now it’s got to be 20 years ago, and we’ve never figured out how to monetise. In fact, yesterday I finally just slapped some ads on it because I couldn’t stand it anymore. And, no, that’s not true. I found an ad network that I wanted to try. But that’s kind of a perfect indication of how I think of Timerdoro. Timerdoro, I have rewritten at least a dozen times in at least four different, using four different tech stacks because a lot of people use it.

\n\n\n\n

It has a hundred users a day or something, which is really cool. None of them want to give me any money, which I totally am fine with. It doesn’t cost me anything. But it gives me an opportunity to, here is a product that people are using, let me continue to play with it, tweak it, design it, totally rewrite it. And so I rewrote it again in March using Cursor, which was an okay experience.

\n\n\n\n

Looking back, I can see how much Cursor has improved, both the IDE and the models that are built in. And I have completely changed, because a big part of it is your own learning how to work with it. And so, at what level do you give it, build a productivity timer, go? Or do you say, install the following libraries, create the following files, make the classes look like this, name the methods and functions like this? Like, too granular, where it just does the typing for you. Versus, it totally conceptualises everything. And so you’ve got to fall somewhere in the middle, maybe, right? Or figure out where you are in the middle.

\n\n\n\n

And I generally, having written my own code for years and years, sure enough, was too granular. But I think that benefited me at the time. Whereas we’ve come a long way, where you can be more in the middle and something like Claude can figure it out.

\n\n\n\n

The buddy that I was visiting, coincidentally, has absolutely doubled down. So he follows, he always talks about Tech Dev Dan or something, Dev Dan, who is sort of the thought leader in AI that he follows. And so he signs up for anything that Dan puts out, classes or courses or videos. And then he tends to, my friend Robert tends to distill some of that down to me. And so I might or might not implement it.

\n\n\n\n

But then I’ve also got other colleagues in the WordPress world. I actually had a friend of mine come to me and be like, hey, will you kind of be my AI buddy as we figure out how to negotiate all of this changing landscape? I said, absolutely. And coincidentally, it has turned out that I’ve kind of been the Robert to him a little bit, where I am a little bit ahead of him, and a little more embracing of things than he is. And so we’ve all kind of, we all evolve, but we’re all kind of getting information from different sources.

\n\n\n\n

So somewhere along the way, I mean Reddit and Twitter were just absolutely blowing up nonstop Claude. Claude Code when that came out. And so I was actually a little slow on the uptake, meaning a month, because I just, I didn’t get it. Like, so many of these things, people are like AI, and you’re like, right, but where do I type? Where does the code go? Or, I want to use AI, I am doing air quotes here, how do I get a website on the internet where people can click on it? It’s actually not intuitive necessarily to make that leap until, again, Robert has explained some things to me of, because again, he’s much more up on the words where he’s like, I think it’s called a harness is the thing you type into versus, the model is the actual AI you’re interacting with.

\n\n\n\n

And so you’ve got TypingMind or you’ve got Claude, or you’ve got Terminal, but then you’ve got Claude, but you can actually use Claude with Gemini’s model if you want, or a Cursor. You know, if you go into the preferences, you can select which model. Do you want to use Open AI Opus, or do you want to use Gemini or do you want? And it was like, oh, right, okay, so there’s a thing you type into or interact with, and then there’s the actual model. But then, again, what are the patterns?

\n\n\n\n

And like I said, I’ve just recently started, so with my buddy, we’ve been rebuilding, I have a game that I’ve talked about for a while. Mexicantrain.online is the website. And so it’s an online version of the Domino game, Mexican Train. I built it during COVID and I talked about it at WordCamp US two years ago, because it was kind of an amazing, one of those projects that I built because my wife told me I should, so that our family could play, continue to play, during COVID. And then it turned into thousands of users, and so it just became this, organically became this nice thing that a lot of people use. And it’s run by donations, which cynically, I never would’ve thought actually works. But people continue to give, I mean it’s amazing.

\n\n\n\n

But it’s been a long time coming that it needs, the tech is now five years old. I needed to rebuild it. I approached my friend and said, hey, would you mind building this with me? Because we’ve kind of looked for a reason to work together. We worked together at a big WordPress agency five years, eight years ago, which is how we met, but we haven’t worked together since. And he’s gone very enterprise, and I tend to be still my freelancer self, working with individual clients directly and stuff like that.

\n\n\n\n

And so what’s been hand ringing, but good is he’s like, okay, we’re going to introduce pull requests because we’re going to have Copilot check our work, and we’re going to have full suite testing. And I tend to not, like I can do that stuff, and there’s the occasional project where I need to do it, but for the most part I’m a, make a change and push it to the internet and see what happens kind of developer. And so we’ve introduced more process, but again, it’s neat because I have to make myself be like, do what he tells you kid. And so then I’m learning better ways to use these tools to build more robust software.

\n\n\n\n

[00:14:31] Nathan Wrigley: Was there ever a moment where, I don’t know if you were always bullish about technology, especially AI, it’s entirely conceivable to imagine that any given person that you see could be extremely bullish about AI, you know, somewhere in the middle or extremely, a little bit allergic to it or what have you. Now, I don’t know if there was any point where you swung between those two extremes or anything like that. But I was just curious if there was an epiphany that you had, like if there’s a particular moment that you can remember where you thought to yourself, oh, this is curious, you know? This is not something we’ve seen before. And if you do have one of those, I’d love to know what it was.

\n\n\n\n

[00:15:07] Corey Maass: There’ve definitely been those moments where, mind blown, mind blown, mind blown. Even recently, Nano Banana the new image AI is mind bogglingly good. And so there hasn’t been one moment, there have been many moments because things like, I did pay for whatever the original ChatGPT was for a while. When it really became popular, I think last year, right? And so I said, well, let me pay 20 bucks a month. But I wasn’t using it. It wasn’t that good. It was definitely helpful, but again, it was more of a dumb typing companion. I need an email that says this. There’s your 20 lines. I didn’t have to think about it. I skim it, I edited a little, I might run it back through, and then I’d go, yep, good enough. Take out the em dashes so it doesn’t look like AI, paste, send.

\n\n\n\n

Treated it more like that. A year ago when I tried to have it right code, sorry robots, I love you. In the future, don’t murder me. You know, but a year ago, like the code that it was generating wasn’t great. It really was hallucinating a lot. Oh, you need to write a WordPress function that uses this hook. A quick Google determines that hook does not actually exist. Stop making stuff up. Whereas I very rarely encounter hallucinations these days.

\n\n\n\n

[00:16:21] Nathan Wrigley: Okay, that’s a profound realisation.

\n\n\n\n

[00:16:23] Corey Maass: Yeah, but to answer your question, like there were just these great moments of, like I had it write song lyrics and I was like, wow, these are surprisingly good. Or I remember early silly moments like we all had where I was like, take these song lyrics and rewrite them so that they’re in pirate speak or whatever, ha ha ha. Like this is a gimmick, right?

\n\n\n\n

But then, again, probably in March, working through my first project building Timerdoro again, using Cursor. Googling how to use Cursor, taking the time to watch videos to understand how better to use it. And then again, moving along throughout the year, these little moments of, oh, that’s amazing code or, wow, and in 45 seconds we had an entire authentication system with front end that a user can sign into and it all just works. The database is already created and all this stuff. And you’re like, oh, okay, wow, it’s getting more and more powerful.

\n\n\n\n

There’s always this thing in the back of my mind, I’m like, has it always been capable of this, meaning in the last year? And I’m just sort of taking, giving it more lead. Because again, I mean a big part of this is how we interact with it. And I keep thinking about scientists using it, or artists using it, because it’s the, little by little, again, we’re taking the collar off or, there’s a horse or a dog metaphor in here somewhere, I can’t quite. But giving it its own freedom to do what it wants, you know?

\n\n\n\n

And how far can you take that? Like I keep thinking about, again, like science, where if you could give a model enough information, could it conceivably jump ahead months or years in our own research? Now research needs to be done, and things need to be proven and all that kind of stuff, but like in terms of thinking, are there things that it can conceive of that we just can’t? Brian Eno, the musician. I think it was him. I want to say it was him. I’m going to pretend it was him.

\n\n\n\n

[00:18:14] Nathan Wrigley: He feels like the kind of character that it easily could be him. There’s a lot of technology in Brian Eno’s life, isn’t there?

\n\n\n\n

[00:18:20] Corey Maass: Even away from technology, he, I believe it was him, I have to Google this. He created a deck of cards that said, as a musician, you’re in the studio and you’re like, my creativity needs help, right? And so there’s this deck of cards where you’d flip over a card and it would say, play the melody backwards. Or you’d flip over a card and it would say, what if this piece of music was being performed underwater? Or, what if somebody had a gun to your head? These thought experiments, right?

\n\n\n\n

And you could actually look at that as, I don’t think anybody really would, but you could look at that as, oh, that’s not true creativity because something else is helping you do the work, right? As a human, if you’re a pure artist, it’s all supposed to come from your brain. You’re supposed to sit there in a dark room with a pen and a piece of paper. If it doesn’t come purely from your brain, then it’s not pure. And again, I don’t, it’s a weird example, but I don’t think most people would actually say that. They’d be like, it’s fine that you found random inspiration. Just like looking at nature, it’s going to inspire a painting or whatever, right?

\n\n\n\n

[00:19:22] Nathan Wrigley: Yeah, or looking at a previous painting will inspire your next painting.

\n\n\n\n

[00:19:26] Corey Maass: As long as in theory it’s not too derivative or whatever, right? So the interesting thing about AI that I keep trying to use, the way that I’m using it, even past writing code or what have you is, help me introduce that element of randomness, the flipping of a card. Next time you’re having your favorite AI model write an email, or do some creative writing, or come up with funny slogans for, like a lot of us are using it for. Help me come up with the tagline for the next SaaS landing page that I’m building or whatever. Introduce negatives. What is it not? Or say things like, have it write this in German and then translate it back to English or, write it like a 5-year-old would. Basically like help introduce that element of randomness and creativity.

\n\n\n\n

[00:20:08] Nathan Wrigley: It’s kind of interesting, the sort of through line that I’ve gathered from that is that at the beginning when you were using AI, correct me if I’m wrong, but it feels like the entire productivity gain, or the gain was a function of time. You were trying to reduce the amount of time a thing took to do. So, you know, if you want to, oh, I don’t know, modify the game that you were describing, this train game that you’ve got. You were trying to reduce the amount of time it would take to do the next iteration of that.

\n\n\n\n

But it sounds like in the last year to 18 months, something along those lines, the expectation has now shifted. I’m presuming that the time thing is now just in the background. That’s guaranteed all the time. It’s always going to be quicker than it would be for a human to do it. But you’ve now moved into this curious creativity phase, which for many people I think was almost like the Turing test. You know, it was the bit that the computers, you could never imagine that the computer would ever be able to approximate something like that. And there’s a whole philosophical thing in there, which is probably too deep for us to open.

\n\n\n\n

But it sounds like you are making use of that. You are using it to generate ideas, to come up with variations around a theme and relying on it to be creative. Now, if that’s the case, I wonder how long it will be before that becomes just the normal, in the same way that maybe the time function has become normal. I wonder how long it will be before we’re all just, well, yeah, the creativity piece, of course, go to a computer, go to an AI if you want ideas.

\n\n\n\n

I wonder what the next thing, the next sort of hurdle to fall is? Because it’s hard for me to imagine anything beyond creativity in all honesty. Once it’s got approximations and mastered that, I’m doing air quotes this time, if it’s mastered that, it’s difficult for me to imagine what the next domino to fall would be. But no doubt there is one.

\n\n\n\n

[00:21:49] Corey Maass: And that’s what I’m getting at with the science stuff. There’s definitely, I think we’ve sort of chosen not to talk about the negatives. There are plenty and, or we’re foreseeing plenty or fearing a lot of things. Optimistically, at least in terms of output, to me we’re looking at coworkers who can do things faster, or employees or, I’m hesitant to say people who work for us but, you know, work that gets done on our behalf faster than we can do it, and in a way that we are satisfied with, right? Writing code is black and white. That’s not true at all, but it’s much more black and white compared to like writing a song.

\n\n\n\n

[00:22:29] Nathan Wrigley: Yeah, that’s true. I think the, sorry to interrupt. I was just going to sort of establish that point a little bit more. I think you are absolutely right. The WordPress slogan, code is poetry, obviously kind of leans into this a little bit, but there is a kind of binary nature to it. When you finish it, it either works or it doesn’t to some extent. The goal is to do this thing, does it do this thing? No. Okay, something’s wrong in that. Something needs to be ironed out. The ones need to be zeros and the zeros need to be ones, whatever it may be.

\n\n\n\n

In the real world, things can be a lot more messy than that. So for the tech industry, it feels like the technology is perfectly aligned to satisfy the goals of that. But, I don’t know, let’s say you are a, let’s find something which would be a great example. Let’s say you are a psychoanalysts, or a therapist or something like that. It’s not quite so straightforward, but the industry that we are in, it lends itself heavily to great success in that arena. Right, sorry, that was my interruption over.

\n\n\n\n

[00:23:20] Corey Maass: No absolutely. Perfectly restated. The code, there are degrees of efficiency. There are, you’re taking into context all of the different elements. So like Claude might write a method but it needs to work well with the way that the database is set up or whatever, right? So there’s nuances. This is what we’ve made careers off of.

\n\n\n\n

But exactly as you say, at the end of the day, it needs to work, it needs to be performant, it needs to be sustainable code, a few things. You check off these boxes and good enough if nothing else. Versus like, I am also a music producer. I make dance music and I like the way that I make dance music. It probably could be made by AI, if I’m honest, but it won’t scratch that itch for me, and that’s fine, right? This is a thing that I will probably, I and my music colleagues will all continue to do, even in the face of AI, because that’s not the point. It’s not about a thing that does work. And we’re going to talk about a client project in a minute. We said we’d talk about that, right?

\n\n\n\n

I have a client who’s hired me to build a piece of software that needs to do a certain thing. And so with her blessing, I am co-writing it with Claude Code, having it checked by Copilot, but at the end of the day, she doesn’t care who writes it or what language it’s in or, dot, dot, dot. It has to do a thing. It has to let people do a certain kind of work, right?

\n\n\n\n

Different from music. I’m not, for me, bedroom producer, I’m not trying to make millions of sales. I’m not a pop recording artist who’s reliant on this stuff. And so for me, it’s about connecting with other humans after I produce a piece of, let’s call it art, which is, I think a stretch.

\n\n\n\n

But I’m also, I’ve always struggled with the actual mixing of the music. Like hearing all of the frequencies and optimising the output. Because there is, again, a right way, like it’s not, again, it’s not black and white, but it’s much closer to, there is a right way for a song to sound with infinite variations, but within a very narrow gap, right? So I could write any kind of song I want, but the way that it should sound when I release it on Bandcamp does have answers. And in fact, this morning, I had finished a mix of a song last night, different from writing it, I’m going back through and tweaking it to try to make it sound as best as it could so that when I send it to DJs and they play it on dance floors, everybody throws their hands in the air, right?

\n\n\n\n

I’ve always struggled with that. My ears aren’t good at hearing those kinds of things. I dropped the track into Gemini, and Gemini came back with a, you’ve got a peak of frequencies at around 5,000, so you should drop that by two db. Your kick and your base are competing, and so you should add a ducker to the base so that the kick comes through and that’ll actually save you four db of headroom when you’re mastering. Like, I mean it was.

\n\n\n\n

[00:26:09] Nathan Wrigley: It just gave you all the science, which is absolutely fascinating. That is genuinely interesting.

\n\n\n\n

[00:26:15] Corey Maass: It probably isn’t perfect, and it definitely can be subjective, like maybe I’m going for Lo-Fi House instead of Big Room House. But I gave it that information where I said, here’s the genre, make me sound like these other artists. And so it said, well, here’s sort of how to help guide you closer to their sound.

\n\n\n\n

[00:26:33] Nathan Wrigley: The interesting thing there, I think, is it gave you a new rabbit hole that should you wish to explore, you just got it prized open. And you wouldn’t have known what any of that was. And so you could probably map that into a million different scenarios, you know, music, art, whatever may be. And it will just give you something back and you’ll be, oh, there’s that universe of stuff to get interested in. You know, the headroom of the dbs and all of that kind of, I mean it means nothing to me, but I kind of grasped that there’s a thing there.

\n\n\n\n

Do you know, you said something really interesting earlier and it probably just slipped out of your mouth and you didn’t notice how interesting or profound it was. You said it wasn’t the point. And you were talking about making music and using AI for that isn’t the point. I think that’s going to become the metric of so much in the future. What’s the point of that thing?

\n\n\n\n

So as an example, if I want to go and see a band, I do not want to watch a video of a band where I have a suspicion that there was an AI involved and it created this video and the music. The point is I want to go and see a bunch of human beings who I know have struggled with their art and their discipline and, you know, failure and moderate success and all of that kind of stuff. I want to know that there was that soul searching going on in that musical arena.

\n\n\n\n

But curiously, when I go to a SaaS app, the point is, does it work? It’s really simple. Does it work? And do I care too much about how the functioning of it was achieved? Not really. The point is, does it work? And maybe we’ll be asking ourselves that question more. What is the point of the thing I’m about to do? Does it matter to me if AI was involved? On closer examination, yes it does. I’m going to avoid that thing. Or, no, it doesn’t. That’s fine. I’ll embrace that thing. It really landed with me what you said there. So that’s kind of curious. I wonder if I’ll start doing that more in my own life, examining the point of it. Is it a human enterprise, something extremely human and only for humans, or is it somewhere else on that spectrum? Yeah, interesting.

\n\n\n\n

[00:28:32] Corey Maass: An example just came to mind, which of course has now just gone out of my mind because I started thinking about six other things. But like I read a couple of graphic novels. That’s what it was, memes. I read a couple of graphic novels and some of it is, I read for the artistry. Some of it I read for the stories. There’s graphic novels where I actually really don’t like the artwork, but I like the storytelling. How would I feel about the art being generated by AI? Because the person who was writing the story couldn’t draw, but could tell a good story.

\n\n\n\n

Or the example that had come to mind were memes, or funny photos, right? I’m not a meme person. I generally don’t repost animated gifs, or can haz cheeseburger, or any of that stuff. Some of it’s cute or whatever, and I’m not against it, but it doesn’t tickle my sense of humor, right?

\n\n\n\n

But lately, I’ve long been proficient in Photoshop because like we said, I started in 97 when you were designing websites in Photoshop or whatever. And so for a long time, like I would say, so here’s a good example. One of my big clients is Seattle Magazine. And so we were doing, I don’t remember, there was some reference of Sasquatch, creatures that are most active in the Pacific Northwest, often around the Seattle area. They are real, by the way.

\n\n\n\n

But the joke was that our editor was writing his letter or something. And so I, quick, ran over to AI and said, here’s the picture of Bigfoot that everybody knows, walking across the stream bed or whatever. Here’s headshots of my editor. Put my editor in this photo. And it generated a photo of Jonathan as Sasquatch, like walking across the river. And it made us all laugh. And I think we did end up putting it in the magazine. I don’t remember.

\n\n\n\n

I would have done the same thing in Photoshop, much less effectively. Even 10 years before, I would’ve grabbed a copy of the original photo and done my best to Photoshop Jonathan into the photo, maybe he’s hiding behind a bush or something. I couldn’t actually change his body to be walking in that pose. Now I can.

\n\n\n\n

Is the effect the same? And again, we’re not talking about the negatives, or obvious negatives, about image generation of other people. Used in a harmless, funny way or day to day. Like, another good example. So on the Mexican Train website, one of the things that I wanted when I created mexicantrain.online was, again, this was about people connecting. This was my COVID project. And so I, a couple of years before, I’m chatting with a buddy online, I was joking about how I was eating Cheez-its, which we like never have in the house and how Cheez-its are just the best thing in the world, and they’re dangerous to have in the house. And a week later, a box of like 50 packs of Cheez-its arrived because he had shipped it to me as a joke.

\n\n\n\n

So I took a picture of me like looking absolutely exalted, elated, holding up Cheez-its. Oh my God, Cheez-its, right? And that’s what I put on the Mexican Train website as a like, hey, I’m Corey, I built this thing, because it was a very relatable photo. A funny little side story is that still, five years later, a lot of people who play Mexican Train daily or weekly using my website buy Cheez-its, or buy Cheez-its for each other as prizes and things like that. Like, it all became an inside joke.

\n\n\n\n

In building the new version, I wanted a new homepage. But that photo, I’ve actually lost the original file of it, and I only have a low res version. So I uploaded that into Gemini. I’m also more bald and my beard is longer. And so I uploaded the original photo and then a couple of photos of me more recently and said, hey, Gemini, using Nano Banana, create a new version of this. And also, like the original photo is very zoomed in. You could really just see my face. And so I was like, I want head and shoulders. And it did a beautiful job. Fixed the lighting. It looks almost a little too polished, frankly. And my wife looks at it and she’s like, I don’t know why, but I can tell that’s AI generated, like I can tell that’s not you. But to anybody else, it’s certainly close enough. I look at it and I’m like, it’s me but I’ve been photoshopped a little or, you know, it’s been cleaned up or something. But it’s close enough. But it’s a better photo that still conveys the same message, but it works better on the page, I think. But it’s not authentic, air quotes.

\n\n\n\n

[00:32:59] Nathan Wrigley: Yeah, that whole authenticity thing is going to be, well, I guess it’s going to be a question for everybody going forward, certainly in, you know, you can imagine politics and things like that. Just judging whether or not the politician that’s on your screen at the moment is in fact doing that thing.

\n\n\n\n

[00:33:12] Corey Maass: That’s the terrifying part is, what’s real anymore?

\n\n\n\n

[00:33:15] Nathan Wrigley: There’s no doubt that we are going to have to kind of work that through.

\n\n\n\n

When you are using your AI, and we will get onto your client bits in a minute. When you are using the AI, on what level do you feel that you are in some kind of relationship with it? That’s a very ephemeral question. But, do you view it as, so you described that a year ago it was less good. So in human terms you might say, okay, it’s more childlike or something like that. You know, it’s a smaller version of a human being. It’s less mature and what have you. Now it’s grown up, for want of a better word. It’s a little bit older perhaps, or more mature or whatever it may be. Do you think about it in any human terms?

\n\n\n\n

[00:33:48] Corey Maass: Oh, absolutely.

\n\n\n\n

[00:33:49] Nathan Wrigley: Isn’t that fascinating.

\n\n\n\n

[00:33:49] Corey Maass: So what’s funny is, we’ve had a few of these conversations lately. My neighbors have Alexa in their house and they changed it to respond to computer, and they will only refer to it as, it. They did not want it to be humanised dogmatically. Like, it’s important to them that this is not a companion, a creature, a whatever, right?

\n\n\n\n

I don’t care that much, and in fact, I enjoy playing with language. And I don’t see, the current state of how we’re interacting with our technology, I don’t have a problem with humanising it, or at least using certain pronouns and things like that.

\n\n\n\n

And that’s why I say that specifically, Claude is a, he, it’s a male name, male, Western English name, right? Or if nothing else, I’ve never met or heard of a woman named Claude. Claude has always been a he. But one of the funny things that happened working with my buddy Robert, is he, like I said, he introduced Copilot to do code reviews and we’re chatting, he’s one of my, the buddies that I have where, you know, we chat online all day, every day, ongoing conversation. And he just started saying she about Copilot. And I did too. I did notice it, but I’m like, I have no objection, reaction to this. I see no harm in it.

\n\n\n\n

I have no idea if we’re going to take this conversation way too far. The Octocat, that is the mascot of GitHub. I don’t know if the Octocat has a gender or pronouns or what have you. If you’re going to think of Copilot as some version of the Octocat, like I don’t, how you might get there, even subconsciously, right? But like just using Copilot, Robert started saying she, so I started saying she. And then he actually said after, Robert, after a couple of days was like, you know, by the way, I don’t know if you noticed, but I’d started saying she for Copilot. For some reason I got a, call it a feminine energy off of her. And I was like, yeah, I noticed. I could maybe pick up, perceive that too, if I’m going to overanalyse it. I mean it so doesn’t matter.

\n\n\n\n

So now Copilot is she and Claude is he. I’ve never thought to ask Copilot if they have preferred pronouns, which I guess would then actually get it into that like real world and societal conversations and philosophical, not to say that a gender discussion is philosophical but, you know what I mean? Like, actual consequences of real world issues, let’s call it that.

\n\n\n\n

[00:36:06] Nathan Wrigley: It is so interesting that a lot of things, the sort of anthropomorphic nature of it, so we’re trying to build robots at the minute, and in many cases we’re trying to build a version of a human being. You know, it’s got legs and arms and clearly in many cases that is the least plausible design for the thing it’s trying to achieve. But we have this notion that, well, if we get a human being out of robots, that’s going to be great. It will be able to do all the things that we can do.

\n\n\n\n

But equally, on some level, we’re trying to get it to approximate human intelligence, human creativity, and things like that. And that kind of leads me to this one final thing before we talk about your clients, and that is, at what point do we start learning from it?

\n\n\n\n

[00:36:43] Corey Maass: Aren’t we already? You’re constantly asking questions.

\n\n\n\n

[00:36:45] Nathan Wrigley: Well, that was exactly the question. Yeah, so it would appear that in the case of code, at least anyway, you know, you ask it to do a particular thing and it will come up with this, I mean you could ignore what it’s done and just play the output and interact with what it has achieved. But if you were to delve into the code, I suspect there is quite a lot of head scratching and looking at things and going, gosh, that’s interesting. Why has it done it that way? That’s curious. Oh, I should be doing it that way.

\n\n\n\n

[00:37:08] Corey Maass: Is it better than me, versus is it better than everybody? We don’t have a way to determine that. And that’s why I brought up the science stuff earlier. I’m like, okay, so if a bunch of scientists, let’s just be vague here, are in a laboratory, or in a think tank and are working together, but they’re also feeding everything that they’re thinking into an AI who is also thinking, at what point if, somebody comes up with a brand new concept or a new way to approach a medical issue or something like that, you’re like, oh, that’s amazing. I don’t think that’s been done before. What happens when that’s Claude or ChatGPT?

\n\n\n\n

Presumably, in that specific instance, like the same process of like, oh, that’s, I don’t think any of us have thought of that before, let’s go do some experiments to see if that actually works, kind of thing. What if it’s well beyond our comprehension? What if it’s, there’s a conclusion, words that are typed on a screen that are so far beyond anything that we’re doing? You think of Einstein or you think of these scientists who have done stuff that, you know, or even, I mean you could be as vague as like painters who died in poverty and obscurity, but we revere them today. Vincent Van Gogh of course comes to mind.

\n\n\n\n

[00:38:19] Nathan Wrigley: Yeah, it’s kind of curious because obviously each one of us is a little entity and we’re constrained by our biology. You know, we’ve got this finite capacity in our brain. You have a finite time span on earth so, you know, for much of that time, you are just basically a recipient of knowledge, if you like? You’re this sponge, which is sucking things in. And then for a period of time you’ll be able to regurgitate it. You know, if you have an accident, your capacity will be diminished. If you’re knocked on the head or something like that. But you’re bound in time and you are bound in capacity because of the size of the neural network that you’ve got in your head.

\n\n\n\n

And yet we’re now being confronted with this other thing, which can do things remarkably quickly, can have the entire corpus of more or less everything at its disposal at a moment’s notice. And it can, this version of the entity over there, inside that other box is exactly the same as this one over here. You know, they’re kind of replicas of each other. And then if you put those two together, they can do things in symbiosis at twice the speed than, basically they’ve got this whole load of stuff going on that we can’t hope to manage.

\n\n\n\n

And it’ll be so interesting being in relation with that, and how we start to learn from it because, when was the last time you actually went to a book or went to a human teacher in your adult life to learn something? You just sort of go to Google, don’t you? And you’ve trusted on a computer to serve up the information for you for a long time. We’ve now got a new route to that information. I wasn’t really going anywhere with that. It was more of a sort of thought process. Yeah, interesting. Okay, let’s move to your client then.

\n\n\n\n

You did allude to this a little while ago, and it sounded like, certainly for the one client that you’ve got, there’s no obstacle here. You are just building the stuff. The client is entirely happy. I presume you are taking on the responsibility if the things that you produce with the AI kind of backfires or something is not working correctly. Is that your estimation of sort of the future into 2026, 2027, that the clients basically don’t care?

\n\n\n\n

And if that’s the case, does it allow you to be more profitable because you are spending less time? Or more effective because you can do more complicated things? Or, do you sense that maybe we’re going to hit a point in the years that come where the clients start to, well, rebel is the wrong word, but you know what I mean, their expectations will be, well, it’s no longer, well, I know that Corey’s using AI, so my expectation’s going to go up in terms of his output, but also my expectation of his fee is going to go down as well? So there’s a lot in that question, but unpack bits however you choose.

\n\n\n\n

[00:40:47] Corey Maass: So answering part 2.6b first.

\n\n\n\n

[00:40:50] Nathan Wrigley: Yeah, thank you. Yeah, that’s helpful.

\n\n\n\n

[00:40:52] Corey Maass: The story is, I had a client who had software built, it didn’t work out. But that meant that, largely her budget had been spent and so she was left with software that was, didn’t do everything she needed it to and, or at least there was not a lot of budget leftover for, because it’s, when the rubber hits the road kind of thing. Going, oh wait, we didn’t think of this. Now that we’re actually using it every day, we need it to do this and this instead of this and this. You design in a bubble and then you actually need to use the thing. And there just wasn’t budget left over.

\n\n\n\n

And so when we started talking, she’s like, I need these few things fixed. I looked at it and was like, I can’t really maintain this. We really want to, I mean typical, this is going to sound like every developer is like, I have to build it from scratch my way. But in some sense, at least in order for me to maintain it, it needed to be rebuilt my way. But we kept looking at, what would that cost? And she’s like, I’ve already spent my budget and so we’re waiting for new clients to come in or lightning to strike so that Corey can do this.

\n\n\n\n

AI happened to be that lightning. And I went back to her and I said, I think we’re to the point now, this was just a couple months ago, that I can build it for probably half based on hours. Because we’re still, at least at the moment, going, okay, we’re charging X dollars per hour of Corey’s time which isn’t, has never been, or at least for a long, long time, has not been just me typing characters into an IDE, right? A code editor. You’re paying for Corey’s experience, you’re paying for Corey’s planning, you’re paying for conversations that we’re having in order to come to certain conclusions to figure out the software we’re going to build, blah, blah, blah.

\n\n\n\n

So thinking of it in that same context, it’s not just about me typing. And so now it’s not about me typing at all. And in fact, I’ve had friends now, and I’ve read this too where the sentiment, or a sentiment, of developers now is we are project managers. We are product designers, or acting as the client in classic agile project management style. We are code reviewers because we’re not, why should we take the time to write the code anymore? And again, this is why, part of why we introduced Copilot, because it’s like, oh, then if we can also not do that part of it.

\n\n\n\n

Humans are valuable. That was something that you inadvertently alluded to earlier, is that we are still currently, we think we’re steering the ship, telling AI what to do and controlling how we’re using it and stuff like that, but like we make mistakes just as much as AI does. We aren’t the stop gap we often think we are, because we often make mistakes, or we don’t know what we don’t know, like you said a minute ago about just googling everything and that kind of thing.

\n\n\n\n

So anyway, talked to the client, said, look I think we can build this for half the price. I’m willing to take the risk if you are. I’m very upfront about like, we’re building this with AI, which is part of why we can do this. And she said, great, let’s do it. And so it’s been a slightly different experience. We still had to have the conversations about what the product looks like, what it does, and stuff like that. But I was in fact able to get it going a lot faster than I would have before. And because this is client work, I’m checking it a lot more diligently. Because again, like you said, there’s liability, or at least I’m going to be the one that has to fix it, so I need to make sure that it’s written in a language that I understand, and it’s laid out in a way that I understand.

\n\n\n\n

And I was a little more opinionated because I want to make sure that files are in certain folders, which nobody, as we said at the beginning of the call, nobody cares about. Like, as long as the software works, nobody cares where the files are. But we’ve, over 30 years of development, we’ve developed certain patterns that just make it easier. So why shouldn’t we take the time to make it easier? And especially since I don’t have to do the work, I can say, hey, Claude, you put this file over here, put it over here instead. And Claude goes, sure. Why not? I don’t care.

\n\n\n\n

[00:44:47] Nathan Wrigley: I guess if we ever get to the point where the AI is literally doing everything, then all of that would go out the window, wouldn’t it? You wouldn’t ever need to care where that file was, so long as the AI had a hand in knowing where that was, and it could retrieve that information and modify things as it was. But it feels like we’re certainly still in that human diagnosis phase, where you need it to look a certain way. I’m doing air quotes again, the sort of old fashioned way, you know what I mean? The way you’ve always done it, so that when it puts something out, you, yourself can look at it and go, okay, this is comprehensible to me. I can understand and see if there’s been errors. But I would imagine it’s not going to be long until that moment has passed.

\n\n\n\n

[00:45:23] Corey Maass: With the new version of Mexican Train, treating it kind of like I talked about Timerdoro early on, I’m caring a lot less, and I’m forcing myself to care a lot less. I’ve got a working version, this is an online game that is important to people, and it’s not that it’s not important to me, but I am comfortable with taking a little more risk. And so I am letting it more freely do what it wants.

\n\n\n\n

What’s interesting is we are not to the point yet where, as you said, this box is the identical to this box. So I am finding that on certain days it’ll go, well, I’ll put the file here, and on other days it’ll say, put the file here. It doesn’t matter, right? At least with that example, it doesn’t matter. You want it to write performant code, so you want it to make choices where things like performance matter, but whether a file is in one directory or another does not have real impact on the performance of the game.

\n\n\n\n

But comprehension down the road, because this is where we overlap with humans. You’re like, okay, so Claude tomorrow needs to understand where things are. It still makes more sense to have a logical file structure so that Claude tomorrow can go, oh, it looks like all of these types of files are in this directory. And so we end up coming to some of the same conclusions that 30 years of human development has decided are the better patterns.

\n\n\n\n

[00:46:45] Nathan Wrigley: Okay. Yeah, that’s kind of interesting. I mean, I guess it was ultimately because it’s creating its own, I don’t know, it’s next word based upon the whole corpus of the human word written down on the internet. It’s probably going to make, draw some broadly similar conclusions.

\n\n\n\n

It sounds, from what you just said, you used the word like half, I think a minute ago when you were talking about maybe the budget or the time available. Sounds like you were at roughly 0.5, half of whatever the commodity was, budget or time or what have you. Is that roughly where you think you are at the moment compared to pre AI in terms of efficiency? And do you see that efficiency, again, time or money, whatever it may be, do you see that dynamic changing so that you eventually get to, I don’t know, 0.4, 0.3, 0.1 of the amount of time that you would’ve done? And do you have an expectation that, at the time that you are doing 0.1 of the work for the same outcome, that you’ll get 1.0 of the salary that you got? Or will you have to do, you know, the other 0.9 on other jobs?

\n\n\n\n

[00:47:43] Corey Maass: There’s a reason why developers really like starting new projects or rewriting them from scratch, right? Clean slate. And I think that that work, where you are in total control, in an empty directory, all technology at your fingertips, I see that quickly speeding up. I’ll tell you, one of the biggest hacks, I should have said this way up front, like the best value, because I’m finding a lot of people don’t know this, is screenshots will save you.

\n\n\n\n

Claude Code does not, there are ways around this, but largely Claude Code or other AIs do not know what things look like in the browser. So taking screenshots, dropping them in, you can now say, look, the columns are misaligned or whatever. But also, even text, like I am just constantly taking screenshots and throwing them in to Claude, right?

\n\n\n\n

So part of what I’m doing right now, I know there’s a better way to do this, but I haven’t stopped to figure it out yet, is, Copilot reviews the code and then spits out a bunch of comments, right? I am taking screenshots of each one of those comments and dropping it back into Claude and saying, here’s what Copilot said, fix it. But I don’t even really have to type any words because Claude just reads the words that are in the screenshot. So it takes me three seconds to take a screenshot, drop it into Claude, and then Claude goes, oh, it looks like Copilot said we should do this instead, that makes sense. Or even has come back and said, well, Copilot doesn’t understand the bigger context, so I’ll push back on this kind of thing, right?

\n\n\n\n

But I’m still copying, I’m still taking screenshots and pasting. There’s got to be a way, I fully intend to do this soon, to figure out how to have Claude just read those comments and so the two of them can work together. So I shouldn’t be involved until there’s, I want a system that comes back and says, Claude did all, made all these changes, Copilot made all these comments, Claude is cool with these and not with these. Overall, we’re good to go.

\n\n\n\n

[00:49:41] Nathan Wrigley: It’d be so interesting to set the two agents against each other, I don’t know, at bedtime on one evening, and to wake up in the morning and see quite how they’ve got along, if you know what I mean? You know, has it been this entirely, because obviously it’s built upon the corpus of human knowledge, it’d be interesting to see if it’s been this entirely productive experience, or if there has been some element of humanity creeping into that conversation where, you know, one of them throws their toys out the trolley halfway through and things like that. It’d be absolutely fascinating to see if they, you know, or if one just sort of, I don’t know, determines that maybe, oh, that AI’s doing a much better job than I am. I’m going to slow it down with some.

\n\n\n\n

[00:50:19] Corey Maass: Or level up or, yeah. So getting back to your question though, right? Nothing is the same as actual humans interacting with something. So if we’re talking about traditional software that humans are clicking on, and then that’s my second biggest point right now is, since we’re supposed to be talking about WordPress, WordPress is all about clicking, right? It’s all about interface. It’s all about, you’re signing into an admin so you think about how visual that is, and then in the admin, you’ve got this left menu with, here’s all your options, click, click, click, click. And then the design of the page, right?

\n\n\n\n

Every client wants the logo to be bigger. And so you can go into AI and say like, oh, where I’m at right now is, if I’m building something new, I can use AI, I can generate it if I’m building software. But trying to essentially retrofit into current existing WordPress sites, we’ve got all these features that require clicky clicky on buttons, and AI can’t do that readily or what have you.

\n\n\n\n

So I’m still spending a large part of my day signing into WordPress sites, clicking around actually making changes, reconnecting. When we post a story, it pushes to Facebook and so I’ve got to actually go in and connect and click through the screens and all that kind of stuff. Which at the end of the day, most of the changes that you’re making in UI correspond to things being saved in a database. So at some point we’re going to get to where AI knows, oh, for Beaver Builder, I can make this change, store it in the database in a certain shape, and Beaver Builder will know how to render that on the front end.

\n\n\n\n

I’m already finding that with ACF, for example, like I have ACF save field groups as JSON, a feature they’ve had for a decade. But because it’s in JSON, in text files, AI can read that and then go in and make changes or replicate it sideways because it says, oh, it wants the data to look, have this certain structure so I can create another file and make the data have this certain structure and does a great job. But there are 50,000 plugins. And I’m not about to let AI go and look at my database willy-nilly to say, oh, Elementor wants the data to be stored this way in the database, let me just start writing things to, you know? And so there’s still that disconnect right now.

\n\n\n\n

[00:52:53] Nathan Wrigley: Yeah, I think WordPress is doing a lot of work with things like the Abilities API and things like that to sort of surface what WordPress is capable of. And I would imagine, you know, you mentioned Beaver Builder and Elementor, I’m imagining that in a future, they’ll be writing what their capabilities are, and where they’re storing their information in such a way that the, hopefully anybody with any AI can kind of instruct the AI to do the thing, and it will know what the thing is.

\n\n\n\n

Absolutely fascinating. I’m so curious because you are doing a whole load of stuff that I’m just not doing. I was never really an out and out developer, I was kind of dangerous with code. But equally it does seem like folk like me, who are not really experimenting with this too much are getting, well, left behind is maybe one way of describing it, maybe we’re sort of enjoying it on some level as well. We’re enjoying watching other people do it, and we get to worry about what the societal impacts will be.

\n\n\n\n

[00:53:44] Corey Maass: It’s points of integration. Electric cars came along and most of us were like, I don’t want or can’t buy a Tesla. But then the Prius came out and everybody went, oh, I can buy a Toyota. That’s probably historically inaccurate. Maybe the Prius came out before Tesla, but you get my point.

\n\n\n\n

The people around me, my neighbors are teachers. One of them has no interest, has no reason to use AI other than like, oh, let me look up a recipe or something. Versus, the other neighbor who really wants to be cutting edge and also thinks that this stuff is really neat. Is constantly trying to figure out, how can I run, generate, bingo cards was the new thing? Have AI figure out how to do these bingo cards for my students, or what have you. And you get into the moral gray area of, who’s actually writing papers and then who’s actually grading them? And so basically you’ve got AI grading papers that were written by AI. And you can get into, like anything, there’s all these sort of side effects. But, again, trying to keep it upbeat, like there’s neat things.

\n\n\n\n

[00:54:44] Nathan Wrigley: Yeah. No, I think we’ve done a great job of kind of keeping it upbeat. You’ve just been relentlessly positive about it. You know, it’s obviously had a profound impact on your life, your capacity to do things. You sound like you’re infinitely curious about it as well. So it’s, maybe the life of a developer was something that wouldn’t have held the same level of excitement for the next decade or more. But this new technology getting injected and shaking everything up a bit, makes it so that you can do things that you might not have ever taken on, because the technical challenges or time might have been too difficult.

\n\n\n\n

[00:55:12] Corey Maass: Would I want to be a new developer? I don’t know. Again, I think things are, I’m trying to describe where I’m at now, where, again, like WordPress is still very clicky clicky, and that happens to be the majority of the work that I do professionally.

\n\n\n\n

I also think that, like I run a lot of websites for friends and for local nonprofits and stuff like that because there’s still something to be said for having a website. And the easiest way, so like we have a local, city owned, calling it a ski mountain is generous. You can technically ski on it. Most of the value to the community is there’s a tubing hill. So you get pulled up the hill in a tube and then you come screaming down the hill at 25 miles an hour. It’s freaking awesome.

\n\n\n\n

I volunteer there and so when we needed a new website, I said, let me make a new website, right? I don’t want to be, if I’m involved in a tubing accident, this is the pointed version of getting hit by a bus, the developer scenario of getting hit by a bus, right? Somebody else needs to be able to step in and maintain that. So the website can’t, the value of something like WordPress, a CMS software in general for generating websites, right. I can’t, and even, TMI, but the guy who had the previous website had built it all by hand, and so nobody else could begin to maintain it or make changes to it.

\n\n\n\n

And so for the new version, I was like, this is literally the best scenario for WordPress because I created the website and then I shot a video of how to update the website. And just a week ago, the head of the board in charge of it got in touch and said, hey, how do we make changes to the website? Do I have to send them to you? And I said, here’s a video, go give it a try. And if you get stuck, then absolutely contact me. But if there was any sort of running of scripts or FTPing into the server to make changes, or any of that stuff, like it would fall flat. And so you still need, at the moment, you still need clicky clicky.

\n\n\n\n

Shortly, as you said with the new API and stuff, there’ll be a little chat bot where you’ll say, look at this website. And the AI will go, oh, it looks like you’re using Beaver Builder with ACF, and you’ve got Yoast installed, dah, dah, dah. And then you’ll say, okay, we need to change the homepage to say the following things. And I think we’re going to go through, like any of this stuff, we’re going to go through a phase where it’s going to absolutely break the website and my phone will ring.

\n\n\n\n

But six months later, it’ll get better and better and better, and then using certain plugins. And I think, you talk about adoption, I think, if the plugins that lean into making AI be able to use their software well and quickly. So like I’m a big fan of Beaver Builder. So if Beaver Builder leans into enabling AI to interact with Beaver Builder, right? Then we are going to, just like any of the things in WordPress, there’s good and there’s bad, there’s favorites, there’s things that break over time. There’s all that kind of stuff, things that are maintained well and whatnot.

\n\n\n\n

And so we’re going to get to a point where certain stacks are going to work better with AI. And I think site creators like me are going to say, oh, I don’t want to maintain this website for our local ski hill more than I have to. But instead of them having to go in and click on things and adjust boxes on a screen, I’m going to use Beaver Builder, but maybe I give up, ACF will never let me down but let’s, hypothetically, ACF doesn’t work well with AI, but Meta Box does. So I might say, okay, I’m going to switch my AI friendly stack to be Beaver Builder with Meta Box, so that they can just go in and type something, it’ll all sort itself out more reliably. And I think that’s what we’re going to see over time.

\n\n\n\n

[00:58:59] Nathan Wrigley: Yeah, I think there’s been so many interesting predictions about what is coming. Most of my predictions have turned out to be just hot air, essentially, because the rate of change is so, so, very fast. But I do like the direction that WordPress is going in, where it’s being sort of agnostic of the AI, the actual API, for want of a better word. You know, it’s just going to hopefully be able to bind to any of those. I think that’s a curious direction, and it kind of leans into that, I guess the philosophy of something like WordPress as well. That it’s there for everybody and it’s not there to generate money for a particular company, be it Open AI or Gemini or what have you.

\n\n\n\n

We’ve probably hit the sweet spot in terms of the amount of time that we can give to this. What an interesting discussion though. So far ranging. We ended up with lots of sort of philosophical points, and lifestyle points and all sorts in there. But I think in the end we sort of wrestled it back to WordPress.

\n\n\n\n

So Corey, where can we find you? If somebody’s interested in sort of having a chat and wants to talk AI, where would you be online?

\n\n\n\n

[00:59:53] Corey Maass: Sure. Twitter, @coreymaass, is probably the social that I’m most active on. But also, Post Status, the WordPress community. Always love shouting that out. That’s been invaluable in my life and career. And then me as a developer, company, gelform.com. G-E-L-F-O-R-M .com. You can email me there if you want to yell at me or praise me or, but privately.

\n\n\n\n

[01:00:21] Nathan Wrigley: Okay. We will put all of those into the show notes so that anybody that wants to reach Corey can do that. Head to wptavern.com, search for Corey’s name. It’s a slightly unusual spelling. The surname, it’s C-O-R-E-Y, the Corey bit, but Maass is M-A-A-S-S. So search for that and you’ll be able to find him. Corey, thank you so much for chatting to me today.

\n\n\n\n

[01:00:39] Corey Maass: Thanks Nathan. Always a pleasure.

\n
\n\n\n\n

On the podcast today we have Corey Maass.

\n\n\n\n

Corey’s been building for the web since the late nineties, starting out in the early days of Photoshop and tables, learning JavaScript, ASP Classic, and PHP, and eventually falling into the world of WordPress around 2010. Since then, he’s taken on building SaaS apps, managing client projects, and experimenting with a growing number of productivity tools and frameworks. He’s joined us before, and today he’s here to share his perspective on what it’s been like adopting AI into his workflows, especially from the point of view of building projects for clients.

\n\n\n\n

Although AI has dominated headlines over the last couple of years, Corey brings a practical angle to the conversation. He discusses the evolution of his tech stack, and how embracing AI tools like Cursor, Claude Code, and GitHub Copilot have completely changed the way he builds software and manages projects, allowing him to work faster, automate code review, and unlock creativity in places he hadn’t expected.

\n\n\n\n

We hear about how his journey with AI started, how he’s reimagined old projects using new tools, and how learning to interact with these models, sometimes granular, sometimes letting them run freely, has reshaped his daily workflow. Corey describes the shift from using AI just to save time, to using it as a sounding board for inspiration and idea generation, even weaving it into artistic endeavours like music production.

\n\n\n\n

Much of the discussion centres around how these advances have affected client work, with Corey exploring the real-world balance of responsibility, efficiency, and the changing nature of value for developers. Do clients care who, or what, wrote the code, or just that it works? What does authentic creativity mean in an era where prompting and randomness are part of the toolkit?

\n\n\n\n

Whether you’re a developer curious about what ‘working alongside AI’ means ‌or just wondering about the future of tech and WordPress in an increasingly automated world, this episode is for you.

\n\n\n\n

Useful links

\n\n\n\n

Corey on X

\n\n\n\n

Corey’s Gelform website

\n\n\n\n

Cursor

\n\n\n\n

Claude Code

\n\n\n\n

GitHub Copilot

\n\n\n\n

Timerdoro

\n\n\n\n

TypingMind

\n\n\n\n

Gemini

\n\n\n\n

ChatGPT

\n\n\n\n

Corey’s Mexican Train game

\n\n\n\n

IndyDevDan

\n\n\n\n

Nano Banana

\n\n\n\n

Seattle Magazine

\n\n\n\n

Beaver Builder

\n\n\n\n

Elementor

\n\n\n\n

Abilities API

\n\n\n\n

Yoast

\n\n\n\n

ACF

\n\n\n\n

Meta Box

\";s: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, 14 Jan 2026 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:\"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: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:31:\"Matt: Remembering Jesus Ornelas\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=151082\";s: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:48:\"https://ma.tt/2026/01/remembering-jesus-ornelas/\";s: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:2494:\"

Today we honored the passing of Jesus Ornelas, the father of my friend Rene, whom I’ve known for 28 years now. At the service outpouring of love expressed in words, music, and presence was so powerful. Alongside his biological sons, I said a few words, which are as follows.

\n\n\n\n

My memories of Mr. Ornelas begin with seeing him, without fail, drive Rene halfway across town twice a day to attend HSPVA to support his artistic calling, even though his own predilection was for handicraft. The tireless devotion of a father working to create a better life for his son.

\n\n\n\n

I remember fondly when we would gather at Woodlawn, three houses on the same street, his sly smile and contentment seeing all of his family so close together. Gosh, looking back, we were so poor, but only in money. We were rich in love and family. My memories of those times are not what we lacked, but the abundance of what we had together, which was time, friendship, and some pretty darn good food.

\n\n\n\n

Mrs. Ornelas, your love and devotion to your husband through these twenty one years of dementia is an inspiration to us all who love a partner and a testament to the human spirit. Su amor y devoción hacia su esposo a lo largo de estos veinte uno años de demencia son una inspiración para todos nosotros que amamos a una pareja y un testimonio del espíritu humano.

\n\n\n\n

To Jesse, Eddie, and Rene, I will say that how you live as men is a testament to the example your father set. I can’t imagine how proud he must be looking down at this room, seeing how he came from such challenging conditions in Mexico to build a life for you all here in Houston and see every generation grow and prosper even more. Rene, I hope our fathers are together, cracking a beer and smiling as they look down on our lives.

\n\n\n\n

Though his corporal form is no longer with us, everyone here will keep him alive by remembering and embodying his best qualities. We don’t need a bracelet to remind us What Would Jesus Do in those invisible acts of service for loved ones.

\n\n\n\n

May his memory be a blessing to all of us, and let our actions, seen and unseen, honor his legacy.

\";s: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, 14 Jan 2026 04:30:16 +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:30;a:6:{s:4:\"data\";s:21:\"\n \n \n \n \n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:80:\"Open Channels FM: Do the Woo Live with Matt Mullenweg Kicks Off January 14, 2026\";s: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=114095\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:86:\"https://openchannels.fm/do-the-woo-live-with-matt-mullenweg-kicks-off-january-14-2026/\";s: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:167:\"On January 14, 2026, at 15:00 UTC, the Do the Woo podcast returns live with hosts Katie Keith and James Kemp, featuring Matt Mullenweg discussing WooCommerce\'s future.\";s: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, 13 Jan 2026 13:55:51 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:31;a:6:{s:4:\"data\";s:21:\"\n \n \n \n \n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:94:\"Open Channels FM: Making Accessibility Fun and Brain-Friendly for Web Developers and Designers\";s: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=114100\";s: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://openchannels.fm/making-accessibility-fun-and-brain-friendly-for-web-developers-and-designers/\";s: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:193:\"In this episode, Anne Bovelett chats with Gehirngerecht founders Nina Jameson and Tobias Roppelt, discussing their mission to promote digital accessibility through engaging workshops and tools.\";s: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, 13 Jan 2026 12:22:34 +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:20:\"Matt: Shorter Speech\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=151076\";s: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://ma.tt/2026/01/shorter-speech/\";s: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:898:\"

One of the great WordPress blogs is Quote Investigator. In their investigation into the original source of “If I had more time, I would have written a shorter letter,” I came across this great variation from Woodrow Wilson on the amount of time he spent preparing speeches.

\n\n\n\n
\n

“That depends on the length of the speech,” answered the President. “If it is a ten-minute speech it takes me all of two weeks to prepare it; if it is a half-hour speech it takes me a week; if I can talk as long as I want to it requires no preparation at all. I am ready now.”

\n
\n\n\n\n

So true.

\";s: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, 13 Jan 2026 07:47: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: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: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:14:\"Matt: Matt 4.2\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=151053\";s: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:31:\"https://ma.tt/2026/01/matt-4-2/\";s: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:5175:\"

It’s that time of the year again for a new version release. Forty-two is a fun number, of course, famous from The Hitchhiker’s Guide to the Galaxy.

\n\n\n\n

I’m in Miami, where I’m attending a conference by Richard Saul Wurman. I decided that it would be a great way to fill my brain on my birthday. Since New Year’s, I’ve been in warm climates and had lots of dips in the ocean. Had a small birthday dinner a few days ago and my friends surprised me with a beautiful “HappyBdayMattic” cake.

\n\n\n\n

This last year was particularly challenging, especially at the beginning. However, it just kept getting better, and particularly WordCamp US in August was inspiring. The warmth and support of the WordPress community pulled me out of the funk I had been in. It was also when I kicked off the habit of daily blogging, which led to 2025 being the highest number of words (34.7k) I’ve posted since 2004! I traveled 209k miles, about a third lower than last year, spending longer stretches in 45 cities and 16 countries.

\n\n\n\n

One of my biggest lessons of the year was learning how to ask for help. I’m usually the person others come to, and I carry a lot of responsibility on my shoulders from my friends and loved ones, and for the companies and communities I’m lucky enough to be part of. I’ve had some bad experiences asking for help in the past, as well. Now, how I see it is that it might not always work, but if you don’t ask for help, you also don’t give people the chance to step up. This year, the support of several friends got me through some really tough spots.

\n\n\n\n

A joy of this year was seeing my godchildren grow up, close friends starting families, and the Audrey Scholars program. There’s a Walt Disney quote I just found out about that I love: “I do not make films primarily for children. I make them for the child in all of us, whether we be six or sixty.” Kids can’t help but remind you how important it is to maintain that childlike sense of curiosity.

\n\n\n\n

A random new thing I’ve adopted this year is coconut water. I’ve been trying to hydrate with electrolytes, especially first thing in the morning, and it’s a great natural source of minerals.

\n\n\n\n

My main goals this year are to keep up daily writing, post some of my archive photos, finally visit Rome and bring my family, swim more, and be the best leader for Automattic and the WordPress community through the incredible changes and opportunities of the AI era.

\n\n\n\n

Even though I have several decades of history now, I find myself looking forward far more than back. Great words to live by I just learned from Jeffrey Katzenberg, apparently originally from Doug Ivester.

\n\n\n\n
\n

Never let your memories be greater than your dreams.

\n
\n\n\n\n

That said, it is a funny time to revisit my original version-number birthday post, 2.2, which is exactly 20 years old now.

\n\n\n\n

I wish everyone a wonderful 2026!

\n\n\n\n

All birthday posts: 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sun, 11 Jan 2026 18:54: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: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: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:25:\"Matt: Classical Accordian\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=151049\";s: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:42:\"https://ma.tt/2026/01/classical-accordian/\";s: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:\"

So my new obsession is a Ukrainian-born musician, Alexander Hrustevich, who plays a type of chromatic Russian accordion called a Bayan. He plays incredible transcriptions of classical pieces, replicating the parts of an entire orchestra with just two hands. If you’re familiar with Vivaldi’s Four Seasons, you know the Presto for Summer is one of the most challenging parts. Listen to this, it’s just a bit under three minutes.

\n\n\n\n
\n\n
\n\n\n\n

Here’s the 14 minute version which is beautiful to hear the dynamic range that’s possible.

\n\n\n\n

I’ve always loved the sound of a big pipe organ and the resonance and feel of the bayan. It is really quite remarkable, and it’s been very enjoyable having a playlist of Alexander’s music in the background as I work. This Bach-Fantasia and Fugue in G minor BWV 542 is also quite good.

\n\n\n\n

My 42nd birthday is tomorrow! Working on a post for y’all.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sun, 11 Jan 2026 04:20: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:4:\"Matt\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:35;a:6:{s:4:\"data\";s:21:\"\n \n \n \n \n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Matt: Mad Ones\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=151045\";s: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:31:\"https://ma.tt/2026/01/mad-ones/\";s: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:487:\"
\n

The only people for me are the mad ones. The ones who are mad to live, mad to talk, mad to be saved, desirous of everything at the same time, the ones who never yawn or say a commonplace thing, but burn, burn, burn, like fabulous yellow roman candles exploding like spiders across the stars.

\n
\n\n\n\n

— Jack Kerouac, On the Road

\";s: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, 10 Jan 2026 07:57:28 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s: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: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:15:\"Matt: Small Hit\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=151039\";s: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:32:\"https://ma.tt/2026/01/small-hit/\";s: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:1146:\"

The NY Times has a profile of John Ternus as a possible successor to Tim Cook that has a number of ridiculous lines; it’s quite bad, but this is one of my favorites:

\n\n\n\n
\n

Apple has had many small hits under Mr. Cook and continues to be one of the most profitable companies in the world. 

\n
\n\n\n\n

Goodness! I would love to have a hit someday as the small as the ones Apple has had under Cook. Apple Watch sells more than the entire Swiss watch industry. Airpods are the most popular headphones in the world. Their market cap is bigger than the GDP of all but four countries in the world.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 09 Jan 2026 05:45:44 +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: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:60:\"Open Channels FM: Eight Years and 1.53 Million Seconds Later\";s: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=113805\";s: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://openchannels.fm/eight-years-and-1-53-million-seconds-later/\";s: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:137:\"With enough words spoken to fill the Harry Potter series three times over, BobWP shares some fun numbers on this 8th year of the podcast.\";s: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, 08 Jan 2026 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:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:38;a:6:{s:4:\"data\";s:21:\"\n \n \n \n \n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"Matt: Beeper &amp; Day One\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=151033\";s: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://ma.tt/2026/01/beeper-day-one/\";s: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:447:\"

Pankil Shah writes I replaced WhatsApp, Telegram, and Messenger with this one app. (It’s Beeper.) And Wirecutter picks the 3 best journaling apps of 2026. (It’s Day One.)

\";s: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, 08 Jan 2026 05:37:01 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s: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: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:111:\"WPTavern: #199 – Brian Coords on WooCommerce’s Challenges and Innovations in a Changing WordPress Landscape\";s: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=202139\";s: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:122:\"https://wptavern.com/podcast/199-brian-coords-on-woocommerces-challenges-and-innovations-in-a-changing-wordpress-landscape\";s: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:60076:\"
Transcript
\n

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

\n\n\n\n

Jukebox is a podcast which is dedicated to all things WordPress, the people, the events, the plugins, the blocks, the themes, and in this case, WooCommerce’s challenges and innovations in a changing WordPress landscape.

\n\n\n\n

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

\n\n\n\n

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

\n\n\n\n

So on the podcast today, we have Brian Coords.

\n\n\n\n

Brian has been active in the WordPress space for over a decade, starting out in agencies, building and managing websites, and is now a developer advocate at WooCommerce, bridging the gap between woo’s internal engineers and the wider developer community. His journey includes being a high school teacher, working for nonprofits, and writing for the WP Tavern before landing his role at Automatic.

\n\n\n\n

If you’re interested in where WooCommerce and WordPress itself are headed, this episode will help as Brian shares insights on WordPress’s evolving focus, the importance of embracing AI, and how a slower pace of change can be a strength in any open source ecosystem.

\n\n\n\n

He talks about the massive rebrand at WooCommerce, the challenges and opportunities in competing with SaaS giants, and the unique developer relations role that balances his technical experience with communication skills.

\n\n\n\n

We get into how the team Brian works with supports developers and agencies with documentation, office hours, and feedback loops, and how WooCommerce’s global Reach makes for a complex but thriving ecosystem.

\n\n\n\n

There’s discussion about recent marketing efforts, the realities of open source support, and the surprising diversity of WooCommerce users worldwide.

\n\n\n\n

Towards the end, we look ahead to what’s coming for WooCommerce, which is greater integration with block based editing in WordPress Core, major investments in AI to streamline store management, and the future landscape of online shopping.

\n\n\n\n

If you want to hear how WooCommerce and WordPress are responding to a rapidly changing tech environment, this episode is for you.

\n\n\n\n

If 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\n

And so without further delay, I bring you Brian Coords.

\n\n\n\n

I am joined on the podcast by Brian Cords. Hello Brian.

\n\n\n\n

[00:03:09] Brian Coords: Hey, thank you for having me.

\n\n\n\n

[00:03:11] Nathan Wrigley: You’re very welcome. I have a lot of respect for Brian. I’m hoping that by the end of this podcast you also have a lot of respect for Brian.

\n\n\n\n

Brian has been kind of part of my browsing on the internet and WordPress journey, I want to say, for five or six years, something along those lines, I’ve known about you and followed your stuff. Pretty much everything that you’ve done. I’m really pleased that you’ve come on the podcast to talk to me today about WooCommerce.

\n\n\n\n

Those people that don’t know Brian, I’m going to give you an opportunity just to introduce yourself. So would you mind, I know it’s a banal question, but little potted bio, couple of minutes about your WordPress journey, or you can talk about the guitars in the background if you prefer.

\n\n\n\n

[00:03:47] Brian Coords: Yeah, nobody wants to hear me talk about or play a guitar.

\n\n\n\n

Yeah, so I’m Brian. I’m a developer advocate at WooCommerce, so I work on sort of the community side, bridging the gap between the community of developers that build on top of WooCommerce or build stores with WooCommerce, and then our internal engineers and make sure that communication channel stays open.

\n\n\n\n

But before that, I spent probably 10 years working at a WordPress agency. So building sites, managing team of developers, doing all the kind of work that a WordPress agency does and sort of lived through that time from early page builders all the way until the last few years in the rise of the block editor. So I kind of have that personal experience of what it’s like just selling WordPress websites for a living.

\n\n\n\n

And before that, my career went through a whole bunch of different places. Was a high school teacher, worked at nonprofit, all sorts of different things. So happy to be at Automattic, where I get to sort of teach, sort of build websites and just hang out with people.

\n\n\n\n

[00:04:44] Nathan Wrigley: I had no idea that you were a high school teacher. I have enormous respect for anybody who takes on a role in public education. So that’s interesting.

\n\n\n\n

So I’m going to segue a little bit. This question’s just occurred to me from everything that you’ve just said, given that you’ve been in the space of WordPress for the last 10 years, more.

\n\n\n\n

So it’s a bit of a peculiar one, but are you as excited about it as a project as you were, let’s say, 10 years ago? Do you still think that it’s got the future that you probably thought it had a decade ago?

\n\n\n\n

[00:05:13] Brian Coords: Yeah, I mean that’s a good question. I would say overall, yes, I am excited about it. I think that if there’s any concerns about WordPress or things to be not excited or scared about, it has nothing to do with WordPress and has everything to do with the internet as we know it, and AI and everything changing and economics and all these other sorts of things.

\n\n\n\n

The project itself, it seems to, I would say over the last year, really narrowed its focus on what it thinks its role is. And I think it’s adopted the AI change really well, and that’s made me very excited. I think it understands, you know, I think some of the things about WordPress is sometimes the day to day, you feel like the decisions are a little confusing, but if you look at it over the long term, it’s half the internet. So clearly the decisions tend to work out in the long run. So I think I still have faith in the project.

\n\n\n\n

[00:06:01] Nathan Wrigley: I find that the slow pace of change is actually one of its greatest strengths, but it takes an awful lot of mulling it over and sitting down and being calm with yourself to think, why hasn’t it got all these features? Why is it not keeping track of this, that, and the other thing that’s going on on the internet? But broadly, when you look back at any 2, 3, 4, 5 year period, I think usually that was the right decision, although it feels like it might not have been the right decision when that moment is passing.

\n\n\n\n

[00:06:32] Brian Coords: Yeah, there’s a lot of people who look at a lot of decisions, like say the block editor and they say, well, why didn’t they just take Elementor and stick that in Core and stuff, you know? Regardless of the fact that Elementor is a successful business that probably doesn’t want their software stolen and taken into Core. But I think if you look at it now you, a lot of those decisions would’ve seemed a little crazy.

\n\n\n\n

And the fact that it doesn’t throw everything and that it just throws the kind of basic foundational layer, and then it allows something like Elementor or any of these other page builders to be successful businesses and do their thing. The fact that it empowers that to exist, or it empowers all the other builders to exist, or it empowers WooCommerce or all these other plugins to exist, is a testament to the fact that it didn’t try to be everything to everyone, and it just kind of stayed in its lane as a foundational layer. And so I think it’s, it doesn’t feel like it’s doing that much, but it’s working out well for everyone in the ecosystem.

\n\n\n\n

[00:07:24] Nathan Wrigley: We don’t want to get into this, in fact, I’m going to insist that we don’t get into this. But I think it is a really interesting time with the tsunami of things that are going on with AI to see how a CMS can cope with the future with AI as a possible tool to do everything. To do every single thing that would be required in building a website. It’ll be interesting to see how the project goes.

\n\n\n\n

And, you know, there’s a lot going on there, and I think this is one of those moments where we have to just sort of sit down and be calm and see what the teams are doing and just have faith. I think at least that’s my position anyway. So you don’t have to respond to that if you don’t want to.

\n\n\n\n

[00:08:00] Brian Coords: Yeah, I’m just overwhelmed by AI sometimes on my day-to-day work. And so I do have to remind myself the only thing you can do is sit and go slow and just see what happens, because I don’t think we can predict it.

\n\n\n\n

[00:08:11] Nathan Wrigley: No, I think you would be right. So when you joined Automattic, how long ago was that now? Roughly.

\n\n\n\n

[00:08:16] Brian Coords: Almost a year. Early this year.

\n\n\n\n

[00:08:18] Nathan Wrigley: Yeah. Did you have intuitions at that point that WooCommerce was where you were going to end up? Was that where you were heading or is that just sort of serendipity?

\n\n\n\n

[00:08:26] Brian Coords: No, well, not really. When I first started, I kind of was all over the place. I was here at WP Tavern for a few weeks as part of that trial writing project. I did some work with wordpress.com and kind of got to see behind the scenes of that, and I had friends at all different parts of the company.

\n\n\n\n

What I knew that I wanted to do was developer advocacy or what some people call developer relations. I knew that that’s where the role that I wanted, but I don’t think I would’ve thought of Woo. But then when the opportunity came up, there was a lot that I really liked about WooCommerce that I thought it had such a strong idea of what the product is, who the customers are. They had just done that rebrand where they had the new logo and the new colours and the new design. It felt like the whole company was kind of just doing really cool things.

\n\n\n\n

So once the opportunity came up, I’ll be honest, I didn’t build a lot of WooCommerce stores before I joined. So other than being kind of afraid of learning all of this stuff it was, definitely it made sense once the opportunity came up.

\n\n\n\n

[00:09:22] Nathan Wrigley: Yeah. With the sort of WooCommerce side of things, are you happy with that move? You know, you’ve got your feet onto the table now and you feel that’s where you’re going to stay, I guess, for the near future.

\n\n\n\n

[00:09:32] Brian Coords: Yeah, definitely. What’s interesting about Automattic is over the last year, since I joined it’s been kind of a turbulent year at the company, but one of the things they’ve been really trying to do is centralise things and be more consistent.

\n\n\n\n

So in WooCommerce, there’s a lot of stuff that WooCommerce would go off and do, and it would be kind of different from say, Core WordPress or wordpress.com or WordPress VIP, or all these different kind of parts of WordPress inside of Automattic.

\n\n\n\n

And over the last year, they’ve tried to kind of centralise and say, why do we have three different plugins that are doing similar things. Or why can’t we streamline all of this or have everybody working on the same stuff. So WooCommerce has been doing a lot of work really towards Core WordPress, and making the Core WordPress experience better so that WooCommerce can use those tools instead of doing it.

\n\n\n\n

So in a weird way, I’ve actually gotten to collaborate a lot more with some of the other sides of the company and people who do this job but are not in WooCommerce. There’s a whole team that has people like, let’s see, Ryan Welcher, Justin Tadlock, Jonathan Bossenger, that whole group. So it’s kind of nice. We’re in our little Woo bubble too, but then I get to work with them and learn from them, and work on Core WordPress too. So it’s kind of, it’s been nice. We’ve kind of brought everyone a little closer, I think.

\n\n\n\n

[00:10:42] Nathan Wrigley: It is kind of interesting over the last 18 months or so, having spoken to quite a few Automatticians, it does feel like the landscape inside the company has changed. I don’t think we need to go into that, but it is interesting you saying that, because feels there was some realignment and moving around, and decisions about which teams were going to collaborate more with which teams. And that seems like what you are saying as well, so there we go.

\n\n\n\n

So on the WooCommerce side of things, you mentioned that you are a developer, well, you said developer advocate, developer relations, kind of the same term really. For anybody listening to this who doesn’t know what that is, basically, what is the job contract that you’ve got there? What is your role?

\n\n\n\n

[00:11:19] Brian Coords: Yeah, so we cover a few different things. From a high level, it really is, we’re there to help developers inside the company know what developers outside the company are doing and vice versa. So if you’re building stores with WooCommerce or you’re building extensions to sell in the marketplace, you know, like plugins that add-on to WooCommerce, or you’re working at one of our partner companies like Stripe and Google and Snapchat and Reddit and all these companies that integrate with WooCommerce, our job is to make sure that you have access to good documentation and good examples.

\n\n\n\n

We make sure that when a new version of WooCommerce comes out, which is every five weeks, that we publish all the release notes, and make sure that that information is, you know what’s coming, what’s changing, what’s different. We do some video content, we do some office hours hangouts in a community Slack, we keep an eye on the repo for community contributions. So it’s a lot of different things, but it’s really just, at the end of the day like, hey, does this help developers on either side of the wall move forward basically?

\n\n\n\n

[00:12:19] Nathan Wrigley: Do you have to be technical in order to carry out your role, or would there be any scope for somebody in your position to be non-technical? Let’s say, you’re a marketing person or something like that. Is there any aspect of that to it? Or is everybody doing your kind of role a technical person with a background in coding and what have you?

\n\n\n\n

[00:12:37] Brian Coords: It’s a unique role and it’s kind of a long debate inside of the developer relations community is, does this team go in an engineering department or does it go in the marketing department?

\n\n\n\n

So for example, at Automattic there is another developer relations team that handles a lot of that WordPress Core stuff that I was talking about, and they’re kind of a little more attached to engineering.

\n\n\n\n

For our team, we’re part of the WooCommerce marketing department. So of course that’s going to change a little bit of what we work on, how our decisions are made, that sort of stuff. I don’t think it changes that much, and in some ways it gives us access to a lot of cool stuff like their design team, which is really nice to have.

\n\n\n\n

So it goes both ways, but you really have to be a unique person where you have to be a good communicator, and you have to have some amount of technical experience. You kind of really need both, because at the end of the day we look at a new version of WooCommerce and it’s, oh, we changed this API and it’s going to affect developers in this way. It’s like, I need to be able to communicate that. I need to be able to understand it. I need to be able to know what the implications of that are. So it’s kind of both.

\n\n\n\n

[00:13:35] Nathan Wrigley: Do you produce this content in multiple languages or is it kind of English first and then it gets translated in some other department, or indeed does it get translated into another language, do you know?

\n\n\n\n

[00:13:45] Brian Coords: No, I think pretty much English first. There is a lot of stuff that is translated for, I would say on the, what we call like the merchant side, sort of like the user side. So if you’re looking for extensions in the marketplace, that’s available in a lot of different languages. The software itself is translated, but the developer stuff is pretty much English only. Because we’re a really small team. Like when we look at, there’s only, at any time, three or four of us working on this for software that’s on whatever, 8% of the internet, so English only for now.

\n\n\n\n

[00:14:13] Nathan Wrigley: Yeah, the reason I ask, maybe you were present at State of the Word where Matt went through a bunch of statistics. And it was curious to see, for the first time, so WordPress more broadly, not WooCommerce specifically, but WordPress more broadly is now used on non-English websites more than it is on English websites. And so if we’d have had this interview a week ago, that question probably would not have arisen.

\n\n\n\n

But I’m guessing that WooCommerce goes along for the ride there. I’m guessing it’s not just on English speaking websites, I’m guessing WooCommerce is just literally in more or less every part of the world, in every locale and every jurisdiction. There are people who are using your code, but probably not speaking English.

\n\n\n\n

[00:14:52] Brian Coords: That’s definitely the case. So we have a free Slack, that’s the WooCommerce Community Slack, and it’s more than 30,000 people in there. It’s all over. You can definitely tell that people are coming from all over the world.

\n\n\n\n

One of the weird things about e-commerce is it’s very geographically based because the currency matters. The payment provider that handles the payments matters. The shipping options matter. So there are certain places where you can only use WooCommerce because you want to use the custom bank payment provider that’s only in this one country, that sort of stuff.

\n\n\n\n

So because of how diverse the types of integrations you would need, yeah, WooCommerce is very global. That was one of the things that really surprised me was finding out that, oh yeah, there’s payment providers you’ve never heard of, and banks you’ve never heard of, and shipping companies you’ve never heard of and they need to integrate.

\n\n\n\n

[00:15:40] Nathan Wrigley: And tax. So much tax, I’m sure.

\n\n\n\n

[00:15:43] Brian Coords: Oh my, yeah.

\n\n\n\n

[00:15:45] Nathan Wrigley: I’m sure it gets brutal. I don’t know exactly when the time was, but it feels like about, I’m going to say 18 months or something, when Woo underwent a fairly significant rebranding. So from a marketing point of view, the logo changed, the colour palette changed, the website changed.

\n\n\n\n

I didn’t really notice until that moment when it did change that it needed to have changed, if you know what I mean? It just always looked fine to me. But the moment it changed, I kind of got a sense that, oh, okay, this is real now. We’ve kind of identified that there are these SaaS players, so you know, we don’t need to name them, we all know who they are, where you pay your monthly fee and you get a shop and yada, yada, yada. But I don’t know if that’s a part of the roadmap.

\n\n\n\n

And summing it up as more serious, obviously that’s trivial and a bit, really not the right term, but do you know what I mean? It feels like WooCommerce has, I don’t know, grown up a little bit over the last 18 months and realises the, I don’t want to use the word fight, but I’m going to, the fight that it’s in with the SaaS players.

\n\n\n\n

[00:16:41] Brian Coords: Yeah, I think that was the intention of that rebrand. So I think the goal was to go from saying, hey, we’re a WordPress plugin that lets you sell things. To saying, we’re an e-commerce solution, and we happen to run on WordPress. It’s kind of just a different framing.

\n\n\n\n

But one of the big things is a huge investment in marketing. And so the marketing team has gotten really big. We have a pretty killer CMO. There’s a ton of investment into different types of ads and demand generation and leads and all this stuff that I kind of don’t understand, a lot of like acronyms that are thrown around that I don’t fully track. But it’s a huge investment to basically reposition WooCommerce as something that feels a bit more modern and, not a SaaS, but kind of can sit there next to the SaaS. So when a company is looking at the options and they’re saying, oh, do we want to use Magento or BigCommerce or Shopify or WooCommerce, we look like we belong there, and it looks like it’s an option.

\n\n\n\n

[00:17:36] Nathan Wrigley: Yeah, it’s kind of curious that there’s, real money has to be spent on this endeavor because, I was in London just a few weeks ago and I walked onto the Tube, you know, the underground train network. And the platform that I was on, the first thing that I saw when I walked onto the platform was this huge ad for Shopify. And then I looked left and I looked right and it was Shopify ads all the way down. They’d obviously, I mean I can only imagine how expensive that real estate is.

\n\n\n\n

But the same thing would be true on radio, on TV, online, on print. These companies have gigantic, I mean truly eye watering budgets. And I don’t know if the WooCommerce side has to be a bit more guerrilla or if you also have a fairly gigantic budget. I don’t know if you’re able to peel any of that back. It sounds like marketing’s not really your thing, but maybe there’s bit of interest there.

\n\n\n\n

[00:18:25] Brian Coords: Yeah, I mean since we’re in the team, we see a lot of it. We did an event earlier this year where our marketing team walked through some of this stuff, so I can maybe give you a link to put in the show notes. We kind of wrote it, did a write up about that very concept. Because we get asked that a lot, why am I seeing Squarespace and Shopify ads everywhere? And it’s, you know, obviously if you look at the size of the companies, it’s a fact, like a whole factor difference, like we’re not anywhere near the size of those companies.

\n\n\n\n

And part of the issue is that you don’t just go to woocommerce.com and hand us money, you know? The Core plugin is free so the way we monetise is a lot different. You can run it anywhere. You can, a lot of people that run WooCommerce, they’re not paying us in any way because they’re using their own payment providers and those sorts of things.

\n\n\n\n

So it is definitely more of a challenge. But this past year, that’s why the rebrand started, that’s why they’ve been investing in it. And it’s been kind of cool. There’s a lot of podcast ads that we’ve been running and LinkedIn ads and all these sorts of things. And part of the issue too is that our target market is just much more narrowly defined, and so WooCommerce is much more customisable. It’s extensible. You can do whatever you want with it. And that’s just a different value proposition then you would say to somebody who just wants the easy SaaS solution.

\n\n\n\n

So it’s a lot of things, but it’s kind of just knowing who we want and targeting directly to them. And so you probably won’t see ads on the Tube at any time, but for certain areas you’re going to start seeing really targeted ads for people at the places that would actually really benefit from having WooCommerce.

\n\n\n\n

[00:19:51] Nathan Wrigley: That was the thought that I had about seeing the Shopify, in this case, ad on the London underground was just how much the audience, the eyeballs that were actually staring at that had no interest in it at all. And so almost like the bottomless pit of money that they must have to throw at these things. And obviously it sounds like you are targeting people.

\n\n\n\n

Are you kind of like riding on the coattails of WordPress in general? In other words, are you targeting existing WordPress users in the hope that they’ll think, okay, yeah, we’ve got a WordPress site, now it’s time to upgrade to WooCommerce, or is it a bit more scatter gone, you need a website, you need e-commerce, we’re your solution?

\n\n\n\n

[00:20:26] Brian Coords: Yeah, I mean that’s an interesting question because I think when WordPress was growing, it was a lot easier to target inside of WordPress, and I think now we’re seeing all the big companies reevaluate that. So I would say the ads that I see a lot are, you know, Hostinger, Elementor, wordpress.com. And I think a lot of them are realising now, you know, we need to target outside.

\n\n\n\n

So for example, WooCommerce this year, we go to all the WordCamps, but we started going to e-commerce expos that are trade shows that are not anything to do with WordPress. It’s just for people in the commerce industry and partnering with companies that are in the marketing and commerce side. And so, yeah, it really is about branching out and finding those new areas.

\n\n\n\n

I think all WordPress companies are going to kind of have to start facing that as well because WordPress is 43% of the web. It’s like, how much bigger realistically can you get, once we pass 50%? I mean that’s, it’s pretty hard to grow at that point.

\n\n\n\n

[00:21:19] Nathan Wrigley: Did you attend any of those events? The sort of expos for e-commerce more generally?

\n\n\n\n

[00:21:23] Brian Coords: No.

\n\n\n\n

[00:21:24] Nathan Wrigley: Yeah, I was going to follow up with a question about whether or not there was brand recognition. At those events, if you’ve got a WooCommerce stall, I was curious as to know what proportion of the public would walk past a WooCommerce sign and go, yeah, yeah, I know what that is, I’ve got complete familiarity with it. I feel like some of the SaaS ones, maybe they’ve done that job so well that that brand recognition is there, but maybe that work still needs to be done on the Woo side, I’m not sure.

\n\n\n\n

[00:21:49] Brian Coords: There’s definitely not going to be the same level of brand awareness. I think, like you said, like guerrilla marketing is definitely part of it. One of the things they do at these is they’ll find a local store that uses Woo and use them for swag. So they’ll get really good swag. They did like homemade, like embroidery things and all this sort of stuff. And so they end up getting very popular because of how cool the swag is, and how meaningful it is, and it supports a local merchant. But yeah, it’s a big battle, you know, to raise that brand awareness.

\n\n\n\n

[00:22:18] Nathan Wrigley: Okay, let’s just turn a bit more to your Dev Rel stuff. And you were saying that, well, I don’t need to repeat what you said. You said a little while ago, who it is that you are interfacing with out in the real world.

\n\n\n\n

How does that work? Like, do you just sort of put content out there and tutorials out there and videos out there and change logs out there, and kind of hope that the people that need it get to see it somehow? Or is there more of an endeavor of, I don’t know, providing the bat phone, for want of a better word, to agencies and people so that they can communicate directly with you? How does that whole thing work?

\n\n\n\n

[00:22:48] Brian Coords: Yeah, so it’s interesting because there’s definitely different audiences that we have. So we have developers who are building extensions and are, you know, they’re selling WooCommerce plugins basically. And so we have them that we need to communicate with. And then we have the agencies and the agencies are building WooCommerce stores for people. So they’re setting up WooCommerce.

\n\n\n\n

And those two audiences, they both need some of the same information, but they also need a lot of different information. And so we’ve kind of seen a lot of change over the last year.

\n\n\n\n

Automattic has launched a program called Automattic for Agencies. I’m not sure if you’ve seen this. It’s kind of like an agency program where you sign up and you get access to extensions, you can get affiliate fees, you can get kickbacks on payments, volume, all that sort of stuff.

\n\n\n\n

So that side has really, sort of owned the agency space. And so what’s nice is we can go to them with any new information. We could say, hey, just pass this along to your audience in your next newsletter, that sort of thing. But really, if we want to have the conversations, I would say the Slack is the most common and we never lack for feedback. We get plenty of feedback. We do a monthly office hours in Slack or sometimes on Zoom, where developers will come and share their questions, that sort of thing. So we get tons of feedback. But yeah, it’s really just about being present there, being present on Twitter. We’re ramping up YouTube, because YouTube’s really important right now. And we’re just, like I said, small team and trying to hit all of those different content areas.

\n\n\n\n

[00:24:13] Nathan Wrigley: My sort of follow up question there really was going to be something about shouting into the void and I wondered if that, it was in fact what was happening. But it sounds from what you are saying is if, no, there is an actual loop there. You put stuff out and you get feedback. I mean I’m guessing, from the sounds of it, there’s maybe more feedback than you can actually cope with, which is intriguing. I had an intuition that would be the other way around.

\n\n\n\n

[00:24:32] Brian Coords: Yeah, I mean it definitely depends on, sometimes you get feedback that’s kind of the same. We know what people want, and we’re trying to work as fast as we can to make the changes that developers and the community want. And sometimes you put out a feature and it doesn’t resonate.

\n\n\n\n

But generally when we do calls for testing of a new feature we’ll post, all right, we have a new feature coming, it’s in experimental mode, here’s how to turn it on and then let us know if it’s working for you, if it’s working with your plugin and stuff. We definitely have a pretty healthy group that will take the time to contribute back, let us know if things are working. I mean it’s an open source project. We get community pull requests. We get people, they need a feature, they build it and submit it and, you know, hopefully we merge it. And so the feedback loop is definitely there.

\n\n\n\n

But if you’re, the thing that I’ve learned about WordPress is that I think it’s like an iceberg and like 90% of the WordPress community, they’re not really listening to WordPress content, and they’re not listening, they’re not even tracking WordPress in general. And so I think there’s probably a much broader community that we’re not getting access to, and they’re just living their daily lives and just building stores and stuff. And so I would love to find more of those groups. I think Facebook is probably a place that we haven’t even touched yet, and I’m sure a lot of them are there. There’s definitely work to be done there.

\n\n\n\n

[00:25:46] Nathan Wrigley: Yeah, I think that was maybe the piece that I was thinking. Is that Woo is the biggest solution out there. If memory serves, Woo is the biggest e-commerce platform out there. It kind of dwarfs all the others. I don’t even know if WooCommerce is bigger than the rest of them combined but, you know, it’s on that kind of level.

\n\n\n\n

And yet, if you were to have a, I don’t know, a Shopify store or something, there is probably like a little submit feedback button in the UI somewhere, and you can talk to the support representatives, and they’ll have the answer specifically because they know exactly what the platform does.

\n\n\n\n

But the jigsaw puzzle over on the Woo side is, yeah, it must be much more messy, much more kind of difficult to wrangle everything. You know, you’ve got people, end users who are using WooCommerce. You’ve got developers who are building plugins. You’ve got agencies who are building on behalf of clients. You’ve got people who are building rival things so you’re in direct competition with people in the plugin space who are building rivals to WooCommerce. It’s just, well, messy. But that’s open source, right?

\n\n\n\n

[00:26:44] Brian Coords: I mean that’s exactly what it is. You know, we have, you have WooCommerce support, right? And our support team is really great. Every time I go to a conference and one of our support engineers is there, I’m always pointing to them to answer all the questions because they know the product so deeply.

\n\n\n\n

But if you imagine the, you know, most WooCommerce stores will come to us for support, but there’s no financial relationship. If they’re not using our hosting company or they’re not using Woo Payments, or they’re not using extensions that they bought in the marketplace, maybe they bought their extensions just off the internet or something, there’s a good chance they might not be paying us any money at all. And yet, you know, we’re going to support them and make sure that they’re having a good experience, because that’s kind of the goal of it. So it’s definitely a bit of the Wild West out there.

\n\n\n\n

[00:27:28] Nathan Wrigley: There must be some kind of strange tension there as well. I mean, you’ve described it very eloquently and I think you’ve stepped around that beautifully, but that is a peculiar thing, isn’t it, that you would not have to deal with elsewhere? The fact that you may very well be dealing with rivals. You may well be dealing with people who are using up your time, but like you said, they have no relationship with you financially at all, but they built something, third party thing on top of the WooCommerce ecosystem, and I guess that’s just the broader philanthropic goal of something like WooCommerce. You’ve just got to step up and be there.

\n\n\n\n

[00:28:00] Brian Coords: Yeah, I mean I think wordpress.com probably has a lot of the same things because if you Google WordPress, you know, you’re probably going to end up on wordpress.com, even if you’re not their customer.

\n\n\n\n

On the flip side though, you know, the benefit of being open source is that, like I said, we get community contributions. We get a lot of eyes on the software. A lot of people, they give us feedback, they give us code, they give us all sorts of things. So it is a bit of a trade off.

\n\n\n\n

But I think it’s kind of worth it for the software to just exist freely and for everybody who runs on it, to always kind of know deep down that they own their store and they can do whatever they want with it, and they can put it wherever they want, and Automattic or WordPress or WooCommerce is never really going to take that away from them or take them down, you know?

\n\n\n\n

[00:28:38] Nathan Wrigley: Yeah, I’d be curious to know what proportion of Woo kind of props up the broader WordPress project, if you know what I mean? I don’t think we need to go into that, and I don’t know if there’s any data out there anywhere, but there must be a lot of money sloshing around inside the WooCommerce ecosystem. It’d be interesting to know what proportion the broader WordPress ecosystem was was made up of just Woo stuff. That’d be an interesting thing to dig into.

\n\n\n\n

[00:29:01] Brian Coords: When I worked at an agency, the kind of rule was if you wanted to make money making websites, you did websites that made money. So e-commerce was a big part. People, you know, their website’s more critical to their business, so they’re going to be buying more plugins, they’re going to be paying more developers, they’re going to be using more tools. So I think that’s part of it. E-commerce isn’t the only way websites make money. There’s definitely a lot of other things, big publishers and that sort of stuff. But yeah, it’s definitely a big part of the community.

\n\n\n\n

[00:29:26] Nathan Wrigley: Well, big and not going anywhere. Speaking of going places though, what’s coming up in the near future? So when we’re recording this, it’s kind of the middle of December. I imagine this episode will hit in the beginning of 2026 at some point. Roughly around that kind of time, what’s the thinking? What are the, some of the top level items that people may not know about? What’s the stuff that you’re working on? Roadmap stuff, I guess.

\n\n\n\n

[00:29:46] Brian Coords: Yeah, I would say the big things that I’ve seen that are really the big focus right now is, number one is really making WooCommerce closer to WordPress Core, which means making WordPress Core a little better. So WooCommerce has been pretty ahead of the curve of transitioning to blocks, using block templates and block based everything. So, I mean you can do your whole WooCommerce store in the block editor, which gives you a lot of kind of design freedom. But that means if we need something better in the block editor, we’ve got to commit that up to the block editor and make Gutenberg better. So there’s a lot of work to improve a lot of stuff inside of Gutenberg so that your WooCommerce experience is better.

\n\n\n\n

So that’s been a lot of the focus. And so we’re, there’s a lot of cool stuff coming around just new blocks, new block designs, patterns, things you can do to really customise the visual aspects of your store. And then the second big thing, I think that is taking up everybody’s mental space is AI. You can’t not talk about it. So it’s, that’s the other piece.

\n\n\n\n

[00:30:42] Nathan Wrigley: Okay, despite the fact that it consumes all the air in the room, it is so fascinating. Do you have any insight into some of the things that may be on the agenda for a WooCommerce store owner in the near future? The kind of things that you are thinking of. Even if they’re just aspirational for a WooCommerce store owner. I’d be curious to hear your thoughts on that.

\n\n\n\n

[00:31:01] Brian Coords: Yeah, I think there’s two different aspects of it that are really going to be important. One is managing your store. So we have right now in beta what’s called an MCP server in Woo. And what it basically lets you do is open up, you know, ChatGPT or Claude or something and say, log into my WooCommerce store and update all my products, put them on sale, change out the pictures, write better copy for them. It kind of lets AI log into your store and do things for you.

\n\n\n\n

And so that’s in beta right now, and it’s pretty cool. I’ve been using it. It’s pretty neat. I’ve been setting up some demo stores for people, and I just go, all right, log in and make me, you know, 50 fake sweaters with a nice description in different colours. And it does it. It’s kind of mind blowing.

\n\n\n\n

[00:31:43] Nathan Wrigley: Do you trust it at this point? And I don’t mean, you know, the broader kind of debate about AI and whether it’s trustworthy. I mean, in terms of the store, you know, do you trust it to update all of the particular product lines and what have you, or update the images? Do you feel that if you’ve given that prompt, you can sort of sit back and go, okay, that is definitely being done?

\n\n\n\n

[00:32:02] Brian Coords: I haven’t done it on a live site, I will say. The nice thing too is you can have it ask you for permission every single time, and you can kind of see what it’s going to do. That obviously kind of ruins the whole efficiency part of it, but it can do that. So I think it’s early days.

\n\n\n\n

But I do think, once you start interacting where you don’t have to actually log in and click a bunch of buttons, and you can just tell your computer what you want it to do, I think it’s going to be hard to come back from that. I think people are going to start expecting it. But I, yeah that’s, I mean we’re not doing that on the live, on any live sites, I hope not.

\n\n\n\n

[00:32:32] Nathan Wrigley: So that was half of it by the sounds of it. That was one of the threads. What was the other one?

\n\n\n\n

[00:32:35] Brian Coords: The other one, I think is about how people are going to be shopping in the future. And I think showing up, obviously all these chat companies, they need to make money, and we know that they’re going to start showing ads and they’re going to start wanting to do the same thing when you go to Google, and you look up something and it gives you some shopping recommendations and shows you some products you might want to buy and some ads. You know, we’re going to start seeing that in our chat bots and stuff.

\n\n\n\n

And so I think it’s going to be important for people that have WooCommerce stores, they want their products to show up there, and they want their ads to show up there, and they want to make sure that people who are using AI to get product recommendations, which my wife does all the time, that they’re going to show up there. So I think that’s the other half of it.

\n\n\n\n

[00:33:13] Nathan Wrigley: Yeah. Do you know it’s really curious, the whole, what we might have called SEO, which is fast giving way, I think, to AI. It’s kind of curious. I think there’s like a whole section where the discovery of the website is going to be everything. So an example might be apparel. I don’t suppose anybody’s just going to buy a blouse or a shirt based upon some text that they saw in a chat bot, but getting to that page and saying, find me, locally to me, find me a place which sells, I don’t know, affordable shirts for work, or something along those lines. And have a recommendation, which gets you to the WooCommerce store.

\n\n\n\n

But for more utilitarian things, just the stuff that you don’t really care about like, I want to buy a bunch of nuts and bolts, or hammers, or spanners, or whatever it may be, I feel like there’ll be a point where the store itself, obviously all of that commerce will take place in the store, but it will be invisible to you as a user. You’ll just tell the AI, buy these things, I need 50, or even just repeat the order from last month for these things, and it’ll just magically happen in the background. You’ll get a receipt via email, and WooCommerce will have handled it. The site will have been notified in some way, but you’ll have had no interaction. So it’s kind of scary, but interesting at the same time.

\n\n\n\n

[00:34:23] Brian Coords: I think one of the thing, I think Google’s the best example because I think WordPress and Google have this really symbiotic relationship because we make the websites and they provide the traffic. And I think it’s been good for both of them. They want a bunch of websites to send people to, and we want them sending people to our websites. And so I think Google’s a great example.

\n\n\n\n

But they’ve had product recommendations that you can connect to your WooCommerce store, you know, for a while now. It’s kind of in some ways not really that different from just Googling something. Google shows you some products and then you click through and you buy it.

\n\n\n\n

If it becomes that seamless where you don’t even have to realise you’re going to a website, which I think is possible, I also wonder, will people want to do that? Will they feel as trustworthy? Maybe, maybe not. But either way, that is probably going to be the case.

\n\n\n\n

And so that’s going to require a lot of these, the discussion’s already happening. They have these payment protocols and things, and we’re starting to see the very beginning of it. So it’s kind of interesting to be inside of WooCommerce because the companies that do all this stuff, the Stripes and the PayPals and the Googles and stuff, these are partners that they work closely with. And you get to see a little behind the scenes of them trying to figure this out in real time, you know?

\n\n\n\n

[00:35:28] Nathan Wrigley: Yeah, it kind of speaks to trust really, doesn’t it? So the repeat order thing through a ChatGPT style interface or whatever that looks like in the future, be it voice or speaking to a camera or whatever it may be, I could totally see myself ordering the, I don’t know, the groceries or the toothpaste or whatever it is that, I really don’t need to see that thing. I don’t need to go to a shopping checkout. I just need to know that my next pack of toothpaste is going to arrive reliably tomorrow morning. That’s all I need to know. I feel like there is, there’s a there there, if you know what I mean? Despite the fact that we’re so wedded to this interface of, go to the website, look at the pictures, click the cart number, click how many you want, go to the cart, proceed with the checkout, dah, dah, dah. Most of that is going to be obsolete for the utilitarian stuff, I think. I don’t know. We’ll see.

\n\n\n\n

[00:36:15] Brian Coords: I feel like Amazon’s been trying that for a while, but I still have to check it because I feel like we return 30% of the things we buy at Amazon. It comes, it’s the wrong size, it doesn’t look anything like the picture, all that sort of stuff. Hopefully those problems still get solved, before we get to the point where I’m not even going to look at what I ordered. I think we still have a lot of time there.

\n\n\n\n

[00:36:33] Nathan Wrigley: Well, so even if that interface isn’t quite as radical as I just suggested, but even if there’s like a back and forth between the AI and the website. I don’t know, I ask for a particular thing, and then the chat interface or whatever it may be shows me a picture from the website or something along those lines. This whole scraping of the website and surfacing the content of the website, and then I can make those decisions based upon what I see. Maybe it’ll be a bit more back and forward, and far less of the AI, and more of the AI meets human kind of interface.

\n\n\n\n

[00:37:01] Brian Coords: Yeah, and I think a lot of it is, it’ll feel like magic to the end user with an AI, but really it’s just going to be a ton of code and protocols and extensions and things. Under the hood, that’s going to be a ton of manual work, getting all that stuff there. But I think with WooCommerce especially, most of the Woo stores I come across, they’re very weird, I guess is the best way to put it. They’re unique products, you know? They’re often not selling the toothpaste and that sort of stuff. Or if they are, they’re selling the very interesting toothpaste that you can only buy from this one company.

\n\n\n\n

So I think that’s what’s fun about it, is I think it’ll really be for people looking for those weird, unique products, and the kind of stuff you’re not going to get on Amazon or you’re not going to get on a basic walmart.com or something. So yeah, I think it’ll be interesting to see where this goes.

\n\n\n\n

[00:37:44] Nathan Wrigley: Do you know if Automattic, or WordPress more generally, do you know if it’s investing anything in its own AI? Everything at the moment, all the oxygen seems to be being consumed by the, let’s say, four big players that we’ve all heard of. We don’t need to name the names, we all know who they are. But it’d be curious as to whether a company obviously deeply rooted in tech, like Automattic is inventing, creating those kind of things. That’d be a curious shift.

\n\n\n\n

[00:38:07] Brian Coords: Yeah, I mean you can see it already. Telex is a product that’s come out from Automattic. It lets you build blocks. They have a AI site builder. If you go to wordpress.com, a good amount of people are actually, the first thing they do is use this AI site builder that gets you kind of from zero to like a pretty decent starting site. And then you can go in and the block editor and customise everything.

\n\n\n\n

Is Automattic training their own models and stuff? I don’t think so, or at least I don’t know. But, I mean there’s a bunch of stuff happening, that’s the public facing stuff, which is building websites. There’s stuff around WooCommerce, there’s stuff around support. Our support is very heavily leaned into AI and it’s actually very good. There’s all sorts of these other places.

\n\n\n\n

And then there’s a ton of stuff internally in the company that we have because, you know, when you work with a thousand people, there’s a lot of information there. And so we have internal stuff that’s kind of like search through all of our, you know, internal dialogue and find this conversation and summarise it for me. And so it’s all there. It’ll be interesting to see which ones end up becoming good products.

\n\n\n\n

[00:39:05] Nathan Wrigley: Well, it sounds like exciting times. It sounds like you’ve landed in the right part of Automattic for you at least anyway. Yeah, fascinating times. The year 2026 for e-commerce, and WooCommerce more specifically, looks very, very bright.

\n\n\n\n

Can we just ask you, before we go, where would be the best place to find you if anybody wants to reach out and say hi?

\n\n\n\n

[00:39:23] Brian Coords: Yeah, definitely. So if you are interested in WooCommerce, you can go to developer.woo.com. That’s kind of our developer blog and it has, it’ll take you to like the docs, it’ll take you to the community Slack, it’ll take you to our email newsletter and all that sort of stuff. That’s developer.woo.com.

\n\n\n\n

For me, it’s my name, briancoords.com, and I’m mostly active on Twitter and YouTube these days. I tried all the other social networks, but everyone in WordPress stays on Twitter, so that’s where I’ll be for the foreseeable future.

\n\n\n\n

[00:39:47] Nathan Wrigley: So Brian is, as you would imagine it’s spelled, but Coords has two O’s. So it’s C-O-O-R-D-S. I’ll put all of the links in the show notes so that anything that Brian mentioned can be found there, wptavern.com. Search for Brian’s name and you will be able to find that episode. So Brian Coords, thank you so much for chatting to me today.

\n\n\n\n

[00:40:05] Brian Coords: Yeah. Thank you.

\n
\n\n\n\n

On the podcast today we have Brian Coords.

\n\n\n\n

Brian has been active in the WordPress space for over a decade, starting out in agencies building and managing websites, and is now a developer advocate at WooCommerce, bridging the gap between Woo’s internal engineers and the wider developer community. His journey includes being a high school teacher, working for nonprofits, and writing for the WP Tavern, before landing his role at Automattic.

\n\n\n\n

If you’re interested in where WooCommerce, and WordPress itself, are headed, this episode will help, as Brian shares insights on WordPress’s evolving focus, the importance of embracing AI, and how a slower pace of change can be a strength in any open source ecosystem.

\n\n\n\n

He talks about the massive rebrand at WooCommerce, the challenges and opportunities in competing with SaaS giants, and the unique developer relations role that balances his technical experience with communication skills.

\n\n\n\n

We get into how the team Brian works with supports developers and agencies with documentation, office hours, and feedback loops, and how WooCommerce’s global reach makes for a complex but thriving ecosystem. There’s discussion about recent marketing efforts, the realities of open source support, and the surprising diversity of WooCommerce users worldwide.

\n\n\n\n

Towards the end, we look ahead to what’s coming for WooCommerce, which is greater integration with block-based editing in WordPress Core, major investments in AI to streamline store management, and the future landscape of online shopping.

\n\n\n\n

If you want to hear how WooCommerce and WordPress are responding to a rapidly changing tech environment, this episode is for you.

\n\n\n\n

Useful links

\n\n\n\n

 briancoords.com 

\n\n\n\n

WooCommerce

\n\n\n\n

 State of the Word 2025

\n\n\n\n

 WooCommerce Community Slack

\n\n\n\n

Automattic for Agencies

\n\n\n\n

WooPayments

\n\n\n\n

 Telex

\n\n\n\n

Woo Developer Blog

\";s: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 Jan 2026 15:09:35 +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: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:20:\"Matt: Find My 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:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=151027\";s: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://ma.tt/2026/01/find-my-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:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:1244:\"

The best part about blogging is the comments, and after I posted “I wish that when you use Find My to find your iPhone, it would also flash the flashlight, which would be great for finding it in a bag or a dark room.” Michael Wender and David Artiss jumped in that it’s already there!

\n\n\n\n

Apple support says if you touch and hold it will flash the light! Now I haven’t been able to get this to work yet, perhaps because when I did, I got a notice that Precision Finding, which uses ultra-wideband (UWB) frequencies to help you find your phone or Airtag, which is magical, isn’t available in all regions. I’m currently stranded in St. Martin because of airspace issues with Venezuela, and apparently, this is one of the countries, like Indonesia, where UWB doesn’t work.

\n\n\n\n

Update: Hours later, the press-and-hold thing now flashes the light, so it must have been a heisenbug.

\";s: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 Jan 2026 04:30:48 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s: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: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:80:\"Open Channels FM: How to Spot a Committed Business Partner (and Avoid Red Flags)\";s: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=113510\";s: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://openchannels.fm/how-to-spot-a-committed-business-partner-and-avoid-red-flags/\";s: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:199:\"Successful partnerships hinge on genuine commitment, proactive engagement, and collaborative effort, requiring integration across teams and mutual benefits beyond mere visibility for lasting success.\";s: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, 05 Jan 2026 10:44:23 +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:42;a:6:{s:4:\"data\";s:21:\"\n \n \n \n \n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:21:\"Matt: Find My Upgrade\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=151013\";s: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:38:\"https://ma.tt/2026/01/find-my-upgrade/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:192:\"


I wish that when you use Find My to find your iPhone, it would also flash the flashlight, which would be great for finding it in a bag or a dark room. 

\";s: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, 05 Jan 2026 05:58:40 +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: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:21:\"Matt: Jackson Kiddard\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=151002\";s: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:38:\"https://ma.tt/2026/01/jackson-kiddard/\";s: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:809:\"
\n

Anything that annoys you is teaching you patience.

\n\n\n\n

Anyone who abandons you is teaching you how to stand up on your own two feet.

\n\n\n\n

Anything that angers you is teaching you forgiveness and compassion.

\n\n\n\n

Anything that has power over you is teaching you how to take your power back.

\n\n\n\n

Anything you hate is teaching you unconditional love.

\n\n\n\n

Anything you fear is teaching you the courage to overcome your fear.

\n\n\n\n

Anything you can’t control is teaching you how to let go.

\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:\"Sun, 04 Jan 2026 07:26: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: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: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:15:\"Matt: Two Links\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=150994\";s: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:32:\"https://ma.tt/2026/01/two-links/\";s: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:514:\"

They’re both long reads, but worthwhile.

\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:\"Sat, 03 Jan 2026 03:30:01 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s: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: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:20:\"Matt: Happy New Year\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=150981\";s: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:39:\"https://ma.tt/2026/01/happy-new-year-3/\";s: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:2306:\"

I rang in the new year with an unexpected trip to St. Barts with friends.

\n\n\n\n

I resolved in 2025 to watch more films. It’s an art form I have many friends in, and when we have hung out, I’ve realized how shallow my understanding of the film canon is. I have a lot of catch-up to do, and it also requires a lifestyle change, as I’m usually at a laptop. Making space to enjoy a film for a few hours was a departure from my regular routines.

\n\n\n\n

I watched 72 movies last year! This definitely came at the cost of books finished, if I look at my stats. But I’ve begun to really appreciate the contours of what I love about a movie now.

\n\n\n\n

This is a long lead to recommend the movie Jay Kelly, which streams on Netflix with George Clooney and Adam Sandler. After seeing many great and terrible movies, old and new, I really appreciated what they did with this film, and it was one of the rare ones I watched entirely or in sections several times, gaining new appreciation for what they pulled off.

\n\n\n\n

It starts with a “One-er,” which is a continuous shot with no cuts that moves between a number of different scenes in a really slick way. (Excellent episode of The Studio about this!) It’s a film way of showing off, as it must be incredibly hard to have hundreds of people all pulling off something flawlessly for a long period of time, not unlike a Broadway show.

\n\n\n\n

Jay Kelly is George Clooney playing himself, which, as he says, is the hardest thing to do. There are meta-levels of reality and fiction, and so many allusions and callbacks, the entire thing is a work of art. You learn to appreciate what actors do and how film is made while watching a film being made in such a nice way.

\n\n\n\n

So that is my recommendation for the year. In older movies, I really enjoyed Kate & Leopold, which also features an amazing Sting song that is impossible to find on streaming services.

\";s: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, 02 Jan 2026 06:00:07 +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: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:100:\"Open Channels FM: Building Successful Collaboration Through Communication in WordPress Release Teams\";s: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=113371\";s: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:107:\"https://openchannels.fm/building-successful-collaboration-through-communication-in-wordpress-release-teams/\";s: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:378:\"In the world of open source, communication stands out as a key factor for successful collaboration. WordPress release teams unite contributors from all around the globe, bringing together a remarkable diversity of experiences, cultures, and time zones. While technical prowess is important, it is the way team members connect and exchange information that truly shapes […]\";s: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, 31 Dec 2025 14:36: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:11:\"Abha Thakor\";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:60:\"Open Channels FM: Do the Woo / Open Channels FM 2025 Pathway\";s: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=113788\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:65:\"https://openchannels.fm/do-the-woo-open-channels-fm-2025-pathway/\";s: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:95:\"For Open Channels FM 2025 has been a windy pathway that has led to a sweet spot for us in 2026.\";s: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, 30 Dec 2025 10:17:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"BobWP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:48;a:6:{s:4:\"data\";s:21:\"\n \n \n \n \n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:16:\"Matt: Riley Walz\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"https://ma.tt/?p=150936\";s: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:33:\"https://ma.tt/2025/12/riley-watz/\";s: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:730:\"

The writer Aadil Pickle has a great profile of one of my favorite hackers, “Training the Idea Muscle” on Riley Walz. Riley epitomizes the term “high agency,” and I’ve been continually impressed with his ability to rapidly code novel ideas and interfaces on top of public or reverse-engineered data. He’s a hacker, artist, and provocateur.

\n\n\n\n

I’m enjoying this slower time of the year, and it looks like this will be the warmest Christmas I can remember in Houston; it was 80° F today! Makes me appreciate what Christmas in the southern hemisphere must be like.

\";s: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, 24 Dec 2025 00:32:15 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s: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: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:139:\"Gutenberg Times: Roadmap for WordPress 7.0 and schedule, commands for the Command Palette, Gutenberg 22.3, and more — Weekend Edition 353\";s: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=43471\";s: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:143:\"https://gutenbergtimes.com/roadmap-for-wordpress-7-0-and-schedule-commands-for-the-command-palette-gutenberg-22-3-and-more-weekend-edition-353/\";s: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:26914:\"

Hi there,

\n\n\n\n

Welcome to our last edition for the year 2025. I am not ready to reflect on the whole year, however, I am excited for 2026. There will be many new features coming to WordPress with the three major releases and also plenty of bug fixes and quality-of-life enhancement towards consistency.

\n\n\n\n

The first edition for 2026 will have to wait a bit and it is scheduled for January 24, 2026, roughly a month from now, due to my vacation and training schedule.

\n\n\n\n

I wish you and yours wonderful Holidays and a happy, prosperous and healthy New Year! \"🤶\"\"🎄\"\"🎁\"\"🎆\"\"🎇\"

\n\n\n\n

Yours, \"💕\"
Birgit

\n\n\n\n\n\n

Steve Burge and Dan Knauss interviewed me for the PublishPress podcast. We covered WordPress 6.9’s six new blocks (accordion, term query, time to read, math, comment count, and comment link) plus editorial notes for team collaboration. The release marks a restart after Automattic’s contribution pause.

\n\n\n\n

WordPress 7.0 ( April 9, 2025) will bring template management improvements and a tabs block. The AI team is building foundational infrastructure—Abilities API, MCP Adapter, PHP AI SDK, and experiments plugin—enabling plugins to integrate with AI assistants. Real-time collaborative editing remains in development, facing technical hosting challenges. The recording is available on YouTube.

\n\n\n
\n
\n\n
\n
\n\n\n

Roadmap WordPress 7.0 and two more releases in 2026

\n\n\n\n

In his lates post, Matias Ventura, lead architect of Gutenberg, laid out the plan for WordPress 7.0. It’s aspirational and not all the items will make it into the next major version of WordPress. The very detailed plan covers the project’s shift into Phase 3: Collaboration, a vision for real-time co-editing, and enhanced communication through site notes. Ventura underscores the modernization of the administrative experience via a unified design system and expanded DataViews. By integrating a standardized AI API and advancing responsive editing tools, WordPress 7.0 aims to unify the design and development process. Ultimately, the release promises to deliver a more cohesive and performant platform through refined navigation and versatile new core blocks. Here are the broad topics of the plan.

\n\n\n\n\n\n\n\n

Jonathan Desrosiers also published the proposed schedule of the 2026 releases. Following the schedule, we have two more dates to put on our calendars: Beta 1 for WordPress 7.0 will be on February 19, and RC 1 is scheduled for March 19, 2026.

\n\n\n\n
\"Table
\n\n\n\n

Provided the Release squad approves this schedule. I also can offer a timeline for the WordPress 7.0 Source of Truth: First draft will be available for public preview on February 26, 2026, and the post will be published on March 26, 2026.

\n\n\n\n
\n

\"🎙\" The latest episode is Gutenberg Changelog #125 – WordPress 6.9, Gutenberg 22.1 and Gutenberg 22.2 with JC Palmes, WebDev Studios

\n\n\n\n
\"Gutenberg
\n\n\n
\n
\n\n
\n
\n\n\n\n

Gutenberg 22.3 and beyond

\n\n\n\n

Hector Prieto led the release of Gutenberg 22.3 (December 17). In his release post he highlighted:

\n\n\n\n
    \n
  1. Dedicated Fonts page for easier typography management
  2. \n\n\n\n
  3. Image editing improvements
  4. \n\n\n\n
  5. Responsive Grid block
  6. \n\n\n\n
  7. Other highlights
  8. \n
\n\n\n\n
\n\n\n\n

Dave Smith, core conditrbutor on the GGutenbergProject explains in his video
The changes leveling up Navigation in WordPress 7.0,He wrote in tthedescription: “Navigation is one of the most important — and most frustrating — parts of building a WordPress site.In this video, I walk you through what’s changing, why it matters, and show the real work already underway — including early prototypes and demos.” Check it out.

\n\n\n
\n
\n\n
\n
\n\n\n

Plugins and Tools for #nocode site builders

\n\n\n\n

Jamie Marsland is at it again with short videos and teaching you new skills. In his latest video “How to Create a High-Converting Landing Page With WordPress (Free Blueprint)” he gives you step -y -tep instructions for an easy way to create high-converting WordPress landing pages using only core blocks. He built a distraction-free landing page based on the StoryBrand methodology, so each section has a clear purpose and guides visitors through a simple story as they scroll.

\n\n\n
\n
\n\n
\n
\n\n\n

Sarah Perez, consumer tech editor at TechCrunch, reported that “WordPress’s vibe-coding experiment, Telex, is now being used” and it features Automattic’s AI tool for natural language web development. Introduced at the “State of the Word” event, Telex allows users to create complex Gutenberg blocks, like pricing calculators and logo carousels, without coding. Perez highlights how “vibe coding” makes site building accessible for non-tech users, enabling them to create professional results. With the new Abilities API, Telex marks WordPress’s move toward AI-driven workflows that streamline the design process.

\n\n\n\n
\n\n\n\n

Courtney Robertson Developer advocate at GoDaddy released the plugin Post Formats for Block Themes, which brings back old-school post formats to modern WordPress block themes. It restores useful features for galleries, quotes, and videos often missing in newer themes. You’ll find smart auto-detection, unique block patterns for each format, and a handy Chat Log block for easy transcripts. By combining these classic tools with today’s full-site editing, this plugin helps creators maintain a great design and add variety in a simple and accessible way.

\n\n\n\n
\n\n\n\n

Valentin Grenier, a WordPress developer from Toulouse, France, just dropped his first plugin: Simple block animations. It’s a cool, lightweight tool for adding some fun scroll-triggered visual effects to your Gutenberg blocks without needing to mess with any custom code. You get five different animation types, like fades and slides,, thatyou can tweak with durations and delays. Built using the Intersection Observer API and good old native CSS, it keeps things running smoothly by loading assets only when they’re needed while also being mindful of motion preferences to make it accessible.

\n\n\n\n

What’s new in WordPress Playground

\n\n\n\n

Felyph Centra posted a few video on WordPressTV to showcase various features of WordPress Playground

\n\n\n\n

Previewing GitHub branches with WordPress Playground. This video demonstrates a method to streamline development reviews. This technique addresses the common pain point of needing complex local environments or relying on static screenshots to share work in progress.

\n\n\n\n

Introduction to WordPress Playground landing page. The new landing page explains the capabilities of the platform and what is possible with WordPress Playground.

\n\n\n\n

Using WordPress Playground to work with AI agents. Centra shared how you can use the WordPress Playground to integrate with AI agents. with an example that uses GitHub Copilot agents. Using this flow it executes small tasks for a plugin, such as refactoring code or updating documentation. WordPress Playground can serve as a base to validate the AI agent’s code changes using E2E tests.

\n\n\n\n

In the post Action required: github-proxy.com shutdown Centra lays out the migration to switch over from a third-party proxy server to Playground’s built -n CORS handling. Your existing blueprints are safe, though. If you worked with Blueprints you can also learn how to reference GitHub repos, folders and files with native Playground resources.

\n\n\n

“Keeping up with Gutenberg—Index- Index 2025”
A chronological list of the WordPress Make Blog posts from various teams involved in Gutenberg development: Design, Theme Review Team, Core Editor, Core JS, Core CSS, Test, and Meta team from Jan. 2024 on. Updated by yours truly. 

\n\n

The previous years are also available:
2020 | 2021 | 2022 | 2023 | 2024

\n\n\n

Building Blocks and Tools for the Block editor

\n\n\n\n

In this week’s livestream JuanMa Garrido explored how to create commands for the Commands Palette. WordPress 6.9 brought the Command Palette to the whole WordPress space and not just restrict it to the Site Editor. Now all plugin developer can register commands together with their plugin’s features.

\n\n\n
\n
\n\n
\n
\n\n\n
\n\n\n\n

Justin Tadlock published the monthly roundup on What’s new for developers? (December 2025), noting WordPress 6.9 “Gene” and pointing to the 6.9 Field Guide and State of the Word. Highlights include the new AI Experiments plugin, Breadcrumbs block improvements heading toward stability, and an experimental Tabs block. Tooling updates cover WPCS 3.3.0, Data Views/Forms and Field API enhancements, @wordpress/boot routing, and a visibility key rename. Themes and Playground also saw notable updates.

\n\n\n\n

Ryan Welcher shot a video What’s New For WordPress Developers – December 2025, covering the parts of the blog post.

\n\n\n\n
\"\"
\n\n\n\n
\n\n\n\n

As a reader of this newsletter you might already know about WordPress Studio, the fast, free, open-source local development tool, that’s based on WordPress Playground. Nick Diego recorded a Getting Started with WordPress Studio video and walks you through creating local sites, configuring your environment, and using the tools that come bundled with the app. You’ll also learn how to unlock advanced features with a free WordPress.com account, including syncing with WordPress.com and Pressable, sharing live preview links, and using the built-in AI Assistant to accelerate development. Whether you build plugins, create themes, or manage client projects, Studio helps you work faster and smarter.

\n\n\n
\n
\n\n
\n
\n\n\n
\n\n\n\n

In her post, Build Custom Event Lists & Grids With One Block: Event Query Loop Block Ultimate Guide, Lesley Sim shared a comprehensive tutorial for managing EventKoi’s specialized query block within WordPress. The post details how to create custom list and grid layouts using various query parameters, such as date ranges and recurring event instances, without any coding. By explaining the block’s internal structure and the flexible Event Data block, Sim illustrates how users can achieve precise design control and dynamic content display.

\n\n\n\n
\n\n\n\n

In his latest post for the WordPress Developer Blog, Word Switcher: Extending Core Blocks with Interactivity, JuanMa Garrido provides a practical guide for beginners on enhancing standard WordPress blocks using native tools. Garrido demonstrates how to combine the Format API for editor controls, the HTML API for server-side processing, and the Interactivity API for frontend animations. Developers learn to create a “word switcher” effect that cycles through text variations without relying on heavy external libraries. This approach ensures a lightweight, performant, and professional workflow that bridges the gap between simple content entry and modern, reactive web design.

\n\n\n

Need a plugin .zip from Gutenberg’s master branch?
Gutenberg Times provides daily build for testing and review.

\n\n
\"\"
\n\n

Now also available via WordPress Playground. There is no need for a test site locally or on a server. Have you been using it? Email me with your experience.

\n\n\n
\n\n\n\n

Questions? Suggestions? Ideas?
Don’t hesitate to send them via email or
send me a message on WordPress Slack or Twitter @bph.

\n\n\n\n
\n\n\n\n

For questions to be answered on the Gutenberg Changelog,
send them to changelog@gutenbergtimes.com

\n\n\n

\n\n

Featured Image:

\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:\"Sat, 20 Dec 2025 18:35:49 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:18:\"Birgit Pauli-Haack\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}}}}}}}}}}}}s:4:\"type\";i:128;s:7:\"headers\";a:9:{s:6:\"server\";s:5:\"nginx\";s:4:\"date\";s:29:\"Mon, 02 Feb 2026 13:05:20 GMT\";s:12:\"content-type\";s:8:\"text/xml\";s:13:\"last-modified\";s:29:\"Mon, 02 Feb 2026 13:00:23 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:1760643936;s:21:\"cache_expiration_time\";i:1770080721;s:23:\"__cache_expiration_time\";i:1770080721;}','off'),(146,'_site_transient_timeout_feed_mod_d117b5738fbd35bd8c0391cda1f2b5d9','1770080721','off'),(147,'_site_transient_feed_mod_d117b5738fbd35bd8c0391cda1f2b5d9','1770037521','off'),(148,'_transient_timeout_dash_v2_88ae138922fe95674369b1cb3d215a2b','1770080721','off'),(149,'_transient_dash_v2_88ae138922fe95674369b1cb3d215a2b','','off'),(150,'_site_transient_timeout_available_translations','1770048359','off'),(151,'_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.11\";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.11/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.7\";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.7/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.27\";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.27/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:3:\"6.9\";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:59:\"https://downloads.wordpress.org/translation/core/6.9/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.7\";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.7/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.28\";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.28/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-01 10:38:20\";s:12:\"english_name\";s:9:\"Bulgarian\";s:11:\"native_name\";s:18:\"Български\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-22 13:20:54\";s:12:\"english_name\";s:20:\"Bengali (Bangladesh)\";s:11:\"native_name\";s:15:\"বাংলা\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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.8\";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.8/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-31 20:55:25\";s:12:\"english_name\";s:7:\"Catalan\";s:11:\"native_name\";s:7:\"Català\";s:7:\"package\";s:59:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-11 21:36:34\";s:12:\"english_name\";s:5:\"Czech\";s:11:\"native_name\";s:9:\"Čeština\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-30 16:47:55\";s:12:\"english_name\";s:5:\"Welsh\";s:11:\"native_name\";s:7:\"Cymraeg\";s:7:\"package\";s:59:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-29 07:47:58\";s:12:\"english_name\";s:6:\"Danish\";s:11:\"native_name\";s:5:\"Dansk\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-10-23 12:01:47\";s:12:\"english_name\";s:16:\"German (Austria)\";s:11:\"native_name\";s:21:\"Deutsch (Österreich)\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-11-28 08:11:27\";s:12:\"english_name\";s:20:\"German (Switzerland)\";s:11:\"native_name\";s:17:\"Deutsch (Schweiz)\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:5:\"de_DE\";a:8:{s:8:\"language\";s:5:\"de_DE\";s:7:\"version\";s:3:\"6.9\";s:7:\"updated\";s:19:\"2026-02-01 03:08:02\";s:12:\"english_name\";s:6:\"German\";s:11:\"native_name\";s:7:\"Deutsch\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-02-01 03:06:27\";s:12:\"english_name\";s:15:\"German (Formal)\";s:11:\"native_name\";s:13:\"Deutsch (Sie)\";s:7:\"package\";s:69:\"https://downloads.wordpress.org/translation/core/6.9/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:14:\"de_CH_informal\";a:8:{s:8:\"language\";s:14:\"de_CH_informal\";s:7:\"version\";s:3:\"6.9\";s:7:\"updated\";s:19:\"2025-11-28 08:08:17\";s:12:\"english_name\";s:30:\"German (Switzerland, Informal)\";s:11:\"native_name\";s:21:\"Deutsch (Schweiz, Du)\";s:7:\"package\";s:71:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"dsb\";a:8:{s:8:\"language\";s:3:\"dsb\";s:7:\"version\";s:5:\"6.2.8\";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.8/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-18 14:30:43\";s:12:\"english_name\";s:5:\"Greek\";s:11:\"native_name\";s:16:\"Ελληνικά\";s:7:\"package\";s:59:\"https://downloads.wordpress.org/translation/core/6.9/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_CA\";a:8:{s:8:\"language\";s:5:\"en_CA\";s:7:\"version\";s:3:\"6.9\";s:7:\"updated\";s:19:\"2025-11-25 13:30:15\";s:12:\"english_name\";s:16:\"English (Canada)\";s:11:\"native_name\";s:16:\"English (Canada)\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-24 12:51:19\";s:12:\"english_name\";s:21:\"English (New Zealand)\";s:11:\"native_name\";s:21:\"English (New Zealand)\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:5:\"en_GB\";a:8:{s:8:\"language\";s:5:\"en_GB\";s:7:\"version\";s:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-30 11:47:57\";s:12:\"english_name\";s:12:\"English (UK)\";s:11:\"native_name\";s:12:\"English (UK)\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-13 06:27:29\";s:12:\"english_name\";s:22:\"English (South Africa)\";s:11:\"native_name\";s:22:\"English (South Africa)\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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_AU\";a:8:{s:8:\"language\";s:5:\"en_AU\";s:7:\"version\";s:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-23 16:40:44\";s:12:\"english_name\";s:19:\"English (Australia)\";s:11:\"native_name\";s:19:\"English (Australia)\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:2:\"eo\";a:8:{s:8:\"language\";s:2:\"eo\";s:7:\"version\";s:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-27 10:24:57\";s:12:\"english_name\";s:9:\"Esperanto\";s:11:\"native_name\";s:9:\"Esperanto\";s:7:\"package\";s:59:\"https://downloads.wordpress.org/translation/core/6.9/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_CL\";a:8:{s:8:\"language\";s:5:\"es_CL\";s:7:\"version\";s:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-12 22:21:48\";s:12:\"english_name\";s:15:\"Spanish (Chile)\";s:11:\"native_name\";s:17:\"Español de Chile\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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_CR\";a:8:{s:8:\"language\";s:5:\"es_CR\";s:7:\"version\";s:3:\"6.9\";s:7:\"updated\";s:19:\"2025-10-01 22:54:47\";s:12:\"english_name\";s:20:\"Spanish (Costa Rica)\";s:11:\"native_name\";s:22:\"Español de Costa Rica\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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_MX\";a:8:{s:8:\"language\";s:5:\"es_MX\";s:7:\"version\";s:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-05 13:30:31\";s:12:\"english_name\";s:16:\"Spanish (Mexico)\";s:11:\"native_name\";s:19:\"Español de México\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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_AR\";a:8:{s:8:\"language\";s:5:\"es_AR\";s:7:\"version\";s:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-07 17:17:39\";s:12:\"english_name\";s:19:\"Spanish (Argentina)\";s:11:\"native_name\";s:21:\"Español de Argentina\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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_ES\";a:8:{s:8:\"language\";s:5:\"es_ES\";s:7:\"version\";s:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-30 19:24:13\";s:12:\"english_name\";s:15:\"Spanish (Spain)\";s:11:\"native_name\";s:8:\"Español\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:5:\"es_PE\";a:8:{s:8:\"language\";s:5:\"es_PE\";s:7:\"version\";s:6:\"6.9-RC\";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:65:\"https://downloads.wordpress.org/translation/core/6.9-RC/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_VE\";a:8:{s:8:\"language\";s:5:\"es_VE\";s:7:\"version\";s:5:\"6.4.7\";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.7/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.8\";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.8/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.12\";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.12/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.18\";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.18/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.23\";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.23/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_CO\";a:8:{s:8:\"language\";s:5:\"es_CO\";s:7:\"version\";s:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-13 04:21:30\";s:12:\"english_name\";s:18:\"Spanish (Colombia)\";s:11:\"native_name\";s:20:\"Español de Colombia\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:2:\"et\";a:8:{s:8:\"language\";s:2:\"et\";s:7:\"version\";s:5:\"6.5.7\";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.7/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:6:\"6.9-RC\";s:7:\"updated\";s:19:\"2025-11-05 21:53:17\";s:12:\"english_name\";s:6:\"Basque\";s:11:\"native_name\";s:7:\"Euskara\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9-RC/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_IR\";a:8:{s:8:\"language\";s:5:\"fa_IR\";s:7:\"version\";s:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-25 18:17:43\";s:12:\"english_name\";s:7:\"Persian\";s:11:\"native_name\";s:10:\"فارسی\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:5:\"fa_AF\";a:8:{s:8:\"language\";s:5:\"fa_AF\";s:7:\"version\";s:6:\"6.9-RC\";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:65:\"https://downloads.wordpress.org/translation/core/6.9-RC/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:2:\"fi\";a:8:{s:8:\"language\";s:2:\"fi\";s:7:\"version\";s:3:\"6.9\";s:7:\"updated\";s:19:\"2025-11-29 11:04:04\";s:12:\"english_name\";s:7:\"Finnish\";s:11:\"native_name\";s:5:\"Suomi\";s:7:\"package\";s:59:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-10-03 04:54:28\";s:12:\"english_name\";s:15:\"French (Canada)\";s:11:\"native_name\";s:19:\"Français du Canada\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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.7\";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.7/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-10 11:15:06\";s:12:\"english_name\";s:15:\"French (France)\";s:11:\"native_name\";s:9:\"Français\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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.27\";s:7:\"updated\";s:19:\"2025-12-20 19:08:53\";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.27/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.8\";s:7:\"updated\";s:19:\"2025-10-21 16:35:04\";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.8/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-02-01 13:15:26\";s:12:\"english_name\";s:8:\"Galician\";s:11:\"native_name\";s:6:\"Galego\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-09 11:14:55\";s:12:\"english_name\";s:8:\"Gujarati\";s:11:\"native_name\";s:21:\"ગુજરાતી\";s:7:\"package\";s:59:\"https://downloads.wordpress.org/translation/core/6.9/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.8\";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.8/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.7\";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.7/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-31 09:13:17\";s:12:\"english_name\";s:8:\"Croatian\";s:11:\"native_name\";s:8:\"Hrvatski\";s:7:\"package\";s:59:\"https://downloads.wordpress.org/translation/core/6.9/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.8\";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.8/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-26 09:03:23\";s:12:\"english_name\";s:9:\"Hungarian\";s:11:\"native_name\";s:6:\"Magyar\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-16 11:21:47\";s:12:\"english_name\";s:10:\"Indonesian\";s:11:\"native_name\";s:16:\"Bahasa Indonesia\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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.28\";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.28/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-02-01 12:46:02\";s:12:\"english_name\";s:7:\"Italian\";s:11:\"native_name\";s:8:\"Italiano\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-30 13:49:01\";s:12:\"english_name\";s:8:\"Japanese\";s:11:\"native_name\";s:9:\"日本語\";s:7:\"package\";s:59:\"https://downloads.wordpress.org/translation/core/6.9/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.28\";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.28/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-26 09:51:27\";s:12:\"english_name\";s:8:\"Georgian\";s:11:\"native_name\";s:21:\"ქართული\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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.8\";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.8/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:6:\"6.9-RC\";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:62:\"https://downloads.wordpress.org/translation/core/6.9-RC/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.23\";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.23/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-31 11:41:21\";s:12:\"english_name\";s:7:\"Kannada\";s:11:\"native_name\";s:15:\"ಕನ್ನಡ\";s:7:\"package\";s:59:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-16 00:49:25\";s:12:\"english_name\";s:6:\"Korean\";s:11:\"native_name\";s:9:\"한국어\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-29 23:40:05\";s:12:\"english_name\";s:16:\"Kurdish (Sorani)\";s:11:\"native_name\";s:13:\"كوردی‎\";s:7:\"package\";s:60:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-01 21:45:29\";s:12:\"english_name\";s:6:\"Kyrgyz\";s:11:\"native_name\";s:16:\"Кыргызча\";s:7:\"package\";s:60:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-13 06:21:23\";s:12:\"english_name\";s:3:\"Lao\";s:11:\"native_name\";s:21:\"ພາສາລາວ\";s:7:\"package\";s:59:\"https://downloads.wordpress.org/translation/core/6.9/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:6:\"6.9-RC\";s:7:\"updated\";s:19:\"2025-09-27 20:51:17\";s:12:\"english_name\";s:10:\"Lithuanian\";s:11:\"native_name\";s:15:\"Lietuvių kalba\";s:7:\"package\";s:65:\"https://downloads.wordpress.org/translation/core/6.9-RC/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:3:\"6.9\";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:59:\"https://downloads.wordpress.org/translation/core/6.9/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.11\";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.11/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-26 17:47:09\";s:12:\"english_name\";s:9:\"Malayalam\";s:11:\"native_name\";s:18:\"മലയാളം\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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.7\";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.7/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-07 14:17:20\";s:12:\"english_name\";s:7:\"Marathi\";s:11:\"native_name\";s:15:\"मराठी\";s:7:\"package\";s:59:\"https://downloads.wordpress.org/translation/core/6.9/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.17\";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.17/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-02-01 08:57:36\";s:12:\"english_name\";s:19:\"Norwegian (Bokmål)\";s:11:\"native_name\";s:13:\"Norsk bokmål\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:6:\"6.9-RC\";s:7:\"updated\";s:19:\"2025-11-07 08:26:32\";s:12:\"english_name\";s:6:\"Nepali\";s:11:\"native_name\";s:18:\"नेपाली\";s:7:\"package\";s:65:\"https://downloads.wordpress.org/translation/core/6.9-RC/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:5:\"nl_NL\";a:8:{s:8:\"language\";s:5:\"nl_NL\";s:7:\"version\";s:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-29 08:00:28\";s:12:\"english_name\";s:5:\"Dutch\";s:11:\"native_name\";s:10:\"Nederlands\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:12:\"nl_NL_formal\";a:8:{s:8:\"language\";s:12:\"nl_NL_formal\";s:7:\"version\";s:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-29 08:00:04\";s:12:\"english_name\";s:14:\"Dutch (Formal)\";s:11:\"native_name\";s:20:\"Nederlands (Formeel)\";s:7:\"package\";s:69:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-02-02 08:54:38\";s:12:\"english_name\";s:15:\"Dutch (Belgium)\";s:11:\"native_name\";s:20:\"Nederlands (België)\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:\"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.27\";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.27/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-01 09:45:52\";s:12:\"english_name\";s:6:\"Polish\";s:11:\"native_name\";s:6:\"Polski\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-02 18:21:27\";s:12:\"english_name\";s:19:\"Portuguese (Brazil)\";s:11:\"native_name\";s:20:\"Português do Brasil\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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_AO\";a:8:{s:8:\"language\";s:5:\"pt_AO\";s:7:\"version\";s:5:\"6.4.7\";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.7/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:5:\"pt_PT\";a:8:{s:8:\"language\";s:5:\"pt_PT\";s:7:\"version\";s:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-02 10:17:43\";s:12:\"english_name\";s:21:\"Portuguese (Portugal)\";s:11:\"native_name\";s:10:\"Português\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-02 00:03:57\";s:12:\"english_name\";s:27:\"Portuguese (Portugal, AO90)\";s:11:\"native_name\";s:17:\"Português (AO90)\";s:7:\"package\";s:67:\"https://downloads.wordpress.org/translation/core/6.9/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: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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-29 12:52:48\";s:12:\"english_name\";s:8:\"Romanian\";s:11:\"native_name\";s:8:\"Română\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-29 03:22:33\";s:12:\"english_name\";s:7:\"Russian\";s:11:\"native_name\";s:14:\"Русский\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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.18\";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.18/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-01 04:57:17\";s:12:\"english_name\";s:6:\"Slovak\";s:11:\"native_name\";s:11:\"Slovenčina\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:6:\"6.9-RC\";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:63:\"https://downloads.wordpress.org/translation/core/6.9-RC/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-10-29 11:19:02\";s:12:\"english_name\";s:9:\"Slovenian\";s:11:\"native_name\";s:13:\"Slovenščina\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-24 16:29:39\";s:12:\"english_name\";s:8:\"Albanian\";s:11:\"native_name\";s:5:\"Shqip\";s:7:\"package\";s:59:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-03 15:37:44\";s:12:\"english_name\";s:7:\"Serbian\";s:11:\"native_name\";s:23:\"Српски језик\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-29 08:15:39\";s:12:\"english_name\";s:7:\"Swedish\";s:11:\"native_name\";s:7:\"Svenska\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-11-16 17:19:56\";s:12:\"english_name\";s:7:\"Swahili\";s:11:\"native_name\";s:9:\"Kiswahili\";s:7:\"package\";s:59:\"https://downloads.wordpress.org/translation/core/6.9/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.12\";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.12/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-13 08:39:22\";s:12:\"english_name\";s:7:\"Tagalog\";s:11:\"native_name\";s:7:\"Tagalog\";s:7:\"package\";s:59:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-12 14:35:24\";s:12:\"english_name\";s:7:\"Turkish\";s:11:\"native_name\";s:8:\"Türkçe\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-29 23:09:01\";s:12:\"english_name\";s:6:\"Uighur\";s:11:\"native_name\";s:16:\"ئۇيغۇرچە\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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.18\";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.18/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-09-01 09:12:13\";s:12:\"english_name\";s:10:\"Vietnamese\";s:11:\"native_name\";s:14:\"Tiếng Việt\";s:7:\"package\";s:59:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2025-12-02 00:32:44\";s:12:\"english_name\";s:16:\"Chinese (Taiwan)\";s:11:\"native_name\";s:12:\"繁體中文\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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:3:\"6.9\";s:7:\"updated\";s:19:\"2026-01-06 20:16:48\";s:12:\"english_name\";s:15:\"Chinese (China)\";s:11:\"native_name\";s:12:\"简体中文\";s:7:\"package\";s:62:\"https://downloads.wordpress.org/translation/core/6.9/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.8\";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.8/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'),(153,'theme_mods_twentytwentyfive','a:1:{s:18:\"custom_css_post_id\";i:-1;}','auto'),(154,'_transient_wp_styles_for_blocks','a:2:{s:4:\"hash\";s:32:\"7fd09879fbd531b73d40fe17062a7523\";s:6:\"blocks\";a:53:{s:11:\"core/button\";s:0:\"\";s:14:\"core/site-logo\";s:0:\"\";s:18:\"core/post-template\";s:0:\"\";s:18:\"core/term-template\";s:0:\"\";s:12:\"core/columns\";s:769:\":root :where(.wp-block-columns-is-layout-flow) > :first-child{margin-block-start: 0;}:root :where(.wp-block-columns-is-layout-flow) > :last-child{margin-block-end: 0;}:root :where(.wp-block-columns-is-layout-flow) > *{margin-block-start: var(--wp--preset--spacing--50);margin-block-end: 0;}:root :where(.wp-block-columns-is-layout-constrained) > :first-child{margin-block-start: 0;}:root :where(.wp-block-columns-is-layout-constrained) > :last-child{margin-block-end: 0;}:root :where(.wp-block-columns-is-layout-constrained) > *{margin-block-start: var(--wp--preset--spacing--50);margin-block-end: 0;}:root :where(.wp-block-columns-is-layout-flex){gap: var(--wp--preset--spacing--50);}:root :where(.wp-block-columns-is-layout-grid){gap: var(--wp--preset--spacing--50);}\";s:14:\"core/pullquote\";s:306:\":root :where(.wp-block-pullquote){font-size: var(--wp--preset--font-size--xx-large);font-weight: 300;line-height: 1.2;padding-top: var(--wp--preset--spacing--30);padding-bottom: var(--wp--preset--spacing--30);}:root :where(.wp-block-pullquote p:last-of-type){margin-bottom: var(--wp--preset--spacing--30);}\";s:32:\"c48738dcb285a3f6ab83acff204fc486\";s:106:\":root :where(.wp-block-pullquote cite){font-size: var(--wp--preset--font-size--small);font-style: normal;}\";s:11:\"core/avatar\";s:57:\":root :where(.wp-block-avatar img){border-radius: 100px;}\";s:12:\"core/buttons\";s:665:\":root :where(.wp-block-buttons-is-layout-flow) > :first-child{margin-block-start: 0;}:root :where(.wp-block-buttons-is-layout-flow) > :last-child{margin-block-end: 0;}:root :where(.wp-block-buttons-is-layout-flow) > *{margin-block-start: 16px;margin-block-end: 0;}:root :where(.wp-block-buttons-is-layout-constrained) > :first-child{margin-block-start: 0;}:root :where(.wp-block-buttons-is-layout-constrained) > :last-child{margin-block-end: 0;}:root :where(.wp-block-buttons-is-layout-constrained) > *{margin-block-start: 16px;margin-block-end: 0;}:root :where(.wp-block-buttons-is-layout-flex){gap: 16px;}:root :where(.wp-block-buttons-is-layout-grid){gap: 16px;}\";s:9:\"core/code\";s:427:\":root :where(.wp-block-code){background-color: var(--wp--preset--color--accent-5);color: var(--wp--preset--color--contrast);font-family: var(--wp--preset--font-family--fira-code);font-size: var(--wp--preset--font-size--medium);font-weight: 300;padding-top: var(--wp--preset--spacing--40);padding-right: var(--wp--preset--spacing--40);padding-bottom: var(--wp--preset--spacing--40);padding-left: var(--wp--preset--spacing--40);}\";s:24:\"core/comment-author-name\";s:169:\":root :where(.wp-block-comment-author-name){color: var(--wp--preset--color--accent-4);font-size: var(--wp--preset--font-size--small);margin-top: 5px;margin-bottom: 0px;}\";s:32:\"c0002c260f8238c4212f3e4c369fc4f7\";s:143:\":root :where(.wp-block-comment-author-name a:where(:not(.wp-element-button))){color: var(--wp--preset--color--accent-4);text-decoration: none;}\";s:32:\"1e7c38b45537b325dbbbaec17a301676\";s:112:\":root :where(.wp-block-comment-author-name a:where(:not(.wp-element-button)):hover){text-decoration: underline;}\";s:20:\"core/comment-content\";s:178:\":root :where(.wp-block-comment-content){font-size: var(--wp--preset--font-size--medium);margin-top: var(--wp--preset--spacing--30);margin-bottom: var(--wp--preset--spacing--30);}\";s:17:\"core/comment-date\";s:127:\":root :where(.wp-block-comment-date){color: var(--wp--preset--color--contrast);font-size: var(--wp--preset--font-size--small);}\";s:32:\"c83ca7b3e52884c70f7830c54f99b318\";s:114:\":root :where(.wp-block-comment-date a:where(:not(.wp-element-button))){color: var(--wp--preset--color--contrast);}\";s:22:\"core/comment-edit-link\";s:90:\":root :where(.wp-block-comment-edit-link){font-size: var(--wp--preset--font-size--small);}\";s:32:\"41d70710612536a90e368c12bcb0efea\";s:119:\":root :where(.wp-block-comment-edit-link a:where(:not(.wp-element-button))){color: var(--wp--preset--color--contrast);}\";s:23:\"core/comment-reply-link\";s:91:\":root :where(.wp-block-comment-reply-link){font-size: var(--wp--preset--font-size--small);}\";s:32:\"13c96340dbf37700add1f4c5cae19f3e\";s:120:\":root :where(.wp-block-comment-reply-link a:where(:not(.wp-element-button))){color: var(--wp--preset--color--contrast);}\";s:23:\"core/post-comments-form\";s:565:\":root :where(.wp-block-post-comments-form){font-size: var(--wp--preset--font-size--medium);padding-top: var(--wp--preset--spacing--40);padding-bottom: var(--wp--preset--spacing--40);}:root :where(.wp-block-post-comments-form textarea, .wp-block-post-comments-form input:not([type=submit])){border-radius:.25rem; border-color: var(--wp--preset--color--accent-6) !important;}:root :where(.wp-block-post-comments-form input[type=checkbox]){margin:0 .2rem 0 0 !important;}:root :where(.wp-block-post-comments-form label){font-size: var(--wp--preset--font-size--small);}\";s:24:\"core/comments-pagination\";s:182:\":root :where(.wp-block-comments-pagination){font-size: var(--wp--preset--font-size--medium);margin-top: var(--wp--preset--spacing--40);margin-bottom: var(--wp--preset--spacing--40);}\";s:29:\"core/comments-pagination-next\";s:98:\":root :where(.wp-block-comments-pagination-next){font-size: var(--wp--preset--font-size--medium);}\";s:32:\"core/comments-pagination-numbers\";s:101:\":root :where(.wp-block-comments-pagination-numbers){font-size: var(--wp--preset--font-size--medium);}\";s:33:\"core/comments-pagination-previous\";s:102:\":root :where(.wp-block-comments-pagination-previous){font-size: var(--wp--preset--font-size--medium);}\";s:14:\"core/post-date\";s:124:\":root :where(.wp-block-post-date){color: var(--wp--preset--color--accent-4);font-size: var(--wp--preset--font-size--small);}\";s:32:\"ac0d4e00f5ec22d14451759983e5bd43\";s:133:\":root :where(.wp-block-post-date a:where(:not(.wp-element-button))){color: var(--wp--preset--color--accent-4);text-decoration: none;}\";s:32:\"0ae6ffd1b886044c2da62d75d05ab13d\";s:102:\":root :where(.wp-block-post-date a:where(:not(.wp-element-button)):hover){text-decoration: underline;}\";s:25:\"core/post-navigation-link\";s:94:\":root :where(.wp-block-post-navigation-link){font-size: var(--wp--preset--font-size--medium);}\";s:15:\"core/post-terms\";s:158:\":root :where(.wp-block-post-terms){font-size: var(--wp--preset--font-size--small);font-weight: 600;}:root :where(.wp-block-post-terms a){white-space: nowrap;}\";s:15:\"core/post-title\";s:0:\"\";s:32:\"bb496d3fcd9be3502ce57ff8281e5687\";s:92:\":root :where(.wp-block-post-title a:where(:not(.wp-element-button))){text-decoration: none;}\";s:32:\"12380ab98fdc81351bb32a39bbfc9249\";s:103:\":root :where(.wp-block-post-title a:where(:not(.wp-element-button)):hover){text-decoration: underline;}\";s:10:\"core/quote\";s:1315:\":root :where(.wp-block-quote){border-color: currentColor;border-width: 0 0 0 2px;border-style: solid;font-size: var(--wp--preset--font-size--large);font-weight: 300;margin-right: 0;margin-left: 0;padding-top: var(--wp--preset--spacing--30);padding-right: var(--wp--preset--spacing--40);padding-bottom: var(--wp--preset--spacing--30);padding-left: var(--wp--preset--spacing--40);}:root :where(.wp-block-quote-is-layout-flow) > :first-child{margin-block-start: 0;}:root :where(.wp-block-quote-is-layout-flow) > :last-child{margin-block-end: 0;}:root :where(.wp-block-quote-is-layout-flow) > *{margin-block-start: var(--wp--preset--spacing--30);margin-block-end: 0;}:root :where(.wp-block-quote-is-layout-constrained) > :first-child{margin-block-start: 0;}:root :where(.wp-block-quote-is-layout-constrained) > :last-child{margin-block-end: 0;}:root :where(.wp-block-quote-is-layout-constrained) > *{margin-block-start: var(--wp--preset--spacing--30);margin-block-end: 0;}:root :where(.wp-block-quote-is-layout-flex){gap: var(--wp--preset--spacing--30);}:root :where(.wp-block-quote-is-layout-grid){gap: var(--wp--preset--spacing--30);}:root :where(.wp-block-quote.has-text-align-right ){border-width: 0 2px 0 0;}:root :where(.wp-block-quote.has-text-align-center ){border-width: 0;border-inline: 0; padding-inline: 0;}\";s:32:\"1de7a22e22013106efc5be82788cb6c0\";s:176:\":root :where(.wp-block-quote cite){font-size: var(--wp--preset--font-size--small);font-style: normal;font-weight: 300;}:root :where(.wp-block-quote cite sub){font-size: 0.65em}\";s:21:\"core/query-pagination\";s:107:\":root :where(.wp-block-query-pagination){font-size: var(--wp--preset--font-size--medium);font-weight: 500;}\";s:11:\"core/search\";s:380:\":root :where(.wp-block-search .wp-block-search__label, .wp-block-search .wp-block-search__input, .wp-block-search .wp-block-search__button){font-size: var(--wp--preset--font-size--medium);line-height: 1.6;}:root :where(.wp-block-search .wp-block-search__input){border-radius:3.125rem;padding-left:1.5625rem;padding-right:1.5625rem;border-color:var(--wp--preset--color--accent-6);}\";s:32:\"14fa6a3d0cfbde171cbc0fb04aa8a6cf\";s:138:\":root :where(.wp-block-search .wp-element-button,.wp-block-search .wp-block-button__link){border-radius: 3.125rem;margin-left: 1.125rem;}\";s:32:\"05993ee2f3de94b5d1350998a7e9b6b0\";s:130:\":root :where(.wp-block-search .wp-element-button:hover,.wp-block-search .wp-block-button__link:hover){border-color: transparent;}\";s:14:\"core/separator\";s:148:\":root :where(.wp-block-separator){border-color: currentColor;border-width: 0 0 1px 0;border-style: solid;color: var(--wp--preset--color--accent-6);}\";s:17:\"core/site-tagline\";s:86:\":root :where(.wp-block-site-tagline){font-size: var(--wp--preset--font-size--medium);}\";s:15:\"core/site-title\";s:75:\":root :where(.wp-block-site-title){font-weight: 700;letter-spacing: -.5px;}\";s:32:\"f513d889cf971b13995cc3fffed2f39b\";s:92:\":root :where(.wp-block-site-title a:where(:not(.wp-element-button))){text-decoration: none;}\";s:32:\"22c37a317cc0ebd50155b5ad78564f37\";s:103:\":root :where(.wp-block-site-title a:where(:not(.wp-element-button)):hover){text-decoration: underline;}\";s:21:\"core/term-description\";s:90:\":root :where(.wp-block-term-description){font-size: var(--wp--preset--font-size--medium);}\";s:15:\"core/navigation\";s:84:\":root :where(.wp-block-navigation){font-size: var(--wp--preset--font-size--medium);}\";s:32:\"25289a01850f5a0264ddb79a9a3baf3d\";s:92:\":root :where(.wp-block-navigation a:where(:not(.wp-element-button))){text-decoration: none;}\";s:32:\"026c04da08398d655a95047f1f235d97\";s:103:\":root :where(.wp-block-navigation a:where(:not(.wp-element-button)):hover){text-decoration: underline;}\";s:9:\"core/list\";s:52:\":root :where(.wp-block-list li){margin-top: 0.5rem;}\";s:12:\"core/heading\";s:0:\"\";s:14:\"core/paragraph\";s:0:\"\";s:10:\"core/group\";s:0:\"\";s:11:\"core/column\";s:0:\"\";}}','on'); -/*!40000 ALTER TABLE `wp_options` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `wp_postmeta` --- - -DROP TABLE IF EXISTS `wp_postmeta`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `wp_postmeta` ( - `meta_id` bigint unsigned NOT NULL AUTO_INCREMENT, - `post_id` bigint unsigned NOT NULL DEFAULT '0', - `meta_key` varchar(255) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL, - `meta_value` longtext COLLATE utf8mb4_unicode_520_ci, - PRIMARY KEY (`meta_id`), - KEY `post_id` (`post_id`), - KEY `meta_key` (`meta_key`(191)) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `wp_postmeta` --- - -LOCK TABLES `wp_postmeta` WRITE; -/*!40000 ALTER TABLE `wp_postmeta` DISABLE KEYS */; -INSERT INTO `wp_postmeta` VALUES (1,2,'_wp_page_template','default'),(2,3,'_wp_page_template','default'); -/*!40000 ALTER TABLE `wp_postmeta` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `wp_posts` --- - -DROP TABLE IF EXISTS `wp_posts`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `wp_posts` ( - `ID` bigint unsigned NOT NULL AUTO_INCREMENT, - `post_author` bigint unsigned NOT NULL DEFAULT '0', - `post_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `post_date_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `post_content` longtext COLLATE utf8mb4_unicode_520_ci NOT NULL, - `post_title` text COLLATE utf8mb4_unicode_520_ci NOT NULL, - `post_excerpt` text COLLATE utf8mb4_unicode_520_ci NOT NULL, - `post_status` varchar(20) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT 'publish', - `comment_status` varchar(20) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT 'open', - `ping_status` varchar(20) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT 'open', - `post_password` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', - `post_name` varchar(200) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', - `to_ping` text COLLATE utf8mb4_unicode_520_ci NOT NULL, - `pinged` text COLLATE utf8mb4_unicode_520_ci NOT NULL, - `post_modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `post_modified_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `post_content_filtered` longtext COLLATE utf8mb4_unicode_520_ci NOT NULL, - `post_parent` bigint unsigned NOT NULL DEFAULT '0', - `guid` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', - `menu_order` int NOT NULL DEFAULT '0', - `post_type` varchar(20) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT 'post', - `post_mime_type` varchar(100) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', - `comment_count` bigint NOT NULL DEFAULT '0', - PRIMARY KEY (`ID`), - KEY `post_name` (`post_name`(191)), - KEY `type_status_date` (`post_type`,`post_status`,`post_date`,`ID`), - KEY `post_parent` (`post_parent`), - KEY `post_author` (`post_author`), - KEY `type_status_author` (`post_type`,`post_status`,`post_author`) -) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `wp_posts` --- - -LOCK TABLES `wp_posts` WRITE; -/*!40000 ALTER TABLE `wp_posts` DISABLE KEYS */; -INSERT INTO `wp_posts` VALUES (1,1,'2026-02-02 13:05:02','2026-02-02 13:05:02','\n

Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

\n','Hello world!','','publish','open','open','','hello-world','','','2026-02-02 13:05:02','2026-02-02 13:05:02','',0,'https://wp.vdglab.net/?p=1',0,'post','',1),(2,1,'2026-02-02 13:05:02','2026-02-02 13:05:02','\n

This 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

Hi 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.)

\n\n
\n\n\n\n

...or something like this:

\n\n\n\n
\n\n

The 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.

\n\n
\n\n\n\n

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','','','2026-02-02 13:05:02','2026-02-02 13:05:02','',0,'https://wp.vdglab.net/?page_id=2',0,'page','',0),(3,1,'2026-02-02 13:05:02','2026-02-02 13:05:02','\n

Who we are

\n\n\n

Suggested text: Our website address is: https://wp.vdglab.net.

\n\n\n

Comments

\n\n\n

Suggested 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\n

An 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\n

Media

\n\n\n

Suggested 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\n

Cookies

\n\n\n

Suggested 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\n

If 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\n

When 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\n

If 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\n

Embedded content from other websites

\n\n\n

Suggested 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\n

These 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\n

Who we share your data with

\n\n\n

Suggested text: If you request a password reset, your IP address will be included in the reset email.

\n\n\n

How long we retain your data

\n\n\n

Suggested 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\n

For 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\n

What rights you have over your data

\n\n\n

Suggested 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\n

Where your data is sent

\n\n\n

Suggested text: Visitor comments may be checked through an automated spam detection service.

\n\n','Privacy Policy','','draft','closed','open','','privacy-policy','','','2026-02-02 13:05:02','2026-02-02 13:05:02','',0,'https://wp.vdglab.net/?page_id=3',0,'page','',0),(4,1,'2026-02-02 13:05:19','0000-00-00 00:00:00','','Auto Draft','','auto-draft','open','open','','','','','2026-02-02 13:05:19','0000-00-00 00:00:00','',0,'https://wp.vdglab.net/?p=4',0,'post','',0),(5,0,'2026-02-02 13:06:07','2026-02-02 13:06:07','','Navigation','','publish','closed','closed','','navigation','','','2026-02-02 13:06:07','2026-02-02 13:06:07','',0,'https://wp.vdglab.net/?p=5',0,'wp_navigation','',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 = utf8 */; -CREATE TABLE `wp_term_relationships` ( - `object_id` bigint unsigned NOT NULL DEFAULT '0', - `term_taxonomy_id` bigint unsigned NOT NULL DEFAULT '0', - `term_order` int 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); -/*!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 = utf8 */; -CREATE TABLE `wp_term_taxonomy` ( - `term_taxonomy_id` bigint unsigned NOT NULL AUTO_INCREMENT, - `term_id` bigint unsigned NOT NULL DEFAULT '0', - `taxonomy` varchar(32) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', - `description` longtext COLLATE utf8mb4_unicode_520_ci NOT NULL, - `parent` bigint unsigned NOT NULL DEFAULT '0', - `count` bigint NOT NULL DEFAULT '0', - PRIMARY KEY (`term_taxonomy_id`), - UNIQUE KEY `term_id_taxonomy` (`term_id`,`taxonomy`), - KEY `taxonomy` (`taxonomy`) -) 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_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); -/*!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 = utf8 */; -CREATE TABLE `wp_termmeta` ( - `meta_id` bigint unsigned NOT NULL AUTO_INCREMENT, - `term_id` bigint unsigned NOT NULL DEFAULT '0', - `meta_key` varchar(255) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL, - `meta_value` longtext COLLATE utf8mb4_unicode_520_ci, - 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 = utf8 */; -CREATE TABLE `wp_terms` ( - `term_id` bigint unsigned NOT NULL AUTO_INCREMENT, - `name` varchar(200) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', - `slug` varchar(200) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', - `term_group` bigint NOT NULL DEFAULT '0', - PRIMARY KEY (`term_id`), - KEY `slug` (`slug`(191)), - KEY `name` (`name`(191)) -) 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_terms` --- - -LOCK TABLES `wp_terms` WRITE; -/*!40000 ALTER TABLE `wp_terms` DISABLE KEYS */; -INSERT INTO `wp_terms` VALUES (1,'Uncategorized','uncategorized',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 = utf8 */; -CREATE TABLE `wp_usermeta` ( - `umeta_id` bigint unsigned NOT NULL AUTO_INCREMENT, - `user_id` bigint unsigned NOT NULL DEFAULT '0', - `meta_key` varchar(255) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL, - `meta_value` longtext COLLATE utf8mb4_unicode_520_ci, - PRIMARY KEY (`umeta_id`), - KEY `user_id` (`user_id`), - KEY `meta_key` (`meta_key`(191)) -) ENGINE=InnoDB AUTO_INCREMENT=21 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'),(17,1,'wp_user-settings','libraryContent=browse'),(18,1,'wp_user-settings-time','1770037514'),(19,1,'wp_dashboard_quick_press_last_post_id','4'),(20,1,'community-events-location','a:1:{s:2:\"ip\";s:11:\"10.90.131.0\";}'); -/*!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 = utf8 */; -CREATE TABLE `wp_users` ( - `ID` bigint unsigned NOT NULL AUTO_INCREMENT, - `user_login` varchar(60) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', - `user_pass` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', - `user_nicename` varchar(50) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', - `user_email` varchar(100) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', - `user_url` varchar(100) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', - `user_registered` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `user_activation_key` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '', - `user_status` int NOT NULL DEFAULT '0', - `display_name` varchar(250) COLLATE utf8mb4_unicode_520_ci 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$GYFxGJ4LGaOJBk3BIaaUJOlJB0CONSBbvj1MlZO46IdnEAGksQd4y','admin','gmo@geneve.ch','https://wp.vdglab.net','2026-02-02 13:05:02','',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 */; -/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; - --- Dump completed on 2026-02-02 14:09:36 diff --git a/env-dist b/env-dist new file mode 100644 index 0000000..552803e --- /dev/null +++ b/env-dist @@ -0,0 +1,18 @@ +# environment +ENVIRONMENT=gmolab +# site +SITE_TITLE="GMo Lab" +# container +WP_SITE=wp-site +WP_DB=wp-db +# host +HOST_NAME=wp-dev.gmolab.net +HOST_IP=172.31.10.15 +# phpadmin image +PHPADMIN_IMAGE=arm64v8/phpmyadmin:latest +#PHPADMIN_IMAGE=amd64/phpmyadmin:latest +# wp client URL +WP_CLI_URL=https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar +WP_CLI=wp-cli.phar +# gantry theme +GANTRY_THEME_HYDROGEN_URL=https://github.com/gantry/gantry5/releases/download/5.5.25/wordpress-tpl_g5_hydrogen_v5.5.25.zip diff --git a/env-gmolab b/env-gmolab new file mode 100644 index 0000000..43a2f3a --- /dev/null +++ b/env-gmolab @@ -0,0 +1,17 @@ +# environment +ENVIRONMENT=gmolab +# site +SITE_TITLE="GMo Lab" +# container +WP_SITE=wp-site +WP_DB=wp-db +# host +HOST_NAME=wp-dev.gmolab.net +HOST_IP=172.31.10.15 +# phpadmin image +PHPADMIN_IMAGE=arm64v8/phpmyadmin:latest +# wp client URL +WP_CLI_URL=https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar +WP_CLI=wp-cli.phar +# gantry theme +GANTRY_THEME_HYDROGEN_URL=https://github.com/gantry/gantry5/releases/download/5.5.25/wordpress-tpl_g5_hydrogen_v5.5.25.zip diff --git a/env-vdglab b/env-vdglab new file mode 100644 index 0000000..8f369cb --- /dev/null +++ b/env-vdglab @@ -0,0 +1,17 @@ +# environment +ENVIRONMENT=vdglab +# site +SITE_TITLE="VdG Lab" +# container +WP_SITE=wp-site +WP_DB=wp-db +# host +HOST_NAME=wp.vdglab.net +HOST_IP=10.10.8.104 +# phpadmin image +PHPADMIN_IMAGE=amd64/phpmyadmin:latest +# wp client URL +WP_CLI_URL=https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar +WP_CLI=wp-cli.phar +# gantry theme +GANTRY_THEME_HYDROGEN_URL=https://github.com/gantry/gantry5/releases/download/5.5.25/wordpress-tpl_g5_hydrogen_v5.5.25.zip diff --git a/gmolab.sh b/gmolab.sh deleted file mode 120000 index 0231def..0000000 --- a/gmolab.sh +++ /dev/null @@ -1 +0,0 @@ -script.sh \ No newline at end of file diff --git a/https-phpmyadmin-dev.conf b/https-phpmyadmin-dev.conf deleted file mode 100644 index 306da0e..0000000 --- a/https-phpmyadmin-dev.conf +++ /dev/null @@ -1,30 +0,0 @@ -## -## SSL Virtual Host Context -## -# General setup for the virtual host - - ServerName phpmyadmin-dev.gmolab.net - ServerAlias phpmyadmin-dev - CustomLog logs/phpmyadmin-dev_access_log common - ErrorLog logs/phpmyadmin-dev_error_log - -# SSL - SSLEngine on - SSLHonorCipherOrder on - SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 - SSLHonorCipherOrder on - SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4 - # Enable HTTP/2, if available - Protocols h2 http/1.1 - # HTTP Strict Transport Security (mod_headers is required) (63072000 seconds) - Header always set Strict-Transport-Security "max-age=63072000" -# certificats - SSLCertificateFile "/etc/httpd/auth/cert/gmolab.net.crt" - SSLCertificateKeyFile "/etc/httpd/auth/cert/gmolab.net.key" - SSLCertificateChainFile "/etc/httpd/auth/cert/gmolabCA.crt" -# proxy - RequestHeader set X-Forwarded-Proto "https" - ProxyPreserveHost On - ProxyPass "/" "http://127.0.0.1:8180/" - ProxyPassReverse "/" "http://127.0.0.1:8180/" - diff --git a/manage.sh b/manage.sh new file mode 100755 index 0000000..2956a8f --- /dev/null +++ b/manage.sh @@ -0,0 +1,262 @@ +#!/bin/bash +############################################################ +# Decription: gestion docker compose +# Author: Gilles Mouchet (gilles.mouchet@gmail.com) +# Creation Date: 08.02.2026 +# Version actuelle: 1.0.0 +# +# Changelog: +# V1.0.0 - 08.02.2026 - GMo +# Ajouté +# - Création du script +# +############################################################ + +#Constantes +SCRIPT_NAME=$(basename "$0") +UPDATE_DATE=08.02.2026 +VERSION=1.0.0 + +WP_ROOT_FOLDER=/home/docker/wp +WP_SITE_FOLDER=$WP_ROOT_FOLDER/wp-site +WP_DB_FOLDER=$WP_ROOT_FOLDER/wp-db + +RED='\e[1;31m' +GREEN='\e[0;32m' +ORANGE='\e[0;33m' +YELLOW='\e[1;33m' +BLUE='\e[0;34m' +PURPLE='\e[1;35m' +CYAN='\e[1;36m' +NC='\e[0m' + +# Define functions to display usage information +version() { +cat< + +Options: + --bash open shell root in container wp + --console start docker compose as console + --delete stop and delete container and delete files in ${WP_ROOT_FOLDER} + --down stop docker compose and delete container + --stop stop docker compose + --start start docker compose as daemon + --version version + --help this help + +EOF +exit 1 +} + +inst-wpcli() { +# install wp-cli.phar +if [ ! -f "$WP_SITE_FOLDER/$WP_CLI" ]; then + echo "Install wp-cli.phar." + sudo curl -s -o $WP_SITE_FOLDER/$WP_CLI $WP_CLI_URL + sudo chmod +x $WP_SITE_FOLDER/$WP_CLI +fi +} + +check-container-exist(){ +if [ ! "$(docker ps -aq -f name=^/${WP_SITE}$)" ]; then + echo -e "\n${RED}Container '$WP_SITE' do not exist!${NC}" + echo -e "Use commande './${SCRIPT_NAME} --build'\n" + exit 1 +fi +if [ ! "$(docker ps -aq -f name=^/${WP_DB}$)" ]; then + echo -e "\n${RED}Container '$WP_DB' do not exist!${NC}" + echo -e "Use commande './${SCRIPT_NAME} --build'\n" + exit 1 +fi +} + +check-container-up(){ + # check if stack is up () + if [ ! "$(docker inspect -f '{{.State.Status}}' "$WP_SITE" 2>/dev/null)" = "running" ]; then + echo -e "\n${RED}$WP_SITE not started${NC}" + echo -e "Execute './${SCRIPT_NAME} --up' to start containers\n" + exit + fi + if [ ! "$(docker inspect -f '{{.State.Status}}' "$WP_DB" 2>/dev/null)" = "running" ]; then + echo -e "${RED}$WP_DB not started${NC}" + echo "Execute './${SCRIPT_NAME} --up' to start containers" + exit + fi +} + +#----------------------------------------------------------- +# MAIN +#----------------------------------------------------------- + +# create destinations folders +if [ ! -d "$WP_ROOT_FOLDER" ]; then + #echo "create $WP_ROOT_FOLDER" + sudo mkdir -p $WP_ROOT_FOLDER +fi + +# check param exist +if [ -z "$1" ]; then + usage + exit +fi + +# analysis of arguments +while [[ $# -gt 0 ]]; do + case "$1" in + --help) + usage + ;; + --version) + version + ;; + --env) + if [[ -n "$2" && "$2" != -* ]]; then + ENV="$2" + shift 2 + else + echo -e "\n${RED}Error: --env requires an argument.${NC}" + usage + fi + ;; + --bash) + MODE="bash" + shift + ;; + --build) + MODE="build" + shift + ;; + --console) + MODE="console" + shift + ;; + --down) + MODE="down" + shift + ;; + --delete) + MODE="delete" + shift + ;; + --stop) + MODE="stop" + shift + ;; + --start) + MODE="start" + shift + ;; + *) + echo -e "\n${RED}Error: Unknown option !${NC}: $1" + usage + ;; + esac +done + +# if we have an ENV but no mode (--bash, --console, ...) +if [[ -n "$ENV" && -z "$MODE" ]]; then + echo -e "\n${RED}\nError: Missing options${NC}" + usage +fi + +# if we have a mode but no ENV (since --env is mandatory outside of help/version) +if [[ -n "$MODE" && -z "$ENV" ]]; then + echo -e "\n${RED}Error: The --env option is required to use --$MODE.${NC}" + usage +fi + +# if nothing is provided +if [[ -z "$ENV" && -z "$MODE" ]]; then + usage +fi + +echo -e "${GREEN}------------------------" +echo "Environment: $ENV" +echo -e "------------------------${NC}" + +# check if env file exist +# copy file env +if [ -f "env-$ENV" ]; then + cp env-$ENV .env + . .env + sed -e "s/_FQDN_/$HOST_NAME/g" \ + -e "s/_SITE_TITLE_/$SITE_TITLE/g" < db-tmpl.sql > dump-db/wp-db.sql +else + echo -e "\n${RED}Error: file env-$ENV do not exist${NC}\n" + exit 1 +fi + +case "$MODE" in + bash) + check-container-exist + check-container-up + docker exec --user root -it wp-site /bin/bash + ;; + build) + docker compose up -d + echo "Waiting for status 'healthy'... of container $WP_DB" + until [ "$(docker inspect -f '{{.State.Health.Status}}' $WP_DB)" == "healthy" ]; do + echo -n "." + sleep 2 + done + echo " " + inst-wpcli + docker exec "$WP_SITE" ./wp-cli.phar plugin install gantry5 --activate --allow-root + docker exec "$WP_SITE" ./wp-cli.phar theme install $GANTRY_THEME_HYDROGEN_URL --activate --allow-root + sudo chown 33:33 $WP_SITE_FOLDER -R + docker compose stop + ;; + console) + check-container-exist + docker compose up + #sudo chown 33:33 $WP_SITE_FOLDER -R + ;; + delete) + echo -e "${RED}-----------------------------------------------------------------------------------------------------" + echo -e "Do you really want to delete the contents of the /home/docker/${root_app} folder [y/N]?" + echo -e "----------------------------------------------------------------------------------------------------- ${NC}" + + unset answer + read answer + if [ "${answer}" != "y" ]; then + echo -e "${ORANGE}Operation cancelled!${NC}" + exit 1 + fi + docker compose down + #sleep 5 + sudo rm -rf $WP_ROOT_FOLDER + exit + ;; + down) + docker compose down + exit + ;; + stop) + docker compose stop + exit + ;; + start) + check-container-exist + docker compose up -d + echo "Waiting for status 'healthy'... of container $WP_DB" + until [ "$(docker inspect -f '{{.State.Health.Status}}' $WP_DB)" == "healthy" ]; do + echo -n "." + sleep 2 + done + echo " " + ;; +esac diff --git a/script.sh b/script.sh deleted file mode 100755 index 08bddd3..0000000 --- a/script.sh +++ /dev/null @@ -1,133 +0,0 @@ -#!/bin/bash -############################################################ -# Decription: gestion docker compose -# Author: Gilles Mouchet (gilles.mouchet@gmail.com) -# Creation Date: 02.02.2026 -# Version actuelle: 1.0.0 -# -# Changelog: -# V1.0.0 - 02.02.2026 - GMo -# Ajouté -# - Création du script -# -############################################################ - -scriptName=$(basename "$0") -updateDate=02.02.2026 -version=1.0.0 - -root_app=wp - -RED='\e[1;31m' -GREEN='\e[0;32m' -ORANGE='\e[0;33m' -YELLOW='\e[1;33m' -BLUE='\e[0;34m' -PURPLE='\e[1;35m' -CYAN='\e[1;36m' -NC='\e[0m' - -# Define functions to display usage information -version() { -cat< - -Options: - -a|--all stop docker compose, delete container and delete files in /home/docker/${root_app} - -b|--bash Ouverture d'un shell 'root' dans le conteneur 'PHP-FPM' - -s|--stop stop docker compose - -u|--up start docker compose as daemon - -c|--console start docker compose as console - -d|--down stop docker compose and delete container - -v|--version version - -h|--help usage -EOF -} - -#----------------------------------------------------------- -# MAIN -#----------------------------------------------------------- -# check for wich env the script run -environment=$(basename "${0%.*}") # delete extension -echo $environment - -case $environment in - vdglab) - echo "environnement vdglab" - cp .env-vdglab .env - ;; - gmolab) - echo "environnement vdglab" - cp .env-gmolab .env - ;; - *) - echo "Add $environment in case section" - #usage - exit - ;; -esac - -# check param exist -if [ -z "$1" ]; then - usage - exit -fi - -while [[ "$#" -gt 0 ]]; do - case "$1" in - -a|--all) - echo -e "${RED}-----------------------------------------------------------------------------------------------------" - echo -e "Do you really want to delete the contents of the /home/docker/${root_app} folder [y/N]?" - echo -e "----------------------------------------------------------------------------------------------------- ${NC}" - - unset answer - read answer - if [ "${answer}" != "y" ]; then - echo -e "${ORANGE}Operation cancelled!${NC}" - exit 1 - fi - docker compose down - #sleep 5 - sudo rm -rf /home/docker/${root_app}/* - docker compose up -d - exit - ;; - -b|--bash) - docker exec --user root -it wp-site /bin/bash - ;; - -s|--stop) - docker compose stop - ;; - -u|--up) - docker compose up -d - ;; - -d|--down) - docker compose down - ;; - -c|--console) - docker compose up - ;; - -v|--version) - version - exit - ;; - *|help|-h|--help) - usage - exit - ;; - esac - shift -done - diff --git a/vdglab.sh b/vdglab.sh deleted file mode 120000 index 0231def..0000000 --- a/vdglab.sh +++ /dev/null @@ -1 +0,0 @@ -script.sh \ No newline at end of file diff --git a/wp-config.php b/wp-config.php deleted file mode 100644 index 2fa0112..0000000 --- a/wp-config.php +++ /dev/null @@ -1,100 +0,0 @@ -