Internal Developer Platforms (IDPs) have gone from buzzword to requirement. Every organization above 20 developers is either building one, buying one, or suffering without one.
After helping multiple teams evaluate and implement IDPs, here is my honest comparison of the platforms that matter in 2026.
What is an Internal Developer Platform?
An IDP is the layer between developers and infrastructure. Instead of developers filing tickets or writing Terraform, they use self-service interfaces to provision what they need — databases, environments, deployments, DNS entries — through golden paths that your platform team defines.
The goal: developers focus on code, not infrastructure. Platform teams provide guardrails, not gatekeeping.
The contenders
Backstage (Spotify) — Open source
The most widely adopted IDP. Backstage is an open-source developer portal with a software catalog, TechDocs, and a massive plugin ecosystem.
apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
name: payment-service
description: Handles payment processing
annotations:
github.com/project-slug: org/payment-service
backstage.io/kubernetes-id: payment-service
backstage.io/techdocs-ref: dir:.
spec:
type: service
lifecycle: production
owner: payments-team
system: checkout
dependsOn:
- component:user-service
- resource:payments-db
providesApis:
- payments-apiStrengths:
- 200+ plugins (Kubernetes, CI/CD, monitoring, cost, security)
- Software catalog as single source of truth for all services
- TechDocs for documentation-as-code
- Scaffolder for templated service creation
- Huge community (CNCF incubating project)
- Fully customizable (React/TypeScript frontend)
Weaknesses:
- Requires 2-4 dedicated engineers to operate and customize
- 2-3 months to first meaningful value
- Plugin quality varies — some are abandoned or half-finished
- React/TypeScript expertise required for customization
- Upgrade path can be painful (breaking changes between versions)
- Can become a maintenance burden if over-customized
Cost: Free (open source) + engineering headcount (typically $200K-$500K/year in team cost)
Best for: Large organizations (100+ developers) with dedicated platform teams who want full control.
Port — Commercial, no-code builder
Port is a commercial IDP with a visual builder. You model your software catalog, define self-service actions, and create scorecards — all without writing frontend code.
Strengths:
- Deploy in days, not months
- No-code catalog modeling and self-service actions
- Built-in scorecards (production readiness, security posture, documentation coverage)
- Self-service actions with approval workflows
- Integrations with GitHub, GitLab, PagerDuty, Datadog, ArgoCD
- Dedicated support team
Weaknesses:
- Commercial pricing (scales with number of developers)
- Less customizable than Backstage for unique workflows
- Vendor lock-in risk
- Limited open-source community ecosystem
Cost: Starts free for small teams, commercial pricing for larger organizations (contact for pricing)
Best for: Teams that want fast ROI without dedicating 2-4 engineers to building a portal. Small to medium organizations (20-200 developers).
Kratix — Kubernetes-native, open source
Kratix is a platform-as-a-product framework built on Kubernetes. Instead of a portal, Kratix extends the Kubernetes API with “Promises” — platform APIs that developers interact with using kubectl or GitOps.
apiVersion: platform.kratix.io/v1alpha1
kind: Promise
metadata:
name: postgresql
spec:
api:
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: postgresqls.database.example.com
spec:
group: database.example.com
names:
kind: PostgreSQL
plural: postgresqls
scope: Namespaced
versions:
- name: v1
served: true
storage: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
properties:
size:
type: string
enum: ["small", "medium", "large"]
version:
type: string
default: "16"Developers request resources:
apiVersion: database.example.com/v1
kind: PostgreSQL
metadata:
name: my-db
namespace: team-alpha
spec:
size: medium
version: "16"Strengths:
- Kubernetes-native API — no separate portal needed
- Composable Promises (combine Crossplane, Terraform, Helm)
- Multi-cluster by design (platform cluster + worker clusters)
- GitOps-friendly (everything is a Kubernetes resource)
- Clean separation: platform team writes Promises, developers consume them
Weaknesses:
- No built-in UI (pair with Backstage or Port for a portal)
- Smaller community
- Requires strong Kubernetes expertise
- Less polished documentation
Cost: Free (open source) + engineering headcount
Best for: Kubernetes-heavy organizations that want platform APIs, not portals. Often combined with Backstage for the UI layer.
Humanitec — Commercial, score-based
Humanitec provides an IDP centered around the concept of “Score” — a developer-centric workload specification that abstracts infrastructure.
# score.yaml
apiVersion: score.dev/v1b1
metadata:
name: payment-service
containers:
main:
image: .
variables:
DB_HOST: "${resources.db.host}"
DB_PORT: "${resources.db.port}"
resources:
db:
type: postgres
dns:
type: dnsStrengths:
- Score workload specification (open source, portable)
- Dynamic configuration management (no static manifests per environment)
- Platform Orchestrator resolves resource dependencies automatically
- Environment management with promotion workflows
- Graph-based resource dependency resolution
Weaknesses:
- Commercial pricing
- Opinionated workflow (Score spec)
- Vendor lock-in to Platform Orchestrator
- Steeper learning curve for existing teams
Cost: Commercial (contact for pricing, typically per-developer per-month)
Best for: Organizations that want an opinionated, batteries-included platform with environment management built in.
Cortex — Commercial, service catalog + scorecards
Cortex focuses on service catalog, scorecards, and engineering intelligence. It answers: “What do we have, who owns it, and how healthy is it?”
Strengths:
- Fast catalog setup (auto-discovery from GitHub, K8s, cloud providers)
- Powerful scorecards with CQL (Cortex Query Language)
- Engineering intelligence dashboards
- Incident management integration
- Scaffolder for new service creation
Weaknesses:
- Primarily a catalog and scorecard tool, not a full IDP
- Limited self-service infrastructure provisioning
- Commercial pricing
- Less extensible than Backstage
Cost: Commercial (per-developer per-month)
Best for: Organizations that need service ownership clarity and engineering standards enforcement more than self-service infrastructure.
OpsLevel — Commercial, service ownership
OpsLevel focuses on service ownership, maturity tracking, and developer self-service.
Strengths:
- Service maturity rubrics (security, reliability, documentation levels)
- Auto-detection of services from Kubernetes, cloud, and git
- Self-service actions with approval workflows
- Clean UI with strong search
- Check-based compliance tracking
Weaknesses:
- Commercial pricing
- Less flexible than Backstage for custom workflows
- Smaller integration ecosystem
Cost: Commercial (contact for pricing)
Best for: Mid-size organizations focused on service ownership and maturity tracking.
Comparison matrix
| Factor | Backstage | Port | Kratix | Humanitec | Cortex | OpsLevel |
|---|---|---|---|---|---|---|
| Type | Open source | Commercial | Open source | Commercial | Commercial | Commercial |
| Team to operate | 2-4 engineers | 0.5-1 | 1-2 engineers | 0.5-1 | 0.5-1 | 0.5-1 |
| Time to value | 2-3 months | 1-2 weeks | 1-2 months | 2-4 weeks | 1-2 weeks | 1-2 weeks |
| Customization | Unlimited | Moderate | High | Moderate | Moderate | Moderate |
| Software catalog | ✅ | ✅ | ❌ (pair with portal) | ✅ | ✅ | ✅ |
| Self-service actions | ✅ (Scaffolder) | ✅ | ✅ (K8s API) | ✅ (Score) | ✅ | ✅ |
| Scorecards | Plugin | Built-in | ❌ | ❌ | Built-in (strong) | Built-in |
| K8s-native | No | No | Yes | Partial | No | No |
| IaC integration | Plugin | Actions | Promises | Score | Limited | Actions |
| Multi-cluster | Plugin | Yes | Native | Yes | N/A | N/A |
| CNCF | Incubating | No | Sandbox | No | No | No |
Decision framework
By organization size
Under 50 developers: Port or OpsLevel. You do not have the headcount to operate Backstage. Get a commercial tool, start with the catalog, add self-service actions incrementally.
50-200 developers: Backstage with a 2-person platform team, or Port/Cortex if you want faster time to value. This is the sweet spot where the build-vs-buy decision matters most.
200+ developers: Backstage with a dedicated platform team (3-4 engineers). The customization needs at this scale justify the investment. Consider Port as a complement for teams that need faster onboarding.
By primary need
“We need a service catalog” → Cortex or Backstage. Both excel at answering “what do we have and who owns it?”
“We need self-service infrastructure” → Kratix (K8s-native) or Humanitec (Score-based). Both focus on giving developers infrastructure through APIs, not portals.
“We need golden paths for new services” → Backstage Scaffolder or Port. Template-driven service creation with guardrails.
“We need engineering standards enforcement” → Cortex or OpsLevel. Scorecards and maturity rubrics are their core strength.
“We need everything” → Backstage (if you have the team) or Port (if you want it managed).
By Kubernetes maturity
Early Kubernetes adoption: Port or Cortex — abstract the complexity, focus on catalog and ownership.
Mature Kubernetes: Kratix for the platform API layer + Backstage for the developer portal. This combination gives you Kubernetes-native self-service with a polished UI.
Multi-cloud / hybrid: Humanitec — Score abstracts infrastructure differences across clouds.
Common mistakes
1. Building Backstage when you should buy. If you have fewer than 50 developers, you will spend more on Backstage engineering than a commercial tool costs. I have seen teams spend 6 months building a Backstage instance that Port could have delivered in 2 weeks.
2. Over-investing in the portal, under-investing in golden paths. A beautiful catalog with no self-service actions is just a documentation site. Start with 2-3 high-value self-service workflows (create a new service, provision a database, set up a CI/CD pipeline).
3. Not measuring developer experience. Track time-to-first-deployment, number of tickets to platform team, and developer satisfaction. Without metrics, you cannot prove the IDP is working.
4. Trying to platform everything at once. Start with one golden path for one team. Prove value. Expand.
My recommendation
Start with the problem, not the tool:
- Need quick wins? Port — deploy in a week, iterate from there
- Need full control? Backstage — invest the engineering time
- Kubernetes-native platform? Kratix — extend the K8s API
- Need service ownership first? Cortex or OpsLevel
The worst IDP is the one that never ships. Start simple, measure developer experience, and iterate.