Backstage: The Developer Portal Spotify Open-Sourced and Everyone Else Had to Staff
Spotify's Tools squad built an internal developer portal called System-Z in 2014 to stop 100+ squads reinventing tooling; renamed Backstage in 2018, open-sourced March 2020, donated to the CNCF that September.
Sources
- Backstage project site
- Announcing Backstage — Stefan Ålund, Spotify (2020-03-16, in-repo announcement)
- Spotify Engineering: What the Heck is Backstage Anyway? (2020-03)
- Spotify's Backstage Journey — official timeline (ServiceDB, System-Z, adopters)
- Hacker News launch thread — 146 points (2020-03-16)
- CNCF project page — Sandbox 2020-09-08, Incubating 2022-03-15
- CNCF blog: Backstage project joins the CNCF Incubator (2022-03-15)
- Backstage Turns Two — incubation and the road to 1.0 (2022-03-16)
- GHSA-2g8g-63j4-9w3r — RCE in v1beta3 scaffolder templates (2021-11-26)
- BleepingComputer: exploit details for the Backstage pre-auth RCE (2022-11)
- Switching out the Software Templates Sandbox — vm2 to isolated-vm (2023-06-21)
- v1.27.0 release notes — @backstage/backend-common deprecations begin
- PR #26383: NBS — promote backend packages to 1.0.0 (merged 2024-09-10)
- v1.31.0 — the New Backend System 1.0 release (2024-09-17)
- v1.0.0 release (2022-03-17)
- v1.5.1 — SandBreak security patch (2022-08-29)
- ADOPTERS.md — public adopter list in the repository
- Certified Backstage Associate (CBA) — CNCF / Linux Foundation Education
- Spotify for Backstage — the steward's commercial arm
- Spotify Portal for Backstage — managed IDP product docs
- Roadie: From a Spreadsheet and a $2M Bill — Why We Built Roadie
- Red Hat Developer Hub — the enterprise Backstage distribution
- backstage/backstage repository (created 2020-01-24)
Spotify didn't set out to build an open-source project. It set out to stop 100+ autonomous squads from drowning in their own tooling sprawl — and the portal that grew out of that internal tantrum, Backstage, became the framework the entire platform-engineering industry now measures itself against. This is the story of System-Z, the sandbox escape that embarrassed a CNCF incubating project, the backend rewrite that taxed every adopter, and the open-core machine Spotify built on top of a foundation gift. It's also the story of why "free" is the most expensive word in the IDP market.
The Origin: A Portal Built Out of Spite for Spreadsheets
Spotify's engineering culture was famously built on squads — small, autonomous teams owning their own services. Autonomy at that scale had a price the company documented honestly on its own Backstage Journey timeline: every squad built or bought its own tooling, and the sprawl had to be tracked somewhere. In 2013 that somewhere was ServiceDB, Spotify's first internal service catalog. In 2014, a newly formed Tools squad went further and started building what the company explicitly called a "developer portal" for authoring and managing backend services end-to-end — System-Z. By 2015 System-Z had absorbed templates for creating components, new component types for data pipelines, and eventually replaced ServiceDB outright.
In November 2018, System-Z officially became Backstage — "one central place for all our software components, resources, tools, tech docs, processes, and best practices," in Spotify's own words, with teams building plugins instead of spreadsheets. Two years later the numbers were the pitch: a 55% decrease in onboarding time (measured as time to a developer's 10th pull request), 280+ engineering teams using it daily to manage 2,000+ backend services, 300+ websites, 4,000+ data pipelines, and 200+ mobile features.
On March 16, 2020, Stefan Ålund published Announcing Backstage and open-sourced the whole thing. The ambition was not subtle: "Our vision for Backstage is for it to become the trusted standard toolbox (read: UI layer) for the open source infrastructure landscape. Think of it like Kubernetes for developer experience." The Hacker News thread hit 146 points; two days later the project was top-trending on GitHub with 1,700 stars. Spotify followed up with What the Heck is Backstage Anyway? to answer the obvious question — a music company? — and laid out the three-phase roadmap the launch actually shipped against:
Phase 1 (now): Extensible frontend platform — one consistent UI
layer over internal infrastructure and tools.
Phase 2 (+2-3 mo): "Manage your stuff" — service catalog, deployment
status, test coverage, Kubernetes tooling in one portal.
Phase 3 (later): Ecosystem — open source plugin marketplace so adopters
"pick the tools that match your stack."The repo itself (backstage/backstage) was created January 24, 2020, and the first public commits in February are the names that still run the project: Patrik Oldsberg (rugvip), Patrick Balestra, and Raghunandan Balachandran, all porting components out of Spotify's internal monorepo. The catalog, Software Templates, and TechDocs all shipped within six months of launch. The promise was a platform; the delivery, on day one, was a framework.
The Timeline: From System-Z to the Default IDP
- 2013 — Spotify builds ServiceDB, its first internal service catalog — the spreadsheet-replacement era begins.
- 2014 — The Tools squad starts System-Z, an internal "developer portal" for authoring and managing backend services end-to-end. By 2015 it has absorbed ServiceDB.
- 2018-11 — System-Z officially becomes Backstage. Teams build plugins instead of spreadsheets.
- 2020-01-24 — Repository created; first commits by Patrik Oldsberg (rugvip), Patrick Balestra, and Raghunandan Balachandran port Spotify-internal components.
- 2020-03-16 — Announcing Backstage: "Think of it like Kubernetes for developer experience." 146 points on Hacker News; 1,700 GitHub stars and top-trending within two days.
- 2020-06 to 2020-09 — Software Catalog, Software Templates, TechDocs, and the Plugin Marketplace all ship within six months of launch — the three-phase roadmap delivered on schedule.
- 2020-09-08 — Accepted into the CNCF Sandbox. By the project's own account, ~40% of pull requests are already coming from outside Spotify.
- 2020-12-15 — Zalando becomes the first named public adopter outside Spotify; Expedia Group follows in January 2021.
- 2021-01-08 — v0.5.0 — the first versioned release era begins.
- 2021-05 — Spotify wins the CNCF Top End User Award. Netflix and PagerDuty adopt publicly.
- 2021-11-26 — GHSA-2g8g-63j4-9w3r (high): RCE in the Scaffolder's v1beta3 templates. The templating library assumed templates were trusted; the fix was to sandbox template JavaScript — with vm2.
- 2022-03-15 — The CNCF TOC votes Backstage into the CNCF Incubator.
- 2022-03-17 — v1.0.0 ships, two days after incubation. HBO Max, HP, VMware, IKEA, Snyk, LinkedIn, Mercedes-Benz, and P&G are already on the public adopter list.
- 2022-08-29 — Oxeye discloses SandBreak (CVE-2022-36067, the vm2 sandbox escape, rated 10.0 in vm2 and 9.8 in Backstage): pre-auth remote code execution via Scaffolder templates on internet-exposed instances. v1.5.1 patches it one day after vm2's own 3.9.11 fix.
- 2022-12-15 — Spotify Plugins for Backstage launches as a paid bundle (Soundcheck, Skill Exchange, Insights, RBAC) after a closed beta with Klarna, Booz Allen Hamilton, and TELUS. The steward starts selling on top of its own donation.
- 2023-06-21 — Backstage rips out vm2 and switches the Software Templates sandbox to isolated-vm, citing "the recent vulnerabilities in the vm2 sandbox" — five weeks after vm2 3.9.19 (May 16, 2023) landed on npm with the starkest deprecation notice in recent memory: "The maintenance of the project has been discontinued." The library would be quietly revived in 2025; Backstage never went back.
- 2024-05 — v1.27.0 begins the demolition of
@backstage/backend-commonon the road to New Backend System 1.0. - 2024-09-17 — v1.31.0: the New Backend System reaches 1.0 (PR #26383), and the old
createRouterbackend system is marked end-of-life. Every adopter with custom backend plugins gets a migration bill. - 2024-11-15 — The Certified Backstage Associate launches with CNCF / Linux Foundation Education. A certification is the tell: the tool became a job.
- 2025-08-20 — The New Frontend System reaches "adoption-ready" — the second full stack rewrite in two years for plugin authors.
- 2025-10-22 — Spotify Portal for Backstage goes GA: a managed, SOC 2-compliant IDP with an agentic assistant (AiKA) and MCP server support. 2K Games adopts. The steward now sells what adopters struggled to run.
- 2025-11 — At the 6th BackstageCon: 3.4k+ adopters, 1.8k contributors, 250+ open source plugins, 31k GitHub stars — and a KubeCon mainstage session on an "AI-Native Backstage" (Actions Registry, more MCP support).
- 2026-09-15 — v1.55.0 ships Scaffolder recovery and runs into the Elasticsearch 8 wall — we covered the release in full.
- 2026-09-29 — v1.55.3 patches TechDocs generation for documented MkDocs extension configs; v1.56.0-next prereleases roll weekly. The repo stands at 34,570 stars and 7,666 forks as of October 7, 2026.
Crisis Points & Architectural Pivots
1. The scaffolder trust chain (2021–2023) — the fix that became the next vulnerability
Backstage's ugliest security story is a chain, not an event. In November 2021, GHSA-2g8g-63j4-9w3r disclosed that the Scaffolder's templating library assumed registered templates were trusted — a malice-free assumption in a world where templates come from arbitrary Git repositories. A malicious actor with write access to a registered template could get remote code execution on the scaffolder backend. The patched version sandboxed template JavaScript execution using vm2, a popular Node sandbox library. That fix was the setup.
In August 2022, Oxeye — through Spotify's bug bounty — demonstrated SandBreak, a sandbox escape in vm2 itself (CVE-2022-36067), and chained it straight into Backstage. The mechanics, from the disclosure:
1. Attacker-controlled template yaml reaches NunjucksWorkflowRunner.render
2. SecureTemplater.render executes the template's JavaScript inside vm2
3. Template overrides Error.prepareStackTrace with its own implementation
4. A triggered error hands back a CallSite object created OUTSIDE the sandbox
5. CallSite.getThis() -> host objects -> arbitrary commands on the hostThe rating was 9.8 in the Backstage context (the underlying vm2 flaw scored a perfect 10.0), and the kicker was operational: Backstage's APIs were available without authentication by default — Oxeye found internet-exposed instances that required no auth at all, making the RCE pre-auth in practice. Backstage shipped v1.5.1 a day after vm2's own patch. When exploit details went public in November 2022, the standing advice was to be on v1.7.2. The structural lesson survived the patch: a portal that executes templates from arbitrary sources is a code-execution surface, and "we sandbox it" is only as strong as the sandbox library du jour. In June 2023 Backstage switched to isolated-vm — after vm2 3.9.19 hit npm (May 16, 2023) carrying the notice "The maintenance of the project has been discontinued," the final straw after a string of further escapes.
2. The backend-system demolition (2024) — a rewrite taxed to the adopters
Backstage's old backend system — plugins exporting a createRouter — was the architectural debt the project decided to burn down in public. v1.27.0 (May 2024) started deprecating @backstage/backend-common utilities wholesale, with the stated long-term goal of removing the package entirely. The stable release landed in v1.31.0 (September 2024): the New Backend System hit 1.0, and PR #26383 marked "the end of the old backend system based on createRouter exports." Legacy support was deprecated across all plugin packages with removal scheduled by the end of 2024.
For greenfield adopters this was an upgrade. For everyone with custom backend plugins — the exact adopters Backstage's plugin model had encouraged to build them — this was a forced rewrite of the most delicate code they owned, on the project's timeline, not theirs. The pattern repeated in 2025 with the New Frontend System reaching "adoption-ready" in August. Backstage's honest answer to "why is maintenance so expensive?" is that the framework's own evolution requires you to keep paying — a point we make in detail in The Backstage Trap.
3. The TCO crisis (2022–present) — the market built around the difficulty
By late 2022, Gartner was flagging the effort required to stand up and maintain Backstage, and an entire commercial category had formed around the pain. Roadie's founding story is literally titled "From a Spreadsheet and a $2M Bill" — companies standing up Backstage and discovering it "eats up way more engineering time than they expected." Roadie was founded in 2020, the year of the open-sourcing, by a team whose CTO, Martina Iglesias Fernández, had built the internal version of Backstage at Spotify. Red Hat joined the community in October 2022 and productized Red Hat Developer Hub, a supported Backstage distribution. The honest summary: Backstage is a framework you staff, not a product you buy — and the ecosystem of managed wrappers exists precisely because that distinction surprised people. Our own Backstage alternatives guide and IDP vendor landscape map who sells the way out.
4. The open-core squeeze (2022–present) — the steward sells the managed version
Spotify's commercial arc is the most structurally interesting part of this story, because the entity donating the project and the entity monetizing it are the same company. The paid Spotify Plugins for Backstage bundle (Soundcheck, RBAC, Skill Exchange, Insights) launched in December 2022. Then came Spotify Portal for Backstage — first as a beta in February 2025 ("Backstage in a box"), GA October 2025 with SOC 2 compliance, a Catalog Wizard, plugin installer, Scaffolder Workflows, and an agentic assistant (AiKA) with MCP server support. PagerDuty publicly switched to Portal in June 2025; 2K Games adopted after GA.
flowchart TD
OSS["Backstage OSS core - CNCF Incubating since 2022-03-15"]
SPOT["Spotify for Backstage"]
PORTAL["Portal for Backstage - managed IDP, SOC 2"]
BUNDLE["Plugins bundle - Soundcheck, RBAC, Insights, AiKA"]
ROADIE["Roadie - managed Backstage SaaS"]
RHDH["Red Hat Developer Hub - supported distro"]
OSS -->|"steward monetizes"| SPOT
SPOT --> PORTAL
SPOT --> BUNDLE
OSS -->|"third parties wrap"| ROADIE
OSS --> RHDHThe open-core question writes itself: when the AI-era features — the Actions Registry, agentic workflows, MCP integrations announced for the "AI-Native Backstage" — show up first in the paid bundle and the managed portal, the free framework's maintainers are also its competitors' supplier. So far Spotify has kept the split reasonably clean (the CNCF project keeps shipping catalog, scaffolder, and TechDocs improvements on a steady cadence — v1.55.0 in September 2026, v1.56 prereleases rolling now), but the incentive structure is permanent, and platform teams should read every "Spotify for Backstage" launch through it.
Community Engine & Corporate Influence: Who Actually Built It
The core maintainers are Spotify veterans: Patrik Oldsberg (rugvip) — first public committer, bio simply "Maintainer of @Backstage" — and Stefan Ålund, author of the launch announcement, anchor the project's Spotify lineage. Camila Belo (camilaibs) drove the New Backend System to its 1.0 in 2024, closing the meta issue in September of that year. The surrounding cast is the interesting part: the ecosystem's most visible commercial founder, Roadie CTO Martina Iglesias Fernández, is an ex-Spotify engineer who worked on the internal portal before it was ever open-sourced.
External contribution arrived fast and stayed. By the September 2020 CNCF sandbox announcement, roughly 40% of pull requests were already coming from outside Spotify — Matthew Clarke (infrastructure, Spotify) and external contributors were landing Kubernetes and catalog features in the project's first months. By March 2024, Taylor Dolezal told the KubeCon Paris mainstage that Backstage had been the top CNCF project by end-user commits for several months — the metric that separates "vendor project with users" from "user project." The public ADOPTERS.md and the Journey timeline name the weight class: Zalando, Expedia Group, Netflix, PagerDuty, HBO Max, HP, VMware, IKEA, Snyk, LinkedIn, Mercedes-Benz, P&G, Fidelity, Unity, and Epic Games all adopted by end of 2022.
| Player | What they actually sell | Relationship to the OSS core |
|---|---|---|
| Spotify for Backstage | Portal (managed IDP, SOC 2), paid plugin bundle, enterprise support | Steward and monetizer — same company, two hats |
| Roadie | Managed Backstage SaaS; repositioned in 2026 as "engineering context for AI agents" | First commercial wrapper, founded 2020 by ex-Spotify hands |
| Red Hat Developer Hub | Supported Backstage distribution with enterprise lifecycle | Red Hat joined the community October 2022, then productized |
The governance layer matured in step: CNCF Sandbox (September 2020) → Incubator (March 2022, TOC vote) → the Certified Backstage Associate certification (November 2024, with Linux Foundation Education) and the first ContribFest at KubeCon Salt Lake City the same month. Graduation remains the open question — incubating since 2022 is a long runway for a project this size, and the dual commercial interest gives the TOC a genuinely hard governance puzzle.
Current Trajectory: The Verdict
Backstage won the framework war and lost the product war, on purpose. It is the structurally correct answer to IDP chaos — a catalog, a scaffolder, docs, and a plugin surface that 3,400+ adopters now standardize on — and it remains a framework in the most literal sense: 34,570 stars, 7,666 forks, and a v1.55/v1.56 release cadence that keeps the core honest. But every hard part of running it — the upgrade waves (backend system rewrite, then frontend system), the plugin maintenance treadmill, the security surface that comes from executing untrusted templates — has been converted by its own steward and third parties into a product you can simply buy: Portal, Roadie, or Red Hat Developer Hub.
The 2026 inflection is AI. The "AI-Native Backstage" track (Actions Registry, MCP server support, agentic AiKA) and Roadie's full repositioning as "engineering context for AI agents" say the quiet part loud: the next IDP battle is over whose portal feeds your coding agents trustworthy service context. Backstage's entity model is unusually well-positioned for that — a catalog is exactly the structured context layer an agent needs — which is precisely why the steward is shipping the agentic features into the commercial bundle first.
Verdict: if you're a platform team with engineering capacity and strong opinions, Backstage remains the honest default — nothing else has its ecosystem gravity, and the CNCF governance plus 250+ plugins are real moats against vendor lock-in. If you're a 20-engineer shop shopping for a portal, the framework is a trap we've documented before: buy the managed version (Portal, Roadie, or RHDH) or skip the category entirely. Watch two things going forward: whether incubation converts to graduation, and whether the AI-era features land in the OSS core or stay paid-first — that split is where this project's soul gets decided.