Backstage Holds 89% Market Share — But Only 10% Internal Adoption. Why?

I’ve been wrestling with this number for months and finally need to talk about it.

Backstage dominates the internal developer portal market. The numbers are staggering: 89% market share among organizations that have adopted an IDP, 3,400+ adopters, 46,000+ contributors, ranked as the top CNCF project by end-user commits. Port sits at 8%, Cortex at 5%. It’s not even close.

And yet — the average internal adoption rate at organizations outside Spotify hovers around 10%.

Let that sink in. Nine out of ten developers at companies that deployed Backstage aren’t meaningfully using it. We spent 14 months building ours.

The Pattern I Keep Seeing

  1. Leadership greenlights a platform team (“Gartner says 80% of large orgs will have platform teams by 2026, we need one too”)
  2. Team picks Backstage because it’s the obvious CNCF choice with the biggest ecosystem
  3. 6-12 months disappear into setup, plugin development, catalog modeling
  4. Maintenance eats the roadmap — breaking changes in upgrades, plugin compatibility issues, catalog data going stale
  5. Developers try it once, find it incomplete, go back to Slack and wikis
  6. Platform team burns out maintaining infrastructure instead of building features developers actually want

We hit every single one of these stages. By month 10, our platform team of 4 engineers was spending 70% of their time on Backstage maintenance and 30% on actual developer experience improvements. The ratio should be inverted.

Why the Adoption Gap Is Structural

This isn’t a “just need better docs” problem. It’s architectural:

The portal-vs-platform confusion. Standing up a service catalog UI is straightforward. Keeping it accurate is a full-time job. Ownership fields decay. Catalog entries go stale within weeks. Paved paths lag behind what teams actually deploy. Once developers lose trust in the data, they stop checking. And recovering that trust? Significantly more expensive than building it the first time.

Tool-first thinking. We picked Backstage because it was the market leader, not because we’d identified specific developer pain points it would solve. Classic solution looking for a problem. The teams that succeed — Spotify (55% reduction in time-to-tenth-PR for new devs), Zepto (eliminated days of manual service onboarding) — started with a clear problem and worked backward.

The maintenance tax is real. The plugin architecture that makes Backstage flexible also makes it fragile. Every Backstage upgrade is a project. Every custom plugin needs ongoing maintenance. The ecosystem has 230+ plugins, but integrating even a dozen means managing a dozen dependency trees.

What We Changed

After our 10% adoption wake-up call, we:

  • Killed 60% of our catalog fields — only kept what we could auto-populate from CI/CD and cloud APIs
  • Stopped building features, started removing friction — the highest-value work was deleting things, not adding them
  • Made one golden path genuinely faster than the alternative — new service scaffolding went from 2 days to 15 minutes, and that single workflow drove adoption from 10% to 40%
  • Added adoption as a platform team OKR — not usage metrics (page views), but voluntary adoption (teams choosing to use paved paths when alternatives exist)

The Uncomfortable Question

Is Backstage actually the right choice for most organizations? The alternatives — Cortex (strong scorecards, proprietary lock-in), Port (API-first flexibility), Roadie (managed Backstage), OpsLevel (opinionated but fast) — all trade some flexibility for faster time-to-value.

Spotify itself released “Spotify Portal for Backstage” — essentially acknowledging that raw Backstage requires too much investment for most teams.

For teams under 200 engineers, I’m increasingly skeptical that self-hosted Backstage is the right call. The 6-12 month setup investment and ongoing maintenance burden may not justify the flexibility when commercial alternatives get you to 60% of the value in weeks instead of quarters.

What’s your experience? Has anyone actually achieved high internal adoption with Backstage? What made the difference?

This thread hits close to home. I lead design systems and I’ve watched the Backstage adoption problem play out from the other side — as a user of the platform, not a builder.

The 10% adoption number doesn’t surprise me at all. Here’s what I think most platform teams miss: developer portals have a UX problem, and most platform engineers don’t think in UX terms.

The Catalog Decay Death Spiral

Luis mentioned ownership fields going stale. I want to zoom in on why this happens, because it’s a design pattern failure.

Most Backstage catalogs require manual input for the most important fields — ownership, SLA tier, documentation links, on-call rotation. These are the fields developers actually need. But they’re also the fields that go stale fastest because nobody’s job depends on keeping them accurate.

Meanwhile, the auto-populated fields (repo URL, CI status, deployment count) stay fresh but aren’t the ones people are looking for in a crisis at 2am.

This creates a trust gradient. The first time a developer clicks through to an “owner” field and finds someone who left the company 8 months ago, they mentally downgrade every piece of data in the catalog. You don’t get that trust back with a Slack reminder to “please update your catalog entries.”

What a Design Systems Lens Reveals

I build component libraries for 3 product teams. The adoption dynamics are identical:

Design Systems Developer Portals
If the component is harder to use than building from scratch, nobody uses it If the golden path is slower than doing it manually, nobody follows it
Stale components get forked silently Stale catalog data gets ignored silently
Adoption is earned by reducing friction, not by mandating usage Same
The best metric is “teams voluntarily choosing this over alternatives” Same

The parallel is almost exact. And in both cases, the teams that succeed are the ones that obsess over the first 5 minutes of experience. Not the architecture. Not the extensibility. The moment a developer lands on your portal and either finds what they need or doesn’t.

The “Portal as Product” Insight

The phrase “treat your platform as a product” has become a cliche, but most teams don’t actually do it. They don’t do user research. They don’t track activation funnels. They don’t A/B test onboarding flows. They don’t measure time-to-value.

