SandyWP / for educators & course creators

Your class starts on minute one

Not minute forty. One link, and every student lands in wp-admin on the WordPress you prepared.

The first forty minutes of a WordPress workshop are not about WordPress

You planned a lesson on the block editor. Instead you are crouched beside a laptop.

The usual first hour 40 min gone
  1. 0:00 Everyone starts a download Hundreds of megabytes, on venue Wi-Fi.
  2. 0:12 Four operating systems, four problems One Chromebook cannot run it at all.
  3. 0:26 The versions drift apart Two WordPress versions, three PHP versions.
  4. 0:38 “It works on mine” Nineteen people watch you debug antivirus.
  5. 0:41 The lesson finally begins You have not opened the block editor.

And one student never got there at all.

With one launch link 2 min
  1. 0:00 You paste one link In the chat, the slide, the lesson page.
  2. 0:01 Everyone clicks it A separate WordPress opens in wp-admin.
  3. 0:02 You start teaching Same version, same plugins, same screen.

Thirty-eight minutes of your class, handed back.

Trusted by

PublishPressPaywallProjectNewsletter GlueInfinite UploadsMetaSlider

Prepare the room once, not once per student

1

Build the environment once

Choose the WordPress and PHP versions, then install the lesson material.

2

Save it as a template

Freeze the configured site so every student starts from the same state.

3

Share the launch link

Put one link in your chat, slide deck, or learning platform.

4

Everyone gets their own copy, straight into wp-admin

Each learner gets isolated files, a database, and a URL.

The student who deletes the database deletes their own database

On a shared demo site, student three changes the permalink structure and nineteen people are lost.

  • One site per student — own URL, files and database
  • A break stops at one sandbox
  • “Deactivate every plugin and see” becomes a reasonable exercise
See how templates work
class · wp-101 / lesson 3
wp101-nadia.sandywp.com ready

Lesson 3 · editing a pattern

Own database, own files, own URL.
wp101-theo.sandywp.com broken

White screen after a theme edit

Nobody else noticed. Reset
wp101-priya.sandywp.com ready

Lesson 3 · editing a pattern

Unaffected by anything Theo did.

What you stop worrying about on teaching day

same screen

Your instructions match what they are looking at

no installs

A Chromebook is enough

safe to break

Students can break things, which is how they learn

self-cleaning

No cleanup day and no lingering bill

optional email gate

A free workshop can also build your list

white label

The environment carries your course’s name, not ours

SandyWP / templates & the version track

The lesson you recorded in March still matches their screen in November

A course goes stale the moment WordPress moves and your screenshots do not. The template pins WordPress and PHP.

  • WordPress 7.0.2, or a pinned release back to 6.6
  • PHP 8.1, 8.2 or 8.3
  • Or the 7.1 beta, months early
  • Re-save to move future launches; existing copies untouched
template · pinned stack
WordPress 7.0.2 pinned

What your template pins today.

PHP 8.3 pinned

Pinned alongside it.

WordPress 6.6 → 7.0 available

For a course on an older release.

WordPress 7.1 Beta 3 pre-release

Months before it ships.

SandyWP / debug mode

Turn the white screen of death into the best lesson of the day

The first time a beginner sees a blank page, they usually close the laptop. Debug mode turns it into a line number.

  • WP_DEBUG, WP_DEBUG_LOG, WP_DEBUG_DISPLAY and SCRIPT_DEBUG as toggles
  • No wp-config.php surgery, no FTP client
  • A live debug.log viewer beside them
  • Break it on purpose, read the trace, reset
wp101-theo · debug
WP_DEBUGWP_DEBUG_LOGWP_DEBUG_DISPLAYSCRIPT_DEBUG

[09:14:02 UTC] PHP Notice: Undefined variable $items in themes/lesson-theme/functions.php on line 38

[09:14:07 UTC] PHP Fatal error: Uncaught Error: Call to undefined function lesson_helper() in themes/lesson-theme/functions.php:42

#0 wp-includes/class-wp-hook.php(324): lesson_theme_setup()

wp-content/debug.log · live

SandyWP / SSH, SFTP and the CLI

A command-line module usually dies on logistics. This one does not.

Teaching WP-CLI normally means building a lab nobody wants to maintain. Every sandbox already is one.

  • A real shell in the sandbox’s own container, never the host
  • wp-cli preinstalled; SFTP or mount over the same gateway
  • Prep sandboxes from your terminal with npx @sandywp/cli

SSH is paid-plan only, off by default, key-based, with sessions ending at 15 minutes idle or 4 hours.

lesson 7 · wp-cli

$ npx @sandywp/cli ssh wp101-nadia

www-data@sandywp:/var/www/html$

$ wp plugin list --status=active --field=name

lesson-toolkit

classic-editor

$ wp post create --post_title='Hello, class' --post_status=publish

Success: Created post 12.

$ wp option get blogname

WP 101 · Lesson 7

Three ways teachers use the same launch link

A workshop or a WordCamp session

One link in the chat levels the room.

Templates

A self-paced course, lesson by lesson

One template per module. Lesson six starts at lesson six.

Templates

Customer and staff training

Clone production and train on the copy.

Cloner

Useful the day your syllabus grows

Plugin and theme development

Wire up a GitHub repo; a push lands in wp-content.

Git deployment

AI-assisted coursework

Point Claude at a sandbox where mistakes are free.

AI & MCP

A cohort that lives in Slack

Mention the bot; a sandbox appears in the thread.

Slack

The parts worth knowing before you plan the session

A room full of people is a bad place to discover a limit.

Guest launches last seven hours.

A full-day workshop, not a six-week course.

Account sandboxes default to a week.

1 hour to 1 week on any plan; 2 weeks to permanent is paid.

Guest launches are rate limited per IP.

One per visitor, three per IP — one room on one Wi-Fi hits that.

Sandboxes you create count against your plan.

Provision the class yourself and that limit is your class size.

Free

$0no card required

2 sandboxes at once

256 MB storage

Building the lesson.

Plus

$7per month · $70/yr

10 sandboxes at once

5 GB storage

A study group.

Max

$27per month · $270/yr

50 sandboxes at once

30 GB storage

A large cohort.

Yearly billing is ten months for twelve. A class of twenty you provision yourself wants Pro.

SandyWP / good to know

What instructors ask

Do students need an account?

No. A public launch link needs no signup.

How long do the student sites last?

Guests, seven hours. Account sandboxes, a week by default, up to permanent on paid.

Can I control which WordPress and PHP version they get?

The template pins both: 7.0.2 back to 6.6, or the 7.1 beta, on PHP 8.1, 8.2 or 8.3.

Can I preinstall the plugins and demo content?

A template captures the whole site. For one WordPress.org plugin, app.sandywp.com/plugins/<slug> needs no account.

What if a student destroys their site mid-lesson?

They reset to a clean slate.

Can I put my own branding on it?

Your logo, colours and copy, plus a toggle that hides “Powered by SandyWP”.

Can I capture emails from a free workshop?

Turn on the optional email gate, then export the list.

Can I teach a WP-CLI module?

Yes — real shell, wp-cli preinstalled. SSH is paid-plan only and off by default.

Does this work for a 50-person room?

Provisioning them yourself needs Pro (25) or Max (50). Otherwise have students sign in.

Spend the first hour teaching.

Build it once, share one link, and let the room take care of itself.