Developer Portals and Backstage

📖 Introduction

The first time I saw Backstage in action at a conference demo, I thought it was just another fancy dashboard. But after implementing it for a platform team, I realized it's much more—it's the front door to your entire platform. A good developer portal reduces the friction between "I need to do something" and "I'm doing it."

Backstage, open-sourced by Spotify in 2020, has become the de facto standard for developer portals. In this article, we'll explore how to leverage it to create a unified developer experience.


🎯 What Is a Developer Portal?

Definition

A developer portal is a centralized web application that provides developers with everything they need to discover, create, and manage software components within an organization.

spinner

Core Capabilities

Capability
Description
Value

Software Catalog

Inventory of all software components

"What exists and who owns it?"

Software Templates

Scaffolding for new projects

"How do I start something new?"

TechDocs

Documentation alongside code

"How do I use this?"

Search

Find anything across the org

"Where is what I need?"

Plugins

Extend with custom functionality

"Can I see my dashboards here?"


🏗️ Backstage Architecture

High-Level Overview

spinner

Core Components


📚 Software Catalog

Catalog Model

The catalog organizes entities using a well-defined model:

Entity Kinds

spinner

Entity Relationships

Catalog Processor (Python Example)


🛠️ Software Templates

Template Structure

Template Skeleton

Skeleton File Example


📖 TechDocs

Documentation as Code

TechDocs integrates documentation directly with your code using MkDocs:

TechDocs Annotation


🔌 Plugins

Plugin Architecture

spinner
Plugin
Purpose
Integration

kubernetes

View K8s resources

Cluster status, pods, logs

github-actions

CI/CD visibility

Workflow status, runs

pagerduty

Incident management

On-call info, incidents

prometheus

Metrics

Alerts, graphs

sonarqube

Code quality

Quality gates, issues

cost-insights

Cloud costs

Spending, trends

security-insights

Security posture

Vulnerabilities, compliance

Custom Plugin Example


🚀 Deployment Considerations

Production Architecture

spinner

Kubernetes Deployment


✅ Best Practices

Catalog Management

  1. Automate discovery - Use GitHub discovery or similar

  2. Enforce ownership - Every entity must have an owner

  3. Keep it current - Automated health checks for stale entities

  4. Start simple - Add complexity gradually

Template Design

  1. Provide sensible defaults - Minimize required decisions

  2. Follow golden paths - Templates encode best practices

  3. Include everything - CI/CD, docs, monitoring from day one

  4. Test templates - Validate template output regularly

Adoption Strategy

  1. Start with catalog - Show value with visibility first

  2. Add templates gradually - One use case at a time

  3. Integrate existing tools - Don't replace, unify

  4. Gather feedback - Iterate based on developer needs


🔗 What's Next?

In Article 9: Platform APIs and Abstractions, we'll explore how to design and implement platform APIs using Kubernetes operators, Crossplane, and API-first design principles.


📚 References

Last updated