Skip to main content

PBJ Studio Sync Changelog (v3.0.0): Sync by Type, Full Copy, and a Guided Setup

Version 3.7.1 — security hardening

The Studio-only endpoints introduced in 3.7.0 are no longer created on a live site at all.

  • Before this release they were created everywhere and simply refused anything that reached them on live — an unauthenticated request got “Authentication required”, and even a signed-in administrator got nothing back. That worked, but the addresses were still listed in the site’s public index of available endpoints, which quietly advertised a remote-control surface with a single permission check in front of it.
  • The same fix was applied to the push-control endpoints, not only the development ones. Both had the identical shape, and fixing only the one that had been noticed would have left the other exactly as it was.
  • All the original permission checks remain. This is a second lock on a door that was already locked, on the principle that an address able to run code should take more than one mistake to reach.
  • Nothing changes on Studio: every endpoint, the companion tool and the configuration switch all behave exactly as before.

Version 3.7.0 — a push can no longer overwrite newer content

Before any push that includes posts or pages, this Studio site and your live site are now compared by slug and last-modified date, and the push stops if Studio’s copy of anything is older than live’s, or if live has something Studio does not. Nothing checked this before: the pre-push comparison only ever looked at plugin files, so a stale Studio could sit unnoticed for months, one full push away from wiping out every changelog entry written on live.

  • The refusal tells you whether it actually matters. A bulk re-save on live changes dozens of timestamps without changing a word. Each blocked item is listed with its type, slug, both dates, and a verdict of “same (timestamp only)” or “DIFFERS”, worked out by comparing the content itself on the live server — post bodies never cross the wire.
  • You can override it, but only deliberately. Type a confirmation phrase on the dashboard and the approval lasts ten minutes, is used up by the very next push, and is tied to the exact set of conflicts you were shown. Approving today’s harmless drift can never silently approve tomorrow’s real one.
  • Pushes that carry no content — Plugins only, Media only — are not affected and work exactly as before.
  • New: pull PBJ CRM and Helpdesk records down from live so you can test against real tickets, employees and contacts. Live is only ever read from; nothing on it is created, changed or deleted.
  • New: automatic backup cleanup. Backups have never been tidied up at all. You can now keep the newest few — switched off by default, and until you switch it on it only writes a line to the log naming what it would have removed.
  • New: the plugin can be driven and inspected without a browser at all. A set of Studio-only endpoints exposes the site’s settings, logs, files, posts and database, and a companion tool speaks to them, so a release or a diagnosis no longer depends on clicking through wp-admin. These endpoints refuse outright on a live site, and the powerful ones stay switched off until you add a line to your configuration yourself.
  • Fixed: if this computer’s clock ever moved backwards, the “last push” marker could end up in the future and every push after that silently skipped everything older than it — reporting success while sending far less than it claimed.
  • Fixed: the progress bar dropped to 0% during two of the stages, because both were missing from the list it measures against.

Version 3.6.0 — the push drives itself

Starting a push now hands the work to a server-side driver, using the same fire-and-forget trick WordPress uses for its own scheduled tasks. The transfer keeps going with the tab in the background, the browser closed, or anything else getting in the way — the admin page just shows progress.

  • The old way is still underneath as an automatic fallback. If the server cannot talk to itself (a few hosts block that), the open admin page quietly goes back to driving the push exactly as before. No setting, nothing to do.
  • Two drivers can never step at once. A database-level lock protects the run — the final commit step is the one thing that must never happen twice.
  • Only Studio needs this update. The live site is untouched.

Version 3.5.0 — a push no longer overwrites settings changed on live

Every managed setting is compared against what BOTH sites held at the last successful sync: changed in Studio only, it is sent; changed on live only, it is left alone; changed in both, the push stops before it starts and asks you, in plain English, with keep-live pre-selected. Unattended runs keep live and log it. Full Copy still copies everything, because that is what COPY TO LIVE means. Only Studio needs this update.

Version 3.4.1 — flaky connections stop killing pushes

A single dropped connection mid-push used to abort the whole run. Connection-level blips are now retried automatically (real errors and bad certificates are not, and the final commit call is never retried because it may have already landed). Only Studio needs this update.

PBJ Studio Sync is our deployment tool for WordPress Studio: a one-way push from a local Studio (SQLite) site to a live (MySQL) site, with backup-to-file on live and a backup importer on Studio. Content moves over the WordPress REST API as native WordPress objects, so the SQLite-to-MySQL differences are handled by WordPress itself. It’s also our most actively developed plugin — here are the release notes, with recent versions in full and earlier milestones summarized.

