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.2 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.2 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.2, 7.3, 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.

Three New UI Updates to WordPress Playground from December 2025

The Playground team listened to your feedback and rolled out three 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. improvements this month: one-click saving for playground instances, quick access to frequently visited pages, and a dedicated view for managing WordPress instances.

1. A Dedicated panel for better management

Saved playgrounds moved from the settings panel to a dedicated dashboard with its own landing page at playground.wordpress.net.

Image

When you visit playground.wordpress.net, clicking on the icon with four squares on the top-right, you’ll find a clean, organized dashboard that allows you to:

  • Start Fresh: Launch a vanilla WordPress site or test specific Pull Requests (PRs) from WordPress or GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/.
  • Import Easily: Use the “Import .zip” button to upload projects via .zip files, GitHubGitHub GitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/ URLs, or Blueprint URLs.
  • Explore Blueprints: Browse a library of blueprints with pre-configured setups like “Art Gallery” or “Coffee Shop.”
  • Manage Your Work: View your saved playgrounds listed at the bottom with creation dates and storage status.

2. Remembering to save your progress

WordPress Playground runs client-side in your browser, so refreshing or closing a tab before saving can erase your work. Playground now displays an “Unsaved Playground” warning in the top navigation bar to prevent this.

Image

Click the ‘Save’ button next to the warning to store your work in browser storage and resume exactly where you left off.

3. Faster navigation via Quick Access Links

Navigating the WordPress admin area usually requires multiple clicks or manual typing of URLs. The latest update introduces a Quick Access dropdown integrated directly into the Playground’s internal address bar.

Image

By clicking the address bar, you now get instant shortcuts to the most common areas of your site:

  • Homepage
  • Dashboard
  • Site Editor
  • New Post
  • Plugins
  • Themes

This small change significantly speeds up the testing workflow, allowing you to jump from the front end to the backend editor in a split second.

Give it a try!

These updates are designed to make WordPress Playground more user-friendly and efficient. Head over to playground.wordpress.net to test them out for yourself.

Have feedback? The team wants to hear from you! You can leave a comment below or join the conversation via 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.

Action Required: github-proxy.com Shutdown

The github-proxy.com was created previously to Blueprints, load branches, pull requests, and commits on GitHubGitHub GitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/ without CORS issues and add a dynamic packaging functionality. This service is hosted and maintained by a community contributor, Christoph Khouri, and he will end this service at the beginning of 2026 (but your Blueprints are safe).

Image

The good news: The Playground team has introduced an automatic migrationMigration Moving the code, database and media files for a website site from one server to another. Most typically done when changing hosting companies. layer in WordPress Playground. If your Blueprints currently rely on github-proxy.com, they will continue to work automatically.

What is changing?

When Playground encounters a github-proxy.com URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org in a Blueprint, it will now automatically rewrite it to use native Playground resources like git:directory.

Your Blueprints will continue to work, but you’ll see a console warning to update them. Update your Blueprints to use native resources for future compatibility and to remove these warnings.

How to migrate

The automatic migration handles several patterns:

github-proxy.com patternMigrates to
?repo=owner/namezip wrapping git:directory at HEAD
?repo=...&branch=trunkzip wrapping git:directory with branch ref
?repo=...&pr=123zip wrapping git:directory with refs/pull/123/head
?repo=...&commit=abczip wrapping git:directory with commit ref
?repo=...&release=v1.0zip wrapping git:directory with tag ref
?repo=...&directory=subdirzip wrapping git:directory with path
?repo=...&release=v1.0&asset=file.zipurl to GitHub releases download
?repo=...&release=latest&asset=file.zipurl to GitHub /releases/latest/download/
https://github-proxy.com/https://...url with the inner GitHub URL

Here is how you can update your Blueprints to match the native implementation:

1. Repositories, Branches, and Pull Requests

The old proxy returned a ZIP file of a repository. You can now achieve this natively using the git:directory resource.

Old:

{
    "resource": "url",
    "url": "https://github-proxy.com/proxy/?repo=user/repo&branch=main"
}

