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.

Debugging with Xdebug is now available in WordPress Playground

Have you ever faced a moment where your application won’t run, and you need to understand the steps that led to the failure? Xdebug is the perfect tool for this, but debugging a 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. application inside WebAssembly was a challenge until one of the most recent updates to WordPress Playground.

WordPress Playground now supports Xdebug. You can connect Visual Studio Code and PhpStorm IDEs to debug PHP code with breakpoints, step-by-step execution, and variable inspection. This experimental feature needs your feedback.

What can you do with Xdebug?

Connect Xdebug in Playground to your IDE to:

  • Set breakpoints — Pause execution on specific lines
  • Step through code — Move line by line during execution
  • Inspect variables — View values during execution
  • Evaluate expressions — Test code in the current context

Getting Started with Xdebug

Let’s debug a simple 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 using the Playground CLI and Xdebug to demonstrate this feature. But don’t worry, this feature is also available for the PHP-WASM CLICLI Command Line Interface. Terminal (Bash) in Mac, Command Prompt in Windows, or WP-CLI for WordPress..

Prerequisites

You need:

  • Node.js 23 or higher and npm installed
  • @wp-playground/cli version 3.0.20 or higher
  • Visual Studio Code with the PHP Debug extension installed or the Xdebug extension configured in PhpStorm.

For Visual Studio Code and IDEs forked from it, we do recommend the official PHP Debug extension from Xdebug.org. This is required for debugging PHP in VS Code, not a specific requirement for WordPress Playground.

Configuration Steps

1. Prepare your code for testing

For this demo, I will use the following code. It displays a message in the WordPress Admin Dashboard. To see this code in action, you must access the /wp-admin/ address:

<?php
/**
 * Plugin Name: Simple Admin Message
 * Description: Displays a simple message in the WordPress admin
 * Version: 1.0
 * Author: Playground Team
 */


// Prevents direct access
if (!defined('ABSPATH')) {
    exit;
}


// Displays admin notice
function sam_display_admin_message() {
    $message = 'Hello! This is a simple admin message.';
    ?>
    <div class="notice notice-info is-dismissible">
        <p><?php _e($message, 'simple-admin-message'); ?></p>
    </div>
    <?php
}
add_action('admin_notices', 'sam_display_admin_message');

2. Configure your IDE to listen for Xdebug

The WordPress Playground CLI has a flag that can help developers if they don’t have Xdebug configured: --experimental-unsafe-ide-integration=, which currently supports two IDEs: vscode and phpstorm.

This will save time by generating the necessary files to get your debugging started.

Visual Studio Code

To start debugging, VS Code needs the .vscode/launch.json file. Here is an example:

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Listen for Xdebug",
      "type": "php",
      "request": "launch",
      "port": 9003
    }
  ]
}

Start the debugger with F5 or “Run > Start Debugging”. Run the plugin with the Playground CLI to see the execution stop when the code hits a breakpoint.

To debug the plugin above, we can initialize the plugin in the Playground CLI with the following code:

npx @wp-playground/cli@latest server --xdebug --experimental-unsafe-ide-integration=vscode --auto-mount

PhpStorm

Configure PhpStorm with path mappings and a PHP Remote Debug configuration.

  1. Create a PHP Remote Debug configuration.
  2. Click on Start Listening for PHP Debug Connections.
  3. Run the plugin with the Playground CLI.

To run the plugin with the Playground CLI, execute the command in the terminal:

npx @wp-playground/cli@latest server --xdebug --experimental-unsafe-ide-integration=phpstorm --auto-mount

See the Xdebug documentation in PhpStorm for detailed configuration instructions.

Image

Running Xdebug with PHP-WASM CLI

Another option is to use Xdebug with PHP-WASM CLI, which is useful when you would like to debug only PHP without a WordPress environment.

To run it, you will need to set up Xdebug in your development environment. Once you are ready, add the breakpoints to your PHP file and run the command point to the file that you would like to debug. For example, the file below is located at src/test.php:

<?php

$test = 42; // Set a breakpoint on this line

echo "Output!n";

function test( $output ) {
    echo "Hello Xdebug World!n" . $output . "n";
}

test($test);

At the terminal, you run the command:

 npx @php-wasm/cli@latest --xdebug php/test.php

The result will be starting the debugging mode at the IDE:

Image

A WordPress Playground team effort to solve a complex problem

Bringing Xdebug to WebAssembly required solving technical challenges. The Playground team spent months turning a tracking issue from May 2023 into working code.

Technical Achievement

