Migrating Apps
Overview
This section describes how to migrate an existing Backstage app package to use the new frontend system. The app package is typically found at packages/app in your project and is responsible for wiring together the Backstage frontend application.
Who is this for? This guide is intended for maintainers of Backstage app packages (
packages/app) who want to upgrade from the legacy frontend system to the new extension-based architecture.
Prerequisites:
- Familiarity with your app’s current structure and configuration
- Yarn workspaces and monorepo setup
- Access to run
yarncommands and update dependencies
Migration
We recommend a two-phase migration process to ensure a smooth and manageable transition:
-
Phase 1: Minimal Changes for Hybrid Configuration In this phase, you make the smallest set of changes necessary to enable your app to run in a hybrid mode. This allows you to start using the new frontend system while still relying on compatibility helpers and legacy code. The goal is to unblock your migration quickly, so you can benefit from the new system without a full rewrite.
-
Phase 2: Complete Transition to the New Frontend System After your app is running in hybrid mode, you can gradually refactor your codebase to remove legacy code and compatibility helpers. This phase focuses on fully adopting the new frontend architecture, ensuring your codebase is clean, maintainable, and takes full advantage of the new features.
Staying in hybrid mode for too long is not recommended. Support for the legacy version and compatibility helpers will be dropped in the future, so we recommend planning to fully migrate your codebase as soon as possible.
Checklist
Before you begin, review this checklist to track your progress:
- Complete minimal changes for hybrid configuration (Phase 1)
- App starts and works in hybrid mode
- Gradually migrate and remove legacy code and helpers (Phase 2)
- App runs fully on the new frontend system
If you encounter issues, check GitHub issues or ask in Discord.
Phase 1: Minimal Changes for Hybrid Configuration
There are 5 steps to minimally change your app to start experimenting with the new frontend system in a hybrid mode.
After completing these steps you should be able to start up the app and see that it still works.