New:
Use the git:directory resource directly in your steps (like installPlugin or installTheme).

{
    "step": "installPlugin",
    "pluginData": {
        "resource": "git:directory",
        "url": "https://github.com/my-user/my-repo",
        "ref": "main"
    }
}

You can target specific commits or pull requests using the ref property:

  • Pull request: "ref": "refs/pull/123/head"
  • Commit: "ref": "abcdef123456..."

2. Release Assets

If you were using the proxy to fetch a specific asset (like a 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 zip) from a GitHub release, you can now use the resource zip with an inner object.

Old:

{
    "resource": "url",
    "url": "https://github-proxy.com/proxy/?repo=user/repo&release=v1.0&asset=plugin.zip"
}

New:

{

  "resource": "zip",
  "inner": {
    "resource": "git:directory",
    "url": "https://github.com/owner/repo",
    "ref": "main"
  }
}

Why is this better?

The proxy was vital in Playground’s early days. Recent infrastructure improvements, Playground’s built-in CORS proxy, 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/. over HTTPHTTP HTTP is an acronym for Hyper Text Transfer Protocol. HTTP is the underlying protocol used by the World Wide Web and this protocol defines how messages are formatted and transmitted, and what actions Web servers and browsers should take in response to various commands. support now enable native GitHub repository access. This removes the dependency on third-party services and improves stability.

A huge thank you to Christoph for keeping this service running and stable over the past years. It played a massive role in making Playground useful early on.

Please check your Blueprints today. If you have any questions, please get in touch with the Playground Team via 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.

Playground meeting summary: December 12, 2025

This post summarizes the Playground meeting held on December 12, 2025, 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

WordPress 6.9 was released, and Playground supported testers and developers throughout the release process. At State of the Word 2025 on December 2nd, Matt Mullenweg highlighted Playground and recognized contributors for translating the documentation.

The team published several posts celebrating 2025:

Playground videos on WordPress.tv are now categorized and easier to find.

The project now has 49 contributors with Playground badges.

GitHubGitHub GitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/ updates

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

  • Added smoke tests for proc_open in CI
  • Support for PHP 8.5
  • Removed static intl extension artifacts
  • Disabled profiling data file generation at runtime

Playground CLICLI Command Line Interface. Terminal (Bash) in Mac, Command Prompt in Windows, or WP-CLI for WordPress. Support for Intl is now included.

Documentation

  • Updated resources page with WordCampWordCamp WordCamps are casual, locally-organized conferences covering everything related to WordPress. They're one of the places where the WordPress community comes together to teach one another what they’ve learned throughout the year and share the joy. Learn more. Wroclaw presentation
  • Removing references to github-proxy.com (service being discontinued)
  • New translations added in Portuguese and Japanese

Website Improvements to database administration and the Blueprints Editor.

Blueprints Added support for Intl.

Contributor updates

@zieladam is pairing with @bpayton to implement multiple workers by default in the Playground CLI to increase speed. Once shipped, multiple workers may also work in the browser with SharedArrayBuffer support.

@Fellyph met with the Brazilian community to collect feedback, update GitHub Proxy references, write content for non-technical users, organize Playground videos, and review translations.

@andr3ribeiro started contributing this month with internationalization work and plans to help with technical issues after completing translations.

@Beryldlg is returning to publish the French translations of the documentation next week.

Open floor discussion

Documentation translation workflow

@Beryldlg raised questions about automatic translations and requested a way to receive notifications when documentation changes. This would help translation teams review and improve automated translations.

The team discussed:

RSS feedRSS Feed RSS is an acronym for Real Simple Syndication which is a type of web feed which allows users to access updates to online content in a standardized, computer-readable format. This is the feed. for documentation changes @zieladam created an RSS feed that refreshes daily to track documentation changes. @Fellyph Cintra will add this to the documentation.

