Building Developer Portals Using An Expert Guide

Introduction to is an open-source platform created by Spotify, designed to streamline and centralize all aspects of software development within an organization. It provides a unified developer experience by integrating various tools, services, and documentation into a single web-based interface. This helps developers manage their projects, services, and infrastructure more efficiently.

Significance and Benefits of addresses several challenges commonly faced by development teams, particularly in large organizations:

  1. Centralization of Tools and Services: Integrates various development tools and services into a single platform, reducing the need for context switching and improving productivity.
  2. Standardization: Promotes best practices and standardizes workflows, which leads to consistent and high-quality code across teams.
  3. Discoverability: Enhances the discoverability of services, APIs, and documentation, making it easier for developers to find and use resources.
  4. Scalability: Supports scaling by providing a robust framework that can handle a growing number of services and teams.
  5. Customization: Offers a high degree of customization, allowing organizations to tailor the platform to their specific needs.

Core Features of

  • Service Catalog: Provides a comprehensive catalog of all services and components within an organization, along with metadata and documentation.
  • Software Templates: Enables the creation of standardized project templates, ensuring consistency and reducing setup time for new projects.
  • TechDocs: Integrates documentation directly into the platform, making it accessible and easy to maintain.
  • Plugins: Supports a wide range of plugins, allowing integration with various tools and services such as CI/CD pipelines, monitoring systems, and cloud providers.
  • RBAC (Role-Based Access Control): Implements granular access control, ensuring that only authorized users can access specific resources and perform certain actions.

Getting Started with

To start using, follow these steps:

1. Set Up the Backstage Environment:
  •    Install Node.js and Yarn, as these are prerequisites for running Backstage.
  •    Clone the Backstage repository from GitHub.
  •    Install dependencies using Yarn.
  •    Start the development server.


git clone

cd backstage

yarn install

yarn dev


2. Configure the Service Catalog:
  •    Define the service catalog structure in the `catalog-info.yaml` file.
  •    Use annotations to provide metadata and link to documentation.
  •    Register services and components in the catalog.



kind: Component


  name: my-service

  description: My service description


  type: service

  owner: team-a

  lifecycle: production


3. Create Software Templates:
  •    Define templates in the `scaffolder.yaml` file.
  •    Specify input parameters, actions, and output.
  •    Use the scaffolder plugin to generate new projects based on templates.



kind: Template


  name: react-app

  title: Create a new React application


  owner: team-a


    – title: Application name

      type: string

      name: name


    – action: create-react-app


        name: ${{ }}“`

4. Integrate Plugins:
  •    Install plugins from the Backstage plugin marketplace.
  •    Configure plugins in the Backstage app configuration.
  •    Customize plugins to suit specific needs.



  – id: ci-cd

    title: CI/CD

    path: /plugins/ci-cd

  – id: monitoring

    title: Monitoring

    path: /plugins/monitoring


5. Set Up TechDocs:
  •    Write documentation in Markdown format.
  •    Configure TechDocs in the Backstage app.
  •    Publish documentation to the platform.



  storageUrl: gs://my-bucket/techdocs


AI and ML Tools for Enhancing

  1. TensorFlow: Integrate TensorFlow for building and deploying machine learning models. Use plugins to monitor and manage ML models within Backstage.
  2. PyTorch: Incorporate PyTorch for deep learning applications. Create custom plugins to handle training, evaluation, and deployment of models.
  3. MLflow: Use MLflow to track experiments, manage models, and streamline the machine learning lifecycle. Integrate MLflow with Backstage for a seamless ML workflow.
  4. Kubeflow: Deploy and manage machine learning workflows on Kubernetes using Kubeflow. Integrate Kubeflow pipelines into Backstage for end-to-end ML operations.
  5. Hugging Face: Utilize Hugging Face models for natural language processing tasks. Integrate these models into Backstage to enhance capabilities like text generation, translation, and sentiment analysis.

Advanced Customization and Extensibility

Custom Plugins:

  •    Develop custom plugins to address specific needs.
  •    Use the Backstage plugin API to create and manage plugins.
  •    Share plugins across the organization to promote reusability.


import { createPlugin } from ‘@backstage/core’;

import MyCustomComponent from ‘./components/MyCustomComponent’;

export const myCustomPlugin = createPlugin({

  id: ‘my-custom-plugin’,

  components: {

    root: MyCustomComponent,




Theme Customization:

  •    Customize the Backstage theme to match organizational branding.
  •    Modify CSS and use theming capabilities provided by Backstage.


import { createTheme } from ‘@backstage/theme’;
const myTheme = createTheme({

  palette: {

    primary: {

      main: ‘#ff5722’,


    secondary: {

      main: ‘#03a9f4’,





API Integrations:

  •    Integrate with internal and external APIs to extend functionality.
  •    Use Backstage’s API client to fetch and display data.


import { fetch } from ‘@backstage/core’;

const fetchData = async () => {

  const response = await fetch(‘’);

  const data = await response.json();

  return data;



References and Further Reading

Backstage Documentation] (

GitHub Repository] (

Creating Plugins] (

Service Catalog] (

TechDocs] (

MLflow Documentation] (

Kubeflow Documentation] ( is a powerful platform for building developer portals that enhance productivity, standardize processes, and promote collaboration. By integrating tools and services, providing a centralized service catalog, and supporting extensive customization, has become an indispensable tool for modern development teams. Incorporating AI and ML tools further enhances its capabilities, making it a comprehensive solution for managing complex development environments.

Share the Post: