Skip to main content
One command gives you a local WordPress with Elementor and the companion plugin, ready for exjsx deploy and the MCP server. No Docker, no PHP, no MySQL, no git clone: it runs on WordPress Playground (PHP-WASM, pure Node) and hydrates from a pre-baked site snapshot, skipping the minutes a cold WordPress + Elementor install costs. First run downloads a ~50 MB snapshot once (cached under your home directory); later boots take a few seconds.

What is inside the snapshot

WordPress (Playground build), Elementor 4.2.1 (free), the elementor-ultra companion plugin, pretty permalinks, WP_ENVIRONMENT_TYPE=local baked into wp-config.php, the V4 atomic / classes / variables experiments active, and a minted local-dev application password.
The application password is baked into the snapshot and printed on every boot. It is a throwaway credential for a local-only dev site. Never reuse it anywhere real.

Flags and environment

Environment: ELEMENTOR_ULTRA_HOME overrides the cache location; ULTRA_PORT sets the port.

Crash supervision

PHP-WASM workers can crash (a bad CSS request was a reliable trigger in the field). The playground runs supervised: a crashed worker respawns automatically. If a request suddenly fails, wait about 15 seconds and retry before diagnosing; right after a respawn the worker answers health checks while still warming for tens of seconds.

The single-worker reality

The site is served by a single PHP-WASM worker: requests queue, and one heavy request blocks the rest. Treat a playground site as one-user-at-a-time. Two consequences worth knowing:
  • Right after boot or a bounce, allow generous timeouts; the provisioning tooling retries with growing timeouts for exactly this reason.
  • Missing static files 301-redirect to the homepage on Playground-style hosts, which makes a dead stylesheet look alive to naive checks. The companion plugin’s static-404 guard fixes this (see Plugin), and the doctor checks content-type, not just status.
Do not open playground-hosted pages in the Elementor editor. Editor sessions are the known trigger for global-class store wipes on this stack. If styles vanish after an editor visit, redeploy the bundle and run eu-studio doctor. On real sites the companion plugin’s store guards make editor coexistence safe; the playground is a dev bench, treat it like one.

Resetting and multiple sites

Run several isolated sites by giving each its own port and directory:
For a site that also needs the plugin patched to the latest checkout and Elementor Pro activated, use eu-studio newsite, which wraps the boot and verifies the result.