Backstage: The Framework Powering Modern Internal Developer Platforms

Oliver White

·7 min read
Backstage: The Framework Powering Modern Internal Developer Platforms

Introduction

As engineering organizations scale, developers often face growing friction: fragmented tools, inconsistent environments, and a lack of visibility into services, APIs, and documentation. This complexity slows delivery and increases cognitive load.

Enter Backstage, an open-source framework created by Spotify and donated to the Cloud Native Computing Foundation (CNCF). Backstage provides a unified developer portal — the heart of an Internal Developer Platform (IDP) — where teams can discover, build, and manage software in a consistent, self-service manner.


1. What Is Backstage?

Backstage is a framework for building developer portals that centralize all your software components — services, data pipelines, websites, libraries, APIs, and documentation — into a single, searchable interface.

At its core, Backstage enables:

  • 🧭 Service discovery — catalog all applications and components.
  • ⚙️ Software templates — bootstrap new projects using standard configurations.
  • 🧱 Plugin architecture — integrate CI/CD, monitoring, cloud, and security tools.
  • 📚 TechDocs — auto-generated documentation from markdown or source repos.
  • 🧩 Extensibility — build custom plugins or integrate internal systems.

Backstage provides the developer experience layer of an IDP, sitting above your CI/CD, cloud infrastructure, and observability stack.


2. Why Enterprises Adopt Backstage

Developer Efficiency

  • One portal for service discovery, documentation, deployments, and alerts.
  • Reduces onboarding time — new engineers can explore all running systems easily.

Standardization

  • Enforces best practices through golden-path templates.
  • Provides reusable patterns for new service creation.

Extensibility

  • Plugin-based architecture means you can integrate any internal or third-party tool.

Governance

  • Helps platform teams enforce standards without slowing down developers.
  • Enables visibility into ownership, lifecycle, and security posture.

3. Backstage Architecture Overview

Backstage follows a modular, plugin-oriented architecture, allowing teams to customize each layer.

1┌────────────────────────────────────────────┐
2              Developer UI (React)          
3    - Software Catalog                     
4    - TechDocs                             
5    - Scaffolder Templates                 
6    - Custom Plugins                       
7└────────────────────────────────────────────┘
8                
9                
10┌────────────────────────────────────────────┐
11            Backstage Backend (Node.js)     
12    - Plugin APIs                           
13    - Authentication & RBAC                 
14    - Integrations (GitHub, GitLab, GCP)    
15    - Catalog & Scaffolder services         
16└────────────────────────────────────────────┘
17                
18                
19┌────────────────────────────────────────────┐
20           Infrastructure Integrations      
21  (Argo CD, Terraform, Kubernetes, Vault)   
22└────────────────────────────────────────────┘
23                
24                
25┌────────────────────────────────────────────┐
26             Data Sources / Systems          
27  (Service Repos, APIs, Docs, CI/CD, Cloud)  
28└────────────────────────────────────────────┘

4. Key Components

🧭 Software Catalog

The central registry of everything your engineering organization owns. Each component (service, API, library, etc.) is defined via a YAML descriptor (e.g., catalog-info.yaml), containing metadata such as:

1apiVersion: backstage.io/v1alpha1
2kind: Component
3metadata:
4  name: payments-service
5  description: Handles payment processing
6spec:
7  type: service
8  lifecycle: production
9  owner: team-payments

This metadata feeds the portal’s searchable catalog, enabling visibility, ownership tracking, and dependency mapping.


⚙️ Software Templates (Scaffolder)

Backstage’s Scaffolder lets teams define “golden paths” for creating new software.

Example: A template for a standardized FastAPI microservice.

1apiVersion: scaffolder.backstage.io/v1beta3
2kind: Template
3metadata:
4  name: fastapi-service-template
5spec:
6  owner: platform-team
7  steps:
8    - id: fetch
9      name: Fetch base repo
10      action: fetch:template
11      input:
12        url: ./template
13    - id: publish
14      name: Push to GitHub
15      action: publish:github
16      input:
17        repoUrl: github.com/org/{{ values.name }}

Developers can create a new service in minutes by filling in a few parameters — everything else (CI/CD, Helm, Terraform, etc.) is auto-generated.


📚 TechDocs

Built on MkDocs, TechDocs enables automatic documentation generation directly from source code repositories.

  • Developers write Markdown files (/docs folder).
  • Backstage pulls and renders them into the portal.
  • Keeps documentation up to date with versioned source control.

Example frontmatter:

1site_name: "Payments Service"
2nav:
3  - Overview: index.md
4  - API Reference: api.md

🔌 Plugins and Integrations

