A desktop app that migrates WordPress sites from Local (by Flywheel) to WordPress Studio — packaging and importing them automatically.
Many WordPress developers run their local sites in Local, but Automattic's
Studio is a lighter, faster alternative for local WordPress
development. Moving a site between them by hand means exporting the
database, filtering out incompatible data, copying wp-content, writing a
meta.json / wp-config.php for Studio's importer, and running the CLI
commands yourself — for every single site.
This app automates that entire process end to end: point it at your existing Local installation, pick a site, and it packages and imports it into Studio, tracking which sites have already been migrated so you never redo work by mistake.
- Scans your Local installation (its
sites.json) and lists every site with its status: Pending / Packaged / Migrated. - Generates an editable
meta.json(site URL, PHP/WordPress versions, plugins/themes with active state) from disk — no need to boot the site. - Packages the
.zipStudio's importer expects, filtering out SQL tables withbinary/varbinarycolumns that would break the import. - Runs
studio create+studio importfor you, with live progress bars and streaming CLI output — long migrations never look frozen. - Preflight checks before touching anything: Studio app/CLI presence,
duplicate detection against
studio list, PHP version compatibility. - Once a site is confirmed migrated (cross-checked live against
studio list), you can delete it from Local — folder andsites.jsonentry — directly from the app. Studio is never touched by deletion. - Translatable UI (English + Spanish included); adding a language is a single JSON file.
The Studio CLI (studio) ships bundled with the Studio desktop app; this
app detects it automatically and shows install instructions if missing.
make install # install all dependencies
make dev # run in development mode (hot reload)
make build # production build for the current platformSee docs/development.md for prerequisites and
details, and make help for all targets.
Local site (sites.json + app/public + app/sql/local.sql)
│
▼
1. Scan & meta.json reads wp-config/theme/plugin state from disk
│ and cross-references the SQL dump for active
│ plugins/theme
▼
2. Package (.zip) filters the SQL dump (drops binary/varbinary
│ columns that break Studio's importer), copies
│ wp-content, writes wp-config.php stub
▼
3. studio create creates an empty site in ~/Studio/<slug>
│
▼
4. studio import <zip> imports the packaged site into it
│
▼
Site marked "Migrated" cross-checked live against `studio list`
Every step streams live progress and CLI output back to the UI. The full picture — modules, events, state file — is in docs/architecture.md.
- Tauri v2 — a small native binary instead of an Electron app. The app spends its time on file I/O and spawning an external CLI; Tauri's Rust backend does that natively, and the bundle stays tiny.
- Rust (backend) — scanning, SQL filtering, copying/zipping, and CLI process management are CPU/IO-bound work that benefits from Rust's performance and safety, with no extra IPC layer to maintain.
- React 18 + TypeScript + Vite (frontend) — a simple, fast-refreshing UI with type-safe Tauri command payloads on both ends.
The UI ships in English (default) and Spanish. Adding a language is
dropping one JSON file into src/i18n/ — it's auto-discovered, appears in
the language selector automatically, and missing keys fall back to English.
Full guide: docs/translations.md.
- docs/architecture.md — modules, events, state, and the end-to-end migration flow.
- docs/development.md — setup, project layout, checks and tests.
- docs/makefile.md — every
maketarget explained. - docs/distribution.md — building and sharing the macOS app (including the Gatekeeper "damaged" warning fix).
- Multisite sites are packaged the same way, but the app warns that the import may need manual follow-up.
- Sites without
app/publicor a SQL dump can't be migrated (the button is disabled). - Migration state, staging directories, and generated
.zipfiles live under~/.migrate-local-wpstudio/.
Contributions are welcome — translations are the easiest way to start. See CONTRIBUTING.md.
GPL-2.0 — the same license as Automattic's Studio.
