Not a spinner.
A running commentary.

Provisioning a staging takes minutes and touches a dozen moving parts. Instead of a progress bar that tells you nothing when it stalls, you get the actual steps as they happen — which table is importing, which file was skipped for being too large, which plugin updated and whether it survived.

✓ Streamed live ✓ Decisions, not just actions ✓ Kept with the site
Feed specLive
TransportServer-sent events
Backup phasesDump, zip, upload
Restore stepsDownload, import, rewrite
Update outcomesPer plugin and theme
Integrity scanChecksums vs wordpress.org
Egress decisionsWhich hosts, allowed or not
Skipped filesNamed, with sizes
Container logsPHP errors included
RetentionKept with the site

The log records the decision,
not just the action.

When a site over the size threshold switches to quick mode, the log does not say "quick mode". It says how big the site measured, what the threshold is, that uploads were therefore skipped, and that images will be served from the live site instead — so when someone asks three days later why the pictures load from production, the answer is already written down. The same applies to files skipped for exceeding the per-file cap: each one is named with its size, rather than silently missing from the copy.

Four kinds of entry.

Getting the site across

The backup advances in slices and each one reports in: dumping the database, zipping files, uploading each part. Then the restore side — downloading, importing, rewriting URLs across serialized data, fixing ownership.

What the update did

Plugin and theme updates inside the staging report back with the version they came from, the version they went to, and whether the site still worked afterwards — including the error if it did not. That is the question you came here to answer.

What the site tried to reach

Outbound requests are denied by default. When one is refused, the host shows up here, and on the site page you can approve it for future launches — so a licence check that fails stops being a mystery and becomes a decision.

What broke

PHP errors from inside the container are routed into the same stream, so a plugin that fatals during boot shows its stack trace here instead of only on a page nobody was looking at.

Watch it happen.

Connect a site and the feed starts with the first analysis.

Start free How staging works →