Version 3.4.0 — a hook for the moment a push lands

Released July 14, 2026.

  • New pbj_sync_after_commit hook on the receiving site: fires after a push has fully committed — files promoted, URLs swept, caches flushed — with the session id and the commit summary. It fires on the commit response itself, so other plugins can react instantly: PBJ SEO 3.4.0 uses it to purge the LiteSpeed edge cache automatically after every push, ending the stale-pages-after-a-sync problem.

Version 3.3.0 — relative URLs, the new default

Released July 13, 2026.

  • Pushed content now carries root-relative URLs (/page/, /wp-content/uploads/…) instead of absolute ones, so a Studio port change or a future domain move can never break links or images. Older pushers automatically keep the previous absolute behavior, and Setup → “URL handling” switches back if you prefer it.

Version 3.2.1

  • Fix: the navigation-block id remap now passes correctly slashed data to WordPress, preventing corrupted page-builder layouts (empty navigation blocks) after a push.

Version 3.2.0 — theme parity and block menus

  • Live’s active theme now switches to match Studio after a push, with an opt-in theme deletion sync that never touches the running theme or its parent.
  • Block-based navigation menus (wp_navigation) travel with Content, with their internal links remapped correctly on live.
  • Per-user “Push to live” button and a read-only Live users viewer.

Version 3.1.0 — plugin deletion sync

  • Opt-in plugin deletion sync: plugins you deleted on Studio can now be mirror-deleted on live during a Dashboard push — never the sync plugin itself, excluded plugins, or single-file drop-ins.

Version 3.0.0 — the guided release: Sync by Type and Full Copy

Studio Sync 3.0 is a ground-up rebuild of the admin as a guided, per-sync-type UI. Every page now walks you through what it does — nothing is left to guessing. The push engine itself is untouched: no push or receiver logic changed, every 2.x safety rail is intact, and 2.x ↔ 3.0 pushes remain compatible.

  • New “Sync by Type” tab — one sub-page per sync type: Content, Media, Menus, Theme, Plugins, Site Settings, Users, Deletions. Each page explains in plain English exactly what that type moves and how it behaves, holds only that type’s settings (savable on its own), and has a “Push [type] to live now” button that syncs just that one thing. Want to push only your menus? Now it’s one button.
  • New “Full Copy” tab — whole-site copies in one click, both directions. Copy Studio → Live pushes everything and prunes, making live an exact copy; Copy Live → Studio pulls a fresh live backup and imports it locally — no more generate-download-upload juggling. Both sit behind a typed confirmation phrase plus a final confirm, and every existing protection still applies (site URLs, operator login, application passwords, roles, and unmanaged plugins are never touched).
  • Dashboard “How Studio Sync works” stepper — three numbered steps (Connect → Choose → Push), each showing live status and linking to the tab where it happens.
  • Settings is now “Setup” — a numbered connection walkthrough (URL → user → Application Password → save → inline Test connection), then sync-behavior defaults, each section saving independently.
  • Compare & Sync gained a numbered how-to, and the Logs tab now explains where receiving-side errors live.

Licensing note: Studio Sync 3 is a new major version. Existing 2.x license keys keep working on 2.x forever — your installed plugin never breaks — and moving to 3.0 is a new purchase, same one-time price.

Version 2.11.0

  • Page hierarchy survives the push. Every page now travels with its parent’s slug, and the receiver resolves it to its own ID — children that arrive before their parent are fixed at commit. Previously child pages landed flat at top level on live.
  • Commit gets its own 150-second timeout. Large staged promotes (5,000+ theme files) exceeded the old 30s client timeout and reported “cURL error 28” for commits that actually completed on live.
  • New parents_fixed total and [post parent] error entries in the push summary.

Version 2.10.0

  • Added a License section in Settings (bundled client SDK; the key unlocks automatic updates through the WordPress admin). The plugin remains fully functional without a key.

Version 2.9.6

The push summary now reports postmeta-only edits separately — N/M posts (new/upd, K meta-only) — so you can confirm from the log that meta-only changes like SEO descriptions travelled. The syncing itself was already handled by the meta-dirty pass added in 2.9.2; this is a reporting improvement.

