Portal Studio is a local development system that connects your workspace to an existing Portal instance, enabling you to develop both frontend and backend plugins and modules directly in Portal with hot reloading. Studio Mode lets you iterate on features in-place without requiring a full local Backstage setup. Portal Studio allows you to:Documentation Index
Fetch the complete documentation index at: https://backstage.spotify.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
- Connect your local workspace to Portal - Develop plugins against your actual Portal instance
- Develop frontend and backend features - Support for plugins, modules, and extensions
- See changes immediately - Hot module reloading for rapid iteration
- Test with real data - Work with your actual configuration, catalog, and integrations
- Selective loading - Load only the plugins you’re working on for faster iteration
Prerequisites
Portal Studio prerequisites are similar to the Backstage ones. Most importantly:- Node.js 24 (recommended)
- Yarn installed (Run
corepack enableto have Node manage and install Yarn) - React Developer Tools browser extension installed (for React Refresh to work correctly)
Getting Started with Portal Studio
There are two ways to use Portal Studio:- Create a new Studio workspace - Start fresh with a minimal workspace configured for your Portal instance
- Use an existing workspace - Add Studio to an existing Backstage or plugin repository
Option 1: Create a New Studio Workspace
Thestudio init command scaffolds a minimal workspace configured for your Portal instance:
--instance- Name (e.g.,acme) or full URL (e.g.,https://portal.acme.org) of your Portal instance--skip-install- Skip runningyarn installafter templating
- Instance name:
acme - Full URL:
https://portal.acme.org
Option 2: Use an Existing Workspace
Portal Studio can be used with any existing Backstage workspace, such as any of the workspaces in the Community Plugins repository. For example, to use Portal Studio with the Announcements plugin, you can do the following:Selective Loading
To avoid loading all packages in a large workspace, you can specify which packages to load:Using Portal Studio
Starting Studio Mode
When you runyarn start (or studio start), the CLI will:
- Detect your local features (plugins, modules, extensions)
- Start the Studio dev server
- If you include backend packages, start a local Studio backend
- Print a Bootstrap URL
https://your-instance.spotifyportal.com/?portal-dev-mode=...
Open this URL in your browser to activate Studio Mode in Portal.
Studio Mode Features
While in Studio Mode:- Hot Reloading - Frontend changes appear immediately in Portal
- Backend Proxying - API requests to your local backend plugins are automatically redirected
- Real Data - Test with your actual Portal catalog, configuration, and integrations
- Browser DevTools - Use standard debugging tools (Console, Network, React DevTools)
For React Refresh to work correctly, you must have the React Developer
Tools extension installed in
your browser.
Creating a New Plugin
In a Studio workspace, use the standard Backstage command:- Frontend Plugin - UI components, pages, and extensions
- Backend Plugin - APIs, data processors, and integrations
- Backend Module - Extensions to existing backend plugins (e.g., catalog providers, Soundcheck collectors)
Developing Your Plugin
- Make changes to your plugin code in your local editor
- Save the file
- See the changes immediately in Portal (browser will hot reload automatically)
- Check the terminal for any build errors or warnings
Backend Development
If your workspace includes backend packages, Portal Studio will start a local backend server. While in Studio Mode, any requests to endpoints provided by your local backend plugins will be redirected to your local server.Plugin Development Workflow
Frontend Plugins
Frontend plugins must use the new frontend system to work with Portal Studio. Example workflow:- Create a new frontend plugin with
yarn new - Develop your components in your local editor
- Save changes
- See updates immediately in Portal (hot reload)
- Test with real Portal data and configuration
Backend Plugins
Backend plugins must use the new backend system to work with Portal Studio. Example workflow:- Create a new backend plugin with
yarn new - Implement your API endpoints or services
- Save changes
- Backend server restarts automatically
- Test API endpoints against your Portal instance
Backend Modules
Backend modules extend existing plugins (e.g., catalog providers, Soundcheck collectors):Testing Your Plugin
Real-time Testing in Portal
As you develop, you can immediately test your plugin in the actual Portal environment:- Frontend features - Navigate to your plugin’s pages, interact with UI components
- Backend APIs - Make API calls from Portal to your local backend
- Integrations - Test with real catalog entities, configurations, and third-party services
- Permissions - Verify RBAC policies work correctly
Using Browser DevTools
Open Chrome/Firefox DevTools (F12 or right-click → Inspect) to access:- Console - View logs, errors, and debug output
- Network - Debug API calls and responses
- React DevTools - Inspect component state and props
- Performance - Profile and optimize performance
Running Tests
You can run unit tests in your local workspace:Publishing Your Plugin
When you’re ready to publish your plugin to Portal:-
Build your plugin:
-
Publish to npm registry:
- Install in Portal - Follow the Publishing Plugins guide
Configuring Local Backends
When running Studio Mode, local backend plugins and services use the standard Backstage configuration system. You can manage secrets, environment-specific settings, and other options using theapp-config.local.yaml file or other supported configuration files.
Avoid setting environment variables directly for configuration. Instead, add any required configuration values to your workspace’s YAML config files—this allows for better consistency and version control.
Refer to the Backstage configuration documentation for details on structuring and managing configuration for your local backend while using Studio Mode.
Troubleshooting
Studio URL not working
- Ensure the Bootstrap URL is complete and correctly copied
- Check that your local dev server is running (check terminal output)
- Try refreshing the Portal page
Changes not appearing
- Ensure you have React Developer Tools installed
- Check the terminal for build errors
- Try hard refresh (Cmd/Ctrl + Shift + R)
- Restart the Studio dev server
Backend plugin not proxying
- Verify backend packages are included in the
studio startcommand - Check terminal output for backend startup errors
- Ensure your backend plugin exports are correct
Build errors
Memory issues with large workspaces
Use selective loading to reduce memory usage:Best Practices
1. Use version control
Commit your changes regularly to Git. Portal Studio works with local files, so standard Git workflows apply.2. Test incrementally
Test your changes frequently in Studio Mode rather than building large features before testing.3. Monitor terminal output
Keep an eye on the terminal for build errors, warnings, and logs from your backend plugins.4. Use selective loading for large repos
If working in a large monorepo, load only the packages you need to improve performance.5. Develop iteratively
Start with basic functionality and add features incrementally. Studio’s hot reloading makes rapid iteration easy.Advanced Usage
Multiple Plugins
Load multiple plugins by specifying multiple paths:Environment-specific Configuration
Use different Portal instances for different environments:CLI Reference
Key commands:studio init- Initialize a new Studio workspacestudio start- Start Studio dev server and connect to Portal
Getting Help
If you encounter issues with Portal Studio:- Review error messages in the terminal
- Check browser console for frontend errors
- Contact Spotify Support