I’ve been saying this to our platform team: if you can’t tell me your portal’s equivalent of “time to first aha moment,” you’re not treating it as a product. You’re treating it as infrastructure, and wondering why developers treat it like infrastructure too — something they avoid touching unless absolutely necessary.

The 10% number is a design problem as much as it’s a technical one.

I’ll give you the view from the trenches as someone who was on the receiving end of a Backstage rollout.

Our platform team announced Backstage with a big internal launch. Nice demo. Service catalog, tech docs integration, a scaffolding template for new services. We were supposed to register all our services in the catalog within a month.

Here’s what actually happened in my day-to-day:

Week 1: I dutifully register my 3 services. Takes about 45 minutes each because the YAML schema is finicky and the docs are incomplete. I write catalog-info.yaml files, PR them, wait for the catalog to pick them up.

Week 3: I need to find who owns a failing upstream service at 11pm. I check Backstage. The owner field says “Platform Team” — which is wrong, that’s the team that set up the default. I end up in Slack doing @channel who owns payment-gateway-v2? like I always did.

Month 2: Half the catalog entries still show the default owner. Nobody updated them. The scaffolding template generates a service with a structure our team doesn’t use, so I scaffold then immediately restructure, which takes longer than starting from scratch.

Month 4: I haven’t opened Backstage in 6 weeks. Neither has anyone on my team.

What Would Have Actually Worked

Luis’s turnaround story resonates. The one thing that would have made me a daily Backstage user: if it was the fastest way to do something I already needed to do.

For us, that would have been:

  • On-call context during incidents — “show me everything about this service: runbooks, recent deploys, owning team, related services” — in one click, not five
  • New service creation that actually matches how we build — not a generic template, but one that sets up our specific CI pipeline, monitoring dashboards, and PagerDuty integration
  • Dependency mapping I can trust — if I’m about to deploy and Backstage can show me which services depend on mine and when they last passed integration tests, that’s worth opening every day

Instead we got a service catalog that was essentially a slightly prettier version of a spreadsheet that nobody maintains.

The 89% / 10% Gap Explained Simply

89% market share means Backstage wins the “what IDP should we pick?” conversation. It’s the safe choice. Nobody gets fired for choosing the CNCF project.

10% adoption means it loses the “should I use this right now?” conversation. Every single time a developer chooses Slack over the catalog, or a wiki over the docs portal, or a bash script over the scaffolding template — that’s a vote against the platform.

The market share number is a leadership metric. The adoption number is a developer metric. And developers vote with their keyboards.

I want to reframe this conversation from the executive level, because the 89%/10% gap isn’t just a developer experience problem — it’s a capital allocation problem that most CTOs aren’t tracking properly.

The Hidden Cost of the 10%

When your platform team spends 14 months building a portal that 10% of engineers use, the cost isn’t just the platform team’s salaries. It’s the opportunity cost of what that team didn’t build.

Here’s a rough model from our experience:

  • Platform team cost: 4 engineers x 14 months = ~56 engineer-months
  • Developer time registering services: ~200 engineers x 2 hours = 400 hours of one-time investment
  • Ongoing catalog maintenance burden: ~200 engineers x 15 min/month x 14 months = ~700 hours
  • Actual value captured at 10% adoption: Maybe 20 engineers getting real daily value

That’s roughly $1.5M in fully loaded cost to deliver daily value to 20 people. If we’d spent that same budget on a managed solution at $50K/year and redirected 3 of those 4 engineers to building actual golden paths, we’d have been better off in every measurable dimension.

The Build vs Buy Decision Framework I Wish I’d Used

After going through this twice — once at my previous company and once here — I’ve landed on a decision framework:

Build (self-hosted Backstage) when:

  • You have 500+ engineers and genuine platform differentiation needs
  • You have a dedicated platform team of 6+ who can sustain the maintenance tax
  • Your IDP requirements are genuinely unique (regulated industries, air-gapped environments)
  • You’ve already validated the workflows with lightweight tooling first

Buy (Cortex, Port, OpsLevel) when:

  • Under 500 engineers
  • Platform team is under 6 people
  • You need value in weeks, not quarters
  • Your differentiation is in product, not infrastructure

Hybrid (Roadie, Spotify Portal) when:

  • You want the Backstage ecosystem without the maintenance burden
  • You have moderate customization needs
  • You want to preserve optionality to go fully self-hosted later

Most companies I talk to are in the “Buy” category but choose “Build” because Backstage is free and open source. But open source isn’t free. The TCO of self-hosted Backstage — when you account for hiring, maintenance, plugin development, upgrade cycles, and the long tail of catalog hygiene — significantly exceeds the subscription cost of commercial alternatives for organizations under 500 engineers.

The AI Angle Nobody’s Talking About

Here’s what makes this conversation urgent in 2026: AI agents are becoming platform consumers.

AI coding assistants need accurate service catalogs to understand system relationships. AI-driven incident response needs reliable ownership data to route alerts. Automated deployment tools need trustworthy dependency graphs to assess blast radius.

The 10% adoption problem becomes existential when your AI tooling inherits the same stale, incomplete data that your developers already don’t trust. If your catalog says the payment service is owned by someone who left, a human knows to check Slack. An AI agent doesn’t.

Organizations with mature, high-adoption IDPs are going to have a significant advantage in AI-assisted operations. That’s the strategic argument I’m now making to my board — not “developer productivity” (which is hard to measure) but “AI readiness” (which is becoming table stakes).

The 89% market share tells us the industry has converged on what an IDP should look like. The 10% adoption tells us we haven’t figured out how to make it stick. Solving the second problem is going to matter a lot more than the first.