Translation review process. The team agreed on a workflow where initial automated translations are published and improved over time. For accuracy:

  • Human translations will include a footer signature (like the French translations)
  • Automated translations will include a notice at the bottom
  • Contributors can add translator comments for content that needs review, such as:
    • <!-- Translators, this is accurate but it also will change pretty soon: -->
    • <!-- Translators, this may not be fully accurate yet: -->

@Fellyph Cintra will create a footer component to distinguish between translation types.

Next steps

If you need help contributing to Playground, reach out to @Fellyph. The next Playground meeting scheduled for the 26th of December will move to the 9th of January. Join the conversation at #playground Slack channel.

WordPress Playground: 2025 Year in Review

A lot happened for Playground this year! Let’s review what changed and why it matters for your work:

99+% of WordPress Plugins Supported in Playground

Nearly every 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 from the WordPress plugin directory works in Playground. In testing with the top 1,000 plugins, 99% install and activate successfully. The handful that don’t work yet either crash even outside of Playground or need a few more Playground platform improvements the team is actively working on.

Speaking about compatibility, Playground is now powerful enough to run 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. applications beyond WordPress:

  • PHPMyAdmin for database management – available via the 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. on playground.wordpress.net
  • Composer for managing PHP dependencies – available for developers via Blueprints
  • Laravel – try it out! 

…and a lot more! Try bringing your favorite PHP tools into Playground – they may just work. And please share your experience with others in the comments or at 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!

Playground Got Faster—A Lot Faster

Playground performance got a major boost in 2025. Enabling OpCache alone cut the average response time by 42%—from 185ms down to 108ms. On top of that, the Playground CLICLI Command Line Interface. Terminal (Bash) in Mac, Command Prompt in Windows, or WP-CLI for WordPress. uses multiple workers (with the --experimental-multi-worker flag) and processes concurrent requests in parallel instead of making them wait in line.

There’s a lot more! Playground now pre-fetches update checks before you even open wp-admin. Network responses start streaming right away instead of waiting for complete downloads. WordPress loads before the optional parts of the Playground app. More Playground assets are cached, and the cache is utilized more.

All these improvements compound. Playground feels faster because it is faster.

New PHP Extensions Support Modern Development Workflows

In 2024, Playground established a solid foundation with coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. PHP extensions such as bcmath, xml, curl, and mbstring. In 2025, the support extended to:

  • XDebug – available in CLI with IDE integration.
  • SOAP, OPCache, ImageMagick, GD 2.3.3, Intl, and Exif PHP extensions.
  • WebP and AVIF image formats.
  • Networking is now enabled by default on playground.wordpress.net, allowing PHP to request any URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org.
  • There’s also an ongoing exploration to use XDebug through browser devtools and without an IDE.

In addition, Playground now supports dynamic extensions under the hood, with Xdebug and Intl being the first two dynamic extensions. This unlocks a future on/off switch for loading specific extensions so that you can test how your plugin behaves in different hosting environments.

State of the Art MySQLMySQL MySQL is a relational database management system. A database is a structured collection of data where content, configuration and other options are stored. https://www.mysql.com/. Emulation

In 2025, Playground upgraded its MySQL support with a brand-new, state of the art MySQL-on-SQLite database driver. It’s likely the most comprehensive open-source library of its kind in any language. Developed in the sqlite-database-integration plugin, it leverages a custom-made MySQL query parser and translation logic to support even those highly nuanced MySQL queries.

In 2025, it became powerful enough to support:

  • PHPMyAdmin and Adminer – available with a click directly on playground.wordpress.net.
  • 99+% of WordPress directory plugins.
  • 99+% of WordPress core unit tests.

Looking forward, the Playground team is working on MySQL binary protocol support. Once that lands, you’ll be able to use the mysql CLI, connect with database management apps, establish PDO connections, and tap into the full ecosystem of MySQL developer tools—all running against Playground’s CLI SQLite backend.

A Developer Toolbox, One Click Away

playground.wordpress.net now provides plenty of developer tools right in your browser:

