SD Times' 2026 platform-engineering coverage put a number on the pattern everyone building an internal platform has already noticed: Port and Cortex now anchor the internal-developer-portal category outright, the products a team reaches for when it wants developers to discover services, see who owns them, check production readiness, and trigger self-service actions from one screen. Neither ships as a plugin-extensible platform a team builds out over a quarter, the way Backstage does. Both promise a working portal in days.
That promise raises an uncomfortable question for a git-push PaaS. If the deploy API is already the source of truth for what's running, who owns it, and whether it's healthy, does a team building on top of one still need to buy a $40-to-$69-per-seat-per-month catalog to see that same information? Or does bolting on Port or Cortex just mean paying to duplicate data the control plane already has — and then paying again, in engineering time, to keep the duplicate from drifting out of sync?
The honest answer is: mostly no, sometimes yes. A platform whose deploy API already tracks ownership and state doesn't need a second system of record for that data. It needs to display it — and it needs two specific things Port and Cortex actually add on top, which are worth naming precisely rather than buying wholesale.
What Port and Cortex are actually selling
Both products solve the same underlying problem — discoverability breaks down once an org has more services than one person can hold in their head — but they solve it with different emphasis.
Port is the flexible one. Instead of a fixed data model, it lets a team define custom "blueprints" for services, environments, or cloud resources, then wire relationships between them into a knowledge graph. Its self-service actions turn the catalog from a read-only directory into something developers actually operate through — spin up an environment, provision a resource, trigger a day-2 operation. Pricing starts around $40/seat/month billed annually, with a free tier capped at 15 seats and 10,000 entities.
Port's June 2026 release notes point at where the category is actually headed: a visual, node-based builder for multi-step self-service workflows, and — more tellingly — AI agents that can now reach outside the catalog to call external MCP servers from inside chat and automations. That's the same convergence a deploy-from-chat PaaS is already betting its own roadmap on: the catalog stops being a page a human browses and becomes one more tool surface an agent calls. A platform whose deploy API is already MCP-callable doesn't need Port's bridge to get there — the agent-operable state was the design goal from day one, not a bolt-on integration shipped two years after the product launched.
Cortex leans the other way — a more rigid data model in exchange for stronger opinions about service ownership and standards enforcement. Its signature feature is the scorecard: a rule set that checks a service against criteria like on-call coverage, runbook existence, monitoring, and vulnerability status, then rolls the result into a Bronze/Silver/Gold production-readiness tier. One published case (H&R Block) reports a 50% cut in mean time to resolution after rolling scorecards out org-wide. Cortex costs more for it — published 2026 pricing runs $65–69/user/month at scale, roughly 60% above Port's list price for a comparable seat count.
Backstage, the open-source third option, still sits behind both on time-to-value: production-ready implementations with real integrations commonly take six to twelve months, with complex rollouts stretching past eighteen. That gap — buy a focused product in days versus build a plugin platform over a year — is exactly why SD Times named Port and Cortex, not Backstage, as this year's category anchors.
What a deploy API already gives you for free
Here's the part the vendor pitch skips: a git-push PaaS whose control plane already reconciles a manifest into a running service is already holding most of what a catalog entity needs. Compare the two side by side using bex's own shape — an app object built from a seven-field bex.yml (name, type, image, port, replicas, healthCheckPath, domains) plus whatever the control plane derives at runtime:
| Catalog field an IDP shows | Where a deploy API already has it |
|---|---|
| Service name | name in the manifest |
| Owning team | The git repo's path/org, or a CODEOWNERS file already in that repo |
| Running state | Reconciler status: building, running, failed, rolled back |
| Health | healthCheckPath response, polled continuously since it gates rollout |
| Endpoints / domains | domains in the manifest, plus the TLS cert's own expiry |
| Deploy history | Every git push the control plane has already reconciled, in order |
None of that is a second system. It's the same object the deploy API already returns from a single query — a team just hasn't put a screen in front of it that answers "what do we have, who owns it, is it healthy" the way a catalog homepage does. Standing up Port or Cortex next to that API to show the same six rows means running an integration that polls the deploy API, maps its fields into the vendor's data model, and then keeps that mapping alive across every schema change on either side. That's the "second system of record" risk the source pattern was named for: not that the vendor's data is wrong on day one, but that it silently drifts the moment someone renames a field in the manifest and forgets the sync job cares.
What Port and Cortex genuinely add on top
Two things in that comparison don't have a home in a bare deploy API, and they're worth being precise about instead of writing them off as "just a UI":
Production-readiness scoring. A deploy API knows whether a service is currently running. It has no opinion on whether that service is ready to run in production — whether someone's actually on call for it, whether a runbook exists, whether it meets whatever bar the org has set. That's a policy layer computed by combining several signals into one number, and it's genuinely new logic, not just a display of existing data.
Self-service actions beyond deploy. A git-push PaaS's deploy API already handles the one action every service needs — ship a build — but Port's action model covers cloud-resource provisioning, environment cloning, secret rotation, and arbitrary day-2 operations a deploy API was never scoped to run. That's real workflow surface a catalog product owns and a deploy API doesn't.
The borrow list — two moves, not a purchase
Given that split, the move for a git-push PaaS isn't "buy Port" or "buy Cortex." It's borrow the two patterns that matter and skip the vendor:
Surface ownership metadata directly on the dashboard. The data already exists — a repo path, a CODEOWNERS entry, whichever team pushed the last deploy. Port and Cortex both put "who owns this" front and center on every catalog card; a deploy-API-backed dashboard can do exactly that with a join, not an integration, because the ownership signal was never missing — it just wasn't rendered next to the app.
Compute a lightweight readiness score from signals already on hand. Skip the vendor scorecard product and build the pattern: a Bronze/Silver/Gold-style badge computed from things the control plane already tracks. A concrete version of that rubric needs nothing external to the deploy API:
- Bronze — the service is running and its
healthCheckPathhas returned 200 for the last 24 hours. - Silver — Bronze, plus at least one successful deploy in the last 30 days (a proxy for "not abandoned") and a domain with a TLS cert not expiring within 30 days.
- Gold — Silver, plus zero failed deploys in the last 10 attempts and a
CODEOWNERSentry resolving to an active team, not an empty or stale one.
None of that requires a new system of record; it's a computed view over data the deploy API already owns, refreshed on every reconcile loop instead of synced from an external product. It won't catch what Cortex's version catches — there's no on-call-rotation signal, no runbook-existence check, because a deploy API has no way to know either exists — but it covers the reconciler-visible half of "is this production-ready" for free, which is most of what a small team actually checks by hand today anyway.
That's most of what SD Times' category anchors are selling, delivered without a second source of truth to keep honest.
Where buying still wins
The borrow-the-pattern approach breaks down exactly where Port and Cortex's actual customers live: an org running hundreds of services across a heterogeneous mix of stacks — some on Kubernetes, some on a PaaS, some on bare VMs, some acquired along with a team that used neither. There, "compute readiness from the deploy API" doesn't work because there is no single deploy API; there are a dozen different systems of record, and the entire value of a catalog product is normalizing across them into one place with one enforced standard. That's also the scale where a $65/user/month enforcement layer is cheap relative to the cost of a standards violation slipping through fifty codebases — CVE-2026-class incidents get expensive fast once "who owns this and is it patched" isn't a one-query answer.
A team standardized on a single git-push PaaS is on the other side of that line. The deploy API already is the one normalized system; buying a second one to view it doesn't add coverage, it adds a sync job. The moment a team starts running workloads that PaaS doesn't manage — acquired services, a legacy cluster, a vendor SaaS with its own uptime story — is the moment "borrow the pattern" stops covering the gap and "buy the product" starts being the cheaper option again.
Bex.co is the open-source, AI-native Render alternative — push a git repo, get a running HTTPS service on machines you own, with ownership and readiness signals already in the deploy API instead of a second catalog to keep in sync. Star the repo on GitHub or deploy your first app today.
Sources
- Backstage vs Port vs Cortex: Internal Developer Portal Comparison
- Compare Port to Cortex | Port
- Port vs. Cortex: What's the Best Internal Developer Portal? | OpsLevel
- Scorecard | Cortex
- Production Readiness | Cortex
- Product release notes - June 2026 | Port
- Self-service actions - Port Documentation
- Platform Engineering & Developer Experience: SD Times 100
- Backstage Is Dead. The Platform Engineering World Moved On | Port
- Cortex Software Pricing & Plans 2026 | Vendr
- Plans and Pricing | Port
All figures cited above are drawn directly from the linked sources.



