Test the fix in the time it takes to build the ZIP

A real, disposable WordPress — your user’s version, their host’s PHP — with your plugin already on it. One command.

instant demo launcher
WordPress.org plugin Click to search or edit
Launch demo

Search WordPress.org by name or slug. Your guest gets a fresh sandbox with the plugin active — no SandyWP account required. Themes work too.

Free plan: 2 sandboxes, no credit card · Paid plans from $7/month

What the person clicking that link gets

  • No account on their end
  • A fresh WordPress every launch
  • Your plugin already active
  • Themes work the same way

Trusted by

PublishPressPaywallProjectNewsletter GlueInfinite UploadsMetaSlider

Most of your test loop isn’t testing

Count the steps between finding a bug and knowing the fix worked.

the loop you’re in 7 steps · every time
  1. Build the ZIP.
  2. Log into a host, or wake staging.
  3. Plugins → Add New → Upload → Install Now.
  4. Deactivate the old copy; it won’t overwrite.
  5. Click through until the bug shows up.
  6. White screen. Is debug logging even on?
  7. One typo. Back to step one.

None of it is the part you are good at.

the loop you get 4 steps · one command
  1. One command, against a sandbox that already exists.
  2. Click through it on a real, public URL.
  3. Read debug.log beside the toggle that filled it.
  4. Fix the typo. Same command again.

Or say it once to the agent in your editor.

“I build throwaway WordPress sites all day, to reproduce a bug or test a plugin. SandyWP makes that a single click. I liked it immediately.”
Austin Ginder anchor.host

The upload step disappears, whichever tool you’re already in

Five ways. Pick the one nearest your hands.

cli deploy

The build is live before the browser finishes loading

Installs and activates a local ZIP. No upload form.

$ sandywp deploy acme-forms build/acme-forms.zip Every CLI command

git deployment

Push the branch; the sandbox already has it

Auto-deploy on push. Public or private repos.

$ git push origin fix/checkout-total How git deploys work

push local

The local site, on a URL you can send

Mirrors a local install, database and all.

$ cd ~/Sites/acme-forms && sandywp push Push a local site

mount

Edit the live site from your own editor

Save the file, refresh the tab.

$ sandywp mount acme-forms Mount a sandbox

slack

Hand a build to someone without your toolchain

Attach a ZIP to a mention. Nobody installs Node.

@SandyWP deploy development SandyWP for Slack

github previews

Turn the pull request into a reviewable WordPress site

A trusted collaborator tags SandyWP; the bot deploys and verifies the exact PR commit.

@sandywp-bot deploy SandyWP for GitHub

Three of the five are the CLIevery command it has.

The one-star review comes from the combination you never tried

Somebody is stuck on WordPress 6.6 and PHP 8.1; somebody else is already on 7.1 RC 1.

WordPress

Latest · 7.0.37.1 RC17.0.37.06.96.86.76.6

PHP

8.38.28.17.4

Extras

MultisiteSSHWP-CLI
24

stable WordPress × PHP pairs.

6.6–7.0.3

pinnable releases, plus the 7.1 RC 1 track.

5–10s

to switch PHP on a running sandbox.

before it ships

The compatibility notice arrives from you, not from a one-star review

Click the paths deprecations break, before your users do.

Test on WordPress 7.1 RC 1
  • WordPress 7.1 lands 19 August 2026
  • Same debug toggles, same log, same SSH

A stack trace beats “it doesn’t work on my site”

The half of a bug report you never get is what the server saw.

  • Flip the WP_DEBUG constants per sandbox. No wp-config surgery.
  • Read debug.log in the dashboard, or tail -f it over SSH.
  • Open the database manager when the bug is a row, not a line.
  • Reset to a clean install when it is beyond saving.
Match the host your user is stuck with, then reproduce the memory error.
php.ini settingDefaultRange
Memory limit256 MB64 – 512 MB
Max execution time300s10 – 300s
Upload max filesize256 MB2 MB – 5 GB
Post max size256 MB8 MB – 5 GB
Max input vars1000100 – 10,000
allow_url_fopenOnOn / Off

Six of the nine tunable values.

Some answers take one command and no clicking at all

A real shell with WP-CLI, so tail -f wp-content/debug.log behaves as you expect.

Your own container. Keys only (ed25519, or RSA of at least 3072 bits), off by default.

