How broadinstitute/backstage works
This repository runs Broad Institute’s Backstage developer portal. Users sign in, then search and browse the service catalog, open entity documentation, or use software templates to scaffold resources; dedicated pages also expose Kubernetes catalog entities. The frontend assembles Backstage plugins and custom navigation, pages, and template fields, while a separately configured backend registers catalog, authentication, scaffolder, documentation, and integration plugins. README-described capabilities such as Soundcheck, Skill Exchange, Insights, and MCP are represented at their supported integration boundary; their internal implementation is not shown in the sampled source.
Main entry points: App.tsx Portal frontend · index.ts Portal extensions · GcpResourcePicker.tsx Template fields · GithubTeamPicker.tsx GitHub team picker
Components 21
Portal experience
- Portal frontend
backstage/packages/app/src/App.tsx - Portal navigation
backstage/packages/app/src/modules/nav/Sidebar.tsx - Home dashboard
backstage/packages/app/src/components/home/HomePage.tsx - TechDocs add-ons
backstage/packages/app/src/modules/techdocs/index.tsx - Search
backstage/packages/backend/src/index.ts
Identity and catalog
- Catalog entity views
backstage/packages/app/src/modules/catalog/index.tsx - Authentication setup
backstage/packages/backend/src/index.ts - Catalog services
backstage/packages/backend/src/index.ts - Catalog entities
Developer workflows
- Template creation
backstage/packages/app/src/App.tsx - Template fields
backstage/packages/app/src/scaffolder/GcpResourcePicker/GcpResourcePicker.tsx - Scaffolder backend
backstage/packages/backend/src/index.ts - GitHub team picker
backstage/packages/app/src/scaffolder/GithubTeamPicker/GithubTeamPicker.tsx - GCP resource picker
backstage/packages/app/src/scaffolder/GcpResourcePicker/GcpResourcePicker.tsx - GCP billing picker
backstage/packages/app/src/scaffolder/GcpBillingAccountPicker/GcpBillingAccountPicker.tsx
Platform integrations
- Kubernetes browser
backstage/packages/app/src/components/kubernetes/KubernetesLandingPage.tsx - Kubernetes integration
backstage/packages/backend/src/index.ts - Portal extensions
backstage/packages/backend/src/index.ts
Other components
- Developer
- Google identity and APIs
- GitHub
Connections 26
- Developer → Portal frontend: uses
- Portal frontend → Portal navigation: configures
- Portal frontend → Home dashboard: loads
- Portal frontend → Catalog entity views: registers
- Portal frontend → TechDocs add-ons: registers
- Portal frontend → Template creation: renders
- Portal frontend → Kubernetes browser: routes
- Developer → Authentication setup: signs in
- Authentication setup → Google identity and APIs: authenticates
- Authentication setup → Catalog entities: resolves user
- Catalog services → Catalog entities: manages
- Search → Catalog entities: indexes
- Template creation → Template fields: renders
- Template creation → Scaffolder backend: submits templates
- Template fields → GitHub team picker: includes
- Template fields → GCP resource picker: includes
- Template fields → GCP billing picker: includes
- GCP resource picker → Google identity and APIs: searches projects
- GCP billing picker → Google identity and APIs: lists accounts
- GitHub team picker → GitHub: queries teams
- Kubernetes browser → Catalog entities: queries entities
- Kubernetes integration → Catalog entities: supplies metadata
- Portal extensions → Catalog services: extends catalog
- Portal extensions → Search: registers plugins
- Portal extensions → Scaffolder backend: registers plugins
- Portal extensions → Kubernetes integration: registers plugin