Version 2.9.4

  • New: mu-plugins sync stage. Must-use plugin files now push like theme/plugin files — staged during the run, promoted atomically at commit — behind a “Must-use plugin files” toggle (default on). Studio’s own runtime pieces (the SQLite integration and Studio loader) are always excluded on both sides: never pushed, never touched.
  • New: opt-in mu-plugins purge (mirror). When enabled, retiring an mu-plugin on Studio retires it on live on the next push. Off by default, because many hosts install their own mu-plugins into sites and a default-on purge would silently delete them. The exclude list can never be purged, and the manifest is rebuilt from disk so incremental runs can’t purge unchanged files.

Version 2.9.3

  • Fixed: featured images survive the sync. Featured images are stored as attachment IDs, which get reassigned on the receiving site — so a synced page’s featured image could point at the wrong (or no) attachment on live. The pusher now sends the thumbnail’s file path alongside each post and the receiver re-resolves it to its own attachment ID.
  • Per-environment plugin config excluded from options sync. Security and caching plugin settings (Really Simple Security, LiteSpeed) are inherently per-environment; they’re no longer pushed, pruned, or counted on Compare.

Version 2.9.2

  • Fixed: excluded plugins are now fully unmanaged. The activation-state mirror no longer deactivates a plugin that’s active only on live (like a host’s caching plugin) just because Studio doesn’t have it active.
  • Fixed: incremental pushes no longer skip posts whose only change was postmeta. Meta edits (SEO descriptions, featured images, builder data) don’t bump a post’s modified date, so those posts used to stay stale on live. Studio now tracks meta-dirty posts and pushes them in an extra pass.

Version 2.9.1

  • Fixed: brand-new plugins pushed in a run are now activated on live — previously a plugin whose files arrived in the same push could land on live deactivated, with no error reported.
  • Fixed: syncing the front-page setting no longer 404s the live homepage. Page IDs aren’t stable across sites, so the pusher now sends the page’s slug and the receiver resolves it to its own ID.
  • The post-push front-end check now also fails on error pages (HTTP 400+), not just leaked Studio URLs.

Version 2.9.0 — hardening release

A “no silent losses” release, plus readiness for Studio’s native PHP runtime:

  • A push with errors no longer advances the incremental watermark — failed content is retried on the next push instead of being silently skipped forever.
  • Live-side promote errors now surface in the Studio UI; chunked uploads are integrity-checked and retried; failed deletions are retried on the next push.
  • A crashed run auto-clears after 10 minutes instead of blocking forever, and “wipe first” imports validate the whole backup before touching anything.
  • Native PHP runtime support (Studio 1.12+): time limits and TLS verification handled properly, with a new “Verify TLS certificates” setting.
  • Better error messages (URL, HTTP code, and body snippet on non-JSON responses) and a far more robust browser progress flow with resume-or-cancel on failures.

Earlier milestones

  • 2.8.0 — Origin-URL rewriting on push: every outbound payload is rewritten from the Studio localhost URL to the live URL (including JSON-escaped builder data and PHP-serialized values), plus a live-side URL sweep at commit and a post-push front-end assertion so a URL leak can never masquerade as a clean push.
  • 2.7.0 — A failed commit no longer reports success; no-op push warnings; a new Export & Import tab (WXR export + full backup zip from Studio); and Auto Sync (merge newest) that merges Studio and live in both directions, newest wins, strictly additive.
  • 2.6.x — Navigation menus sync, with portable references that survive the ID reassignment between sites; menu items pointing at live-only pages are kept as custom links instead of dropped.
  • 2.5.x — A push can no longer disable its own REST authentication mid-run (critical fix); Compare & Sync counts became meaningful; the Compare page’s Plugins section deliberately bypasses the exclude list.
  • 2.3.0–2.4.0 — Critical safety guards so a sync can never delete role definitions or lock an administrator out of the live site, while still letting settings and theme-mods sync across differing table prefixes.
  • 2.2.0 — Prune (true mirror): optional, confirmed deletion of destination items that don’t exist on the source, with hard protections for the sync plugin, the logged-in admin, and brick-critical options.
  • 2.1.0 — Syncs all content post types (including private CPTs like forms), and mirrors plugin active/inactive status.
  • 2.0.0 — Full-site sync: options and users become opt-in sync sections, and the Compare & Sync tab arrives with per-section Upload/Download.
  • 1.5.x — Crash-safe theme/plugin file sync via atomic staging, media deletion sync, permalink repair, and correct upload-before-posts stage ordering.
