WordPress Playground Team Meeting Summary: January 23, 2026

Facilitator: @fellyph

The Playground team held its weekly meeting on January 23, 2026, in the  #playground SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. channel. Here’s a summary of the discussion.

Announcements

PHPPHP PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open source general-purpose scripting language that is especially suited for web development and can be embedded into HTML. https://www.php.net/manual/en/preface.php. version support update: WordPress Playground has dropped support for PHP 7.2 and 7.3. While this change is scheduled for WordPress 7.0, Playground has implemented it early. See the Playground blog for details.

AI agent skills: @bpayton has created an Agent Skill for testing WordPress applications on Playground. An announcement post is in progress. The team encourages community testing and contributions. Additionally, Automattic has released a set of Agent Skills, including one for Playground.

Newsletter: The Playground blog now offers a newsletter subscription. Sign up via the form on the blog sidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme. to receive updates.

Contributors: The Playground project now has 53 members with the Playground Contributor Badge.

Translations: Thanks to @noruzzaman for submitting Bengali pages and @Béryl for reviewing French translations. Contact @fellyph if you want to get involved.

Project Updates

  • Personal Playground: @akirk is developing Personal Playground, a new feature currently in review. Feedback is welcome on the PR.
  • PHP synchronous connect(): A PR simplifies connection logic for Asyncify builds by replacing asynchronous approaches with synchronous connections.
  • Node.js upgrade: The project has upgraded from Node.js 20 to 22, enabling package updates.
  • Agent documentation: The project has added a CLAUDE.md file. The team discussed renaming it to AGENTS.md for broader compatibility with tools like Gemini CLICLI Command Line Interface. Terminal (Bash) in Mac, Command Prompt in Windows, or WP-CLI for WordPress., Cursor, and Copilot. The proposed solution is to use AGENTS.md as the main file with CLAUDE.md referencing it.
  • Image optimization: @fellyph updated all PNG images in the documentation to WebP, reducing image sizes by 78%.

Updates from Contributors

  • @zieladam: Helping @akirk review and merge the “My WordPress” project before February. Shipped Redis and Memcached extensions and added native DNSDNS DNS is an acronym for Domain Name System - how you assign a human readable address to a website’s exact numeric coded location (ie. wordpress.org uses the actual IP address 198.143.164.252). resolution for the JSPI Node.js flavor of Playground.
  • @fellyph: Working on CSSCSS CSS is an acronym for cascading style sheets. This is what controls the design or look and feel of a site. improvements and CSS tokens for the Playground website. Created a PR to add translation credit footers.
  • @bph: Published two blog posts for theme developers:
  • @bpayton: Working on stabilizing the experimental multi-workers feature to remove the “experimental” flag and improve default performance.

Open Floor

The team briefly discussed CSS tokens and whether anyone has used the CSS tokens from @wordpress/theme.

The next Playground meeting is scheduled for the 13th of February 2026. Join the conversation at #playground Slack channel.

#meeting

WordPress Playground removes support for PHP 7.2 and 7.3

WordPress Playground no longer supports PHPPHP PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open source general-purpose scripting language that is especially suited for web development and can be embedded into HTML. https://www.php.net/manual/en/preface.php. 7.2 and 7.3. The minimum PHP version is now 7.4.

Your existing Blueprints will continue to work. If a Blueprint requests PHP 7.2 or 7.3, Playground automatically upgrades it to PHP 7.4 and displays a warning. No action is required, but you should update your Blueprints when convenient.

Why now?

Three factors drove this decision:

  • WordPress CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. is moving forward. WordPress 7.0 (releasing April 2026) drops support for PHP 7.2 and 7.3. These versions now power less than 4% of WordPress sites combined—well below the 5% threshold the project uses for version support decisions.
  • These versions don’t work reliably in Playground. PHP 7.2 crashes after a minute or two of use. PHP 7.3 runs noticeably slower than newer versions. These issues existed for months without user reports, confirming low adoption.  Also, they don’t seem to work with the PROXYFS mmap implementation
  • Maintenance takes time away from improvements. Supporting older PHP versions requires workarounds that delay features everyone can use—like fixing the intl extension crash.