And if you’d like to preview Pull Requests in your project using Playground, see the “Try in Playground” GitHub action. It automatically adds a preview link to every pull request in your repository. Reviewers just click the link and see your changes running in WordPress—no need to pull code or configure anything locally.

Local CLI Workflows

Playground CLI hit a stable release with several powerful new features to streamline your development workflow:

  • Auto mode to start a local WordPress server with your plugin or theme installed. Run npx @wp-playground/cli server –auto-mount in your local plugin or theme directory. That’s it!
  • Debug with XDebug. Add a single CLI flag and immediately connect via VS Code or PhpStorm. Set breakpoints, watch variables change as code executes, and step through your functions line by line. The Playground team is also exploring connecting XDebug to Chrome DevTools (unreleased, work in progress).
  • Multi-worker support: Use –experimental-multi-worker to enable concurrent operations. While one worker waits for a network response, another processes PHP. No more slowdowns.
  • runCLI() lets developers embed WordPress Playground instances directly in JavaScriptJavaScript JavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a user’s browser. https://www.javascript.com/./Node.js applications. It’s useful for automated testing workflows and building desktop apps, such as Studio, on top of Playground.

Blueprints

Blueprints (WordPress starter configurations) received many major upgrades this year:

  • Blueprints editor – Create your Blueprints directly on playground.wordpress.net with the new, built-in editor.
  • Blueprint bundles – Ship images, zip files, and media with your Blueprint.
  • Visual Blueprints browser – Explore ready-made starter sites for blogs, news sites, and organizations from the Blueprints gallery. Launch them in Playground with a click.
  • .git directory support – Create a .git directory for any repositories cloned via Blueprints to use with your everyday git tools.
  • Blueprints v2 living specification was published to make Blueprints more accessible to humans and AI tools. The new format standardizes how post types, content, translations, fonts, and media files are defined, while making the notation more succinct. An all-PHP Blueprints runner is being developed in the php-toolkit repository, and Playground CLI runs it when the --experimental-blueprints-v2-runner flag is used.

Other highlights

Community Impact

Playground was used 1.4 million times in 227 countries this year to showcase plugins, test code changes, and teach others.

The community stepped up in ways that went far beyond code. Community contributors translated the documentation into French, Spanish, Portuguese, Japanese, Gujarati, and Tagalog, with Bengali translations now underway. Over 1,000 plugins from the directory enabled the Playground-powered “Preview” button. 48 developers earned the Playground contribution badge for their work on code, documentation, and community support.

From the flagship events down, Playground was everywhere: at WordCampWordCamp WordCamps are casual, locally-organized conferences covering everything related to WordPress. They're one of the places where the WordPress community comes together to teach one another what they’ve learned throughout the year and share the joy. Learn more. Europe 2025 @berislavgrgicak showed how to build automated tests with Playground, and @bph walked through creating one-click demos at WordCamp Asia 2025. @danieldudzic demoed testing WooCommerce faster than a Formula 1 pit stop at WordCamp Gdynia. @nilovelez called Playground “the best tool ever invented for teaching WordPress” at WordCamp Galicia. @muryam brought Playground to WordCamp Islamabad, showcasing how to build, test, and explore WordPress. And even beyond that, @mrfoxtalbot, @wpaurorautasic, @fellyph, @sakaruk, and @magdalenapaciorek took Playground to Madrid, Lisboa, Wrocław, Nepal, and Rio de Janeiro, turning Playground into a recurring theme in talks on testing, education, and release workflows.

Playground also enabled the community to build great tools and workflows. @smrubenstein integrated Playground CLI with GitHub Copilot and shipped four features in one week—work that would otherwise take months. @bacoords built dynamic Blueprints running on Cloudflare Workers for runtime-configurable WooCommerce demos. Studio, a local development environment, added support for Blueprints. Telex lets you generate Gutenberg blocks from text prompts and instantly test them in Playground.

