App projects in the Wix CLI use the new Wix CLI project structure, built on the @wix/custom-extensions package, which replaces the two structures that came before it:
Migrating changes your project, and your app stays the same app: same ID, same Wix users who installed it, and its version history continues rather than starting over. You release a new version when the migration is done, because your code reaches Wix users only after you release it.
The new Wix CLI is part of a broader move to streamline how you develop apps on Wix:
Note: The Legacy Wix CLI for Apps reaches its end of life on February 28, 2027. After that date, you can't release new versions of apps built with it.
The migration to follow depends on the structure your project uses. To identify it, see Determine Which CLI Your Project Uses.
| Project structure | Migration |
|---|---|
| Astro-based CLI app | Migrate an Astro-based CLI App to the New Wix CLI |
| Legacy CLI app | Migrate a Legacy CLI App to the New Wix CLI |
The two paths differ in scope, because they start from different distances away. Each guide covers what to change, and what to check before you release.
The migration replaces the toolchain your project uses and updates the code that depends on it, such as import paths. Your extensions keep their IDs, and nothing is added to or removed from your app.
To migrate, follow Migrate an Astro-based CLI App to the New Wix CLI, which takes you through the conversion step by step.
The migration reaches your extensions themselves. Each one is declared a different way in the new structure, so you recreate its configuration, and your backend moves to a different shape. The guide works through your extensions one at a time as you move them into a new project, then has you test the whole project and release it in one version. Until that release, your app keeps running the legacy project's last release. After you confirm that the release works, you delete the legacy project.
A migration also changes part of your routine for good, beyond the conversion itself.
wix commands don't change.astro check did. Run npm run typecheck yourself, or chain it into your build script.astro.config.mjs. Any build setting you customized there has nowhere to go, so check what you had before you rely on it.src/api/ in the new structure, and a route doesn't carry the /api prefix that src/pages/api/ supplied.wix app generate scaffolds for you.Last updated: 11 November 2026