July 4, 2026
PBJ Studio Sync 3.0 — guided dashboard with Sync by Type and Full Copy

Version 3.7.1 — security hardening

The Studio-only endpoints introduced in 3.7.0 are no longer created on a live site at all.

  • Before this release they were created everywhere and simply refused anything that reached them on live — an unauthenticated request got “Authentication required”, and even a signed-in administrator got nothing back. That worked, but the addresses were still listed in the site’s public index of available endpoints, which quietly advertised a remote-control surface with a single permission check in front of it.
  • The same fix was applied to the push-control endpoints, not only the development ones. Both had the identical shape, and fixing only the one that had been noticed would have left the other exactly as it was.
  • All the original permission checks remain. This is a second lock on a door that was already locked, on the principle that an address able to run code should take more than one mistake to reach.
  • Nothing changes on Studio: every endpoint, the companion tool and the configuration switch all behave exactly as before.

Version 3.7.0 — a push can no longer overwrite newer content

Before any push that includes posts or pages, this Studio site and your live site are now compared by slug and last-modified date, and the push stops if Studio’s copy of anything is older than live’s, or if live has something Studio does not. Nothing checked this before: the pre-push comparison only ever looked at plugin files, so a stale Studio could sit unnoticed for months, one full push away from wiping out every changelog entry written on live.

  • The refusal tells you whether it actually matters. A bulk re-save on live changes dozens of timestamps without changing a word. Each blocked item is listed with its type, slug, both dates, and a verdict of “same (timestamp only)” or “DIFFERS”, worked out by comparing the content itself on the live server — post bodies never cross the wire.
  • You can override it, but only deliberately. Type a confirmation phrase on the dashboard and the approval lasts ten minutes, is used up by the very next push, and is tied to the exact set of conflicts you were shown. Approving today’s harmless drift can never silently approve tomorrow’s real one.
  • Pushes that carry no content — Plugins only, Media only — are not affected and work exactly as before.
  • New: pull PBJ CRM and Helpdesk records down from live so you can test against real tickets, employees and contacts. Live is only ever read from; nothing on it is created, changed or deleted.
  • New: automatic backup cleanup. Backups have never been tidied up at all. You can now keep the newest few — switched off by default, and until you switch it on it only writes a line to the log naming what it would have removed.
  • New: the plugin can be driven and inspected without a browser at all. A set of Studio-only endpoints exposes the site’s settings, logs, files, posts and database, and a companion tool speaks to them, so a release or a diagnosis no longer depends on clicking through wp-admin. These endpoints refuse outright on a live site, and the powerful ones stay switched off until you add a line to your configuration yourself.
  • Fixed: if this computer’s clock ever moved backwards, the “last push” marker could end up in the future and every push after that silently skipped everything older than it — reporting success while sending far less than it claimed.
  • Fixed: the progress bar dropped to 0% during two of the stages, because both were missing from the list it measures against.

Version 3.6.0 — the push drives itself

Starting a push now hands the work to a server-side driver, using the same fire-and-forget trick WordPress uses for its own scheduled tasks. The transfer keeps going with the tab in the background, the browser closed, or anything else getting in the way — the admin page just shows progress.

  • The old way is still underneath as an automatic fallback. If the server cannot talk to itself (a few hosts block that), the open admin page quietly goes back to driving the push exactly as before. No setting, nothing to do.
  • Two drivers can never step at once. A database-level lock protects the run — the final commit step is the one thing that must never happen twice.
  • Only Studio needs this update. The live site is untouched.

Version 3.5.0 — a push no longer overwrites settings changed on live

Every managed setting is compared against what BOTH sites held at the last successful sync: changed in Studio only, it is sent; changed on live only, it is left alone; changed in both, the push stops before it starts and asks you, in plain English, with keep-live pre-selected. Unattended runs keep live and log it. Full Copy still copies everything, because that is what COPY TO LIVE means. Only Studio needs this update.

Version 3.4.1 — flaky connections stop killing pushes

A single dropped connection mid-push used to abort the whole run. Connection-level blips are now retried automatically (real errors and bad certificates are not, and the final commit call is never retried because it may have already landed). Only Studio needs this update.

PBJ Studio Sync is our deployment tool for WordPress Studio: a one-way push from a local Studio (SQLite) site to a live (MySQL) site, with backup-to-file on live and a backup importer on Studio. Content moves over the WordPress REST API as native WordPress objects, so the SQLite-to-MySQL differences are handled by WordPress itself. It’s also our most actively developed plugin — here are the release notes, with recent versions in full and earlier milestones summarized.

