Blaze Sync
Blaze Sync lets you push and pull both files and the database between your local Blaze sites and remote WordPress servers. Pull a production site down for local development, or push your local changes up to staging — including the database — without leaving Blaze.
What You Need
Section titled “What You Need”- Blaze (the macOS app) for local development
- Blaze Companion plugin installed and activated on the remote WordPress site
- An API key from the companion plugin’s settings page
The companion plugin provides a secure REST API that Blaze connects to. It’s part of your Blaze Pro subscription.
What Sync Does
Section titled “What Sync Does”- Pull files from a remote server to your local site
- Push files from your local site to a remote server
- Pull the database from a remote server, run
wp search-replaceto point URLs at your local domain - Push the database to a remote server with built-in safety: pre-push snapshot, atomic table swap, and recovery if something goes wrong mid-push
- Linked Local Sites — your first Pull on a remote can provision a dedicated local site and link the two, so subsequent Pulls and Pushes target the linked pair without re-selection
- Pre-sync snapshots automatically taken on the linked local before every Pull and Push, restorable from the local site’s Snapshots tab
- Preview every operation — counts, sizes, and the list of affected files before anything is written
- Sync paths — sync the whole install, just
/wp-content, just/themes, just a specific subdirectory, or a custom selection
What Sync Does NOT Do
Section titled “What Sync Does NOT Do”- Run on a schedule (sync is manual, triggered from the app)
- Handle merge conflicts (destination files are overwritten by source)
- Sync
wp-config.php,wp-config-local.php,.htaccess, or.env*files (always excluded — these belong to the environment)
Connecting a Remote Site
Section titled “Connecting a Remote Site”Before connecting, install the Blaze Companion plugin on the remote WordPress site and generate an API key from the plugin’s settings page in WP Admin.
Adding a Remote Site
Section titled “Adding a Remote Site”- Click ”+” in the sidebar to create a new site
- Select “Remote Site”
- Enter:
- Site name — a label for the site in Blaze
- Remote URL — the full URL of the remote WordPress site (e.g.,
https://example.com) - API Key — the key generated by the Blaze Companion plugin
- Click “Add Site”
HTTP Authentication
Section titled “HTTP Authentication”If the remote site is behind HTTP basic authentication (common for staging environments), expand the “HTTP Auth” section and enter the username and password. Blaze stores these securely in the macOS Keychain.
Editing Connection Details
Section titled “Editing Connection Details”To update a remote site’s URL, API key, or HTTP auth credentials:
- Open the remote site from the sidebar
- Click “Edit” on the site detail view
- Update the fields and save
Sync Modes — Quick vs Full Site
Section titled “Sync Modes — Quick vs Full Site”The Sync tab has a mode toggle at the top of the page that controls how you select what to sync.
Quick Mode
Section titled “Quick Mode”The fast path-based selector. Pick one of:
| Path | What It Syncs |
|---|---|
| Site Root | Entire WordPress installation |
| wp-content | Themes, plugins, uploads, and other content |
| wp-content/themes | Only themes |
| wp-content/plugins | Only plugins |
| Custom | Browse the remote directory tree and select a specific folder |
For most day-to-day development workflows — pushing a single theme change, pulling fresh media — Quick mode is what you want.
Full Site Mode
Section titled “Full Site Mode”A category-aware mode for whole-install operations. Pick from a preset or build a custom selection across the standard WordPress file categories.
Presets:
- Full Clone — everything (plugins, themes, mu-plugins, uploads, drop-ins, and the database)
- Code Deploy — plugins + themes + mu-plugins (no media, no DB)
- Media Only — uploads only
- Custom — checkbox tree where you pick exactly which categories to include
Your mode and category preferences persist per-site, so when you come back to a remote site Blaze remembers how you last synced it.
Linked Local Sites
Section titled “Linked Local Sites”When you Pull Full Site on a remote for the first time, Blaze offers to create a dedicated local site for it — a linked local. You’ll be prompted once for:
- A name for the local site
- A
.localdomain (Blaze suggests one based on the site name) - A PHP version
Blaze then provisions a new local site, generates an SSL certificate via mkcert, and links the remote and local together. Subsequent Pulls and Pushes on either side know about the link and target the paired site automatically.
Link indicators:
- The sidebar shows linked locals nested directly under their remote with an indent and a link glyph
- The Sync tab and the Overview of either side show a one-click strip that jumps to the other
- The Edit Remote Site sheet has an Unlink button to clear the relationship without deleting either site
Database Sync
Section titled “Database Sync”Database Pull
Section titled “Database Pull”When you Pull Full Site with the Database category checked (default), Blaze:
- Calls a pure-PHP exporter on the remote (no
mysqldumporshell_execneeded — works on any host) - Streams the export down in adaptive-sized chunks (the chunk size scales up on fast hosts and stays well under PHP
max_execution_timeon slow ones) - Drops and recreates the linked local’s database
- Imports the dump in
- Runs
wp search-replaceto rewrite URLs from the remote domain to your local domain
The preview before pull includes a Database row showing the planned table count and estimated size.
Database Push
Section titled “Database Push”Pushing the database to a remote needs careful handling — it overwrites the live tables. Blaze ships with multi-layer safety:
- Pre-push snapshot on the linked local (so you can roll back your own changes if needed)
- Atomic RENAME swap — the import builds new tables under temporary names, then renames them in a single atomic operation. Visitors see the old data until the swap, then the new data immediately after. No half-state.
- REST rollback — if anything fails after the swap, Blaze tells the companion plugin to swap back via API
- Layer 2 recovery — if even the REST rollback fails (network, plugin crash, etc.), the companion plugin ships a
recover.phpscript that you can hit directly to restore the previous snapshot
Use Push DB with care: even with the safety net, you’re rewriting production data.
Pulling & Pushing
Section titled “Pulling & Pushing”- Open the remote site from the sidebar
- Go to the “Sync” tab
- Pick a mode and the categories or paths to include
- Click “Pull” or “Push”
- Review the preview sheet — per-category counts and sizes, plus a Database row if applicable
- Confirm to execute
Preview
Section titled “Preview”Every operation shows a full preview before anything is written. For files, you see add / modify / delete counts per category. For the database, you see the planned table count and an estimated size.
Sync History
Section titled “Sync History”The Sync tab shows past operations with timestamps and a scope label — “Full Site · Full Clone” vs “Quick · /wp-content/themes” — so you can tell at a glance which mode produced each entry.
Ignore Patterns
Section titled “Ignore Patterns”Ignore patterns let you exclude specific files or directories from sync.
Editing Ignore Patterns
Section titled “Editing Ignore Patterns”- Open a remote site from the sidebar
- Go to the “Sync” tab
- Click “Edit Ignores”
- Add patterns, one per line
- Save
Pattern Format
Section titled “Pattern Format”Patterns follow a .gitignore-like syntax:
# Directoriesnode_modules/.git/vendor/
# Files.DS_Store.env*.log
# Specific pathswp-content/cache/wp-content/uploads/backup/Recommended Patterns
Section titled “Recommended Patterns”node_modules/.git/.DS_Store.env*.logwp-content/cache/wp-content/upgrade/wp-content/debug.logHow Patterns Work
Section titled “How Patterns Work”- Patterns are applied to both pull and push operations
- A trailing
/matches only directories *matches any sequence of characters within a path segment- Patterns are case-sensitive
- Lines starting with
#are comments
Protected Paths
Section titled “Protected Paths”A handful of paths are always excluded from Full Site sync in both directions, regardless of your ignore patterns:
wp-config.phpwp-config-local.php.htaccess.env*
These belong to the environment, not the codebase, and pushing them between local and production is almost always a mistake.