How to connect Backstage with Angular or React

Leader posted 2 min read

What Does “Connecting Backstage with Angular or React” Mean?

Backstage is built entirely with React under the hood. So:

  • ✅ If you want to extend Backstage, you will write custom React plugins.
  • ⚠️ You can’t directly use Angular inside Backstage easily, because it's not designed for Angular apps.

Two Scenarios Explained


Scenario 1: You're Building a Plugin for Backstage

If you want to add a new page, dashboard, or tool to Backstage, you’ll build it as a React plugin.

Example: Add a custom “Service Health Dashboard”

You'd write:

// MyCustomPluginPage.tsx
import React from 'react';
import { Content, Page } from '@backstage/core-components';

export const MyCustomPluginPage = () => (
  <Page themeId="tool">
    <Content>
      <h1>Service Health</h1>
      <p>This dashboard shows the current service health metrics.</p>
    </Content>
  </Page>
);

Then register it in the plugin system using:

export const plugin = createPlugin({
  id: 'my-custom-plugin',
  routes: {
    root: rootRouteRef,
  },
});

Official plugin tutorial here


⚠️ Scenario 2: You Have an Angular App You Want to Show in Backstage

Backstage doesn't natively support Angular components because it's built with React. But here’s how you can still "integrate" Angular apps:

Option A: Embed Angular via iframe

If you already have an Angular app, you can render it inside Backstage using an iframe.

import React from 'react';
import { Content, Page } from '@backstage/core-components';

export const AngularAppPage = () => (
  <Page themeId="tool">
    <Content>
      <iframe
        src="https://your-angular-app.internal"
        width="100%"
        height="800"
        frameBorder="0"
        title="Angular App"
      />
    </Content>
  </Page>
);

This keeps your Angular code separate but visible within Backstage.

Option B: Link out to Angular Apps

If embedding doesn't make sense, you can add a menu item or catalog entry in Backstage that links users to your Angular frontend.


Summary

Use Case Best Approach
Build a new plugin/page for Backstage Use React
Reuse an Angular app inside Backstage Embed via iframe, or link to it externally
Build UI components for Backstage Must be React (Backstage = React app)
Show documentation or tools from Angular project Use TechDocs, and render the Angular URL inside if needed

Tip for Angular Teams

If your org is heavily using Angular, consider:

  • Keeping Angular apps separate
  • Using Backstage as the portal to link/organize them
  • Writing small React wrapper plugins to bridge them where needed

If you read this far, tweet to the author to show them you care. Tweet a Thanks

More Posts

How to Connect MongoDB to Node.js with Mongoose (Step-by-Step Guide)

Riya Sharma - Jun 14

How to Choose the Font Color Based on the Background

Louis Liu - Oct 1

Model Context Protocol (MCP): A New Way to Connect Angular Apps with AI Servers

Sunny - Aug 20

You Probably Don’t Know How to Do Role-Based Access Control (RBAC) in Angular

Sunny - Aug 29

How DomSanitizer works to prevent Cross-Site Scripting (XSS) attacks in Angular

Sunny - Aug 23
chevron_left