Backstage’s plugin ecosystem is its greatest strength. Out-of-the-box integrations include:

  • CI/CD: Jenkins, GitHub Actions, GitLab CI, CircleCI
  • Observability: Prometheus, Grafana, Datadog, Sentry
  • Deployment: Argo CD, Spinnaker, Flux
  • Security: SonarQube, OPA, Vault
  • Cloud: AWS, GCP, Azure portals

Custom plugins can expose internal tools — such as test dashboards, FinOps cost explorers, or ML pipelines — right inside the Backstage UI.


5. Example: Backstage in a Kubernetes-Based IDP

Let’s visualize a practical setup combining Backstage with a modern cloud-native stack.

1┌───────────────────────────────────────────────┐
2 Backstage Developer Portal                    
3  - Service Catalog                            
4  - Golden Path Templates                      
5  - TechDocs                                   
6  - Plugin Integrations                        
7└───────────────────────────────────────────────┘
8               
9               
10┌───────────────────────────────────────────────┐
11 Platform Automation                           
12  - GitHub Actions / Argo CD (GitOps)          
13  - Terraform / Crossplane                     
14  - Vault (Secrets)                            
15  - OPA / Kyverno (Policy)                     
16└───────────────────────────────────────────────┘
17               
18               
19┌───────────────────────────────────────────────┐
20 Runtime & Observability                       
21  - Kubernetes                                 
22  - Prometheus, Grafana, Loki                  
23  - Jaeger / OpenTelemetry                     
24└───────────────────────────────────────────────┘

Developers interact only with Backstage — the platform handles the automation behind the scenes.


6. Building and Deploying Backstage

🧩 Step 1: Scaffold a Backstage App

1npx @backstage/create-app
2cd my-backstage
3yarn dev

This generates a Node.js + React monorepo with all default plugins.

🧱 Step 2: Deploy to Kubernetes

Create a Helm chart or manifest for your Backstage instance:

1apiVersion: apps/v1
2kind: Deployment
3metadata:
4  name: backstage
5spec:
6  replicas: 2
7  selector:
8    matchLabels:
9      app: backstage
10  template:
11    metadata:
12      labels:
13        app: backstage
14    spec:
15      containers:
16        - name: backstage
17          image: backstage:latest
18          ports:
19            - containerPort: 7000

Use an Ingress or Service object to expose the portal. Integrate it with OAuth (e.g., GitHub or Azure AD) for authentication.

⚙️ Step 3: Connect to GitHub and CI/CD

Configure your Backstage app to integrate with GitHub, GitLab, or Bitbucket via app-config.yaml:

1integrations:
2  github:
3    - host: github.com
4      token: ${GITHUB_TOKEN}

Once connected, the portal automatically discovers service metadata from repo manifests.


7. Scaling Backstage for the Enterprise

When deploying Backstage across a large engineering organization, consider:

ConcernBest Practice
Authentication & RBACUse OIDC / SSO (Okta, Azure AD, GitHub)
Multi-tenant supportNamespace services per team
Plugin maintenanceMaintain a private plugin registry
PerformanceUse caching (Redis, Memcached) for catalog reads
Docs storageHost TechDocs on S3 / GCS for scalability

Backstage can also integrate with service mesh data, API gateways, and FinOps dashboards — making it the single pane of glass for the entire developer ecosystem.


8. Backstage vs. Other IDP Tools

FeatureBackstageHumanitecPort
Open-source
Plugin ecosystem ExtensiveLimitedModerate
UI customizationFull React controlModerateLimited
IntegrationsWide (CNCF ecosystem)Cloud-specificManaged SaaS
Self-hostingOptional

Backstage’s flexibility makes it ideal for engineering-driven organizations that want to own their developer experience.


9. The Future of Backstage

  • 🤖 AI-Assisted Developer Portals: Integration with LLMs for context-aware service discovery and auto-generated documentation.
  • ☁️ Multi-Cloud Integration: Unified visibility across AWS, Azure, and GCP environments.
  • 🔒 Zero-Trust Security Models: Native support for fine-grained access control and auditability.
  • 📈 Observability Plugins: Built-in dashboards for latency, cost, and performance insights.

Backstage is evolving from a developer portal into a developer experience operating system.


Conclusion

Backstage is more than a portal — it’s the foundation of a modern Internal Developer Platform. It centralizes knowledge, enforces consistency, and unlocks true self-service for development teams — all while enabling platform engineers to maintain security and governance at scale.

By adopting Backstage, organizations can turn their fragmented toolchain into a unified developer experience, accelerating software delivery without sacrificing control.

“Great developer experience is not about hiding complexity — it’s about making complexity usable.” — Spotify Engineering