There’s more! @akirk added many new steps to his Blueprint development tool Playground Step Library, a versatile paste handler for Markdown, HTMLHTML HTML is an acronym for Hyper Text Markup Language. It is a markup language that is used in the development of web pages and websites., JSONJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML., and more. @jamesmarsland launched PootlePlayground.com, an AI-aided Blueprint generator. And TYPO3—a different CMS—built a TYPO3 playground with WordPress Playground as a foundation, proving the impact reaches beyond the WordPress ecosystem.

Kudos to all contributors:

@ajitbohra, @akirk, @aksyonov, @andraganescu, @amieiro, @ashfame, @aslamdoctor, @bacoords, @berislavgrgicak, @beryldlg, @bph, @brandonpayton, @dd32, @devmuhib, @dhruval04, @dhruvang21, @dilip2615, @fellyph, @getdave, @hmbashar, @huzaifaalmesbah, @ingeniumed, @ivanottinger, @janjakes, @janwoostendorp, @jdahir0789, @jeffpaul, @jhimross, @jonsurrell, @josevarghese, jswhisperer, @juanmaguitar, @justinnealey, @karthickmurugan, lukaszuznanski, madhavraj2004, @marc4, mbuella, @mehrazmorshed, @merkushin, @mosescursor, @mrfoxtalbot, @mujuonly, @mukesh27, @muryam, @n8finch, @ndiego, @nikunj8866, @noruzzaman, oskardydo, @passoniate, @praful2111, @psykro, @ravigadhiyawp, @rollybueno, @sakaruk, @sandeepdahiya, @sandipsinh007, @sejas, @shailu25, @shimotomoki, @shiponkarmakar, @sirlouen, @tomayac, @vipulgupta003, @wojtekn, @wpaurorautasic, @yannickdecat, @zaerl, @zieladam.

Thank you all for being part of this journey! Here’s to making WordPress easier and more accessible for everyone.

Props to @akirk, @berislavgrgicak, @janjakes, @bpayton, @yannickdecat for their help with writing and reviewing this post. Also, props to all of you who helped get Playground where it is today!

+make.wordpress.org/core/

Introducing the New Live Blueprint Editor for WordPress Playground

We are excited to announce a significant update to the WordPress Playground that completely improves the developer experience: a brand-new Blueprint Editor.

Image

While the ability to edit Blueprints has existed previously, this update brings a polished, cohesive interface that combines a powerful code editor directly with the file browser. This new functionality is designed to streamline your workflow, making it easier than ever to prototype, test, and share WordPress configurations.

Key Features

1. Intelligent Auto-Completion
Writing JSONJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. schemas just got a lot faster. The new editor features built-in auto-completion that guides developers as they type. Whether you are adding a new step or defining a specific configuration, the editor helps you generate valid Blueprints without constantly referring to documentation. It also includes full support for Blueprints v2.

Image

2. Live “Auto-Recreate” Functionality
This is the game-changer. We have introduced an “Auto-recreate Playground from the Blueprint” toggle.

When enabled, any change you make in the code editor is immediately reflected in the WordPress instance on the right. You no longer need to manually reload or restart the instance. As seen in the demo, you can simply type a command to install a 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 (like GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/), and watch the site update in real-time.

Faster Iteration

This update is perfect for developers who need to iterate quickly. You can easily copy a Blueprint from another environment, load it into Playground, and tweak it live. It creates an immediate feedback loopLoop The Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop. that drastically reduces development time. The Blueprint Editor also provides a validation that can guide your blueprint creation.

Try It Out

We invite you to explore the new editor features today. We want to hear your thoughts. Please let us know what you think about this new workflow in the comments below, or share your feedback directly with us 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.

Adminer and phpMyAdmin in WordPress Playground

A new experimental Database pane is now live on playground.wordpress.net, featuring:

  • One-click Adminer access
  • One-click phpMyAdmin access
  • Quick access to the SQLite database file

Following the recent additions of the File Browser and the Blueprint Editor, it is now possible to browse and modify the Playground SQLite database even with tools designed to be used with MySQLMySQL MySQL is a relational database management system. A database is a structured collection of data where content, configuration and other options are stored. https://www.mysql.com/..

Image