Port
2222
Idle timeout
15 min
Max session
4 hours
Sessions per sandbox
3
One-click session key
~60 min
Key max expiry
365 days

The awkward setup you rebuild every release, built once

Snapshot any sandbox — versions, plugins, theme, content, database — and relaunch it on demand. The combination that broke you becomes a fixture.

  • The conflicting plugin set a customer reported.
  • A store with 200 orders for the checkout bug to happen to.
  • A configured demo with a public launch link.

Your agent can run the boring half while you keep writing code

You describe the change; it comes back with the stack trace.

  1. 1 create the site
  2. 2 deploy the build
  3. 3 read debug.log
  4. 4 tell you what broke

mcp server

Wire it up once, in the client you already talk to

One OAuth approval, then 51 tools: sandboxes, logins, PHP config, debug.log, files, git deploys.

claude mcp add --transport http sandywp https://app.sandywp.com/mcp

cli

Anything with a shell can already do this

Every command you would type, your agent can run.

npx @sandywp/cli deploy acme-forms acme-forms.zip

llms.txt

Agents that have never heard of SandyWP work it out

A machine-readable quickstart at the site root.

https://sandywp.com/llms.txt

More on AI development and AI features.

Three sites your laptop can’t give you

try-it link

A reviewer who installs nothing still sees it working

Send /plugins/<your-slug>. A fresh WordPress, your plugin active, no account.

sandywp.com/plugins/your-plugin

cloner

It only breaks on their site? Then debug their site

The free Cloner plugin copies their live site into a sandbox. Production is only read.

wordpress.org/plugins/sandywp-cloner

multisite

The network install you don’t have lying around

Tick multisite at create time. A real subdirectory network.

Create → Multisite (subdirectory)

How Cloner packages a live site, and what it touches.

More sandboxes than you’ll use, for less than a hosting bill

Priced on active sandboxes — not seats, not sites-under-management.

Free

$0forever

No card required

For finding out whether this fits.

  • 2 active sandboxes
  • 256 MB storage
  • 1-week default lifespan
  • File manager and debug mode
  • No card

Plus

$7/month

$70/year — 2 months free

Where the ZIP-and-upload loop disappears.

  • 10 active sandboxes
  • 5 GB storage
  • CLI: deploy, push, ssh, mount
  • Git deployment and Slack
  • PHP version and php.ini
  • Permanent sandboxes

Pro

$17/month

$170/year — 2 months free

Keep a version matrix standing.

  • 25 active sandboxes
  • 15 GB storage
  • Everything in Plus
  • A sandbox per WordPress version
  • Long-lived demo sites

the arithmetic

Between $0.54 and $0.70 per sandbox, per month

50 sandboxes on Max is $0.54 each; 10 on Plus is $0.70. Yearly drops it further.

SandyWP vs InstaWP, in full

The honest caveat: CLI, SSH, git deployment, Slack, PHP control and permanent sandboxes all start at Plus.

Questions plugin developers ask

How fast is “seconds,” really?

About 30 seconds from the warm pool. Pinned versions, multisite and preinstalled plugins provision cold and take longer.

Which parts need a paid plan?

CLI, git deployment, Slack, PHP control and permanent sandboxes. Free gives you 2 sandboxes, 256 MB and a 1-week lifespan.

How big a plugin ZIP can I deploy?

ZIP upload caps at 50 MB. Bigger builds go over git or a mount.

Is my sandbox isolated from everybody else’s?

Own container, own database. SSH lands you inside it — never the host, never another tenant.

How long does a sandbox live?

Default 1 week; 1 hour to permanent at create time. Past a week needs a paid plan.

What actually happens when one expires?

It stops, then waits before permanent deletion: 6 hours for guests, 12 hours on Free, 7 days on paid.

Can I test against the next WordPress before it ships?

Yes — 7.1 RC 1 is a create-time option, always provisioned cold. WordPress 7.1 is due 19 August 2026.

Does this replace my local environment?

No. Keep building locally; this is where the build meets a real server and a public URL.

What if I break the site?

Reset it to a clean install — same URL, same admin login — or delete it and start again.

Can my testers launch a demo without an account?

Yes. /plugins/<slug> gives a guest a fresh WordPress with that plugin active, for 7 hours.

Can my agent do all of this, or only some of it?

Nearly all of it. Local ZIP deploys are the exception — those go through the CLI.

Your next bug fix doesn’t need a hosting account.

Free plan, 2 sandboxes, no card.