# Backstage

A developer portal you host. Backstage is Apache-2.0 (CNCF) — Port without the catalog seat.

**Replaces:** Port

**Tier:** Medium

## Problem

Port is a hosted internal developer portal: software catalog, self-service actions, scorecards, automations, and AI agents. Free is 15 seats and 10,000 entities with no card; paid starts at $30/seat/month billed annually, Standard $40 (port.io/pricing, checked 25 Oct 2026). You wanted that catalog on a box you run. Backstage is Apache-2.0 (backstage/backstage; last push 25 Oct 2026) — CNCF Incubating software catalog, software templates, and TechDocs. Port Ocean is Apache-2.0 (port-labs/ocean; last push 22 Oct 2026) — Port's integration framework for ingesting third-party data into a portal, not the portal itself. OpsLevel and Cortex stay skipped: closed-source SaaS with no product-level OSS path. This is not Port's every scorecard, automation-run, or AI-agent SKU. An internal admin UI stays on /replace/retool (Appsmith). ITSM assets stay on /replace/servicenow (GLPI). Port itself is cloud-native SaaS — not a self-host you fork.

## Stack

- [Backstage](https://backstage.io/) — Apache-2.0 CNCF developer portal — the published Port path
- [Port Ocean](https://ocean.port.io) — Apache-2.0 integration framework (not the portal)

## Estimated SaaS cost saved

| You stop paying | Typical / year | Self-host instead |
|---|---:|---|
| Port Basic (10 seats, annual) | $3,600 | Backstage + Postgres |

**About $3,600 / year** on a small team, before you count lock-in.

## Deploy on Railway

Placeholder: Backstage (Node) plus Postgres. Official create-app docs; persist the database and plugin state. This is several services, not a single container. No one-click template in this repo yet — Start on Railway. An internal admin stays on /stacks/baserow-appsmith.

[Start on Railway](https://c17.io/go/railway/backstage-portal?from=%2Fstacks%2Fbackstage-portal.md)

[Appsmith if this is an internal admin UI, not a software catalog](https://c17.io/stacks/baserow-appsmith)

## AGENT_PROMPT

```
Replace Port with Backstage (https://backstage.io/).

- Official create-app / getting-started docs. Persist Postgres. Register one catalog entity and one software template. Do not claim Port scorecards, automation-run packs, or AI-agent SKUs.
- Port Ocean (https://github.com/port-labs/ocean) is an Apache-2.0 exporter into a portal — not the portal. OpsLevel and Cortex are closed-source; do not publish them as the path.
- An internal admin UI stays on /stacks/baserow-appsmith. ITSM stays on /stacks/glpi-itsm.
- Write AGENT_PROMPT.md.
```

## FAQ

### Is this OpsLevel or Cortex?

No. Those are closed-source SaaS. This page is Port → Backstage. There is no product-level OSS OpsLevel or Cortex path in the catalog.

### What about Port Ocean?

Ocean is Apache-2.0 and sits on this stack as the integration framework. It is not a portal you can swap for Port. /compare/backstage-vs-port.

### Is this Retool?

No. An internal admin UI stays on /replace/retool (Appsmith). This page is a software catalog and a developer portal.

### Is this ServiceNow?

No. ITSM assets stay on /replace/servicenow (GLPI). This page is an internal developer portal.

### Are these free?

Backstage is Apache-2.0. Port Ocean is Apache-2.0. You pay hosting. Port the product is hosted SaaS. Template users never pay c17.

Source: https://c17.io/stacks/backstage-portal