See it in action:

Or head to playground.wordpress.net and try it live.

If you experience any issues, please report them. This feature is under active development, and your feedback is valuable for future improvements.

State of MySQL-on-SQLite emulation

This new functionality showcases the capabilities of the new SQLite driver and offers a glimpse of what’s ahead. MySQL database administration tools often rely on advanced MySQL schema introspection capabilities, uncommon MySQL statements, and complex query patterns. While you may still encounter some issues and unsupported features, this early experimental integration with MySQL tooling is already very useful, and the compatibility will continue to improve.

Looking ahead, work is already underway on implementing the MySQL binary protocol, which will allow you to use tools that expect a MySQL server to be present. As the development continues, support for MySQL tooling will make its way into the Playground CLICLI Command Line Interface. Terminal (Bash) in Mac, Command Prompt in Windows, or WP-CLI for WordPress., and ultimately, these efforts will allow most MySQL-based applications and tools to run seamlessly on an SQLite database.

Props for reviewing to @akirk and @zieladam

Playground Team Meeting Summary: November 28, 2025

The Playground team held its weekly meeting on November 28, 2025. Here’s a summary of the announcements, contributor updates, and discussions.

Facilitator: @fellyph

Announcements

Xdebug support is now available

Debugging 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. code in WordPress Playground just got easier. The team published a detailed guide on debugging with Xdebug, now available in both PHP-WASM CLICLI Command Line Interface. Terminal (Bash) in Mac, Command Prompt in Windows, or WP-CLI for WordPress. and WP Playground CLI. This feature allows developers to step through code, inspect variables, and troubleshoot issues directly within their preferred IDE—including VS Code and PhpStorm.

Preview GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ branches in your browser

A new feature allows developers to preview Gutenberg development branches directly in the browser. Test the latest trunk changes or explore feature branches without creating a pull request or setting up a local environment.

Blueprint editor improvements

The Playground website now includes an improved Blueprint editor with better 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. integration and autocomplete functionality. This makes creating and editing Blueprints more intuitive for developers building custom Playground configurations.

Playground CLI updates

Several improvements landed in the Playground CLI:

  • Readable help messages: Improved formatting and readability of CLI help output.
  • TERM=dumb compatibility: CLI behavior now works correctly in TERM=dumb environments.
  • File locking tests: Added tests for file locking in the CLI.
  • SQLite logging fix: Fixed 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 logging behavior when skipping logging is requested.

PHP WASM improvements

The PHP WASM package received significant updates:

  • Dynamic intl extension: Thanks to @Yannick‘s work, Playground web can now load dynamic extensions. The intl extension is the first web dynamic extension, enabling internationalization support. This architecture unlocks a future where Playground loads a minimal PHP coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. and downloads larger extensions like gd and libxml only when needed.
  • GD library upgrade: Updated to version 2.3.3, enabling more recent image processing features.
  • Emscripten upgrade: Updated from version 4.0.5 to 4.0.19.

Blueprints and SQLite

Updates from contributors

@fellyph documented Xdebug for PHP WASM and gathered Xdebug examples. He also presented at WordPress meetups in Belo Horizonte and Rio de Janeiro, Brazil. Props to @Caio Ferreira and @gugaalves for organizing those events.

@zieladam shipped several features:

He’s also helping @janjakes with final reviews for phpMyAdmin integration on playground.wordpress.net, and exploring a Blueprint bundle editor for creating Blueprints that ship with additional assets.

@yannickdecat upgraded Emscripten from 4.0.5 to 4.0.19 and added the intl dynamic extension to PHP.wasm Web.

Open floor

Running Composer-dependent plugins

@mujuonly raised a question about running plugins that use the PHP AI SDK with Composer dependencies. The team discussed that Composer isn’t installed by default in Playground.

Current workaround: Download composer.phar and run php composer.phar install using either a Blueprint or PHP functions like proc_open().

Future improvements: The team discussed potentially downloading Composer automatically the first time the command runs, which would make it work seamlessly in Blueprints. A terminal UI for typing commands like composer install It is also directly on the wishlist.