What you need to do

For most users: nothing. Playground handles the migrationMigration Moving the code, database and media files for a website site from one server to another. Most typically done when changing hosting companies. automatically. Blueprint compilation requires PHP 7.4 or later; a warning will be displayed to remove it and update your Blueprint to load a supported version. If you are using the modular loaders, versions 7.2 and 7.3 will not receive updates.

Supported PHP versions

Playground now supports PHP 7.4 through PHP 8.5:

VersionStatus
PHP 7.4Supported (minimum)
PHP 8.0Supported
PHP 8.1Supported
PHP 8.2Supported
PHP 8.3Supported (recommended)
PHP 8.4Supported
PHP 8.5Supported

Use latest In your Blueprint, always get the most recent stable PHP version.

Timeline

This change takes effect immediately in WordPress Playground. The automatic upgrade ensures backward compatibility—your existing Blueprints won’t break.

WordPress Core follows in April 2026 with WordPress 7.0, which sets PHP 7.4 as the minimum required version.

Questions?

Reach out in the #playground channel on WordPress.org Slack or open a GitHub issue.

Playground meeting summary: January 9, 2026

This post summarizes the first Playground team meeting of 2026, held on January 9, 2026, in the  #playground SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. channel.

Announcements

UIUI UI is an acronym for User Interface - the layout of the page the user interacts with. Think ‘how are they doing that’ and less about what they are doing. Updates
Three UI improvements shipped in December based on community feedback:

  • Unsaved Playground warning – alerts users before losing work
  • Launch WordPress Playground panel – new dedicated panel for launching instances
  • Quick links – fast access to frequently visited pages

Read the full post (also available in Portuguese).

PHPPHP PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open source general-purpose scripting language that is especially suited for web development and can be embedded into HTML. https://www.php.net/manual/en/preface.php.-WASM Package Split
WordPress Playground now offers individual php-wasm packages for each PHP version (7.2–8.5). This modular approach allows developers to load only the PHP version they need, reducing bandwidth. Existing code remains compatible. Learn more.

Blueprints Library Preview
The internal blueprints library now includes visual previews, allowing users to see blueprint results directly from Playground before launching.

Dynamic CJS Imports
Dynamic imports for published CommonJS modules are now available.

Standalone BlockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. Demo Page
A new standalone demo page (playground-block-demo.html) brings the Playground Block pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party’s functionality to playground.wordpress.net. Features include:

  • Multi-file project editing (PHP, JS, JSX via esbuild-wasm)
  • Real-time WordPress previews
  • URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org parameter configuration for full-page and embedded views

Documentation
New translations added: Bengali (@noruzzaman), Portuguese (@André Ribeiro), and Japanese (@shimomura tomoki).

Community
Contributor badges awarded to @SirLouen, @Mehraz Morshed, and @Sohilbhai Ghanchivahora.

Contributor Updates

@fellyph shared progress on:

  • A PHP learning tool using php-wasm
  • Documentation updates for non-developers, including two new guides: “WordPress Playground for non-developers” and “Testing themes and plugins”
  • Video guides for runCLI and GitGit Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. Git is easy to learn and has a tiny footprint with lightning fast performance. Most modern plugin and theme development is being done with this version control system. https://git-scm.com/. Actions (PRs under review)
  • UI screenshot updates and front-end cleanups

Open Floor

The team asked: What would you like to see in Playground in 2026?

A Lighter, More Modular WordPress Playground: Understanding the php-wasm Package Split

PHPPHP PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open source general-purpose scripting language that is especially suited for web development and can be embedded into HTML. https://www.php.net/manual/en/preface.php. WASM now supports individual packages for each PHP version from 7.4 through 8.5. All old code still works, but if you want to save bandwidth, you can now use a specific PHP WASM version package.

The Architecture: Universal, Loaders, and Builds

