Discover Spotify Backstage: The Ultimate Open Platform for Developers


Backstage is an open-source framework used to make a developer portal that brings together different tools, services, and documents to build an Internal Development Platform (IDP). It acts as a central place where developers can find everything they need to build, manage, and understand their company's software.
It's often said that speed and creativity come from having independent development teams. But as we found out, the faster you grow, the more scattered and complex your software system becomes. To control the chaos and focus on what matters, we can create a developer platform using Backstage. Backstage helps with:
Speed while keeping security and reliability
Growth without losing quality
Managing the increasingly chaotic software system
Components:
Service Catalog:
The Backstage service catalog is a central system that keeps track of all software components (services, libraries, websites, etc.). It supports two main uses:
Helping teams manage and maintain the software they own. Teams get a consistent view of all their software, including services, libraries, websites, and ML models—Backstage knows about all of them.
Making all the software in your company, and who owns it, easy to find. No more hidden software in your company's system.
Software Template:
Software Template is a tool that helps developers create new services or components consistently in Backstage. It ensures best practices, reduces setup time, and keeps architectural decisions uniform across your organization. By default, it can load basic code structures, fill in some variables, and publish the template to places like GitHub or GitLab.
Tech Docs:
It's a documentation tool from Spotify that uses a 'docs-like-code' method. Developers write their documentation in Markdown, which is stored with the code and automatically updates and publishes whenever the code changes.
Plugin Framework:
Backstage lets you add plugins to increase its features. You can easily connect existing tools like Jenkins, Kubernetes, GitHub, and more. Developers can also create custom plugins for tools specific to their company. This plugin setup lets different organizations adjust and personalize the platform to fit their needs.
Architecture Overview
Terminology
Backstage is made up of three parts. We divide Backstage like this because there are three groups of contributors who use it in different ways:
Core: The basic features created by core developers in the open-source project.
App: A version of a Backstage app that is set up and adjusted. The app combines core features with extra plugins. It is built and managed by app developers, usually a productivity team in a company.
Plugins: Extra features to make your Backstage app useful for your company. Plugins can be company-specific or open-sourced and reusable.
Overview
If we look more closely at the Backstage system, we see it is made up of three main parts:
A Backstage Web Application that shows important information to the user.
A Backstage Backend Service that supports other Backstage plugins like the Software Catalog.
A database that stores data needed for users. This database usually holds data specific to plugins, so you might have many database instances based on how you set up your Backstage app.
Challenges
Implementing Backstage can be very useful, but it also has its own challenges. Here are some common challenges organizations often encounter during implementation:
A unified developer platform improves efficiency, but setting it up can be complicated and take a lot of time. This is tough for organizations, especially if they have limited technical resources or skills, because it requires setting up infrastructure, configuring it, and keeping it running.
Although the plugin system allows flexibility and extensibility, the out-of-the-box functionality is limited, requiring frequent building and customization of plugins for specific workflows.
Integrating with internal identity providers can be challenging, making it hard to set up RBAC (Role-based Access Control). This requires custom implementation because Backstage has limited built-in support for it.
Building custom components requires expertise in certain technologies like React for the frontend and Node.js for the backend, which means developing plugins needs specialized skills. You might need a dedicated team to develop Backstage plugins and components, which can be a challenging task.
Backstage is an open-source framework designed to create a unified developer portal, streamlining access to infrastructure tools, services, and documentation for building an Internal Development Platform (IDP). It enhances development speed and creativity while maintaining security and reliability. Key components include the Service Catalog, Software Template, Tech Docs, and Plugin Framework. These components facilitate software management, consistency in development, documentation, and customizable plugin integration. Despite its benefits, implementing Backstage can be challenging due to setup complexity, limited default functionalities, identity integration, and the need for specialized development skills.
Subscribe to my newsletter
Read articles from Rahul Singh Rautela directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