Version 3.4.0 — a hook for the moment a push lands

Released July 14, 2026.

  • New pbj_sync_after_commit hook on the receiving site: fires after a push has fully committed — files promoted, URLs swept, caches flushed — with the session id and the commit summary. It fires on the commit response itself, so other plugins can react instantly: PBJ SEO 3.4.0 uses it to purge the LiteSpeed edge cache automatically after every push, ending the stale-pages-after-a-sync problem.

Version 3.3.0 — relative URLs, the new default

Released July 13, 2026.

  • Pushed content now carries root-relative URLs (/page/, /wp-content/uploads/…) instead of absolute ones, so a Studio port change or a future domain move can never break links or images. Older pushers automatically keep the previous absolute behavior, and Setup → “URL handling” switches back if you prefer it.

Version 3.2.1

  • Fix: the navigation-block id remap now passes correctly slashed data to WordPress, preventing corrupted page-builder layouts (empty navigation blocks) after a push.

Version 3.2.0 — theme parity and block menus

  • Live’s active theme now switches to match Studio after a push, with an opt-in theme deletion sync that never touches the running theme or its parent.
  • Block-based navigation menus (wp_navigation) travel with Content, with their internal links remapped correctly on live.
  • Per-user “Push to live” button and a read-only Live users viewer.

Version 3.1.0 — plugin deletion sync

  • Opt-in plugin deletion sync: plugins you deleted on Studio can now be mirror-deleted on live during a Dashboard push — never the sync plugin itself, excluded plugins, or single-file drop-ins.

Version 3.0.0 — the guided release: Sync by Type and Full Copy

Studio Sync 3.0 is a ground-up rebuild of the admin as a guided, per-sync-type UI. Every page now walks you through what it does — nothing is left to guessing. The push engine itself is untouched: no push or receiver logic changed, every 2.x safety rail is intact, and 2.x ↔ 3.0 pushes remain compatible.

  • New “Sync by Type” tab — one sub-page per sync type: Content, Media, Menus, Theme, Plugins, Site Settings, Users, Deletions. Each page explains in plain English exactly what that type moves and how it behaves, holds only that type’s settings (savable on its own), and has a “Push [type] to live now” button that syncs just that one thing. Want to push only your menus? Now it’s one button.
  • New “Full Copy” tab — whole-site copies in one click, both directions. Copy Studio → Live pushes everything and prunes, making live an exact copy; Copy Live → Studio pulls a fresh live backup and imports it locally — no more generate-download-upload juggling. Both sit behind a typed confirmation phrase plus a final confirm, and every existing protection still applies (site URLs, operator login, application passwords, roles, and unmanaged plugins are never touched).
  • Dashboard “How Studio Sync works” stepper — three numbered steps (Connect → Choose → Push), each showing live status and linking to the tab where it happens.
  • Settings is now “Setup” — a numbered connection walkthrough (URL → user → Application Password → save → inline Test connection), then sync-behavior defaults, each section saving independently.
  • Compare & Sync gained a numbered how-to, and the Logs tab now explains where receiving-side errors live.

Licensing note: Studio Sync 3 is a new major version. Existing 2.x license keys keep working on 2.x forever — your installed plugin never breaks — and moving to 3.0 is a new purchase, same one-time price.

Version 2.11.0

  • Page hierarchy survives the push. Every page now travels with its parent’s slug, and the receiver resolves it to its own ID — children that arrive before their parent are fixed at commit. Previously child pages landed flat at top level on live.
  • Commit gets its own 150-second timeout. Large staged promotes (5,000+ theme files) exceeded the old 30s client timeout and reported “cURL error 28” for commits that actually completed on live.
  • New parents_fixed total and [post parent] error entries in the push summary.

Version 2.10.0

  • Added a License section in Settings (bundled client SDK; the key unlocks automatic updates through the WordPress admin). The plugin remains fully functional without a key.

Version 2.9.6

The push summary now reports postmeta-only edits separately — N/M posts (new/upd, K meta-only) — so you can confirm from the log that meta-only changes like SEO descriptions travelled. The syncing itself was already handled by the meta-dirty pass added in 2.9.2; this is a reporting improvement.

