Skip to content

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.

  1. Blaze (the macOS app) for local development
  2. Blaze Companion plugin installed and activated on the remote WordPress site
  3. 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.

  • 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-replace to 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
  • 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)

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.

  1. Click ”+” in the sidebar to create a new site
  2. Select “Remote Site”
  3. 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
  4. Click “Add Site”

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.

To update a remote site’s URL, API key, or HTTP auth credentials:

  1. Open the remote site from the sidebar
  2. Click “Edit” on the site detail view
  3. Update the fields and save

The Sync tab has a mode toggle at the top of the page that controls how you select what to sync.

The fast path-based selector. Pick one of:

PathWhat It Syncs
Site RootEntire WordPress installation
wp-contentThemes, plugins, uploads, and other content
wp-content/themesOnly themes
wp-content/pluginsOnly plugins
CustomBrowse 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.

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.

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 .local domain (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

When you Pull Full Site with the Database category checked (default), Blaze:

  1. Calls a pure-PHP exporter on the remote (no mysqldump or shell_exec needed — works on any host)
  2. Streams the export down in adaptive-sized chunks (the chunk size scales up on fast hosts and stays well under PHP max_execution_time on slow ones)
  3. Drops and recreates the linked local’s database
  4. Imports the dump in
  5. Runs wp search-replace to 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.

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.php script 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.

  1. Open the remote site from the sidebar
  2. Go to the “Sync” tab
  3. Pick a mode and the categories or paths to include
  4. Click “Pull” or “Push”
  5. Review the preview sheet — per-category counts and sizes, plus a Database row if applicable
  6. Confirm to execute

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.

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 let you exclude specific files or directories from sync.

  1. Open a remote site from the sidebar
  2. Go to the “Sync” tab
  3. Click “Edit Ignores”
  4. Add patterns, one per line
  5. Save

Patterns follow a .gitignore-like syntax:

# Directories
node_modules/
.git/
vendor/
# Files
.DS_Store
.env
*.log
# Specific paths
wp-content/cache/
wp-content/uploads/backup/
node_modules/
.git/
.DS_Store
.env
*.log
wp-content/cache/
wp-content/upgrade/
wp-content/debug.log
  • 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

A handful of paths are always excluded from Full Site sync in both directions, regardless of your ignore patterns:

  • wp-config.php
  • wp-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.