Get involved

Join the Playground team meetings at 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. Everyone is welcome—introduce yourself and bring topics for the open floor discussion.

Props: @zaerl, @Yannick, @zieladam, @Dilip Modhavadiya, @SirLouen, @gugaalves, @eduardozulian, @janjakes, @Caio Ferreira, @mujuonly

Playground Team Meeting Summary: November 14, 2025

Facilitator: @fellyph

Announcements

The Playground team shipped several notable features recently:

New capabilities:

Documentation updates:

  • Debugging with Xdebug guide for 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 and Playground CLI
  • Adding PR Preview Buttons with GitHub Actions
  • GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ branch preview via Query APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.: playground.wordpress.net?gutenberg-branch=trunk

Translations: New pages in Japanese, Bengali, Italian, Spanish, Portuguese, Gujarati, and Luganda—including first pages in Italian and Luganda.

Community: 46 contributors now hold the Playground badge. Learn how to claim yours.

Contributor updates

  • @fellyph: Preparing presentations for WordCampWordCamp WordCamps are casual, locally-organized conferences covering everything related to WordPress. They're one of the places where the WordPress community comes together to teach one another what they’ve learned throughout the year and share the joy. Learn more. Wroclaw, WordCamp Brazil, and WordPress Belo Horizonte meetupMeetup All local/regional gatherings that are officially a part of the WordPress world but are not WordCamps are organized through https://www.meetup.com/. A meetup is typically a chance for local WordPress users to get together and share new ideas and seek help from one another. Searching for ‘WordPress’ on meetup.com will help you find options in your area.; documentation updates; new translations for Portuguese and Spanish.
  • @akirk: Fixed bugs related to theme translations via Playground.
  • @Moses Cursor: Completed Luganda translation pages.

Open floor

Props: @fellyph, @akirk, @bph, @Yannickdecat, @lenasterg, @Moses Cursor

Preview Gutenberg Development Branches in Your Browser

WordPress Playground now loads GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ development branches directly in your browser. Test the latest trunk changes or explore feature branches without creating a pull request or setting up a local environment.

This solves a common challenge: testing bleeding-edge Gutenberg development typically requires cloning repositories, running build scripts, and managing local installations. Now you can skip all that.

Why does this matter?

New features land trunk daily, and experimental work occurs in feature branches before being merged into pull requests. Previously, you could only preview specific PRs in Playground, and now you can preview any branch related to a pull request.

This opens new possibilities:

  • Test the Gutenberg trunk branch to catch issues before they reach release.
  • Explore Gutenberg experimental features and fixes before they’re merged.

How do you preview branches?

Playground introduces two new Query API parameters gutenberg-branch. Add them to your Playground URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org to load specific branches.

Preview Gutenberg trunk or a specific feature branch:

https://playground.wordpress.net/?gutenberg-branch=trunk

Other branches:

https://playground.wordpress.net/?gutenberg-branch=add/new-feature

What about pull requests?

Pull request previewing still works exactly as before for Gutenberg and WordPress coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. If you know the PR number, use:

https://playground.wordpress.net/?core-pr=9500
https://playground.wordpress.net/?gutenberg-pr=73010

What should you know?

When you preview a branch, Playground loads the latest available build artifact from GitHubGitHub GitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/ Actions. If GitHub Actions is still building the most recent commit, Playground uses the next available build. This means you might see changes from a few commits back, not the absolute latest code. This approach strikes a balance between freshness and reliability.

This feature works anywhere you use the Playground Query APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways., ideally, for testing and bug reporting. The playground can be embedded for educational purposes in future releases. For example, if you’re documenting a new Gutenberg feature still in trunk, link directly to a Playground instance that demonstrates it.

Start testing today

The WordPress and Gutenberg teams constantly ship improvements. With branch previewing, you can explore these changes the moment they merge, report issues early, and contribute to WordPress development—all from your browser.

Try it now and learn more about Query API documentation.