@php-wasm/universal is the coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. package that powers both Node.js and browser environments. Here’s how it fits:

  • @php-wasm/universal: This is the “brain.” It contains everything familiar to both Node.js and the browser, managing the filesystem, handling .ini entries, and defining the core PHP class.
  • @php-wasm/node / @php-wasm/web: These are the “loaders.” They handle the environment-specific setup (like loading the WASM file from disk in Node vs. fetching it in the browser) and pass it to the universal core.

The Challenge: Hitting the Ceiling

When you install @php-wasm/node, you get everything: the runtime tools plus WebAssembly binaries for every supported PHP version. As we expanded support from PHP 7.4 to 8.5, this bundle became so big that the WebAssembly binaries exceeded npm’s 100 MB size limit.

To solve this, we split the PHP versions from the “heavy lifting”:

  • The Tools: The main packages (@php-wasm/node and @php-wasm/web) still work as usual.
  • The Builds: We separated the binaries into dedicated packages like @php-wasm/node-8.4 or @php-wasm/web-8.5 for lightweight solutions.

With this split, you download only the PHP versions you need—saving bandwidth and disk space for your applications.

Seeing it in Action

This modularity produces consistent code across Node.js and browser environments.

Classic Way (via @php-wasm/web)

Here is how you initialize PHP for the Web using the classic structure:

npm install @php-wasm/web
import { PHP } from '@php-wasm/universal';
import { loadWebRuntime } from '@php-wasm/web';

const php = new PHP(await loadWebRuntime('8.4'));

const response = await php.runStream({ code: `<?php echo "Hello World";` });
console.log(await response.stdoutText);

This approach handles Xdebug, emscriptenOptions, and other advanced features automatically.

Version-Specific Way (via @php-wasm/web-8-4)

For maximum control and minimal dependencies, use the version-specific package directly:

npm install @php-wasm/web-8-4
import { PHP, loadPHPRuntime } from "@php-wasm/universal";
import { getPHPLoaderModule } from "@php-wasm/web-8-4";

const loaderModule = await getPHPLoaderModule();
const runtimeId = await loadPHPRuntime(loaderModule);
const php = new PHP(runtimeId);

const response = await php.runStream({ code: `<?php echo "Hello World";` });
console.log(await response.stdoutText);

This approach bypasses @php-wasm/web entirely, making it perfect for lightweight applications. However, if you need Xdebug or custom emscriptenOptions, you’ll need to configure them manually.

In both cases, @php-wasm/universal provides the standard PHP class that orchestrates execution, while the version-specific package provides a lighter bundle and lower disk usage.

Same Pattern for Node.js

The same approaches work for Node.js—just swap @php-wasm/web for @php-wasm/node:

import { PHP } from '@php-wasm/universal';
import { loadNodeRuntime } from '@php-wasm/node';

const php = new PHP(await loadNodeRuntime('8.4'));

Dependency & Installation Overhead

The most significant improvement is the reduction in node_modules size. The classic approach required installing every supported PHP version, whereas the version-specific approach is targeted.

MetricClassic Way (@php-wasm/web)Version-Specific Way (@php-wasm/web-8-4)Improvement
Packages Installed@php-wasm/web + 9 PHP runtimesOnly @php-wasm/web-8-4-9 packages
Disk Usage~530 MB~63 MB~88% Reduction

Note: The classic package includes runtimes for PHP 7.4, 8.0, 8.1, 8.2, 8.3, 8.4, and 8.5.

Why This Matters

The modular architecture solves the NPM size limit and improves the codebase:

  1. Faster CI/CD: Pipelines download only the PHP versions they need.
  2. Lighter applications: Version-specific packages for a minimal footprint.
  3. Better tree-shaking: Modern bundlers like Vite and ESBuild can eliminate unused code.

Getting Started

Choose your approach based on your needs:

Classic (full features):

npm install @php-wasm/web

Version-specific (minimal footprint):

npm install @php-wasm/web-8-4

Check the PHP WASM documentation for detailed setup instructions. Tell us what you think of this new alternative for working with PHP WASM, and share your feedback in the #playground SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. channel.

Props to @akirk and @yannickdecat for reviewing the post.