Version 2.9.4

  • New: mu-plugins sync stage. Must-use plugin files now push like theme/plugin files — staged during the run, promoted atomically at commit — behind a “Must-use plugin files” toggle (default on). Studio’s own runtime pieces (the SQLite integration and Studio loader) are always excluded on both sides: never pushed, never touched.
  • New: opt-in mu-plugins purge (mirror). When enabled, retiring an mu-plugin on Studio retires it on live on the next push. Off by default, because many hosts install their own mu-plugins into sites and a default-on purge would silently delete them. The exclude list can never be purged, and the manifest is rebuilt from disk so incremental runs can’t purge unchanged files.

Version 2.9.3

  • Fixed: featured images survive the sync. Featured images are stored as attachment IDs, which get reassigned on the receiving site — so a synced page’s featured image could point at the wrong (or no) attachment on live. The pusher now sends the thumbnail’s file path alongside each post and the receiver re-resolves it to its own attachment ID.
  • Per-environment plugin config excluded from options sync. Security and caching plugin settings (Really Simple Security, LiteSpeed) are inherently per-environment; they’re no longer pushed, pruned, or counted on Compare.

Version 2.9.2

  • Fixed: excluded plugins are now fully unmanaged. The activation-state mirror no longer deactivates a plugin that’s active only on live (like a host’s caching plugin) just because Studio doesn’t have it active.
  • Fixed: incremental pushes no longer skip posts whose only change was postmeta. Meta edits (SEO descriptions, featured images, builder data) don’t bump a post’s modified date, so those posts used to stay stale on live. Studio now tracks meta-dirty posts and pushes them in an extra pass.

Version 2.9.1

  • Fixed: brand-new plugins pushed in a run are now activated on live — previously a plugin whose files arrived in the same push could land on live deactivated, with no error reported.
  • Fixed: syncing the front-page setting no longer 404s the live homepage. Page IDs aren’t stable across sites, so the pusher now sends the page’s slug and the receiver resolves it to its own ID.
  • The post-push front-end check now also fails on error pages (HTTP 400+), not just leaked Studio URLs.

Version 2.9.0 — hardening release

A “no silent losses” release, plus readiness for Studio’s native PHP runtime:

  • A push with errors no longer advances the incremental watermark — failed content is retried on the next push instead of being silently skipped forever.
  • Live-side promote errors now surface in the Studio UI; chunked uploads are integrity-checked and retried; failed deletions are retried on the next push.
  • A crashed run auto-clears after 10 minutes instead of blocking forever, and “wipe first” imports validate the whole backup before touching anything.
  • Native PHP runtime support (Studio 1.12+): time limits and TLS verification handled properly, with a new “Verify TLS certificates” setting.
  • Better error messages (URL, HTTP code, and body snippet on non-JSON responses) and a far more robust browser progress flow with resume-or-cancel on failures.

Earlier milestones

  • 2.8.0 — Origin-URL rewriting on push: every outbound payload is rewritten from the Studio localhost URL to the live URL (including JSON-escaped builder data and PHP-serialized values), plus a live-side URL sweep at commit and a post-push front-end assertion so a URL leak can never masquerade as a clean push.
  • 2.7.0 — A failed commit no longer reports success; no-op push warnings; a new Export & Import tab (WXR export + full backup zip from Studio); and Auto Sync (merge newest) that merges Studio and live in both directions, newest wins, strictly additive.
  • 2.6.x — Navigation menus sync, with portable references that survive the ID reassignment between sites; menu items pointing at live-only pages are kept as custom links instead of dropped.
  • 2.5.x — A push can no longer disable its own REST authentication mid-run (critical fix); Compare & Sync counts became meaningful; the Compare page’s Plugins section deliberately bypasses the exclude list.
  • 2.3.0–2.4.0 — Critical safety guards so a sync can never delete role definitions or lock an administrator out of the live site, while still letting settings and theme-mods sync across differing table prefixes.
  • 2.2.0 — Prune (true mirror): optional, confirmed deletion of destination items that don’t exist on the source, with hard protections for the sync plugin, the logged-in admin, and brick-critical options.
  • 2.1.0 — Syncs all content post types (including private CPTs like forms), and mirrors plugin active/inactive status.
  • 2.0.0 — Full-site sync: options and users become opt-in sync sections, and the Compare & Sync tab arrives with per-section Upload/Download.
  • 1.5.x — Crash-safe theme/plugin file sync via atomic staging, media deletion sync, permalink repair, and correct upload-before-posts stage ordering.

Latest Articles