The WordPress Playground team has made significant strides in integrating Xdebug for in-browser debugging. This effort involved numerous pull requests that tackled a range of technical challenges:

  • Asyncify Extension: Added Xdebug support via asyncify-specific shared extension builds and loaders.
  • IDE Integration Enhancements: Introduced experimental IDE path mappings for seamless debugging between the Playground’s virtual file system (VFS) and host IDEs.
  • Xdebug Bridge: Enabled the bridge to read files directly from the VFS, aligning breakpoints and source files for consistent debugging experiences.
  • CLI UX Improvements: Refined the CLI experience to prevent breakpoints from interrupting the Playground boot process unnecessarily.
  • DevTools & Debugger Enhancements: Preloaded files for improved DevTools debugging (#2527), added syntax highlighting (#2566), and enhanced array inspections and Xdebug protocol handling (#2409).
  • Upgraded Toolchain (#2910): Upgraded Emscripten to address linker issues, ensuring smooth dynamic loading of shared extensions like Xdebug.

Together, these enhancements have enabled robust step-debugging workflows, bridging the Playground’s WASM environment with modern IDE capabilities. Additionally, earlier groundwork (#673, #831) on dynamic loading set the foundation for these advancements.

The result? Xdebug in WordPress Playground isn’t just functional; it further empowers development and testing entirely in-browser.

What’s Next

The team continues working to bring Xdebug support to more Playground builds and explore debugging directly within browser developer tools.

Try Xdebug today and share your feedback on the original tracking issue. Check the Xdebug documentation for more configuration instructions, IDE integration guides, and troubleshooting tips.

Props to @zieladam and @yannickdecat

Playground CLI adds ImageMagick, SOAP, and AVIF support

The WordPress Playground CLICLI Command Line Interface. Terminal (Bash) in Mac, Command Prompt in Windows, or WP-CLI for WordPress. version 3.0.20 is live! This update introduces powerful new 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. extensions (ImageMagick, SOAP, and AVIF GD Support) that enhance the capabilities of your in-browser WordPress instances, making the playground compatible with plugins and themes that utilize these extensions. Let’s dive into what’s new.

ImageMagick: Your All-in-One Image Processing

Many developers rely on ImageMagick for advanced image manipulation, and now you can use it directly within WordPress Playground. The new ImageMagick extension supports a wide range of formats, including: JPG, PNG, GIF, WEBP (for PHP 8.0 and newer).

This addition increases the PHP bundle size by approximately 4.39MB, a worthwhile trade-off for the power and flexibility it provides. We are also exploring the possibility of shipping ImageMagick in the browser in the future for even better performance.

SOAP Extension: Connecting to Web Services Made Easy

The SOAP extension now supports all PHP builds, allowing you to connect your Playground instances to SOAP-based web services.

Getting started is simple. Here’s a quick example of how you can use the SOAP client to convert temperatures:

<?php
try {
    // Create SOAP client that in theory Convert Celsius to Fahrenheit
    $client = new SoapClient('<your SOAP endpoint>');
    
    // Submit the values to the client
    $celsius = 25;
    $params = array('Celsius' => $celsius);
    $response = $client->CelsiusToFahrenheit($params);
    
    echo "Input: {$celsius}°C\n";
    echo "Result: {$response->CelsiusToFahrenheitResult}°F\n";
    
} catch (SoapFault $e) {
    echo "SOAP Error: " . $e->getMessage() . "\n";
} catch (Exception $e) {
    echo "Error: " . $e->getMessage() . "\n";
}

In the previous version of @wp-playground/cli, this code, it triggered a Fatal Error, and now it executes successfully. 

AVIF Support in the GD Extension

The GD extension in WordPress Playground now supports AVIF (AV1 Image File Format) for PHP 8.1 and newer. This enables you to convert images to and from the AVIF format, which provides higher compression, smaller file sizes compared to JPEG, and also supports transparency.

Now WordPress Playground compiles the libaom (AV1 codec) and libavif libraries (version 0.8.2) to WebAssembly, this is a significant technical achievement that brings modern image processing directly to your browser.

Two new functions are available for builders on WordPress Playground from the GD extension:

  • imagecreatefromavif: Reads an AVIF image and returns a GdImage instance for manipulation.
  • imageavi: Outputs or saves an image in AVIF format. With the possibility of setting quality and speed compression as parameters.

For more information, check the imageavif and imagecreatefromavif guides.

Practical Example

Convert a JPEG to AVIF:

<?php
// Load JPEG image
$image = imagecreatefromjpeg('photo.jpg');

// Save as AVIF with custom quality
imageavif($image, 'photo.avif', quality: 85);

// Clean up
imagedestroy($image);

echo "Converted photo.jpg to photo.avif\n";

Conclusion

These additions enhance the WordPress Playground’s compatibility with a broader range of plugins and themes. Is there another 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 you feel is essential to the WordPress ecosystem? Please let us know in the comments. 

To use the WordPress Playground’s latest version, run the command:

$ npx @wp-playground/cli@latest server

To learn more about @wp-playground/cli at the Playground CLI guide. You create! Share your projects and feedback with us in the  #playground Slack channel.