<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Backstage Software Catalog and Developer Platform Blog</title>
        <link>https://backstage.io/blog</link>
        <description>Backstage Software Catalog and Developer Platform Blog</description>
        <lastBuildDate>Mon, 20 Apr 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <item>
            <title><![CDATA[Backstage in Amsterdam: Highlights from BackstageCon and KubeCon + CloudNativeCon Europe 2026]]></title>
            <link>https://backstage.io/blog/2026/04/20/backstagecon-kubecon-26-amsterdam</link>
            <guid>https://backstage.io/blog/2026/04/20/backstagecon-kubecon-26-amsterdam</guid>
            <pubDate>Mon, 20 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Backstage in Amsterdam: Highlights from BackstageCon and KubeCon + CloudNativeCon Europe 2026]]></description>
            <content:encoded><![CDATA[<p><img decoding="async" loading="lazy" alt="Backstage in Amsterdam: Highlights from BackstageCon and KubeCon + CloudNativeCon Europe 2026" src="https://backstage.io/assets/images/backstagecon-kubecon-eu-2026-hero-30037526e8f02735b1f870ad18afb4da.png" width="1800" height="942" class="img_ev3q"></p>
<p>Amsterdam delivered. From the moment BackstageCon opened its doors on March 23, the Backstage community was in full force — long-time contributors comparing notes with teams who had only just started their IDP journey. Across four days of BackstageCon and KubeCon + CloudNativeCon Europe 2026, there was a lot to take in: an energetic day of community talks, a documentary premiere, a standing room–only maintainers session, a live demo on the Keynote mainstage, and a ContribFest that turned issues into pull requests in real time. Read on for the highlights — and catch up on all the BackstageCon talks in the <a href="https://youtube.com/playlist?list=PL8iP9yIjU0Q0eZv3LncHLG3g5itFec995&amp;si=dAZ-Gg2A0hspfNbx" target="_blank" rel="noopener noreferrer" class="">full recordings playlist</a>.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="backstagecon-what-the-community-is-building">BackstageCon: What the community is building<a href="https://backstage.io/blog/2026/04/20/backstagecon-kubecon-26-amsterdam#backstagecon-what-the-community-is-building" class="hash-link" aria-label="Direct link to BackstageCon: What the community is building" title="Direct link to BackstageCon: What the community is building" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="BackstageCon Europe 2026 in Amsterdam" src="https://backstage.io/assets/images/kc26ams-backstagecon-crowd-764e74724f8fa129a64b25b29d679c57.jpg" width="1024" height="683" class="img_ev3q">
📸 <em><a href="https://www.flickr.com/photos/143247548@N03/albums/72177720332674037/" target="_blank" rel="noopener noreferrer" class="">CNCF</a></em></p>
<p>BackstageCon kicked off the week with a full day of talks organized by the community, for the community — emceed by <a href="https://www.linkedin.com/in/balajisiva/" target="_blank" rel="noopener noreferrer" class="">Balaji Sivasubramanian</a> (Red Hat) and <a href="https://www.linkedin.com/in/andr%C3%A9-wanlin-31a00a16a/" target="_blank" rel="noopener noreferrer" class="">André Wanlin</a> (Spotify). The <a href="https://colocatedeventseu2026.sched.com/overview/area/BackstageCon" target="_blank" rel="noopener noreferrer" class="">full schedule</a> had something for every stage of the Backstage journey, but a few themes stood out across the day.</p>
<p>On the engineering side, Booking.com's <a href="https://www.linkedin.com/in/symbat-nurbay-b981a6134/" target="_blank" rel="noopener noreferrer" class="">Symbat Nurbay</a> and <a href="https://www.linkedin.com/in/xicupinera/" target="_blank" rel="noopener noreferrer" class="">Xicu Piñera</a> shared <a href="https://www.youtube.com/watch?v=vtlI4KoK_Tc&amp;list=PL8iP9yIjU0Q0eZv3LncHLG3g5itFec995" target="_blank" rel="noopener noreferrer" class="">how they're working toward a unified developer experience</a> across a large, complex organization — a relatable challenge for many in the room. <a href="https://www.linkedin.com/in/krzysztof-janota-91aba1143/" target="_blank" rel="noopener noreferrer" class="">Krzysztof Janota</a> and <a href="https://www.linkedin.com/in/dusanaskovic/" target="_blank" rel="noopener noreferrer" class="">Dusan Askovic</a> from ING Bank N.V. went <a href="https://www.youtube.com/watch?v=zJehyAxDhV8&amp;list=PL8iP9yIjU0Q0eZv3LncHLG3g5itFec995" target="_blank" rel="noopener noreferrer" class="">deep on how to keep a Backstage deployment healthy and collaborative</a> in a big institution, covering the governance patterns that make it scale without fragmenting. On the catalog and tooling side, <a href="https://www.linkedin.com/in/sebastian-poxhofer/" target="_blank" rel="noopener noreferrer" class="">Sebastian Poxhofer</a> from N26 showed <a href="https://www.youtube.com/watch?v=4BZC0TcoW1Y&amp;list=PL8iP9yIjU0Q0eZv3LncHLG3g5itFec995" target="_blank" rel="noopener noreferrer" class="">how adding a platform CLI on top of the Backstage catalog</a> can open up new workflows and make the catalog more actionable for platform teams.</p>
<p>One of the day's surprises came from the lightning talk slot: <a href="https://www.linkedin.com/in/mathilde-an%C3%A7ay-2b4b84236/" target="_blank" rel="noopener noreferrer" class="">Mathilde Ançay</a> from HEIG-VD took an <a href="https://www.youtube.com/watch?v=-tTJeEdQIHU&amp;list=PL8iP9yIjU0Q0eZv3LncHLG3g5itFec995" target="_blank" rel="noopener noreferrer" class="">unexpected angle</a>, tracing an unlikely path from philosophy to a Backstage plugin — it's the kind of talk that's hard to summarize, so just watch it.</p>
<p>And the buzziest moment of the day? The panel — <a href="https://www.youtube.com/watch?v=67fFjQMRKyM&amp;list=PL8iP9yIjU0Q0eZv3LncHLG3g5itFec995" target="_blank" rel="noopener noreferrer" class="">Building a Healthy Backstage Plugins Ecosystem</a> — with <a href="https://www.linkedin.com/in/schultzp2020/" target="_blank" rel="noopener noreferrer" class="">Paul Schultz</a> and <a href="https://www.linkedin.com/in/hope-hadfield/" target="_blank" rel="noopener noreferrer" class="">Hope Hadfield</a> (Red Hat), <a href="https://www.linkedin.com/in/heikkihellgren/" target="_blank" rel="noopener noreferrer" class="">Heikki Hellgren</a> (OP Financial Group), <a href="https://www.linkedin.com/in/peter-j-macdonald/" target="_blank" rel="noopener noreferrer" class="">Peter Macdonald</a> (VodafoneZiggo), and <a href="https://www.linkedin.com/in/aramis-sennyey/" target="_blank" rel="noopener noreferrer" class="">Aramis Sennyey</a> (DoorDash). The conversation was wide-ranging and the Q&amp;A spilled past the scheduled time, which felt like a good sign.</p>
<p>📺 Those are just a few picks — there's plenty more to explore in the <a href="https://youtube.com/playlist?list=PL8iP9yIjU0Q0eZv3LncHLG3g5itFec995&amp;si=dAZ-Gg2A0hspfNbx" target="_blank" rel="noopener noreferrer" class="">full BackstageCon playlist</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="now-playing-the-backstage-story-on-film">Now playing: The Backstage story, on film<a href="https://backstage.io/blog/2026/04/20/backstagecon-kubecon-26-amsterdam#now-playing-the-backstage-story-on-film" class="hash-link" aria-label="Direct link to Now playing: The Backstage story, on film" title="Direct link to Now playing: The Backstage story, on film" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="The Backstage Documentary screening at KubeCon Amsterdam 2026" src="https://backstage.io/assets/images/kc26ams-documentary-2158984e235972b30c891190f14fd56c.jpg" width="1024" height="683" class="img_ev3q">
📸 <em><a href="https://www.flickr.com/photos/143247548@N03/albums/72177720332674037/" target="_blank" rel="noopener noreferrer" class="">CNCF</a></em></p>
<p>One of the week's most memorable moments had nothing to do with a slide deck. The <a href="https://www.youtube.com/watch?v=gJHYTlO0VwA&amp;list=PLf1KFlSkDLIClkq80u8EBijuxHklONfo0" target="_blank" rel="noopener noreferrer" class="">Backstage Documentary</a> made its world premiere at KubeCon Amsterdam, and the room filled up with community members eager to watch the story of how Backstage evolved from an internal tool at Spotify into one of the most <a href="https://www.youtube.com/watch?v=F7DKUThZ2I0&amp;list=PLf1KFlSkDLIBmA5TLXn2BzEHmwWzckP8y" target="_blank" rel="noopener noreferrer" class="">widely adopted</a> and <a href="https://www.cncf.io/blog/2026/02/09/what-cncf-project-velocity-in-2025-reveals-about-cloud-natives-future/" target="_blank" rel="noopener noreferrer" class="">active</a> open source projects in the cloud native ecosystem. The film surfaces voices from across the project's history — including some perspectives that even long-time contributors hadn't heard before. If you haven't watched it yet, grab a snack and set aside 30 minutes to see the past, present, and future of Backstage.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="standing-room-only-the-state-of-backstage-in-2026">Standing room only: The State of Backstage in 2026<a href="https://backstage.io/blog/2026/04/20/backstagecon-kubecon-26-amsterdam#standing-room-only-the-state-of-backstage-in-2026" class="hash-link" aria-label="Direct link to Standing room only: The State of Backstage in 2026" title="Direct link to Standing room only: The State of Backstage in 2026" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="Core maintainers present at KubeCon + CloudNativeCon Europe 2026" src="https://backstage.io/assets/images/kc26ams-maintainers-talk-b57af92c491294c49e1695a08f721219.jpg" width="4032" height="3024" class="img_ev3q"></p>
<p>The State of Backstage talk has become one of the community's most anticipated events at every KubeCon. In Amsterdam, that anticipation was on full display: over 600 people were seated, close to 1,000 had registered, and more were turned away at the door. Core maintainers <a href="https://www.linkedin.com/in/benlambert1/" target="_blank" rel="noopener noreferrer" class="">Ben Lambert</a> and <a href="https://www.linkedin.com/in/patrik-oldsberg-326a216b/" target="_blank" rel="noopener noreferrer" class="">Patrik Oldsberg</a> <a href="https://www.youtube.com/watch?v=tFsp5bpKwdk&amp;list=PL8iP9yIjU0Q0eZv3LncHLG3g5itFec995" target="_blank" rel="noopener noreferrer" class="">covered the full breadth</a> of what's been happening across the project — contributions, ecosystem growth, the New Frontend System now that it's adoption-ready, and the work underway on MCP support and an AI-native Backstage direction.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="a-demo-on-the-big-stage">A demo on the big stage<a href="https://backstage.io/blog/2026/04/20/backstagecon-kubecon-26-amsterdam#a-demo-on-the-big-stage" class="hash-link" aria-label="Direct link to A demo on the big stage" title="Direct link to A demo on the big stage" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="The Backstage Keynote Demo at KubeCon + CloudNativeCon Europe 2026" src="https://backstage.io/assets/images/kc26ams-keynote-demo-a2622240171521a83ac5194507709575.jpg" width="2400" height="1601" class="img_ev3q">
📸 <em><a href="https://www.flickr.com/photos/143247548@N03/albums/72177720332674037/" target="_blank" rel="noopener noreferrer" class="">CNCF</a></em></p>
<p>On Thursday morning, the core maintainers stepped up for something a little different: a <a href="https://www.youtube.com/watch?v=cTXlkhKXgyE&amp;t=298s&amp;list=PL8iP9yIjU0Q0eZv3LncHLG3g5itFec995" target="_blank" rel="noopener noreferrer" class="">live demo on the KubeCon Keynote mainstage</a>. In front of over 1,500 attendees, they showcased some of Backstage's newest capabilities — including the MCP and AI-related features covered in the maintainers talk the day before. It's one thing to hear about new features in a talk; seeing them demonstrated live in a keynote setting, to an audience that large, is a different kind of moment for our open source project.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="contribfest-open-source-live">ContribFest: Open source, live<a href="https://backstage.io/blog/2026/04/20/backstagecon-kubecon-26-amsterdam#contribfest-open-source-live" class="hash-link" aria-label="Direct link to ContribFest: Open source, live" title="Direct link to ContribFest: Open source, live" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="Backstage ContribFest at KubeCon + CloudNativeCon Europe 2026" src="https://backstage.io/assets/images/kc26ams-contribfest-89e8d6b8ab5613c5871f05d0f581ddfa.jpg" width="4284" height="4284" class="img_ev3q"></p>
<p>Rounding out the week was the fourth-ever Backstage ContribFest, co-hosted by <a href="https://www.linkedin.com/in/andr%C3%A9-wanlin-31a00a16a/" target="_blank" rel="noopener noreferrer" class="">André Wanlin</a> and <a href="https://www.linkedin.com/in/emma-indal/" target="_blank" rel="noopener noreferrer" class="">Emma Indal</a> (Spotify), <a href="https://www.linkedin.com/in/heikkihellgren/" target="_blank" rel="noopener noreferrer" class="">Heikki Hellgren</a> (OP Financial Group), and <a href="https://www.linkedin.com/in/elaine-mattos/" target="_blank" rel="noopener noreferrer" class="">Elaine Bezerra</a> (DB Systel GmbH). Around 50 attendees showed up ready to contribute — some experienced, some brand new to the project — and spent the session working through real issues in the Backstage and Community Plugins repositories alongside core maintainers and community contributors.</p>
<p>Not every contribution makes it into a merged PR on the day, but ContribFest is often where the work starts. Keep an eye on the release notes — some of what was kicked off in Amsterdam may already be on its way to a future release.</p>
<p>Want to see what came out of Amsterdam and past ContribFests? Head over to the <a href="https://contribfest.backstage.io/contrib-champs/" target="_blank" rel="noopener noreferrer" class="">ContribFest web app</a> to browse the full history of contributions from every session.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="tot-ziens-amsterdam-">Tot ziens, Amsterdam! 🌷<a href="https://backstage.io/blog/2026/04/20/backstagecon-kubecon-26-amsterdam#tot-ziens-amsterdam-" class="hash-link" aria-label="Direct link to Tot ziens, Amsterdam! 🌷" title="Direct link to Tot ziens, Amsterdam! 🌷" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="Goodbye, Amsterdam!" src="https://backstage.io/assets/images/backstagecon-kubecon-eu-2026-closing-058cc49d3177bda96986d5b6cba164f8.png" width="1024" height="683" class="img_ev3q">
📸 <em><a href="https://www.flickr.com/photos/143247548@N03/albums/72177720332674037/" target="_blank" rel="noopener noreferrer" class="">CNCF</a></em></p>
<p>What a week. BackstageCon, a documentary debut, a packed maintainers room, a keynote demo, and a ContribFest — Amsterdam showed that the open source Backstage community has a lot of momentum and a lot to say. Catch up on everything you missed in the <a href="https://www.youtube.com/playlist?list=PL8iP9yIjU0Q0eZv3LncHLG3g5itFec995" target="_blank" rel="noopener noreferrer" class="">BackstageCon playlist</a>, and watch the <a href="https://www.youtube.com/watch?v=gJHYTlO0VwA&amp;list=PLf1KFlSkDLIClkq80u8EBijuxHklONfo0" target="_blank" rel="noopener noreferrer" class="">Backstage Documentary</a> and <a href="https://www.youtube.com/watch?v=cTXlkhKXgyE&amp;t=298s&amp;list=PL8iP9yIjU0Q0eZv3LncHLG3g5itFec995" target="_blank" rel="noopener noreferrer" class="">Keynote Demo</a> if you haven't already.</p>
<p>See you in Salt Lake City 🏔️ at <a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america/" target="_blank" rel="noopener noreferrer" class="">BackstageCon and KubeCon + CloudNativeCon North America</a>, November 9-12, 2026!</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Get a jump on ContribFest with the new web app]]></title>
            <link>https://backstage.io/blog/2026/02/25/get-a-jump-on-contribfest</link>
            <guid>https://backstage.io/blog/2026/02/25/get-a-jump-on-contribfest</guid>
            <pubDate>Wed, 25 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Get a jump on ContribFest with the new web app]]></description>
            <content:encoded><![CDATA[<p><img decoding="async" loading="lazy" alt="Get a jump on ContribFest with the new web app" src="https://backstage.io/assets/images/backstage-contribfest-kubecon-web-app-header-aa55b2b3a64c012a90f1e0d2fbeb74ab.png" width="1200" height="630" class="img_ev3q"></p>
<p>Become a Contrib Champ and join us at ContribFest, where commits become legendary!</p>
<p>We are once again hosting ContribFest at KubeCon + CloudNativeCon. This time around, it's taking place in Amsterdam on March 26, 2026, at 13:45 CET — make sure to <a href="https://kccnceu2026.sched.com/event/2EF7v/contribfest-supercharge-your-open-source-impact-backstage-contribfest-live-andre-wanlin-emma-indal-spotify-heikki-hellgren-op-financial-group-elaine-bezerra-db-systel-gmbh?iframe=no" target="_blank" rel="noopener noreferrer" class="">add it to your schedule</a>. Learn more about what to expect below and get started now by exploring the new <a href="https://contribfest.backstage.io/" target="_blank" rel="noopener noreferrer" class="">ContribFest web app</a>.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="introducing-the-contribfest-web-app">Introducing the ContribFest web app<a href="https://backstage.io/blog/2026/02/25/get-a-jump-on-contribfest#introducing-the-contribfest-web-app" class="hash-link" aria-label="Direct link to Introducing the ContribFest web app" title="Direct link to Introducing the ContribFest web app" translate="no">​</a></h2>
<p>We're excited to announce the new ContribFest web app: <a href="https://contribfest.backstage.io/" target="_blank" rel="noopener noreferrer" class="">https://contribfest.backstage.io/</a>. The app simplifies local setup and helps you quickly find good issues to work on from the curated list pre-selected by your ContribFest co-hosts.</p>
<p>You'll see that the app is broken down into five sections:</p>
<ul>
<li class=""><a href="https://contribfest.backstage.io/" target="_blank" rel="noopener noreferrer" class="">Welcome</a>: This is where you'll find links to all the things, including the session's slide deck, assignment sheet, the Backstage and Community Plugins repositories, and their respective contribution guides.</li>
<li class=""><a href="https://contribfest.backstage.io/getting-started/" target="_blank" rel="noopener noreferrer" class="">Getting Started</a>: Whether you are new to Backstage or an old hat, use this handy checklist to help you get your local environment set up for contributing, including all the commands. (Make sure you check all the boxes, you never know what might happen! 😉)</li>
<li class=""><a href="https://contribfest.backstage.io/issues/" target="_blank" rel="noopener noreferrer" class="">Curated Issues</a>: This is what you come to the session for: finding an issue that speaks to you and contributing towards it. This section has a list of issues that we've curated — and filters, so you can slice and dice the list to find the perfect issue to work on.</li>
<li class=""><a href="https://contribfest.backstage.io/contrib-champs/" target="_blank" rel="noopener noreferrer" class="">Contrib Champs</a>: We've hosted three other ContribFests in the past — this is where you'll find merged PRs from those sessions, a place to celebrate contributions. Make sure to tag your PRs with “ContribFest”, and maybe your name will show up here one day, too! 🏆</li>
<li class=""><a href="https://contribfest.backstage.io/hall-of-hosts/" target="_blank" rel="noopener noreferrer" class="">Hall of Hosts</a>: ContribFest would not take place without the various community members who have stepped up to help co-host the sessions. This is where you'll see an honor roll of past co-hosts. 🙏</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="about-those-contrib-champs">About those Contrib Champs<a href="https://backstage.io/blog/2026/02/25/get-a-jump-on-contribfest#about-those-contrib-champs" class="hash-link" aria-label="Direct link to About those Contrib Champs" title="Direct link to About those Contrib Champs" translate="no">​</a></h2>
<p>The goals of the Backstage ContribFest sessions are many — foster community, work with experts, etc. — but it's pretty obvious that contributions are the most important. It's in the name after all. Here are a few past contributions that we wanted to share to give you an idea of what that looks like:</p>
<ul>
<li class=""><a href="https://github.com/backstage/backstage/pull/27694" target="_blank" rel="noopener noreferrer" class="">#27694</a> by <a href="https://github.com/hyb175" target="_blank" rel="noopener noreferrer" class="">hyb175</a> — Add Pagination to Tech Docs Table: for those with lots of entities with TechDocs, this is a massive performance improvement.</li>
<li class=""><a href="https://github.com/backstage/backstage/pull/29470" target="_blank" rel="noopener noreferrer" class="">#29470</a> by <a href="https://github.com/ioboi" target="_blank" rel="noopener noreferrer" class="">ioboi</a> — Openshift Auth provider: this allows those using OpenShift to use it to sign into their Backstage instance.</li>
<li class=""><a href="https://github.com/backstage/backstage/pull/31770" target="_blank" rel="noopener noreferrer" class="">#31770</a> by <a href="https://github.com/theZMC" target="_blank" rel="noopener noreferrer" class="">theZMC</a> — Render HTML in GitHub-flavored Markdown: with this change in place, HTML will now render correctly in the MarkdownContent component when you are using the GitHub-flavored Markdown mode.</li>
</ul>
<p>Check out the <a href="https://contribfest.backstage.io/contrib-champs/" target="_blank" rel="noopener noreferrer" class="">Contrib Champs page</a> to see the full list!</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="using-dev-containers">Using Dev Containers<a href="https://backstage.io/blog/2026/02/25/get-a-jump-on-contribfest#using-dev-containers" class="hash-link" aria-label="Direct link to Using Dev Containers" title="Direct link to Using Dev Containers" translate="no">​</a></h2>
<p>Along with the new ContribFest web app, we are also looking to use Dev Containers this time around to help streamline the session for those who'd like to use that option to get started. On the <a href="https://contribfest.backstage.io/getting-started/" target="_blank" rel="noopener noreferrer" class="">Getting Started page</a>, pick the Dev Containers radio button and then follow the checklist. To give you a quick preview, you'll need to have the following installed:</p>
<ul>
<li class="">Git, you'll need this to be able to pull down the code</li>
<li class="">Docker Desktop (or Docker Engine on Linux)</li>
<li class="">VS Code with the Dev Containers extension or IntelliJ IDEA Ultimate</li>
</ul>
<p>Check out our <a href="https://github.com/backstage/backstage/blob/master/contrib/docs/tutorials/devcontainer.md" target="_blank" rel="noopener noreferrer" class="">Dev Containers tutorial</a> for a deeper dive into the subject.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="amsterdam-here-we-come">Amsterdam, here we come!<a href="https://backstage.io/blog/2026/02/25/get-a-jump-on-contribfest#amsterdam-here-we-come" class="hash-link" aria-label="Direct link to Amsterdam, here we come!" title="Direct link to Amsterdam, here we come!" translate="no">​</a></h2>
<p>On behalf of the Backstage ContribFest co-host team, thank you for following along. We're looking forward to meeting you in Amsterdam and working together on your contributions. Please be sure to introduce yourself!</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Backstage Wrapped 2025: Celebrating a mature framework with modern foundations]]></title>
            <link>https://backstage.io/blog/2025/12/30/backstage-wrapped-2025</link>
            <guid>https://backstage.io/blog/2025/12/30/backstage-wrapped-2025</guid>
            <pubDate>Tue, 30 Dec 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Let's blast into the New Year with a quick look back at all the big hits — backend, frontend, AI, UI, and more! See how today's Backstage is ready to build the future of developer experience.]]></description>
            <content:encoded><![CDATA[<p><img decoding="async" loading="lazy" alt="Let&amp;#39;s blast into the New Year with a quick look back at all the big hits — backend, frontend, AI, UI, and more! See how today&amp;#39;s Backstage is ready to build the future of developer experience." src="https://backstage.io/assets/images/wrapped2025-e9778ec7bc8d695246bd5e513137fb52.png" width="1800" height="945" class="img_ev3q"></p>
<p>This year was another big one for Backstage and our worldwide community of adopters, contributors, and partners. Backstage turned five, the New Frontend System became adoption-ready, and your favorite platform for developer experience gained AI superpowers with the introduction of the Actions Registry and MCP server support. Let's blast into the New Year with a quick look back, along with a peek around the corner at what's coming next.</p>
<!-- -->
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="busy-beavers-here-there-and-everywhere">Busy beavers here, there, and everywhere<a href="https://backstage.io/blog/2025/12/30/backstage-wrapped-2025#busy-beavers-here-there-and-everywhere" class="hash-link" aria-label="Direct link to Busy beavers here, there, and everywhere" title="Direct link to Busy beavers here, there, and everywhere" translate="no">​</a></h2>
<p>As in years past, we've visualized how our vibrant global community lights up the Backstage open source repo with enthusiasm, creativity, and commits. This year, we're visualizing contributions to the Community Plugins repo, too. Can you spot your name in the videos below?</p>
<iframe src="https://www.youtube.com/embed/-D8PGN1tPn8" width="100%" height="440" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
<p><em>All 7.7k commits to <code>backstage/backstage</code> in 2025</em></p>
<iframe src="https://www.youtube.com/embed/Vaz0AbOJdi0" width="100%" height="440" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
<p><em>All 3.3k commits to <code>backstage/community-plugins</code> in 2025</em></p>
<p>Couldn't spot your name in the videos? Here's one more chance — every contributor who helped shape Backstage in 2025, all in one picture.</p>
<p><img decoding="async" loading="lazy" alt="Backstage 2025 contributors" src="https://backstage.io/assets/images/contributors-wrapped-2025-bdf31bc1a956d0731c7c073b363d5787.png" width="2944" height="2646" class="img_ev3q"></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="mature-for-a-five-year-old">Mature for a five-year-old<a href="https://backstage.io/blog/2025/12/30/backstage-wrapped-2025#mature-for-a-five-year-old" class="hash-link" aria-label="Direct link to Mature for a five-year-old" title="Direct link to Mature for a five-year-old" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="Backstage community stats: 3.4k+ adopters, 1.8k contributors, 15k Discord members, 7k project forks, 68k total contributions, 250+ open source plugins, 31k stars" src="https://backstage.io/assets/images/wrapped2025-stats-f3a479e9c2c7b82ae435f7ec8161b5f0.png" width="1999" height="1125" class="img_ev3q">
<em>The growing Backstage ecosystem, by the numbers</em></p>
<p>Earlier this year, the Backstage project <a href="https://www.youtube.com/watch?v=JqG1wey7-Ao&amp;t=563s&amp;list=PL8iP9yIjU0Q3K8LV_a9CcFmhvvNTAUzL1" target="_blank" rel="noopener noreferrer" class="">celebrated its 5th birthday</a> on the main stage at <a href="https://backstage.io/blog/2025/04/29/backstagecon-kubecon-25-london#big-birthday-energy-on-the-big-stage" target="_blank" rel="noopener noreferrer" class="">KubeCon + CloudNativeCon in London</a>.</p>
<p>While the framework still isn't old enough to shave, it's matured into the industry standard for internal developer portals (IDPs). According to <a href="https://newsletter.getdx.com/p/backstage-and-the-developer-portal-market" target="_blank" rel="noopener noreferrer" class="">this DX survey</a> released in March:</p>
<blockquote>
<p>Backstage is dominating the IDP market, holding an impressive 89% market share compared to SaaS competitors and achieving a remarkable 67% overall market penetration. These percentages are even higher for enterprise companies.</p>
</blockquote>
<p>As you can see above in the <a href="https://www.youtube.com/watch?v=Wih0a1v1Et0&amp;list=PL8iP9yIjU0Q33vpSaBlAvIhgDb-9smXUU" target="_blank" rel="noopener noreferrer" class="">latest project stats</a>, the Backstage ecosystem continues to expand, growing in adopters and contributors, as well as plugins and third-party service providers.</p>
<p>Want to dive into more Backstage stats? Check out the project's health scores and more on the relaunched <a href="https://insights.linuxfoundation.org/project/backstage" target="_blank" rel="noopener noreferrer" class="">LFX Insights</a> site.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="building-the-future-on-modern-foundations">Building the future on modern foundations<a href="https://backstage.io/blog/2025/12/30/backstage-wrapped-2025#building-the-future-on-modern-foundations" class="hash-link" aria-label="Direct link to Building the future on modern foundations" title="Direct link to Building the future on modern foundations" translate="no">​</a></h2>
<p>Just because Backstage has cemented its place as the standard for IDPs doesn't mean it's sitting still. From backend to frontend, from AI to UI, the technical foundations of the platform have been modernized, updated, and revamped — this is why today's Backstage is ready to build the future of developer experience.</p>
<p>Top 2025 highlights:</p>
<ul>
<li class="">Goodbye to the old backend system</li>
<li class="">New Frontend System is adoption-ready</li>
<li class="">Hello to the Actions Registry + MCP server support</li>
<li class="">Introducing a new design system with Backstage UI</li>
</ul>
<p>With the <a href="https://backstage.io/docs/backend-system/" target="_blank" rel="noopener noreferrer" class="">New Backend System</a> released as a stable 1.0 last year and the <a href="https://backstage.io/docs/frontend-system/" target="_blank" rel="noopener noreferrer" class="">New Frontend System</a> becoming <a href="https://backstage.io/docs/releases/v1.42.0" target="_blank" rel="noopener noreferrer" class="">adoption-ready</a> this year, Backstage is easier than ever to use, maintain, and build on — making it both more accessible and more capable for adopters, old and new.</p>
<p>This year also saw the debut of the <a href="https://backstage.io/docs/backend-system/core-services/actions-registry" target="_blank" rel="noopener noreferrer" class="">Actions Registry</a> and MCP server support — so now Backstage can empower both your human developers and their AI helpers.</p>
<p>And <a href="https://ui.backstage.io/" target="_blank" rel="noopener noreferrer" class="">Backstage UI</a> is coming! The alpha release of the upcoming design system made huge strides in 2025, preparing the way for a new level of usability throughout the Backstage experience.</p>
<p>Catch up on a whole year's worth of improvements — and see where Backstage is heading next — in the recordings below.</p>
<iframe src="https://www.youtube.com/embed/anqWhSnN7sA" width="100%" height="440" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
<p><em>Watch the Backstage maintainers' talk at <a href="https://backstage.io/blog/2025/04/29/backstagecon-kubecon-25-london" target="_blank" rel="noopener noreferrer" class="">KubeCon in London</a>, where they demoed the New Frontend System and introduced the Actions Registry.</em></p>
<iframe src="https://www.youtube.com/embed/evmmr-uxNsc" width="100%" height="440" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
<p><em>Watch the maintainers' talk at <a href="https://backstage.io/blog/2025/11/25/backstagecon-kubecon-25-atlanta" target="_blank" rel="noopener noreferrer" class="">KubeCon in Atlanta</a>, where they shared
work towards an AI-Native Backstage, progress on Backstage UI, and more.</em></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="see-you-in-2026">See you in 2026!<a href="https://backstage.io/blog/2025/12/30/backstage-wrapped-2025#see-you-in-2026" class="hash-link" aria-label="Direct link to See you in 2026!" title="Direct link to See you in 2026!" translate="no">​</a></h2>
<p>Happy New Year, Backstage Community! See you in the repos!</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Backstage in Atlanta: Highlights from BackstageCon and KubeCon + CloudNativeCon North America 2025]]></title>
            <link>https://backstage.io/blog/2025/11/25/backstagecon-kubecon-25-atlanta</link>
            <guid>https://backstage.io/blog/2025/11/25/backstagecon-kubecon-25-atlanta</guid>
            <pubDate>Tue, 25 Nov 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Backstage in Atlanta: Highlights from BackstageCon and KubeCon + CloudNativeCon North America 2025]]></description>
            <content:encoded><![CDATA[<p><img decoding="async" loading="lazy" alt="Backstage in Atlanta: Highlights from BackstageCon and KubeCon + CloudNativeCon North America 2025" src="https://backstage.io/assets/images/backstagecon-kubecon-na-2025-header-3fc0b4a7e31564e1b17028ea9611e247.png" width="1200" height="628" class="img_ev3q"></p>
<p>Cancelled flights and wonky Wi-Fi couldn't hold us back from having an amazing time in the Big Peach! It was great to head south and commune with the community in person at <a href="https://colocatedeventsna2025.sched.com/overview/type/BackstageCon" target="_blank" rel="noopener noreferrer" class="">BackstageCon</a> and <a href="https://kccncna2025.sched.com/" target="_blank" rel="noopener noreferrer" class="">KubeCon + CloudNativeCon North America 2025</a> in Atlanta. We gave talks, shared insights, chatted without having to type into little text boxes, and tackled issues elbow-to-elbow during <a href="https://backstage.io/blog/2025/10/15/backstage-contribfest-kubecon-guide" target="_blank" rel="noopener noreferrer" class="">ContribFest</a>. The week was capped off with the <a href="https://www.youtube.com/watch?v=evmmr-uxNsc&amp;list=PL8iP9yIjU0Q33vpSaBlAvIhgDb-9smXUU" target="_blank" rel="noopener noreferrer" class="">Backstage maintainers talk</a> where we celebrated a year of milestones, the release of the adoption-ready New Frontend System, and work towards an AI-Native Backstage. Catch up with recordings of <a href="https://www.youtube.com/playlist?list=PL8iP9yIjU0Q33vpSaBlAvIhgDb-9smXUU" target="_blank" rel="noopener noreferrer" class="">all the Backstage talks</a> and check out highlights from our week in the Big A below.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="scenes-from-backstagecon-and-beyond">Scenes from BackstageCon (and beyond)<a href="https://backstage.io/blog/2025/11/25/backstagecon-kubecon-25-atlanta#scenes-from-backstagecon-and-beyond" class="hash-link" aria-label="Direct link to Scenes from BackstageCon (and beyond)" title="Direct link to Scenes from BackstageCon (and beyond)" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="Scenes from BackstageCon and KubeCon + CloudNativeCon NA 2025" src="https://backstage.io/assets/images/kcon25-atl-slideshow-80d0c3c88c2250dc90de0ab343d0ea8f.gif" width="800" height="533" class="img_ev3q"><br>
<em>📸 <a href="https://www.flickr.com/photos/143247548@N03/albums/72177720330018728/" target="_blank" rel="noopener noreferrer" class="">CNCF</a></em></p>
<p>Brrr…it was a cold start with “Hot 'Lanta” bringing a serious autumn chill on Monday morning. But all the spicy DevEx insights would soon heat things up in the halls of the Georgia World Conference Center. Throughout the day, we heard discussions around how organizations adopt Backstage and scale it for productivity, as well as practical lessons on governance, deployment models, change management, and standardizing best practices around Backstage.</p>
<p>And despite an unfortunate amount of flight disruptions waylaying some of the speakers, the organizers were able to work around all the last-minute issues for a day full of presentations, demos, lightning talks, and keynotes. Check out our community YouTube channel to watch recordings of <a href="https://www.youtube.com/playlist?list=PL8iP9yIjU0Q33vpSaBlAvIhgDb-9smXUU" target="_blank" rel="noopener noreferrer" class="">all the Backstage talks</a> from Atlanta. Not sure where to start?</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="a-few-personal-picks">A few personal picks<a href="https://backstage.io/blog/2025/11/25/backstagecon-kubecon-25-atlanta#a-few-personal-picks" class="hash-link" aria-label="Direct link to A few personal picks" title="Direct link to A few personal picks" translate="no">​</a></h3>
<p>Here are six BackstageCon talks that we attended and thought were worth sharing. They feature Backstage adopters across a range of industries — from finance and healthcare, to networking, automotive experiences, and beyond — all sharing use cases that relate to almost any engineering org:</p>
<ul>
<li class="">
<p>🏦 <a href="https://www.youtube.com/watch?v=0m94ERF0k4Q&amp;list=PL8iP9yIjU0Q33vpSaBlAvIhgDb-9smXUU" target="_blank" rel="noopener noreferrer" class="">Supercharging Backstage Scaffolder for Workflows</a>: Jonathan Chan and Francis Hackenberger, engineers from the Royal Bank of Canada's cloud team, talk about how they scale up the power of Backstage Software Templates at one of Canada's largest banks.</p>
</li>
<li class="">
<p>🩺 <a href="https://www.youtube.com/watch?v=ZCM9i1zD364&amp;list=PL8iP9yIjU0Q33vpSaBlAvIhgDb-9smXUU" target="_blank" rel="noopener noreferrer" class="">From Friction to Flow: How Backstage Transformed Our Security Experience</a>: In this lightning talk, Christopher Diaz, principal engineer at RVO Health, squeezes three years' worth of Backstage learnings into a 10-minute lightning talk — including how Backstage has unlocked an inner source culture within their org, with teams building custom plugins to extend their instance (“That's what makes it so much fun to build on Backstage: everything you need to solve a problem is literally just a pull request away” 🙌).</p>
</li>
<li class="">
<p>📶 <a href="https://www.youtube.com/watch?v=1mDEkiN4NTs&amp;list=PL8iP9yIjU0Q33vpSaBlAvIhgDb-9smXUU" target="_blank" rel="noopener noreferrer" class="">How Ericsson Scaled Developer Experience with Backstage</a>: Ericsson principal engineer Damien O'Toole and engineering manager Kieran Egan share what they learned on the way to scaling internal Backstage adoption to over 1,260 users and over 4,073 weekly visits.</p>
</li>
<li class="">
<p>🚗 <a href="https://www.youtube.com/watch?v=pFSSpDHB2rU&amp;list=PL8iP9yIjU0Q33vpSaBlAvIhgDb-9smXUU" target="_blank" rel="noopener noreferrer" class="">Cruising the AI Highway: Standardized MCP Deployment and Governance with Backstage</a>: Engineers from Toyota Connected — “recovering system administrator” Rob Heckel and platform engineer Tyler Rothenberg — share how they deploy MCP servers across their org in an easy, secure, and sustainable way, covering everything from the basics of MCP to deploying MCP servers using cloud native tools and integrating them with Backstage.</p>
</li>
<li class="">
<p>📊 <a href="https://www.youtube.com/watch?v=IdLXeK8motg&amp;list=PL8iP9yIjU0Q33vpSaBlAvIhgDb-9smXUU" target="_blank" rel="noopener noreferrer" class="">Lego Bricks for Developers: Turning Insights into Golden Paths at Neo4j</a>: Developer advocate Jeremy Adams (stepping in for a waylayed Chris Heisz) joins engineer Luke Beamish to talk about how they use Golden Paths at Neo4j, a leader in graph technology whose tech is used for cancer research, GenAI, and NASA's mission to Mars.</p>
</li>
<li class="">
<p>🔔 <a href="https://www.youtube.com/watch?v=N4gCLbhxTHA&amp;list=PL8iP9yIjU0Q33vpSaBlAvIhgDb-9smXUU" target="_blank" rel="noopener noreferrer" class="">Driving Adoption by Generating High Value Notifications in Backstage</a>: How do notifications work in Backstage and what makes them such a powerful way to drive Backstage adoption within your org? Watch this talk by Spotify engineering manager Avantika Iyer and customer success engineer/Backstage community maintainer André Wanlin. [Hey, that's me! Seriously, tho, notifications are the jam. — AW]</p>
</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="backstage-at-kubecon">Backstage at KubeCon<a href="https://backstage.io/blog/2025/11/25/backstagecon-kubecon-25-atlanta#backstage-at-kubecon" class="hash-link" aria-label="Direct link to Backstage at KubeCon" title="Direct link to Backstage at KubeCon" translate="no">​</a></h3>
<p>The Backstage-related talks continued throughout the week during KubeCon + CloudNativeCon, including:</p>
<ul>
<li class="">
<p>🚀 <a href="https://www.youtube.com/watch?v=l7OQdrUkoVI&amp;list=PL8iP9yIjU0Q33vpSaBlAvIhgDb-9smXUU" target="_blank" rel="noopener noreferrer" class="">The Journey of Deploying Backstage in a Large Organization</a>, as told by engineers Mathieu Girard and Teddy Poingt from Beneva, Canada's largest mutual insurance company.</p>
</li>
<li class="">
<p>📚 <a href="https://www.youtube.com/watch?v=eqxKB6Gq7oc&amp;list=PL8iP9yIjU0Q33vpSaBlAvIhgDb-9smXUU" target="_blank" rel="noopener noreferrer" class="">Build Your Internal Developer Platform with the Experts</a> in this hands-on workshop led by CNCF ambassadors and project maintainers.</p>
</li>
<li class="">
<p>🎵 <a href="https://www.youtube.com/watch?v=2t_Pdiu3B1E&amp;list=PL8iP9yIjU0Q33vpSaBlAvIhgDb-9smXUU" target="_blank" rel="noopener noreferrer" class="">Harmonizing Strategy and Engineering: Lessons Learnt in Building a Platform Plugin for Diverse Users</a> from Spotify senior product manager Sri Chandrasekaran and senior engineer Kate Klymkovska. [Hey, that's me! What André said, except product vision instead of notifications. — KK]</p>
</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="watch-em-all">Watch 'em all!<a href="https://backstage.io/blog/2025/11/25/backstagecon-kubecon-25-atlanta#watch-em-all" class="hash-link" aria-label="Direct link to Watch 'em all!" title="Direct link to Watch 'em all!" translate="no">​</a></h3>
<p>📺 There's much more to explore and dive into. Head over to the Backstage Community YouTube channel to <a href="https://www.youtube.com/playlist?list=PL8iP9yIjU0Q33vpSaBlAvIhgDb-9smXUU" target="_blank" rel="noopener noreferrer" class="">watch all the Backstage talks</a> from BackstageCon and KubeCon.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="our-third-backstage-contribfest">Our third Backstage ContribFest<a href="https://backstage.io/blog/2025/11/25/backstagecon-kubecon-25-atlanta#our-third-backstage-contribfest" class="hash-link" aria-label="Direct link to Our third Backstage ContribFest" title="Direct link to Our third Backstage ContribFest" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="Backstage ContribFest at KubeCon + CloudNativeCon NA 2025!" src="https://backstage.io/assets/images/kcon25-atl-contribfest-b92a27361da7f3bc16b3b957d716ac60.jpg" width="1200" height="857" class="img_ev3q"></p>
<p>We talked about Backstage a ton, but we also invited attendees to help us build it. In Atlanta, we co-hosted our third <a href="https://backstage.io/blog/2025/10/15/backstage-contribfest-kubecon-guide" target="_blank" rel="noopener noreferrer" class="">Backstage Contribfest</a> with participants of all experience and skill levels diving into the Backstage repos to tackle issues together — and with plenty of Backstage maintainers and contributors close at hand to help out.</p>
<p>A few ContribFest-fueled pull requests have already popped up in the repos:</p>
<ul>
<li class="">fix(ui): render html in gfm mode in MarkdownContent component (<a href="https://github.com/backstage/backstage/pull/31770" target="_blank" rel="noopener noreferrer" class="">#31770</a>)</li>
<li class="">catalog-react: OwnerEntityPicker case insensitive (<a href="https://github.com/backstage/backstage/pull/31756" target="_blank" rel="noopener noreferrer" class="">#31756</a>)</li>
<li class="">fix: making the github urls case insensitive (<a href="https://github.com/backstage/backstage/pull/31754" target="_blank" rel="noopener noreferrer" class="">#31754</a>)</li>
<li class="">fix: success announcements should be transient (<a href="https://github.com/backstage/community-plugins/pull/6041" target="_blank" rel="noopener noreferrer" class="">#6041</a> — ✅ merged!)</li>
</ul>
<p>Many thanks to all the participants and to our fellow hosts — Kurt King from Procore and Aramis Sennyey from DoorDash!🙏</p>
<p>🛠️ If you haven't yet joined our worldwide community of contributors, <a href="https://github.com/backstage/backstage/blob/master/CONTRIBUTING.md" target="_blank" rel="noopener noreferrer" class="">there's no time like the present</a>!</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="maintainers-talk-stable-foundations-mcp-innovations">Maintainers talk: Stable foundations, MCP innovations<a href="https://backstage.io/blog/2025/11/25/backstagecon-kubecon-25-atlanta#maintainers-talk-stable-foundations-mcp-innovations" class="hash-link" aria-label="Direct link to Maintainers talk: Stable foundations, MCP innovations" title="Direct link to Maintainers talk: Stable foundations, MCP innovations" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="Backstage Maintainers Track at KubeCon + CloudNativeCon NA 2025!" src="https://backstage.io/assets/images/kcon25-atl-maintainers-0e2ead604bbf36999dd9e02fee2900be.gif" width="800" height="450" class="img_ev3q"></p>
<p>As always, the main event for the community is the Maintainers Track session. Backstage core maintainers Ben Lambert and Patrik Oldsberg closed out the week celebrating a year of milestones — including contributions big and small from the community — while looking ahead to what's next for the framework.</p>
<p>In their talk, <a href="https://www.youtube.com/watch?v=evmmr-uxNsc&amp;list=PL8iP9yIjU0Q33vpSaBlAvIhgDb-9smXUU" target="_blank" rel="noopener noreferrer" class="">Backstage Celebrations: Stable Foundations and MCP Innovations</a>, they shared:</p>
<ul>
<li class="">
<p><strong>Project Updates:</strong> Adopters, plugins, and stars — and all the other ways the Backstage community continues to grow, including in the community-plugins repo. Plus, improvements to issue handling and more.</p>
</li>
<li class="">
<p><strong>Project Maturity:</strong> With the new backend (<a href="https://backstage.io/docs/releases/v1.31.0/" target="_blank" rel="noopener noreferrer" class="">released as a stable 1.0 last year</a>) and new frontend (<a href="https://backstage.io/docs/releases/v1.42.0" target="_blank" rel="noopener noreferrer" class="">adoption-ready as of this year</a>) now both in place, the Backstage framework has modern foundations built for the future. With more emphasis on declarative integration (and less TypeScript code), Backstage is more accessible and easier to maintain — and plugins are simpler than ever to build and integrate. Make sure to watch the demo to see how quickly you can install plugins into a fresh Backstage instance.</p>
</li>
<li class="">
<p><strong>New Stuff ✨:</strong> MCP, MCP, MCP, and MCP: What happens when you combine your AI tools with your engineering source of truth? Learn about Backstage + MCP, the latest improvements to the Backstage Actions Registry, authorization via new dynamic client registration and CLI authentication, and a live demo. Plus, all the latest on the framework's new design system, <a href="https://ui.backstage.io/" target="_blank" rel="noopener noreferrer" class="">Backstage UI</a> (BUI).</p>
</li>
<li class="">
<p><strong>Roadmap:</strong> Looking ahead to what's next for the New Frontend System, the Backstage UI rollout, the plugin ecosystem, MCP, CLI, and the release process.</p>
</li>
</ul>
<p>📺 Watch the entire <a href="https://www.youtube.com/watch?v=evmmr-uxNsc&amp;list=PL8iP9yIjU0Q33vpSaBlAvIhgDb-9smXUU" target="_blank" rel="noopener noreferrer" class="">Backstage maintainers talk</a> to dig into the past, present, and future of the framework, including live demos showcasing the newest features and capabilities.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="see-you-in-amsterdam">See you in 🌷Amsterdam!<a href="https://backstage.io/blog/2025/11/25/backstagecon-kubecon-25-atlanta#see-you-in-amsterdam" class="hash-link" aria-label="Direct link to See you in 🌷Amsterdam!" title="Direct link to See you in 🌷Amsterdam!" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="Cloud native puppies improving developer experience at KubeCon + CloudNativeCon NA 2025!" src="https://backstage.io/assets/images/kcon25-atl-puppies-d51ac2427809ed626aba8db893c39653.gif" width="800" height="533" class="img_ev3q"><br>
<em>Cloud native puppies improving developer experience in Atlanta. 📸 <a href="https://www.flickr.com/photos/143247548@N03/albums/72177720330018728/" target="_blank" rel="noopener noreferrer" class="">CNCF</a></em></p>
<p>And that's a wrap for Atlanta! We say goodbye to the home of 🎤 trap music and get ready to say hello to a <a href="https://en.wikipedia.org/wiki/Stroopwafel" target="_blank" rel="noopener noreferrer" class="">stroopwafel</a> fika 🧇.</p>
<p>See you next year at <a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/co-located-events/backstagecon/" target="_blank" rel="noopener noreferrer" class="">BackstageCon</a> and <a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/" target="_blank" rel="noopener noreferrer" class="">KubeCon + CloudNativeCon Europe 2026</a> in Amsterdam!</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Get ready for Backstage ContribFest at KubeCon!]]></title>
            <link>https://backstage.io/blog/2025/10/15/backstage-contribfest-kubecon-guide</link>
            <guid>https://backstage.io/blog/2025/10/15/backstage-contribfest-kubecon-guide</guid>
            <pubDate>Wed, 15 Oct 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Get ready for Backstage ContribFest at KubeCon!]]></description>
            <content:encoded><![CDATA[<p><img decoding="async" loading="lazy" alt="Get ready for Backstage ContribFest at KubeCon!" src="https://backstage.io/assets/images/backstage-contribfest-kubecon-guide-header-fe03d676bef5d0494147e64e4aba5261.png" width="1800" height="945" class="img_ev3q"></p>
<p>Pack your laptop and mark your calendars! Backstage will once again be taking part in the ContribFest track at KubeCon! Join us at KubeCon 2025 North America in Atlanta on Monday, November 13. Feel free to <a href="https://kccncna2025.sched.com/event/27Nl6/contribfest-level-up-your-open-source-journey-hands-on-backstage-contributions-andre-wanlin-patrik-oldsberg-emma-indal-spotify-aramis-sennyey-doordash-kurt-king-procore" target="_blank" rel="noopener noreferrer" class="">bookmark it on your schedule</a>. Then read on to get yourself prepared for the session beforehand to maximize your time working with other contributors and Backstage experts during the session.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="contrib-what">Contrib-what?<a href="https://backstage.io/blog/2025/10/15/backstage-contribfest-kubecon-guide#contrib-what" class="hash-link" aria-label="Direct link to Contrib-what?" title="Direct link to Contrib-what?" translate="no">​</a></h2>
<p>Before we dive into preparation for the Backstage ContribFest session we should probably take a detour and answer the question: What the heck is ContribFest?</p>
<p>ContribFest is a track at KubeCon where various CNCF projects will host hands-on sessions working with their respective communities on contributions towards their projects. You don't have to be a past contributor to participate — new community members are encouraged to join!</p>
<p>These sessions are 75 minutes long and take place in a room with roughly a dozen circular tables that seat about eight people making it easy to work and collaborate. They usually lead off with some getting started steps and then give attendees the rest of the time to work on their contributions with the aid of experts from the project.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-to-prepare-before-you-get-there">What to prepare before you get there<a href="https://backstage.io/blog/2025/10/15/backstage-contribfest-kubecon-guide#what-to-prepare-before-you-get-there" class="hash-link" aria-label="Direct link to What to prepare before you get there" title="Direct link to What to prepare before you get there" translate="no">​</a></h2>
<p>For the Backstage ContribFest session, there are some preparation steps you can complete on your own well before the session. Let's cover those now:</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-fork-the-repos">1. Fork the repos<a href="https://backstage.io/blog/2025/10/15/backstage-contribfest-kubecon-guide#1-fork-the-repos" class="hash-link" aria-label="Direct link to 1. Fork the repos" title="Direct link to 1. Fork the repos" translate="no">​</a></h3>
<p>You'll have the option to contribute to the Backstage repo or the Backstage Community Plugins repo. To get those onto your system, you need to follow the GitHub <a href="https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo#forking-a-repository" target="_blank" rel="noopener noreferrer" class="">"Forking a repository"</a> guide and fork these:</p>
<ul>
<li class="">Backstage: <a href="https://github.com/backstage/backstage" target="_blank" rel="noopener noreferrer" class="">https://github.com/backstage/backstage</a></li>
<li class="">Backstage Community Plugins: <a href="https://github.com/backstage/community-plugins" target="_blank" rel="noopener noreferrer" class="">https://github.com/backstage/community-plugins</a></li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-update-nodejs-and-yarn">2. Update Node.js and Yarn<a href="https://backstage.io/blog/2025/10/15/backstage-contribfest-kubecon-guide#2-update-nodejs-and-yarn" class="hash-link" aria-label="Direct link to 2. Update Node.js and Yarn" title="Direct link to 2. Update Node.js and Yarn" translate="no">​</a></h3>
<p>Backstage has <a href="https://backstage.io/docs/getting-started/#prerequisites" target="_blank" rel="noopener noreferrer" class="">a few prerequisites</a> that you'll need to have in place before you can run Backstage or the various Backstage Community Plugins. Here's what you need:</p>
<ul>
<li class="">
<p>Backstage uses Node.js — you'll want to install version 22 for the session.</p>
<ul>
<li class="">To make this easier, we recommend you use Node Version Manager nvm, you can <a href="https://github.com/nvm-sh/nvm#install--update-script" target="_blank" rel="noopener noreferrer" class="">follow these instructions to install it</a>.</li>
<li class="">Once you have nvm installed, you can run this command to get Node 22 installed and activated: <code>nvm install 22</code></li>
</ul>
</li>
<li class="">
<p>Yarn is the package manager used by Backstage — you'll want to install it as well.</p>
<ul>
<li class="">Simply run <code>corepack enable</code> to do so.</li>
</ul>
</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-test-your-setups">3. Test your setups<a href="https://backstage.io/blog/2025/10/15/backstage-contribfest-kubecon-guide#3-test-your-setups" class="hash-link" aria-label="Direct link to 3. Test your setups" title="Direct link to 3. Test your setups" translate="no">​</a></h3>
<p>Now let's do a quick test to confirm that everything is working.</p>
<p>First, let's check that you can run the Backstage codebase:</p>
<ol>
<li class="">Navigate to your cloned fork of the Backstage repo</li>
<li class="">From the root, run <code>yarn install</code></li>
<li class="">Then run <code>yarn tsc</code></li>
<li class="">Finally run <code>yarn start</code></li>
<li class="">Backstage will open in a new browser window or tab</li>
</ol>
<p>Now, let's check the Backstage Community Plugins:</p>
<ol>
<li class="">Navigate to your your cloned fork of the Backstage Community Plugins repo</li>
<li class="">This repo is structured in a way where there are many plugins that live in their own dedicated workspace — for this test, we'll use the <code>linguist</code> workspace. From the root, run <code>cd workspaces/linguist</code></li>
<li class="">From here run <code>yarn install</code></li>
<li class="">Then run <code>yarn tsc</code></li>
<li class="">Finally run <code>yarn start</code></li>
<li class="">An example Backstage app will open in a new browser window or tab</li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="bonus-check-out-the-contribution-guides">Bonus: Check out the contribution guides<a href="https://backstage.io/blog/2025/10/15/backstage-contribfest-kubecon-guide#bonus-check-out-the-contribution-guides" class="hash-link" aria-label="Direct link to Bonus: Check out the contribution guides" title="Direct link to Bonus: Check out the contribution guides" translate="no">​</a></h3>
<p>At this point, you have all the prerequisites in place and are ready to take part in the Backstage ContribFest session. From here, we recommend you take some time to read the contributions guides as that will get you more familiar with the overall process. Here they are:</p>
<ul>
<li class=""><a href="https://github.com/backstage/backstage/blob/master/CONTRIBUTING.md" target="_blank" rel="noopener noreferrer" class="">Backstage Contribution Guide</a></li>
<li class=""><a href="https://github.com/backstage/community-plugins/blob/main/CONTRIBUTING.md" target="_blank" rel="noopener noreferrer" class="">Backstage Community Plugins Contribution Guide</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-see-you-in-atlanta">👋 See you in Atlanta!<a href="https://backstage.io/blog/2025/10/15/backstage-contribfest-kubecon-guide#-see-you-in-atlanta" class="hash-link" aria-label="Direct link to 👋 See you in Atlanta!" title="Direct link to 👋 See you in Atlanta!" translate="no">​</a></h2>
<p>On behalf of myself and the other co-hosts of Backstage ContribFest, thanks for following along! We look forward to seeing you in Atlanta and working with you on your contributions. Make sure to say hello!</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Migrating legacy services to a modern developer portal: A technical guide to Backstage integration]]></title>
            <link>https://backstage.io/blog/2025/08/08/migrating-legacy-services-to-a-modern-developer-portal</link>
            <guid>https://backstage.io/blog/2025/08/08/migrating-legacy-services-to-a-modern-developer-portal</guid>
            <pubDate>Fri, 08 Aug 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[TL;DR: As part of our efforts to streamline service management and improve developer experience, our engineering org migrated from a legacy service catalogue to the Backstage Software Catalog. In this post, I'll share what we learned from that journey --- including how to build an automated script to migrate services from an existing internal service catalogue to a modern internal developer portal (IDP) like Backstage. I'll also outline strategies to help drive adoption across your organization, along with tips for addressing both the cultural and technical roadblocks you might encounter along the way.]]></description>
            <content:encoded><![CDATA[<p><strong>TL;DR:</strong> As part of our efforts to streamline service management and improve developer experience, our engineering org migrated from a legacy service catalogue to the Backstage Software Catalog. In this post, I'll share what we learned from that journey --- including how to build an automated script to migrate services from an existing internal service catalogue to a modern internal developer portal (IDP) like Backstage. I'll also outline strategies to help drive adoption across your organization, along with tips for addressing both the cultural and technical roadblocks you might encounter along the way.</p>
<p><img decoding="async" loading="lazy" alt="migration flowchart" src="https://backstage.io/assets/images/image01-bfb388d23495f470552e6b94bf3250ef.png" width="2260" height="1769" class="img_ev3q"></p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="why-and-how-a-modern-developer-portal-was-rolled-out">Why and How a Modern Developer Portal Was Rolled Out<a href="https://backstage.io/blog/2025/08/08/migrating-legacy-services-to-a-modern-developer-portal#why-and-how-a-modern-developer-portal-was-rolled-out" class="hash-link" aria-label="Direct link to Why and How a Modern Developer Portal Was Rolled Out" title="Direct link to Why and How a Modern Developer Portal Was Rolled Out" translate="no">​</a></h2>
<p>Historically, many organizations utilized internally built software tools for managing their service inventories. While these tools served their purpose, there's a growing need for more robust service
catalogues that require less maintenance and reduce over-engineered tooling. Frameworks like Backstage have emerged as powerful solutions.</p>
<p>The decision is often made to establish a single source of truth for services and engineering teams. The vision is typically for reliability or platform teams to envision a world where every software development
team, regardless of size or domain, can efficiently manage projects, access tools and resources, and foster a collaborative culture. A modern developer portal aims to become the go-to platform for developers, infrastructure teams, and product managers to collaborate, accelerate development cycles, and deliver high-quality software. It serves as a centralized hub, consolidating all necessary information, tools, and services that developers require throughout the software development lifecycle.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="internal-services-landscape">Internal Services Landscape<a href="https://backstage.io/blog/2025/08/08/migrating-legacy-services-to-a-modern-developer-portal#internal-services-landscape" class="hash-link" aria-label="Direct link to Internal Services Landscape" title="Direct link to Internal Services Landscape" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="internal services" src="https://backstage.io/assets/images/image02-d9d93d7056557dc432d963e4c52c2951.png" width="1150" height="760" class="img_ev3q"></p>
<p>In large organizations, it's common to manage thousands of GitHub repositories, encompassing a wide array of assets such as front end web applications, backend web services, mobile applications, and APIs. For instance, a typical enterprise might have:</p>
<ul>
<li class="">Hundreds or thousands of APIs</li>
<li class="">Hundreds or thousands Services</li>
<li class="">Dozens of Web applications</li>
<li class="">Various libraries, infrastructure components, etc.</li>
</ul>
<p>Migrating these internal services from various engineering teams requires a systematic approach to retrieve the existing service definitions and transform them into a format compatible with the new
developer portal. This often involves automated scripts to ensure efficient ingestion. For example, successfully migrating hundreds of services into a new portal is a common achievement in such initiatives.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="github-requests-architecture-for-migration">GitHub Requests Architecture for Migration<a href="https://backstage.io/blog/2025/08/08/migrating-legacy-services-to-a-modern-developer-portal#github-requests-architecture-for-migration" class="hash-link" aria-label="Direct link to GitHub Requests Architecture for Migration" title="Direct link to GitHub Requests Architecture for Migration" translate="no">​</a></h2>
<p><strong>Using an Entity Provider and a Scripted Migration</strong></p>
<p>In our Backstage setup, we took a hybrid approach: we used an automated script to generate and submit <code>catalog-info.yaml</code> files to service repositories, and relied on the GitHub Entity Provider defined in our
<code>app-config.yaml</code> to ingest them into the catalog. This gave us the best of both worlds.</p>
<p>The script handled the heavy lifting of migrating metadata from for example legacy <code>(.appcatalog.yaml)</code> files, transforming them into the modern format expected by Backstage. It also empowered teams by
submitting pull requests they could review and enrich adding ownership metadata, documentation links, or system context before merging. Once merged, the GitHub Entity Provider took over, ingesting the files on a
scheduled basis and ensuring Backstage stayed up to date. This pattern reduced manual overhead, maintained decentralization, and eliminated the need for a persistent integration with the legacy system. Since the old catalog was being decommissioned, this also aligned with our goal of moving forward cleanly without syncing two sources of truth.</p>
<p><img decoding="async" loading="lazy" alt="api orchestration" src="https://backstage.io/assets/images/image03-c7a497deb181e18a41e82719fe2d73bd.png" width="1982" height="1034" class="img_ev3q"></p>
<p>Several technical steps are typically involved in retrieving existing service definition files <code>(e.g., appcatalog.yaml)</code>, an example yaml file, and then converting them into the modern developer portal's preferred
format <code>(e.g.catalog-info.yaml</code> for Backstage). Rather than manually creating new definition files, an automated Python script can be developed to generate and add them to the respective repositories or services. Without creating and using these automated scripts, doing these tasks manually can take several hours and could become extremely tedious. For example, in the case of Backstage, it would mean having to explicitly create the <code>catalog-info.yaml</code> hundreds of times in hundreds of repositories which can also result in hundreds of errors and manual lift.</p>
<p><strong>Requirement One: GitHub Apps</strong></p>
<p>A dedicated GitHub App can be utilized to extend functionality, granting the necessary permissions to submit pull requests across multiple repositories. GitHub Apps are integrations that extend GitHub's functionality and can automate tasks, interacting with and extending GitHub's features.</p>
<p>A private key <code>(.pem)</code> is retrieved for the GitHub App, and a JSON Web Token (JWT) is created. These two keys are combined to generate an Authentication Token, which is an encoded JSON Web Token.</p>
<p><strong>Requirement Two: An Access Token and Bearer Token</strong></p>
<p>The Authentication Token (encoded JWT) is used to make a <code>GET</code> request to the GitHub API endpoint <code>/app/installations</code> at <code>api.github.com.</code> This request retrieves an access token URL. Once that access token URL is received, another request is made to this URL to obtain the Bearer token. This Bearer token is then used for major requests to GitHub API endpoints, such as <code>https://api.github.com/repos/{owner}/{repo}/contents/{path}.</code></p>
<p><strong>Base64 and YAML Processing</strong></p>
<p>With the Bearer token, a request can be made to retrieve the contents of GitHub repositories containing the legacy service definition files <code>(e.g. .appcatalog.yaml)</code>. GitHub typically returns these contents in
Base64 format, a binary-to-text encoding scheme that converts binary data into an ASCII string, often used for secure data transmission over HTTP.</p>
<p>Upon receiving the encoded Base64 content, it must be decoded to YAML. The decoded YAML is then compared to the desired key-value pairings for the new catalog-info.yaml file. This is where a custom Mapper comes into
play. A template for catalog-info.yaml is created following the developer portal's guidelines. The key-value pairs from this template are then mapped to the values received from the legacy service
definition file. For example:</p>
<div class="language-python codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#232323"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-python codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#232323"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">results</span><span class="token punctuation" style="color:rgb(212, 212, 212)">[</span><span class="token string" style="color:rgb(206, 145, 120)">'metadata'</span><span class="token punctuation" style="color:rgb(212, 212, 212)">]</span><span class="token punctuation" style="color:rgb(212, 212, 212)">[</span><span class="token string" style="color:rgb(206, 145, 120)">'title'</span><span class="token punctuation" style="color:rgb(212, 212, 212)">]</span><span class="token plain"> </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> data</span><span class="token punctuation" style="color:rgb(212, 212, 212)">[</span><span class="token string" style="color:rgb(206, 145, 120)">'appInfo'</span><span class="token punctuation" style="color:rgb(212, 212, 212)">]</span><span class="token punctuation" style="color:rgb(212, 212, 212)">[</span><span class="token string" style="color:rgb(206, 145, 120)">'appName'</span><span class="token punctuation" style="color:rgb(212, 212, 212)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"></span><span class="token comment" style="color:rgb(106, 153, 85)"># In the new format: metadata.title</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"></span><span class="token comment" style="color:rgb(106, 153, 85)"># From the legacy file: appInfo.appName</span><br></span></code></pre></div></div>
<p>After the comparisons and correct mapping for the new format, the data is dumped into the <code>catalog-info.yaml</code> file and finally encoded back to Base64 for submission to the GitHub repository.</p>
<p>An example excerpt code of encoding YAML file to base64</p>
<div class="language-python codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#232323"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-python codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#232323"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">def</span><span class="token plain"> </span><span class="token function" style="color:rgb(220, 220, 170)">encode_to_base64</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token builtin" style="color:rgb(86, 156, 214)">file</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><span class="token punctuation" style="color:rgb(212, 212, 212)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">    catalog_info_data </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> load_yaml</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token builtin" style="color:rgb(86, 156, 214)">file</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">    </span><span class="token keyword" style="color:rgb(86, 156, 214)">print</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token plain">catalog_info_data</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><span class="token plain"> </span><span class="token comment" style="color:rgb(106, 153, 85)">#json</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">    catalog_yaml  </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> yaml</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">dump_all</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token plain">catalog_info_data</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><span class="token plain"> </span><span class="token comment" style="color:rgb(106, 153, 85)">#yaml</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">    </span><span class="token keyword" style="color:rgb(86, 156, 214)">print</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token string" style="color:rgb(206, 145, 120)">'\n'</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">    </span><span class="token keyword" style="color:rgb(86, 156, 214)">print</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token plain">catalog_yaml</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">    logger</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token punctuation" style="color:rgb(212, 212, 212)">{</span><span class="token string" style="color:rgb(206, 145, 120)">'data'</span><span class="token punctuation" style="color:rgb(212, 212, 212)">:</span><span class="token plain"> catalog_yaml</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token string" style="color:rgb(206, 145, 120)">'method'</span><span class="token punctuation" style="color:rgb(212, 212, 212)">:</span><span class="token string" style="color:rgb(206, 145, 120)">'encode_to_base64'</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token string" style="color:rgb(206, 145, 120)">'level'</span><span class="token punctuation" style="color:rgb(212, 212, 212)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">'debug'</span><span class="token punctuation" style="color:rgb(212, 212, 212)">}</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">    </span><span class="token comment" style="color:rgb(106, 153, 85)">#yaml k:v (dict) to string</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">    dict_to_string </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token builtin" style="color:rgb(86, 156, 214)">str</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token plain">catalog_yaml</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">    encoded </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain">  base64</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">b64encode</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token builtin" style="color:rgb(86, 156, 214)">bytes</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token plain">dict_to_string</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">'utf-8'</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><span class="token plain"> </span><span class="token comment" style="color:rgb(106, 153, 85)"># bytes</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">    </span><span class="token keyword" style="color:rgb(86, 156, 214)">print</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token string" style="color:rgb(206, 145, 120)">"\n"</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">    </span><span class="token comment" style="color:rgb(106, 153, 85)">#decode to convert into to explicit string and remove b prefix in encoded</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">    enc_dec </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> encoded</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">decode</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token string" style="color:rgb(206, 145, 120)">'utf-8'</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">    </span><span class="token keyword" style="color:rgb(86, 156, 214)">print</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token plain">enc_dec</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">    </span><span class="token keyword" style="color:rgb(86, 156, 214)">return</span><span class="token plain"> enc_dec</span><br></span></code></pre></div></div>
<p><strong>Submitting Changes to the GitHub Repository</strong>
Submitting the file back to the GitHub repository involves a few more steps. A <code>GET</code> request is made to the Git branches endpoint, <code>/repos/{owner}/{repo}/branches/{branch}</code>, to check if a new branch <code>(e.g. update/developer-portal-opt-in)</code> already exists.</p>
<p>If the branch does not exist, it is created from the main or master branch, depending on which one is present in the repository, using <code>refs/heads/{branch_name}\'.format(\*\*locals()).</code> Finally, the pull
request with the encoded Base64 YAML is submitted to the branch using the GitHub endpoint <code>/repos/{owner}/{repo}/pulls.</code></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="adoption-and-impact">Adoption and Impact<a href="https://backstage.io/blog/2025/08/08/migrating-legacy-services-to-a-modern-developer-portal#adoption-and-impact" class="hash-link" aria-label="Direct link to Adoption and Impact" title="Direct link to Adoption and Impact" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="adoption challenges" src="https://backstage.io/assets/images/image04-81fa2b05815a81c5c222ccfbe67592bc.png" width="1882" height="1302" class="img_ev3q"></p>
<p>Initially, the adoption of a new developer portal can face challenges
for several reasons:</p>
<ul>
<li class="">Engineering teams may be hesitant to merge unfamiliar pull requests into their repositories or services.</li>
<li class="">Some teams or engineers might lack a robust understanding of the new portal's purpose or value.</li>
<li class="">The new tooling might not be a strictly defined, top-down mandated requirement from leadership.</li>
<li class="">Access requests might still be required, even for a centralized portal.</li>
<li class="">Customer adoption can be slow, sometimes requiring individual demonstrations even after widespread presentations.</li>
<li class="">Some individuals might understand what the portal is but not its full capabilities or limitations.</li>
</ul>
<p><strong>Gaining Traction and Growth</strong></p>
<p>Despite initial hurdles, a new developer portal can gain immense traction and adoption after numerous pitches to various teams. A key factor in widespread adoption often includes contributions from various engineering teams beyond the initial implementation group.</p>
<p>The transformation can primarily be driven by a concerted effort to understand team needs, strategically "sell" the platform's value, and address early friction points. The key to this success lies in demonstrating tangible benefits and integrating features that directly solved developer pain points.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="understanding-team-needs">Understanding Team Needs<a href="https://backstage.io/blog/2025/08/08/migrating-legacy-services-to-a-modern-developer-portal#understanding-team-needs" class="hash-link" aria-label="Direct link to Understanding Team Needs" title="Direct link to Understanding Team Needs" translate="no">​</a></h4>
<p>During the discovery and initial implementation phases, it became clear what capabilities teams truly desired from a developer portal:</p>
<ul>
<li class=""><strong>Visibility into Ownership and Relationships:</strong> Teams were highly interested in features like a <strong>dependency graph</strong> or <strong>organizational chart</strong>. They wanted clear visibility into service ownership and relationships between different services, enabling them to quickly identify whom to contact for specific issues or collaborations.</li>
<li class=""><strong>Service Discoverability:</strong> Once they grasped the concept and value of having their services represented in a central catalogue, teams actively sought to have their services migrated or ingested using the scaffolder. Their motivation was clear: they wanted other engineers to easily find and understand their services within the portal.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="strategies-for-selling-the-idea">Strategies for Selling the Idea<a href="https://backstage.io/blog/2025/08/08/migrating-legacy-services-to-a-modern-developer-portal#strategies-for-selling-the-idea" class="hash-link" aria-label="Direct link to Strategies for Selling the Idea" title="Direct link to Strategies for Selling the Idea" translate="no">​</a></h2>
<p>A combined approach was crucial to effectively "sell" the developer portal idea to various teams:</p>
<ol>
<li class=""><strong>Clear Roadmap:</strong> Presenting a comprehensive roadmap that outlined the portal's current state and its future potential helped teams envision its long-term value.</li>
<li class=""><strong>Engaging Presentations and RFCs:</strong> Conducting engineering presentations to numerous teams and sharing Requests for Comments (RFCs) allowed for broader review, gathered valuable insights, and fostered a sense of community involvement.</li>
<li class=""><strong>Highlighting Discoverability:</strong> Emphasizing that their services would be easily discoverable by other teams and that the portal would serve as a single source of truth for all component information related to their services was a powerful selling point.</li>
<li class=""><strong>Personalized Demos:</strong> Conducting 1:1 Slack huddles with individual engineers to demo the platform provided a personalized experience and allowed for direct addressing of questions.</li>
<li class=""><strong>Visual Aids:</strong> Utilizing diagrams of various components and illustrating their benefits helped simplify complex concepts and showcase the portal's advantages.</li>
<li class=""><strong>Addressing Codebase Concerns:</strong> When submitting the automated pull requests with the migration script, it was crucial to explain to teams that these changes would not result in any loss of functionality, nor would they have any adverse effects or modifications to their existing codebase.</li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="addressing-early-friction">Addressing Early Friction<a href="https://backstage.io/blog/2025/08/08/migrating-legacy-services-to-a-modern-developer-portal#addressing-early-friction" class="hash-link" aria-label="Direct link to Addressing Early Friction" title="Direct link to Addressing Early Friction" translate="no">​</a></h3>
<p>Despite these efforts, initial friction was inevitable:</p>
<ol>
<li class=""><strong>Pushback on Automated PRs:</strong> There was initial pushback regarding the automated pull requests submitted to their repositories.</li>
<li class=""><strong>Reluctance to Merge:</strong> Engineering teams were hesitant to merge a "random" PR into their repositories, especially without a full understanding of its purpose.</li>
<li class=""><strong>Lack of Understanding:</strong> Some teams simply didn't have a robust understanding of what the portal was or its value, leading them to either not merge the <code>catalog-info.yaml</code> PR or, in some cases,
even delete it.</li>
</ol>
<p>Through persistent engagement, clear communication, and demonstrating tangible value, these initial resistances can be gradually overcome. The strategic addition of features and the active involvement of other
engineering teams, particularly those focused on reliability platforms and SRE, proved instrumental in demonstrating the platform's utility and appeal.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="feature-additions-driving-adoption">Feature Additions Driving Adoption<a href="https://backstage.io/blog/2025/08/08/migrating-legacy-services-to-a-modern-developer-portal#feature-additions-driving-adoption" class="hash-link" aria-label="Direct link to Feature Additions Driving Adoption" title="Direct link to Feature Additions Driving Adoption" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="plugin ecosystem" src="https://backstage.io/assets/images/image06-a21a50de25663e89f0e64a33919ed704.png" width="1606" height="976" class="img_ev3q"></p>
<p>The addition of components like a <a href="https://www.thoughtworks.com/en-us/radar" target="_blank" rel="noopener noreferrer" class="">Tech Radar</a> can significantly increase engineer interest. A Tech Radar is typically implemented to help engineers and cross-functional teams understand the "paved road" technology stack, what should be used for new systems andwhat existing systems should aspire to move towards. Thoughtworks created this system and can be seen here:
<a href="https://www.thoughtworks.com/en-us/radar" target="_blank" rel="noopener noreferrer" class="">https://www.thoughtworks.com/en-us/radar</a></p>
<p>Some other <a href="https://backstage.io/plugins/" target="_blank" rel="noopener noreferrer" class="">plugins</a> that
can increase widespread adoption of a developer portal:</p>
<ol>
<li class="">Q/A Plugin</li>
<li class="">Groups or teams plugins</li>
<li class="">Kubernetes plugin</li>
<li class="">Managing External services</li>
</ol>
<p>A critical component that contributes to widespread adoption is the <strong>linter plugin</strong>. For developers migrating services to the new developer portal, ensuring the <code>catalog-info.yaml.</code> file is correct and accurate is paramount. The linter plugin, often integrated with an external API, provides an invaluable and accurate way to validate these files, making the process of creating and maintaining them much easier and less error-prone for developers. One of the most accurate ways to implement the linter plugin is making a request to <a href="https://github.com/RoadieHQ/backstage-entity-validator" target="_blank" rel="noopener noreferrer" class="">Entity validator</a> to make sure it is correct.</p>
<p>Complementing this, a <strong>Scaffolder</strong> feature also plays a vital role. The Scaffolder allows developers to generate new service or component <code>catalog-info.yaml</code> files (and often entire project structures) from
pre-defined templates. This capability effectively eliminates the need for developers to manually create these files from scratch or worry about linting them, as the generated output is inherently compliant with the portal's schema.</p>
<p>Ultimately, such efforts can successfully ingest hundreds of services, leading to a significant number of components residing within the new developer portal.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="conclusion">Conclusion<a href="https://backstage.io/blog/2025/08/08/migrating-legacy-services-to-a-modern-developer-portal#conclusion" class="hash-link" aria-label="Direct link to Conclusion" title="Direct link to Conclusion" translate="no">​</a></h2>
<p>The migration of legacy internal services to a modern developer portal like Backstage represents a significant leap forward in standardizing and streamlining developer experiences. By transitioning from an internally maintained "App Catalogue" to a centralized, community-driven "Developer Portal," organizations can lay the groundwork for enhanced collaboration, improved resource accessibility, and accelerated development cycles. Despite initial adoption challenges, the strategic implementation of features like the Tech Radar and the linter plugin, coupled with persistent outreach and contributions from various engineering teams, proves instrumental in demonstrating the inherent value of such a platform. The successful ingestion of hundreds of services stands as a testament to the effectiveness of automated migration scripts and the dedication of the teams involved. This endeavor not only provides a robust and less over-engineered service catalogue but also fosters a culture of shared ownership and continuous improvement within the engineering organization.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-next">What's Next<a href="https://backstage.io/blog/2025/08/08/migrating-legacy-services-to-a-modern-developer-portal#whats-next" class="hash-link" aria-label="Direct link to What's Next" title="Direct link to What's Next" translate="no">​</a></h2>
<p>My involvement as a software engineer with open source tools and developer portal projects like Backstage, including implementation and service migration, has provided me valuable opportunities to contribute to their open-source documentation and repositories. This can be seen in contributions such as <a href="https://github.com/backstage/backstage/pull/12863" target="_blank" rel="noopener noreferrer" class="">Update app-custom-theme.md</a> and <a href="https://github.com/backstage/backstage/pull/12714" target="_blank" rel="noopener noreferrer" class="">Update getting-started.md</a>, which deepen understanding of custom themes and style components. I’m now looking at future efforts focusing on contributing more to the open-source project (e.g., Model context protocol with A.I (MCP) at <a href="https://github.com/backstage/backstage/issues/30218" target="_blank" rel="noopener noreferrer" class="">RFC: Distributed Actions with MCP in Backstage</a>) and continuing to improve and scale this critical developer portal for engineers across the world.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[From Zero to Maintainer: My Open Source Journey with Backstage]]></title>
            <link>https://backstage.io/blog/2025/05/12/from-zero-to-maintainer-my-opensource-journey-with-backstage</link>
            <guid>https://backstage.io/blog/2025/05/12/from-zero-to-maintainer-my-opensource-journey-with-backstage</guid>
            <pubDate>Mon, 12 May 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[My path to becoming a maintainer in the Backstage project wasn’t paved with years of prior open source experience. As a student interning at Red Hat, I started with a relatively fresh perspective. This is the story of that journey – how I navigated the complexities of Backstage, with the support of its community, allowing me to grow and learn, and how open source can empower anyone to do the same. Whether you’re new to open source or a seasoned developer, I believe you’ll find something valuable here. For those just starting out, I hope this inspires you to take that first step. And for experienced developers, I hope this offers a fresh perspective – a look at how a new contributor navigates a complex project, and perhaps, a reminder of our own beginnings.]]></description>
            <content:encoded><![CDATA[<p>My path to becoming a maintainer in the Backstage project wasn’t paved with years of prior open source experience. As a student interning at Red Hat, I started with a relatively fresh perspective. This is the story of that journey – how I navigated the complexities of Backstage, with the support of its community, allowing me to grow and learn, and how open source can empower anyone to do the same. Whether you’re new to open source or a seasoned developer, I believe you’ll find something valuable here. For those just starting out, I hope this inspires you to take that first step. And for experienced developers, I hope this offers a fresh perspective – a look at how a new contributor navigates a complex project, and perhaps, a reminder of our own beginnings.
This journey wasn’t made in a single leap, but through a series of progressive stages. I’ll walk you through these stages, highlighting the key learnings and contributions along the way.</p>
<p><img decoding="async" loading="lazy" alt="The Stages of my Journey" src="https://backstage.io/assets/images/stages-a6eaaee48d8c835cae80f9b032b42ac2.png" width="1850" height="1189" class="img_ev3q"></p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="stage-1-laying-the-foundation">Stage 1: Laying the foundation<a href="https://backstage.io/blog/2025/05/12/from-zero-to-maintainer-my-opensource-journey-with-backstage#stage-1-laying-the-foundation" class="hash-link" aria-label="Direct link to Stage 1: Laying the foundation" title="Direct link to Stage 1: Laying the foundation" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="Getting Familiar with the Backstage Tech Stack" src="https://backstage.io/assets/images/tech_stack-c8138a2f097ee0d73cba53f9d31267b4.png" width="2127" height="1167" class="img_ev3q"></p>
<p>When I first encountered Backstage, I wasn’t deeply familiar with the tech stack it relied on — Node.js, TypeScript, and React. My only exposure previously had been through hackathons, where the focus is speed over deep understanding. Another major hurdle was Git. Up until that point, I had mainly used GitHub Desktop, rarely venturing into the command line or advanced Git concepts. Realizing that effective contribution required a deeper understanding, I dedicated a week to intensively reviewing these core technologies.</p>
<p>But that wasn’t all. I wanted to see Backstage in action, to really grasp what it was all about. That’s when I came across the <a href="https://backstage.spotify.com/learn/" target="_blank" rel="noopener noreferrer" class="">Spotify Learning Path for Backstage</a>. Specifically, the <a href="https://backstage.spotify.com/learn/standing-up-backstage/" target="_blank" rel="noopener noreferrer" class="">“Standing up Backstage”</a> section was incredibly useful. It walked me through setting up a local running instance with a Postgres database and GitHub authentication. From there, I explored the Backstage documentation and experimented with adding features to my local instance. Honestly, for me, this stage was all about building confidence. It was about facing my knowledge gaps head-on and taking the time to learn.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="stage-2-first-contributions">Stage 2: First contributions<a href="https://backstage.io/blog/2025/05/12/from-zero-to-maintainer-my-opensource-journey-with-backstage#stage-2-first-contributions" class="hash-link" aria-label="Direct link to Stage 2: First contributions" title="Direct link to Stage 2: First contributions" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="First contributions to Backstage: learning the process and connecting with the community" src="https://backstage.io/assets/images/first_contributions-c0d01560df29985a2bc642ad5a6810bb.png" width="2123" height="1163" class="img_ev3q"></p>
<p>With my foundational skills in place, it was time to take the leap and make my first contributions to Backstage. <a href="https://github.com/backstage/community-plugins/pull/497" target="_blank" rel="noopener noreferrer" class="">My first pull request</a> (PR) was quite simple — fixing broken links in the documentation. This seemingly minor fix was my first step, and it paved the way for more substantial contributions. It helped me to get comfortable with the contributing process, learn how to submit a PR, and understand the review workflow. After that, I started looking for open issues in the <a href="https://github.com/backstage/community-plugins" target="_blank" rel="noopener noreferrer" class="">community-plugins repository</a>. I found an issue about <a href="https://github.com/backstage/community-plugins/issues/489" target="_blank" rel="noopener noreferrer" class="">linking npm releases of plugins to specific Git commits</a> — a task that pushed me outside my comfort zone once again. At the time, I knew very little about GitHub Actions and workflows. Learning on the fly, I relied heavily on guidance from maintainers who were incredibly welcoming.
This experience was really helpful, not just for the task itself, but also because it introduced me to key community resources like the <a href="https://discord.com/invite/backstage-687207715902193673" target="_blank" rel="noopener noreferrer" class="">Backstage Discord</a> and <a href="https://github.com/backstage/community/tree/main/sigs" target="_blank" rel="noopener noreferrer" class="">Special Interest Groups</a> (or SIGs for short). While the content of the pull requests in this stage was certainly useful, the real value came from learning the project’s workflows and community processes.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="stage-3-making-substantial-contributions">Stage 3: Making substantial contributions<a href="https://backstage.io/blog/2025/05/12/from-zero-to-maintainer-my-opensource-journey-with-backstage#stage-3-making-substantial-contributions" class="hash-link" aria-label="Direct link to Stage 3: Making substantial contributions" title="Direct link to Stage 3: Making substantial contributions" translate="no">​</a></h2>
<p>As my confidence grew, so did the complexity of the contributions that I took on. Two of my first feature-related contributions were related to Catalog Permissions and the LDAP Processor.
First, with Catalog Permissions, I noticed that two endpoints in the Catalog plugin, <code>/analyze-location</code> and <code>/validate-entity</code> weren’t restricted by permissions, posing a security risk. To address this, I needed a deep understanding of Backstage’s permissions system. I spent a lot of time reading through documentation and existing code, and asking questions on Discord. When I had <a href="https://github.com/backstage/backstage/pull/25924" target="_blank" rel="noopener noreferrer" class="">a PR</a> ready, I went to the Framework SIG meetings to discuss my implementation and to make sure that I was on the same page as the maintainers. Following this process, my PR was successfully merged!
Shortly after, I tackled an open issue with the <a href="https://github.com/backstage/backstage/issues/26225" target="_blank" rel="noopener noreferrer" class="">LDAP processor</a>. This issue highlighted a problem where Backstage couldn’t correctly map user-group relationships with certain LDAP server configurations that used attribute names that were different from the ones hardcoded within the plugin. I implemented <a href="https://github.com/backstage/backstage/pull/26511" target="_blank" rel="noopener noreferrer" class="">a solution</a> that allowed users to override these default values. Testing against a real LDAP instance wasn’t something I could do locally, but the original issue reporter stepped in, validating my changes in their environment. It was a beautiful example of open source collaboration in action.</p>
<p><img decoding="async" loading="lazy" alt="My first commits in the backstage CHANGELOG" src="https://backstage.io/assets/images/changelog-d98bebf1b48df9f6ba656acd2e59748b.png" width="2247" height="739" class="img_ev3q">
<em>My first commits in the backstage CHANGELOG</em></p>
<p>These two tasks were a significant step up from my initial contributions. They required a deeper understanding of Backstage’s architecture and a greater level of problem-solving. Seeing my commits in the <a href="https://backstage.io/docs/releases/v1.31.0/#new-catalog-permissions" target="_blank" rel="noopener noreferrer" class="">CHANGELOG</a> was an accomplishment I was proud of, and it solidified my confidence so I could take on even more substantial roles within the Backstage community.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="stage-4-becoming-an-active-community-member">Stage 4: Becoming an active community member<a href="https://backstage.io/blog/2025/05/12/from-zero-to-maintainer-my-opensource-journey-with-backstage#stage-4-becoming-an-active-community-member" class="hash-link" aria-label="Direct link to Stage 4: Becoming an active community member" title="Direct link to Stage 4: Becoming an active community member" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="Engaging with the Open Source Community at the CNCF meetup in Toronto" src="https://backstage.io/assets/images/cncf_1-d0293e587b04326227e7ff8150903f3b.jpeg" width="2048" height="1536" class="img_ev3q">
<em>(Source: <a href="https://www.linkedin.com/posts/mwijay_you-totally-missed-last-nights-first-cncf-ugcPost-7311005210628235264-8BES" target="_blank" rel="noopener noreferrer" class="">https://www.linkedin.com/posts/mwijay_you-totally-missed-last-nights-first-cncf-ugcPost-7311005210628235264-8BES</a>)</em></p>
<p><img decoding="async" loading="lazy" alt="Engaging with the Open Source Community at the CNCF meetup in Toronto" src="https://backstage.io/assets/images/cncf_2-2b60bf1b09b91621d93547407bf16fd3.png" width="2297" height="1153" class="img_ev3q">
<em>Engaging with the Open Source Community at the CNCF meetup in Toronto (Source: <a href="https://community.cncf.io/events/details/cncf-cloud-native-toronto-presents-cncf-2025-kickoff-at-shopify/" target="_blank" rel="noopener noreferrer" class="">https://community.cncf.io/events/details/cncf-cloud-native-toronto-presents-cncf-2025-kickoff-at-shopify/</a>)</em></p>
<p>One of the ways I got more involved was by helping with the maintenance of the <a href="https://github.com/backstage/community-plugins" target="_blank" rel="noopener noreferrer" class="">community-plugins repository</a>. For instance, I helped address a security vulnerability — specifically, that the <code>@backstage/backend-common package</code> relied on a vulnerable version of <code>jsonpath-plus</code> through <code>@kubernetes/client-node</code>. I proactively removed this vulnerable dependency from eight plugins, effectively safeguarding those plugins from potential risks. I also focused on improving dependency management by implementing Knip reports. These reports help us identify and remove unused dependencies, keeping the repository clean and efficient.</p>
<p>Beyond repository maintenance, I also began focusing on community engagement. I began reviewing pull requests regularly, helping maintain code quality and lightening the load on other maintainers. This not only deepened my understanding of the codebase but also exposed me to new features and patterns across the ecosystem. I actively participated in SIG meetings and offered guidance to fellow contributors on Discord.</p>
<p>This marked a turning point in my journey, as I transitioned from a contributor to an active community member. Eventually, this growing involvement led to me becoming a maintainer for the community-plugins repository. It was a fulfilling step forward, and it felt rewarding to be trusted with more responsibility in guiding the project.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-next-future-steps-as-a-maintainer">What’s next: future steps as a maintainer<a href="https://backstage.io/blog/2025/05/12/from-zero-to-maintainer-my-opensource-journey-with-backstage#whats-next-future-steps-as-a-maintainer" class="hash-link" aria-label="Direct link to What’s next: future steps as a maintainer" title="Direct link to What’s next: future steps as a maintainer" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="Presenting &amp;quot;From Zero to Contributor: My Open Source Journey with Backstage&amp;quot; at the CNCF 2025 Kickoff event at Shopify, Toronto" src="https://backstage.io/assets/images/cncf_3-248b061211ae5ffa15743a1ac7e78c8a.jpeg" width="1280" height="1707" class="img_ev3q">
<em>Presenting "From Zero to Contributor: My Open Source Journey with Backstage" at the CNCF 2025 Kickoff event at Shopify, Toronto (Source: <a href="https://www.linkedin.com/posts/mwijay_you-totally-missed-last-nights-first-cncf-ugcPost-7311005210628235264-8BES" target="_blank" rel="noopener noreferrer" class="">https://www.linkedin.com/posts/mwijay_you-totally-missed-last-nights-first-cncf-ugcPost-7311005210628235264-8BES</a>)</em></p>
<p>As a maintainer, my focus is on supporting others in their open source journey and improving the overall contributor experience. I actively review PRs, guide new contributors through constructive reviews, and point them to good first issues to help them get started.
Furthermore, I aim to actively contribute to the community-plugins SIG meetings, offering suggestions and participating in discussions to help guide the project’s direction.
Ultimately, my goal is to help the community-plugins repository thrive and become an even more valuable resource for the Backstage community. I’m excited to collaborate with fellow maintainers and contributors to achieve this vision.</p>
<p>My journey with Backstage has been incredibly rewarding, and I’m grateful for the opportunities, support, and growth the community has given me. I’m excited to continue contributing and to see where this journey takes me next.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Backstage in London: Highlights from BackstageCon and KubeCon + CloudNativeCon Europe 2025]]></title>
            <link>https://backstage.io/blog/2025/04/29/backstagecon-kubecon-25-london</link>
            <guid>https://backstage.io/blog/2025/04/29/backstagecon-kubecon-25-london</guid>
            <pubDate>Tue, 29 Apr 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Highlights from BackstageCon and KubeCon + CloudNativeCon Europe 2025, including scenes from London and links to recordings of all the Backstage sessions.]]></description>
            <content:encoded><![CDATA[<p><img decoding="async" loading="lazy" alt="Highlights from BackstageCon and KubeCon + CloudNativeCon Europe 2025, including scenes from London and links to recordings of all the Backstage sessions." src="https://backstage.io/assets/images/backstagecon-kubecon-2025-london-4279eb18110d44276a8c894b0d86f1e4.png" width="1800" height="945" class="img_ev3q"></p>
<p>Wow, London sure didn't hold back! <a href="https://www.youtube.com/watch?v=74ayHL1WHiE&amp;list=PL8iP9yIjU0Q3K8LV_a9CcFmhvvNTAUzL1" target="_blank" rel="noopener noreferrer" class="">Five years</a> after the open source framework was released, Backstage was clearly on people's minds — from those new to internal developer portals to those who have been contributing since the earliest days. Conversations about Backstage spanned from BackstageCon to the rest of KubeCon + CloudNativeCon Europe, which had a record-setting attendance of nearly 13,000 people. But if you couldn't make it, then settle in, prepare a spot of tea, and read on for highlights. Then head over to the Backstage Community's YouTube channel to <a href="https://www.youtube.com/playlist?list=PL8iP9yIjU0Q3K8LV_a9CcFmhvvNTAUzL1" target="_blank" rel="noopener noreferrer" class="">catch up on all the great Backstage talks</a> you missed.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="london-called--the-backstage-community-answered">London called — the Backstage Community answered<a href="https://backstage.io/blog/2025/04/29/backstagecon-kubecon-25-london#london-called--the-backstage-community-answered" class="hash-link" aria-label="Direct link to London called — the Backstage Community answered" title="Direct link to London called — the Backstage Community answered" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="The crowds at KubeCon + CloudNativeCon Europe 2025 set a new record for attendance" src="https://backstage.io/assets/images/kc25london-crowds-entering-63f1351a665d18ab104a6710f475da30.jpg" width="1200" height="801" class="img_ev3q">
📸 <em><a href="https://www.flickr.com/photos/143247548@N03/albums/72177720324566471" target="_blank" rel="noopener noreferrer" class="">CNCF</a></em></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="scenes-from-backstagecon">Scenes from BackstageCon<a href="https://backstage.io/blog/2025/04/29/backstagecon-kubecon-25-london#scenes-from-backstagecon" class="hash-link" aria-label="Direct link to Scenes from BackstageCon" title="Direct link to Scenes from BackstageCon" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="Thank you to our BackstageCon sponsors: Red Hat, Roadie, Spotify, Port" src="https://backstage.io/assets/images/kc25london-sponsors-0fecdb8064b7ef970c33c85235fdc040.jpg" width="1200" height="800" class="img_ev3q">
📸 <em><a href="https://www.flickr.com/photos/143247548@N03/albums/72177720324566471" target="_blank" rel="noopener noreferrer" class="">CNCF</a></em></p>
<p>Kicking the week off was the fifth-ever BackstageCon — a full day of talks featuring voices and perspectives from across the community. Here are just a few of the highlights from the day.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-unlocking-backstages-potential-driving-adoption-and-maturity-with-your-developer-community">#1: <a href="https://www.youtube.com/watch?v=Rg3ANYLyFoM&amp;list=PL8iP9yIjU0Q3K8LV_a9CcFmhvvNTAUzL1" target="_blank" rel="noopener noreferrer" class="">Unlocking Backstage's Potential: Driving Adoption and Maturity With Your Developer Community</a><a href="https://backstage.io/blog/2025/04/29/backstagecon-kubecon-25-london#1-unlocking-backstages-potential-driving-adoption-and-maturity-with-your-developer-community" class="hash-link" aria-label="Direct link to 1-unlocking-backstages-potential-driving-adoption-and-maturity-with-your-developer-community" title="Direct link to 1-unlocking-backstages-potential-driving-adoption-and-maturity-with-your-developer-community" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="Stanley Nicholl from Spotify presents at BackstageCon Europe 2025" src="https://backstage.io/assets/images/kc25london-spotify-ce416e0b11b092a272dc923b0623b6a8.png" width="1200" height="675" class="img_ev3q"></p>
<p>Learn how to bridge the gap between the lofty ROI numbers you've read about and your own experiences. Spotify's Stanley Nicholl shares his insights for how to unlock internal Backstage adoption by tapping into your greatest resource: your internal developer community.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-panel-what-do-cars-clothes-wardrobes-and-mri-machines-have-in-common">#2: <a href="https://www.youtube.com/watch?v=h6BgF9dQDNo&amp;list=PL8iP9yIjU0Q3K8LV_a9CcFmhvvNTAUzL1" target="_blank" rel="noopener noreferrer" class="">Panel: What Do Cars, Clothes, Wardrobes and MRI Machines Have in Common?</a><a href="https://backstage.io/blog/2025/04/29/backstagecon-kubecon-25-london#2-panel-what-do-cars-clothes-wardrobes-and-mri-machines-have-in-common" class="hash-link" aria-label="Direct link to 2-panel-what-do-cars-clothes-wardrobes-and-mri-machines-have-in-common" title="Direct link to 2-panel-what-do-cars-clothes-wardrobes-and-mri-machines-have-in-common" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="Philips, H&amp;amp;M Group, IKEA, and Volvo Cars formed a super-panel of Backstage adopters at BackstageCon Europe 2025" src="https://backstage.io/assets/images/kc25london-panel-59c765b28cc19fe20278a7e87fba28a1.jpg" width="1200" height="800" class="img_ev3q">
📸 <em><a href="https://www.flickr.com/photos/143247548@N03/albums/72177720324566471" target="_blank" rel="noopener noreferrer" class="">CNCF</a></em></p>
<p>If that riddle of a title doesn't pull you in, I'm not sure what else to say! This panel — featuring Scott Guymer (Philips), Remi Higuchi &amp; Tina Vincent (H&amp;M Group), Jan Magnusson (IKEA), and Martin Wänerskär (Volvo Cars) — brings a diverse group of Backstage adopters together. It's well worth hearing their different impact and success stories, and comparing their perspectives on the business case for developer portals.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-lightning-talk-we-built-a-unified-ai-asset-catalog-in-backstage">#3: <a href="https://www.youtube.com/watch?v=tUR_2Nk0v4E&amp;list=PL8iP9yIjU0Q3K8LV_a9CcFmhvvNTAUzL1" target="_blank" rel="noopener noreferrer" class="">Lightning Talk: We Built a Unified AI Asset Catalog in Backstage</a><a href="https://backstage.io/blog/2025/04/29/backstagecon-kubecon-25-london#3-lightning-talk-we-built-a-unified-ai-asset-catalog-in-backstage" class="hash-link" aria-label="Direct link to 3-lightning-talk-we-built-a-unified-ai-asset-catalog-in-backstage" title="Direct link to 3-lightning-talk-we-built-a-unified-ai-asset-catalog-in-backstage" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="John Collier from Red Hat presents at BackstageCon Europe 2025" src="https://backstage.io/assets/images/kc25london-redhat-2a91f3a887095dff36ba8bf68d007d47.jpg" width="1200" height="800" class="img_ev3q">
📸 <em><a href="https://www.flickr.com/photos/143247548@N03/albums/72177720324566471" target="_blank" rel="noopener noreferrer" class="">CNCF</a></em></p>
<p>With all the various AI tools out there, it's becoming hard to keep track of them all. But with the Catalog in Backstage, this becomes much easier. John Collier from Red Hat walks through how they approached this problem space internally as their inventory of AI tools — inference servers, models, and API gateways — grew and grew.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-exemplar-y-backstage-templates">#4: <a href="https://www.youtube.com/watch?v=xY7fVOVsK_A&amp;list=PL8iP9yIjU0Q3K8LV_a9CcFmhvvNTAUzL1" target="_blank" rel="noopener noreferrer" class="">Exemplar-y Backstage Templates</a><a href="https://backstage.io/blog/2025/04/29/backstagecon-kubecon-25-london#4-exemplar-y-backstage-templates" class="hash-link" aria-label="Direct link to 4-exemplar-y-backstage-templates" title="Direct link to 4-exemplar-y-backstage-templates" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="Brent Swish from ITHAKA presents at BackstageCon Europe 2025" src="https://backstage.io/assets/images/kc25london-ithaka-be1f24b131e05cc7247a6749c72fb049.png" width="1200" height="675" class="img_ev3q"></p>
<p>The heart of offering your platform in a self-service way is to use Software Templates. What if you could make the templates themselves easier to update and contribute to? Brent Swisher from educational nonprofit ITHAKA walks through how they came up with a technique called “exemplar” templates to speed up the process of creating and updating templates, making them more accessible to other devs and easier to maintain.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="5-from-click-to-chaos-linking-argo-workflows-and-backstage-for-automated-testing">#5: <a href="https://www.youtube.com/watch?v=qukwR1RDrFg&amp;list=PL8iP9yIjU0Q3K8LV_a9CcFmhvvNTAUzL1" target="_blank" rel="noopener noreferrer" class="">From Click To Chaos: Linking Argo Workflows and Backstage for Automated Testing</a><a href="https://backstage.io/blog/2025/04/29/backstagecon-kubecon-25-london#5-from-click-to-chaos-linking-argo-workflows-and-backstage-for-automated-testing" class="hash-link" aria-label="Direct link to 5-from-click-to-chaos-linking-argo-workflows-and-backstage-for-automated-testing" title="Direct link to 5-from-click-to-chaos-linking-argo-workflows-and-backstage-for-automated-testing" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="Chris Heisz and Luke Beamish from Neo4j presents at BackstageCon Europe 2025" src="https://backstage.io/assets/images/kc25london-neo4j-61a0305f5ef89a85cb1aa1c382341937.png" width="1200" height="675" class="img_ev3q"></p>
<p>This talk by Chris Heisz and Luke Beamish from graph technology specialists, Neo4j, is a great showcase of how you can use the Scaffolder along with Argo Workflows to offer self-service integration and chaos testing. See how they ensure thousands of Kubernetes clusters are stable and performant. (You'll be OK, little guy!)</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="watch-all-the-recordings">Watch all the recordings<a href="https://backstage.io/blog/2025/04/29/backstagecon-kubecon-25-london#watch-all-the-recordings" class="hash-link" aria-label="Direct link to Watch all the recordings" title="Direct link to Watch all the recordings" translate="no">​</a></h3>
<p>But that's just the start! There were so many more insights shared by the community. To see recordings of all the sessions, check out the full <a href="https://www.youtube.com/playlist?list=PL8iP9yIjU0Q3K8LV_a9CcFmhvvNTAUzL1" target="_blank" rel="noopener noreferrer" class="">BackstageCon playlist</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="breaking-through-the-bustle-at-kubecon--cloudnativecon">Breaking through the bustle at KubeCon + CloudNativeCon<a href="https://backstage.io/blog/2025/04/29/backstagecon-kubecon-25-london#breaking-through-the-bustle-at-kubecon--cloudnativecon" class="hash-link" aria-label="Direct link to Breaking through the bustle at KubeCon + CloudNativeCon" title="Direct link to Breaking through the bustle at KubeCon + CloudNativeCon" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="Crowds of attendees at KubeCon + CloudNativeCon Europe 2025" src="https://backstage.io/assets/images/kc25london-crowds-from-above-1360e9ef65d076b9cc1bf5bdc241b584.jpg" width="1200" height="800" class="img_ev3q">
📸 <em><a href="https://www.flickr.com/photos/143247548@N03/albums/72177720324566471" target="_blank" rel="noopener noreferrer" class="">CNCF</a></em></p>
<p>KubeCon was also a great showcase for Backstage, grabbing the interests of both current and potential adopters.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="standing-room-only-for-the-state-of-backstage">Standing-room only for the State of Backstage<a href="https://backstage.io/blog/2025/04/29/backstagecon-kubecon-25-london#standing-room-only-for-the-state-of-backstage" class="hash-link" aria-label="Direct link to Standing-room only for the State of Backstage" title="Direct link to Standing-room only for the State of Backstage" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="The Backstage core maintainers packed the room with people and insights" src="https://backstage.io/assets/images/kc25london-maintainers-talk-b4a4fddd3cca2e09c1d5a00d288037d9.jpg" width="1200" height="675" class="img_ev3q">
📸 <em>Spotify</em></p>
<p>It was standing room only for the core maintainers talk — <a href="https://www.youtube.com/watch?v=anqWhSnN7sA&amp;list=PL8iP9yIjU0Q3K8LV_a9CcFmhvvNTAUzL1" target="_blank" rel="noopener noreferrer" class="">The State of Backstage in 2025</a> — where they covered the past few months of accomplishments and outlined what they have in store for the rest of the year, including a demo of the latest features in the New Frontend System.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="big-birthday-energy-on-the-big-stage">Big birthday energy on the big stage<a href="https://backstage.io/blog/2025/04/29/backstagecon-kubecon-25-london#big-birthday-energy-on-the-big-stage" class="hash-link" aria-label="Direct link to Big birthday energy on the big stage" title="Direct link to Big birthday energy on the big stage" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="Bowie the Backstage Beaver on screen as the Keynote audience wishes the Backstage project a happy 5th birthday" src="https://backstage.io/assets/images/kc25london-keynote-f14a69113ff69bb06b4f8c171521f1c7.jpg" width="1200" height="801" class="img_ev3q">
📸 <em><a href="https://www.flickr.com/photos/143247548@N03/albums/72177720324566471" target="_blank" rel="noopener noreferrer" class="">CNCF</a></em></p>
<p>With the project just turning five, <a href="https://www.youtube.com/watch?v=JqG1wey7-Ao&amp;t=563s" target="_blank" rel="noopener noreferrer" class="">Backstage got a nice Happy Birthday</a> from the Keynote main stage! Tyson Singer, Spotify's head of technology and platforms, outlined the journey Backstage took to get where it is now.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="backstage-contribfest-goes-across-the-pond">Backstage Contribfest goes across the pond!<a href="https://backstage.io/blog/2025/04/29/backstagecon-kubecon-25-london#backstage-contribfest-goes-across-the-pond" class="hash-link" aria-label="Direct link to Backstage Contribfest goes across the pond!" title="Direct link to Backstage Contribfest goes across the pond!" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="A room full of Backstage contributors addressing issues and building plugins" src="https://backstage.io/assets/images/kc25london-contribfest-2f5ababedfeec6ef303340c5722f4c89.jpg" width="1200" height="800" class="img_ev3q">
<em>(Hey, that's me! Thanks for all the great pics, 📸 <a href="https://www.flickr.com/photos/143247548@N03/albums/72177720324566471" target="_blank" rel="noopener noreferrer" class="">CNCF</a>)</em></p>
<p>After a successful appearance last year in <a href="https://backstage.io/blog/2024/12/09/kubecon-slc-24" target="_blank" rel="noopener noreferrer" class="">Salt Lake City</a>, Backstage ContribFest made its European debut. The community came out — with laptops in tow — for this session all about contributing to Backstage and the Community Plugins. Excited first-timers got to sit down with experienced contributors as well as core maintainers to work through a list of issues or to build plugins together. Keep your eyes on the release notes — some of those features might just have started here!</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="cheerio-london-whats-up-atliens">Cheerio, London! What's up, ATLiens!<a href="https://backstage.io/blog/2025/04/29/backstagecon-kubecon-25-london#cheerio-london-whats-up-atliens" class="hash-link" aria-label="Direct link to Cheerio, London! What's up, ATLiens!" title="Direct link to Cheerio, London! What's up, ATLiens!" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="A brigade of Beefeaters blow brass instruments in front of the entrance to the Solutions Showcase exhibition hall" src="https://backstage.io/assets/images/kc25london-beefeaters-8d78cfb162b7a98ed5a1d11372bcb9da.jpg" width="1200" height="800" class="img_ev3q">
📸 <em><a href="https://www.flickr.com/photos/143247548@N03/albums/72177720324566471" target="_blank" rel="noopener noreferrer" class="">CNCF</a></em></p>
<p>What a jam-packed conference week! As I was walking out of the Excel London conference center, I swear I spotted Bowie in a low-riding, candy-red Cadillac saying something about needing to see <a href="https://open.spotify.com/track/2oLwDI8tZUOh6SmTMRRfKs?si=61b5e96260c34592" target="_blank" rel="noopener noreferrer" class="">his cousins and his mama, too</a>? Guess we'll find out <a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america/" target="_blank" rel="noopener noreferrer" class="">in Atlanta this November</a>!</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Backstage Wrapped 2024: The year's Top 5 milestones and highlights]]></title>
            <link>https://backstage.io/blog/2024/12/18/backstage-wrapped-2024</link>
            <guid>https://backstage.io/blog/2024/12/18/backstage-wrapped-2024</guid>
            <pubDate>Wed, 18 Dec 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Bowie the Backstage Beaver in an astronaut outfit riding a firecracker surrounded by fireworks exploding with stats: 210+ open source plugins, 1.6k contributors, 60k total contributions]]></description>
            <content:encoded><![CDATA[<p><img decoding="async" loading="lazy" alt="Bowie the Backstage Beaver in an astronaut outfit riding a firecracker surrounded by fireworks exploding with stats: 210+ open source plugins, 1.6k contributors, 60k total contributions" src="https://backstage.io/assets/images/wrapped2024-top5-4288c311542a7d5e6693c5b3830e98ac.png" width="1214" height="644" class="img_ev3q"></p>
<p>It was another banner year for everyone's favorite platform for improving developer experience — and we're closing 2024 out with a bang🧨🎆. To give you a snapshot of how the Backstage community is doing, we're counting down our Top 5 milestones for the year (plus a few other highlights sprinkled in). To start things off, let's see what you and your 1,616 fellow contributors were up to last year…</p>
<!-- -->
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="5️⃣-60k-contributions-from-a-global-community-of-very-busy-beavers">5️⃣: 60k+ Contributions from a Global Community of Very Busy Beavers🦫<a href="https://backstage.io/blog/2024/12/18/backstage-wrapped-2024#5%EF%B8%8F%E2%83%A3-60k-contributions-from-a-global-community-of-very-busy-beavers" class="hash-link" aria-label="Direct link to 5️⃣: 60k+ Contributions from a Global Community of Very Busy Beavers🦫" title="Direct link to 5️⃣: 60k+ Contributions from a Global Community of Very Busy Beavers🦫" translate="no">​</a></h2>
<iframe src="https://www.youtube.com/embed/U0m3TJ-2cFw" width="100%" height="440" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
<p><em>Behold! Every commit to the Backstage open source project this year — can you
see your name in there?</em></p>
<p>As we shared last month when we kicked off <a href="https://youtu.be/OfavM6j4Z5o?list=PL8iP9yIjU0Q3UUDXdAoCaTC4Ci8asWg-X&amp;t=112" target="_blank" rel="noopener noreferrer" class="">BackstageCon North America</a>, the Backstage community hit a new milestone this year — reaching 60,000 total contributions (discussions, issues, and pull requests) to the project since Spotify donated it to the <a href="https://www.cncf.io/projects/backstage/" target="_blank" rel="noopener noreferrer" class="">Cloud Native Computing Foundation (CNCF)</a> in 2020. Busy Backstage beavers, indeed.</p>
<p>And the community was as active as ever in 2024 — if you hit play on the visualization above, you can see all 12.3k commits from the year being made. (Though, instead of busy beavers, it's more like a giant cluster of space spiders shooting galactic laser webs. Pew pew!)</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-most-commits-of-any-cncf-project-by-a-lot">The most commits of any CNCF project, by a lot<a href="https://backstage.io/blog/2024/12/18/backstage-wrapped-2024#the-most-commits-of-any-cncf-project-by-a-lot" class="hash-link" aria-label="Direct link to The most commits of any CNCF project, by a lot" title="Direct link to The most commits of any CNCF project, by a lot" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="Taylor Dolezal presenting a chart showing the Top 10 CNCF Projects by Number of End User Commits on the Keynote stage at KubeCon Europe 2024" src="https://backstage.io/assets/images/cncf-keynote-kubecon-2024-6b5b54b50be25b9639a795634436f65f.jpg" width="1500" height="844" class="img_ev3q"></p>
<p>Speaking of commits, rewinding back to <a href="https://backstage.io/blog/2024/03/27/backstagecon-kubecon-24/" target="_blank" rel="noopener noreferrer" class="">KubeCon + CloudNativeCon Europe</a> in March gives us another way to visualize the mightiness of the Backstage community.</p>
<p>From the keynote stage in Paris, Taylor Dolezal, the head of ecosystem at The Linux Foundation, <a href="https://www.youtube.com/watch?v=MICHGBAe8gc&amp;list=PLj6h78yzYM2N8nw1YcqqKveySH6_0VnI0&amp;index=161" target="_blank" rel="noopener noreferrer" class="">presented a chart</a> showing the "Top CNCF Projects by Number of End User Commits", using data from the previous four months.</p>
<p>At the top of the chart, a conspicuous blue bar — more than twice the length as the next longest one — had Taylor noting that, among CNCF projects, Backstage was "rocketing into the forefront when it comes to end user contributions".🚀🚀🚀</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="our-first-contribfest">Our first Contribfest!<a href="https://backstage.io/blog/2024/12/18/backstage-wrapped-2024#our-first-contribfest" class="hash-link" aria-label="Direct link to Our first Contribfest!" title="Direct link to Our first Contribfest!" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="A room full of developers working together at the first Backstage Contribfest" src="https://backstage.io/assets/images/wrapped2024-contribfest-84bc9ce9d69a641a96914ad3b3961834.jpg" width="1200" height="900" class="img_ev3q"></p>
<p>What's better than ogling a nifty visualization or nerding out on a good bar graph? Feeling the buzz of those contributions in person.</p>
<p>Just last month at KubeCon + CloudNativeCon North America, maintainers from Spotify and Red Hat cohosted the first-ever <a href="https://backstage.io/blog/2024/12/09/kubecon-slc-24/#contribfest-its-all-about-community" target="_blank" rel="noopener noreferrer" class="">Backstage Contribfest</a>. We packed the room with engineers obsessed with developer experience and let them loose on a curated list of issues. The session was good, old-fashioned coding fun — devs sharing ideas and solving problems together — and we look forward to doing it again with all of you.</p>
<p>If you missed it and want to get in on the action, just follow along with the <a href="https://static.sched.com/hosted_files/kccncna2024/53/KubeCon-ContribFest-Backstage-NA-2024.pdf" target="_blank" rel="noopener noreferrer" class="">Contribfest slide deck</a>. Or meet us in 💂‍♂️London in April for <a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/co-located-events/backstagecon/" target="_blank" rel="noopener noreferrer" class="">BackstageCon</a> and <a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/" target="_blank" rel="noopener noreferrer" class="">KubeCon + CloudNativeCon Europe 2025</a>!</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="4️⃣-210-open-source-plugins-and-counting">4️⃣: 210+ Open Source Plugins (and Counting)🧩<a href="https://backstage.io/blog/2024/12/18/backstage-wrapped-2024#4%EF%B8%8F%E2%83%A3-210-open-source-plugins-and-counting" class="hash-link" aria-label="Direct link to 4️⃣: 210+ Open Source Plugins (and Counting)🧩" title="Direct link to 4️⃣: 210+ Open Source Plugins (and Counting)🧩" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="Bowie the Backstage Beaver surrounded by icons for plugins: Argo CD, Datadog, GitHub Actions, Grafana, Jira, and Kubernetes" src="https://backstage.io/assets/images/wrapped2024-4-plugins-d27ba2857ca81e3e2ca87ab732fad606.gif" width="1200" height="675" class="img_ev3q">
<em>Just a few of the plugins built by the Backstage community</em></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="plugins-plugins-plugins">Plugins, plugins, plugins<a href="https://backstage.io/blog/2024/12/18/backstage-wrapped-2024#plugins-plugins-plugins" class="hash-link" aria-label="Direct link to Plugins, plugins, plugins" title="Direct link to Plugins, plugins, plugins" translate="no">​</a></h3>
<p>Everybody's building them, everywhere you look. We see official plugins from popular third-party service providers (<a href="https://backstage.spotify.com/marketplace/dx/plugin/dx/" target="_blank" rel="noopener noreferrer" class="">DX</a>, <a href="https://pagerduty.github.io/backstage-plugin-docs/index.html" target="_blank" rel="noopener noreferrer" class="">PagerDuty</a>, <a href="https://backstage.spotify.com/marketplace/rootly/plugin/rootly/" target="_blank" rel="noopener noreferrer" class="">Rootly</a>), in-house plugins going open source (like these from <a href="https://github.com/backstage/community-plugins/blob/main/workspaces/github-pull-requests-board/plugins/github-pull-requests-board/README.md" target="_blank" rel="noopener noreferrer" class="">DAZN</a>, <a href="https://github.com/backstage/community-plugins/blob/main/workspaces/azure-devops/plugins/azure-devops/README.md" target="_blank" rel="noopener noreferrer" class="">Keyloop</a>, and <a href="https://github.com/seatgeek/backstage-plugins" target="_blank" rel="noopener noreferrer" class="">SeatGeek</a>), essential plugins built and maintained by ecosystem champions and supporters (<a href="https://github.com/awslabs/backstage-plugins-for-aws" target="_blank" rel="noopener noreferrer" class="">AWS</a>, <a href="https://github.com/googlecloudplatform/google-cloud-backstage-plugins" target="_blank" rel="noopener noreferrer" class="">GCP</a>, <a href="https://roadie.io/" target="_blank" rel="noopener noreferrer" class="">Roadie</a>, <a href="https://backstage.spotify.com/" target="_blank" rel="noopener noreferrer" class="">Spotify</a>), as well as creative and <a href="https://github.com/procore-oss/backstage-plugin-announcements" target="_blank" rel="noopener noreferrer" class="">useful</a> plugins from contributors and enthusiasts from all corners of the Backstage community.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="a-yearlong-plugin-party">A yearlong plugin party<a href="https://backstage.io/blog/2024/12/18/backstage-wrapped-2024#a-yearlong-plugin-party" class="hash-link" aria-label="Direct link to A yearlong plugin party" title="Direct link to A yearlong plugin party" translate="no">​</a></h3>
<p>In 2024, the plugin ecosystem continued to expand — with about a hundred new plugins being introduced over the year and many others getting big updates.</p>
<p>SeatGeek started the plugin party in February❄️ at a Backstage Community Session where they <a href="https://www.youtube.com/watch?v=CRw0m3J11Bc&amp;t=526s" target="_blank" rel="noopener noreferrer" class="">demoed</a> five of the seven plugins they've open sourced, including their <a href="https://github.com/seatgeek/backstage-plugins/tree/main/plugins/awards" target="_blank" rel="noopener noreferrer" class="">Awards Plugin</a> and <a href="https://github.com/seatgeek/backstage-plugins/tree/main/plugins/entity-scaffolder-content" target="_blank" rel="noopener noreferrer" class="">Entity Scaffolder Plugin</a>.</p>
<p>By spring🌷, new plugins for <a href="https://github.com/backstage/community-plugins/tree/main/workspaces/linkerd" target="_blank" rel="noopener noreferrer" class="">Linkerd</a> and <a href="https://github.com/backstage/community-plugins/tree/main/workspaces/blackduck/plugins/blackduck" target="_blank" rel="noopener noreferrer" class="">Black Duck</a> had sprung onto the scene.</p>
<p>During the summer☀️, the official <a href="https://pagerduty.github.io/backstage-plugin-docs/index.html" target="_blank" rel="noopener noreferrer" class="">PagerDuty</a> plugin received updates that made it a breeze to configure existing PagerDuty services and also added support for multiple PagerDuty accounts in the same Backstage instance.</p>
<p>By fall🍁, some of the most-used plugins — including plugins for <a href="https://www.npmjs.com/package/@roadiehq/backstage-plugin-argo-cd" target="_blank" rel="noopener noreferrer" class="">Argo CD</a>, <a href="https://www.npmjs.com/package/@roadiehq/backstage-plugin-datadog" target="_blank" rel="noopener noreferrer" class="">Datadog</a>, <a href="https://github.com/backstage/community-plugins/tree/main/workspaces/github-actions/plugins/github-actions" target="_blank" rel="noopener noreferrer" class="">GitHub Actions</a>, <a href="https://github.com/backstage/community-plugins/blob/main/workspaces/grafana/plugins/grafana/docs/index.md" target="_blank" rel="noopener noreferrer" class="">Grafana</a>, <a href="https://github.com/AxisCommunications/backstage-plugins/tree/main/plugins/jira-dashboard" target="_blank" rel="noopener noreferrer" class="">Jira</a>, <a href="https://backstage.io/docs/features/kubernetes/" target="_blank" rel="noopener noreferrer" class="">Kubernetes</a>, and <a href="https://github.com/backstage/community-plugins/tree/main/workspaces/tech-radar/plugins/tech-radar" target="_blank" rel="noopener noreferrer" class="">Tech Radar</a> — had already been updated to support the very latest versions of the Backstage framework's <a href="https://backstage.io/docs/releases/v1.30.0" target="_blank" rel="noopener noreferrer" class="">New Frontend System</a> and <a href="https://github.com/backstage/backstage/issues/24493" target="_blank" rel="noopener noreferrer" class="">New Backend System</a>. (Thanks to the teams at Roadie and Spotify for helping to kickstart a new era of easy-to-install-and-configure plugins!)</p>
<p>And last but not least, AWS just released the <a href="https://github.com/awslabs/backstage-plugins-for-aws/blob/main/plugins/core/catalog-config/README.md" target="_blank" rel="noopener noreferrer" class="">AWS Config catalog plugin for Backstage</a> — a great new plugin that makes it easy for their customers to ingest AWS resources into the Backstage Software Catalog.</p>
<p>Have a plugin you'd like to show off and share with the community? Sign up to demo it at one of our monthly <a href="https://github.com/backstage/community/tree/main/backstage-community-sessions#readme" target="_blank" rel="noopener noreferrer" class="">Backstage Community Sessions</a>!</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="a-shiny-new-plugins-repo">A shiny new plugins repo<a href="https://backstage.io/blog/2024/12/18/backstage-wrapped-2024#a-shiny-new-plugins-repo" class="hash-link" aria-label="Direct link to A shiny new plugins repo" title="Direct link to A shiny new plugins repo" translate="no">​</a></h3>
<p>Alongside all this plugin-building action, there was also plenty of plugin-migrating action. In April, community plugins moved to a repo they could call their own — the <a href="https://backstage.io/blog/2024/04/19/community-plugins/" target="_blank" rel="noopener noreferrer" class="">Backstage Community Plugins Repository</a>.</p>
<p>With release tooling, workspace tooling, and migration guide all included, <a href="https://github.com/backstage/community-plugins" target="_blank" rel="noopener noreferrer" class="">the new repo</a> gives plugin owners a leg up on building and shipping plugins. Now you can release independently of the main monorepo, at your own release cadence.</p>
<p>Special thanks go to Red Hat as maintainers of the <a href="https://github.com/backstage/backstage/blob/master/OWNERS.md#community-plugins" target="_blank" rel="noopener noreferrer" class="">community plugins project area</a> and to everyone who provided feedback on the migration plan. With the new community plugins repo now established, it will be fascinating to see what new, innovative plugins we'll be talking about this time next year. <a href="https://backstage.io/docs/plugins/" target="_blank" rel="noopener noreferrer" class="">Go start building</a>!</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="3️⃣-278-companies-listed-in-adoptersmd">3️⃣: 278 Companies Listed in ADOPTERS.md💚<a href="https://backstage.io/blog/2024/12/18/backstage-wrapped-2024#3%EF%B8%8F%E2%83%A3-278-companies-listed-in-adoptersmd" class="hash-link" aria-label="Direct link to 3️⃣: 278 Companies Listed in ADOPTERS.md💚" title="Direct link to 3️⃣: 278 Companies Listed in ADOPTERS.md💚" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="Bowie the Backstage Beaver wearing a I heart Backstage T-shirt and hugging the ADOPTERS.md file" src="https://backstage.io/assets/images/wrapped2024-3-adopters-a1a303fdffe0f7a48ce67e66a83f1d3c.gif" width="1200" height="675" class="img_ev3q">
<em>We 💚 all our Backstage adopters</em></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="one-thing-in-common">One thing in common<a href="https://backstage.io/blog/2024/12/18/backstage-wrapped-2024#one-thing-in-common" class="hash-link" aria-label="Direct link to One thing in common" title="Direct link to One thing in common" translate="no">​</a></h3>
<p>At the top level of the <code>backstage/backstage</code> GitHub repo is a little file called <a href="https://github.com/backstage/backstage/blob/master/ADOPTERS.md" target="_blank" rel="noopener noreferrer" class="">ADOPTERS.md</a> that contains the names of hundreds of companies who have adopted Backstage and added themselves to the list.</p>
<p>There are companies from all over the world on that list, of all shapes and sizes, including cloud natives and cloud newbies, brand new startups and fast-growing scale-ups, airlines, banks, and healthcare companies, along with online retailers, gaming studios, digital entertainment platforms, and hundred-year-old government consulting firms.</p>
<p>But no matter how different their industries, their business models, their engineering cultures, or their tech stacks, when they join that list of public Backstage adopters, they all share one thing in common: their commitment to improving developer experience as the surest path to innovation. So while the file is just a simple table, it's also an invitation for other companies to join in that commitment.</p>
<p>This year, the following companies added themselves to ADOPTERS.md, bringing the total to 278 public Backstage adopters — let's give a big welcome to: <a href="https://anuclei.com/" target="_blank" rel="noopener noreferrer" class="">Anuclei</a>, <a href="https://www.fortnox.se/" target="_blank" rel="noopener noreferrer" class="">Fortnox</a>, <a href="https://www.wefox.com/" target="_blank" rel="noopener noreferrer" class="">Wefox</a>, <a href="https://aurorainnovation.com/" target="_blank" rel="noopener noreferrer" class="">Aurora Innovation</a>, <a href="https://ensek.com/" target="_blank" rel="noopener noreferrer" class="">ENSEK</a>, <a href="https://www.op.fi/op-financial-group" target="_blank" rel="noopener noreferrer" class="">OP Financial Group</a>, <a href="https://www.scania.com/" target="_blank" rel="noopener noreferrer" class="">Scania</a>, <a href="https://senora.dev/" target="_blank" rel="noopener noreferrer" class="">Senora.dev</a>, <a href="https://www.covestro.com/" target="_blank" rel="noopener noreferrer" class="">Covestro</a>, <a href="https://www.olx.com.br/" target="_blank" rel="noopener noreferrer" class="">Grupo OLX</a>, <a href="https://www.dpgmediagroup.com/" target="_blank" rel="noopener noreferrer" class="">DPG Media</a>, <a href="https://www.baloise.ch/" target="_blank" rel="noopener noreferrer" class="">Baloise</a>, <a href="https://www.cigna.com/" target="_blank" rel="noopener noreferrer" class="">Cigna</a>, <a href="https://www.evernorth.com/" target="_blank" rel="noopener noreferrer" class="">Evernorth</a>, <a href="https://www.infobip.com/" target="_blank" rel="noopener noreferrer" class="">Infobip</a>, <a href="https://www.cloudscript.com.br/" target="_blank" rel="noopener noreferrer" class="">CloudScript</a>, <a href="https://www.alauda.io/" target="_blank" rel="noopener noreferrer" class="">Alauda</a>, <a href="https://www.new10.com/" target="_blank" rel="noopener noreferrer" class="">New10</a>, <a href="https://tele2.kz/" target="_blank" rel="noopener noreferrer" class="">Tele2 Kazakhstan</a>, <a href="https://digital.altel.kz/" target="_blank" rel="noopener noreferrer" class="">Altel Digital</a>, and <a href="https://www.axelerant.com/" target="_blank" rel="noopener noreferrer" class="">Axelerant</a>.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="plus-thousands-more-in-the-wild">Plus, thousands more in the wild<a href="https://backstage.io/blog/2024/12/18/backstage-wrapped-2024#plus-thousands-more-in-the-wild" class="hash-link" aria-label="Direct link to Plus, thousands more in the wild" title="Direct link to Plus, thousands more in the wild" translate="no">​</a></h3>
<p>The companies on that list represent just a fraction of the active Backstage adopters out there — we know there are thousands more of you. How do we know?</p>
<p>We've seen your <a href="https://backstage.io/blog/2024/12/09/kubecon-slc-24/#toyota-and-akamai-in-the-house" target="_blank" rel="noopener noreferrer" class="">amazing talks</a>. We've read your <a href="https://backstage.io/blog/2024/09/24/dynatrace-adopter-spotlight/" target="_blank" rel="noopener noreferrer" class="">insightful blog posts</a>. We've heard your <a href="https://www.youtube.com/watch?v=nZuEMojNi9A&amp;t=565s" target="_blank" rel="noopener noreferrer" class="">engaging adoption journeys</a>. We've enjoyed your <a href="https://philips-labs.github.io/automation-workshop/" target="_blank" rel="noopener noreferrer" class="">automation workshops</a>. And we've celebrated your <a href="https://backstage.io/blog/2024/12/09/kubecon-slc-24/#and-the-award-goes-to" target="_blank" rel="noopener noreferrer" class="">well-deserved awards</a>.</p>
<p>There are so many different kinds of adopters out there, and so many different ways to share with the community — and we love to see it all.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="support-the-community-add-yourself-to-adoptersmd">Support the community! Add yourself to ADOPTERS.md<a href="https://backstage.io/blog/2024/12/18/backstage-wrapped-2024#support-the-community-add-yourself-to-adoptersmd" class="hash-link" aria-label="Direct link to Support the community! Add yourself to ADOPTERS.md" title="Direct link to Support the community! Add yourself to ADOPTERS.md" translate="no">​</a></h3>
<p>If you work somewhere that's using Backstage, don't be shy. Jump into 2025 by <a href="https://github.com/backstage/backstage/blob/master/ADOPTERS.md" target="_blank" rel="noopener noreferrer" class="">adding your company</a> to the public adopters list. We love to see you there, and it's a simple but meaningful way to contribute back to the community.🙏</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="2️⃣-2-legit-2-quit-the-official-backstage-certification-launches">2️⃣: 2 Legit 2 Quit: The Official Backstage Certification Launches🎓<a href="https://backstage.io/blog/2024/12/18/backstage-wrapped-2024#2%EF%B8%8F%E2%83%A3-2-legit-2-quit-the-official-backstage-certification-launches" class="hash-link" aria-label="Direct link to 2️⃣: 2 Legit 2 Quit: The Official Backstage Certification Launches🎓" title="Direct link to 2️⃣: 2 Legit 2 Quit: The Official Backstage Certification Launches🎓" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="Bowie the Backstage Beaver wearing glasses and holding a book pointing at the badge for Certified Backstage Associate" src="https://backstage.io/assets/images/wrapped2024-2-cba-944a4303d0c9b9a990789cc1598f65a3.gif" width="1200" height="675" class="img_ev3q">
<em>Time to make it official</em></p>
<p>With the Backstage community growing across so many companies, the need for Backstage experts grows, as well. Now there's an easy way to spot 'em.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="become-a-certified-backstage-associate-cba">Become a Certified Backstage Associate (CBA)<a href="https://backstage.io/blog/2024/12/18/backstage-wrapped-2024#become-a-certified-backstage-associate-cba" class="hash-link" aria-label="Direct link to Become a Certified Backstage Associate (CBA)" title="Direct link to Become a Certified Backstage Associate (CBA)" translate="no">​</a></h3>
<p>Last month, the CNCF and Linux Foundation Education <a href="https://training.linuxfoundation.org/blog/just-launched-certified-backstage-associate-cba/" target="_blank" rel="noopener noreferrer" class="">announced</a> the launch of a new certification: <a href="https://training.linuxfoundation.org/certification/certified-backstage-associate-cba/" target="_blank" rel="noopener noreferrer" class="">Certified Backstage Associate (CBA)</a>. So now you can make your expertise for "building on top of the most popular open source IDP" official:</p>
<blockquote>
<p>Designed for IT engineers, developers, platform engineers, and other IT professionals, the CBA proves you have the mindset and skills to work in and build Backstage tools that improve performance and drive innovation benefiting your career, your team and your organization.</p>
</blockquote>
<p>It's a huge help for Backstage experts and practitioners, as well as all those Backstage adopters (and future adopters) who prioritize developer experience and productivity amid the increasing complexity of modern software development.</p>
<p>As Pia Nilsson, head of platform developer experience at Spotify, says in the announcement, "With the CNCF's Certified Backstage Associate program, companies now have a way to identify and tap into that expertise, while helping to contribute back to the growing Backstage community."</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="enroll-today">Enroll today!<a href="https://backstage.io/blog/2024/12/18/backstage-wrapped-2024#enroll-today" class="hash-link" aria-label="Direct link to Enroll today!" title="Direct link to Enroll today!" translate="no">​</a></h3>
<p>The program to become a Certified Backstage Associate is live, so you can <a href="https://training.linuxfoundation.org/certification/certified-backstage-associate-cba/" target="_blank" rel="noopener noreferrer" class="">enroll today</a>!</p>
<p>And if you want to see what domains the 90-minute, multiple-choice CBA exam covers — and hear more about how "earning a Backstage certification can be a career game-changer for developers and IT engineer's careers" — makes sure to read the full announcement on the <a href="https://training.linuxfoundation.org/blog/just-launched-certified-backstage-associate-cba/" target="_blank" rel="noopener noreferrer" class="">The Linux Foundation Education blog</a>.</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1️⃣-version-10-of-the-future-of-backstage">1️⃣: Version 1.0 of the Future of Backstage🎉<a href="https://backstage.io/blog/2024/12/18/backstage-wrapped-2024#1%EF%B8%8F%E2%83%A3-version-10-of-the-future-of-backstage" class="hash-link" aria-label="Direct link to 1️⃣: Version 1.0 of the Future of Backstage🎉" title="Direct link to 1️⃣: Version 1.0 of the Future of Backstage🎉" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="The top half of Bowie the Backstage Beaver sticking out of the top of a portal, the beaver&amp;#39;s bottom half sticking out of the bottom of another portal, with Backend System 1.0! written in between the floating halves" src="https://backstage.io/assets/images/wrapped2024-1-backend-ce46f7bf4b40d1ce9232e188bb951993.gif" width="1200" height="675" class="img_ev3q">
<em>And the number one milestone of 2024 is…Backend System 1.0!</em></p>
<p>As we saw in the video visualizing a year's worth of commits, there were a lot of changes to Backstage in 2024 — including improved documentation, the introduction of the Framework SIG (<a href="https://github.com/backstage/community/tree/main/sigs#sig" target="_blank" rel="noopener noreferrer" class="">join a Backstage special interest group</a>!), Yarn 4 as the default, our second security audit, a built-in event bus, major new features to the Scaffolder UI (form decorators and retries — shout-out to <a href="https://github.com/backstage/backstage/blob/master/OWNERS.md#scaffolder" target="_blank" rel="noopener noreferrer" class="">Bogdan Nechyporenko</a> from Bol.com!), big strides in the plugin-building experience in the <a href="https://youtu.be/BzPCJMQH8tg?list=PL8iP9yIjU0Q3UUDXdAoCaTC4Ci8asWg-X" target="_blank" rel="noopener noreferrer" class="">New Frontend System</a> — and much, much more. And that was just in the last six months.</p>
<p>But the 1.0 release of the New Backend System was the biggie of the year.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-new-backend-system-becomes-the-backend-system">The "New Backend System" becomes <em>the</em> backend system<a href="https://backstage.io/blog/2024/12/18/backstage-wrapped-2024#the-new-backend-system-becomes-the-backend-system" class="hash-link" aria-label="Direct link to the-new-backend-system-becomes-the-backend-system" title="Direct link to the-new-backend-system-becomes-the-backend-system" translate="no">​</a></h3>
<p>After months of testing, feedback, and improvements with the community, the New Backend System landed as a <a href="https://backstage.io/docs/releases/v1.31.0/" target="_blank" rel="noopener noreferrer" class="">stable v.1.0 release</a> in September — marking the beginning of a new era for building for Backstage.</p>
<p>The New Backend System (which shall henceforth be known as "<em>the</em> backend system") brings a host of improvements to the way that backends and their features are constructed. Instead of the old convention-based structure that could lead to migration pains, features now fit together with dependency injection, like a jigsaw puzzle, while leveraging powerful core services and extending each other dynamically with additional behaviors.</p>
<p>And this is just scratching the surface of it. To see what else is new in the backend system — check out <a href="https://backstage.io/docs/backend-system/" target="_blank" rel="noopener noreferrer" class="">the docs</a>!</p>
<p>We are very excited about this important milestone after a long period of development and refinement together with our passionate community, and hope that you will find it as refreshing and simple yet powerful as it was envisioned to be. This also lays the foundation for us being able to continue iterating at a high pace without incurring undue end user breakages during upgrades.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="how-to-migrate-your-backends-and-plugins">How to migrate your backends and plugins<a href="https://backstage.io/blog/2024/12/18/backstage-wrapped-2024#how-to-migrate-your-backends-and-plugins" class="hash-link" aria-label="Direct link to How to migrate your backends and plugins" title="Direct link to How to migrate your backends and plugins" translate="no">​</a></h3>
<p>We have documentation for both <a href="https://backstage.io/docs/backend-system/building-backends/migrating" target="_blank" rel="noopener noreferrer" class="">migrating backends</a> and <a href="https://backstage.io/docs/backend-system/building-plugins-and-modules/migrating" target="_blank" rel="noopener noreferrer" class="">migrating plugins</a>. If you haven't migrated already, we encourage you to do so as soon as possible, so that all adopters and end users can begin to unlock the benefits of the new system!</p>
<p>And keep the feedback coming, either on the community <a href="https://discord.gg/backstage-687207715902193673" target="_blank" rel="noopener noreferrer" class="">Discord</a> or through <a href="https://github.com/backstage/backstage/issues/new/choose" target="_blank" rel="noopener noreferrer" class="">issues</a> on GitHub. If you're looking for a way to help, take a look at these open issues in the <a href="https://github.com/backstage/backstage/issues/26353" target="_blank" rel="noopener noreferrer" class="">backstage</a> and <a href="https://github.com/backstage/community-plugins/issues/1176" target="_blank" rel="noopener noreferrer" class="">community plugins</a> repos about deprecating old backend capabilities of already migrated plugins. To the future we go!</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="we-won-hooray-to-the-community-">We won! Hooray to the community! 🏆<a href="https://backstage.io/blog/2024/12/18/backstage-wrapped-2024#we-won-hooray-to-the-community-" class="hash-link" aria-label="Direct link to We won! Hooray to the community! 🏆" title="Direct link to We won! Hooray to the community! 🏆" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="Bowie the Backstage Beaver standing bashfully on a podium with 2024 flashing behind in big letters" src="https://backstage.io/assets/images/wrapped2024-infoworld-f7edb7ac9112a2b5dd78be9d73a2da1c.gif" width="1200" height="675" class="img_ev3q"></p>
<p>To cap off the year, last week Backstage won the "<a href="https://www.linkedin.com/posts/backstage-from-spotify_infoworlds-2024-technology-of-the-year-award-activity-7273338824561246208-KY-w/" target="_blank" rel="noopener noreferrer" class="">InfoWorld 2024 Technology of the Year Award for Software Development: Platforms</a>"!</p>
<p>Congrats to <a href="https://github.com/backstage/backstage/blob/master/OWNERS.md" target="_blank" rel="noopener noreferrer" class="">all the project maintainers</a>, the CNCF, and everyone in the Backstage community — including all our contributors, adopters, partners, and end users. It's great to see developer experience recognized for the critical role it plays in innovation.</p>
<p>Let's do it again next year!</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[The 2024 Backstage Security Audit]]></title>
            <link>https://backstage.io/blog/2024/12/17/backstage-security-audit-2024</link>
            <guid>https://backstage.io/blog/2024/12/17/backstage-security-audit-2024</guid>
            <pubDate>Tue, 17 Dec 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[TL;DR Backstage’s security posture remains strong! Today, we’re releasing the report from the second independent security audit of the Backstage project.]]></description>
            <content:encoded><![CDATA[<p><strong>TL;DR</strong> Backstage’s security posture remains strong! Today, we’re releasing the report from the second independent security audit of the Backstage project.</p>
<p><img decoding="async" loading="lazy" alt="Backstage Security Audit &amp;amp; Updates" src="https://backstage.io/assets/images/backstage-security-audit-d0283e8fb2fc980642fd9b4be7057cf5.png" width="1200" height="630" class="img_ev3q"></p>
<p>As an <a href="https://www.cncf.io/blog/2022/03/15/backstage-project-joins-the-cncf-incubator/" target="_blank" rel="noopener noreferrer" class="">Incubating project</a> within the <a href="https://www.cncf.io/" target="_blank" rel="noopener noreferrer" class="">Cloud Native Computing Foundation</a> (CNCF), Backstage is fortunate enough to take advantage of sponsored continuous security audits. The <a href="https://ostif.org/" target="_blank" rel="noopener noreferrer" class="">Open Source Technology Improvement Fund</a> (OSTIF) sponsors the audits as part of its ongoing efforts to secure the open source software ecosystem, and the audit itself was performed by <a href="https://x41-dsec.de/" target="_blank" rel="noopener noreferrer" class="">X41 D-Sec</a>, who also performed the first audit. Our goal with the audit was to re-evaluate and further improve Backstage’s security posture, focusing on the core Backstage framework and plugins.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="report-findings-and-fixes">Report Findings and Fixes<a href="https://backstage.io/blog/2024/12/17/backstage-security-audit-2024#report-findings-and-fixes" class="hash-link" aria-label="Direct link to Report Findings and Fixes" title="Direct link to Report Findings and Fixes" translate="no">​</a></h2>
<p>The security audit and improvements concluded on October 16. The audit findings totalled three high and one medium severity vulnerability, alongside seven side findings with no direct security impact. All main findings were remedied in the <a href="https://backstage.io/docs/releases/v1.31.0" target="_blank" rel="noopener noreferrer" class="">Backstage 1.31 release</a>, while the majority of the side findings were addressed by the <a href="https://backstage.io/docs/releases/v1.32.0" target="_blank" rel="noopener noreferrer" class="">1.32 release</a>. For details on all findings, see the <a href="https://backstage.io/assets/files/X41-Backstage-Audit-2024-eb8535297d6f2542b0d61bf73c87f7fc.pdf" target="_blank" class="">full audit report</a>.</p>
<p>We are happy to see that there are no repeated vulnerabilities, perhaps in part due to our new <a href="https://github.com/backstage/backstage/blob/master/SECURITY.md#coding-practices" target="_blank" rel="noopener noreferrer" class="">secure coding practices</a> following the previous audit, as well as the introduction of the <a href="https://backstage.io/docs/overview/threat-model" target="_blank" rel="noopener noreferrer" class="">Backstage Threat Model</a>. While there was a path traversal vulnerability that was discovered in the TechDocs backend, this was more specific and related to remote paths, rather than the local filesystem. We chose to handle this as an isolated fix as there are no other occurrences of this pattern that we are aware of.</p>
<p>The <a href="https://backstage.io/blog/2022/08/23/backstage-security-audit/" target="_blank" rel="noopener noreferrer" class="">previous security audit</a> highlighted the need for Backstage to have its own built-in protection, to be secure by default. This, as well as the need for more robust service-to-service auth, was addressed earlier this year through the new auth system, in <a href="https://backstage.io/docs/releases/v1.24.0#breaking-auth-improvements" target="_blank" rel="noopener noreferrer" class="">1.24</a> and following releases. The new auth system was in scope for this new security audit, and no findings were made in that area.</p>
<p>One area with findings in both audits is the way that the auth plugin backend handles sign-in of users. This is a complex area that can often be a source of friction for the adoption experience of Backstage. As part of this audit we have made several updates especially to the documentation for sign-in resolvers, but this remains an area where it is hard to find a solution that is both simple and secure. Of course we err on the side of caution and have updated our documentation to be more strict. We will continue to explore options for improvements to the sign-in system to keep it both simple and secure out of the box, but in the meantime be sure to read the documentation section <a href="https://backstage.io/docs/auth/identity-resolver" target="_blank" rel="noopener noreferrer" class="">sign-in identity and resolver</a> as you are setting up Backstage.</p>
<p>We are happy with the results of this security audit, it is yet another way in which we see the continuing maturity of the Backstage projects. On behalf of the Backstage maintainers and community: thanks to the CNCF, OSTIF, and X41 D-Sec for the opportunity to improve the project.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="links-and-references">Links and References<a href="https://backstage.io/blog/2024/12/17/backstage-security-audit-2024#links-and-references" class="hash-link" aria-label="Direct link to Links and References" title="Direct link to Links and References" translate="no">​</a></h2>
<ul>
<li class=""><a href="https://x41-dsec.de/security/research/job/news/2024/12/16/backstage-review-2024/" target="_blank" rel="noopener noreferrer" class="">X41 Blog Post</a></li>
<li class=""><a href="https://ostif.org/backstage-audit-complete/" target="_blank" rel="noopener noreferrer" class="">OSTIF Blog Post</a></li>
<li class=""><a href="https://backstage.io/assets/files/X41-Backstage-Audit-2024-eb8535297d6f2542b0d61bf73c87f7fc.pdf" target="_blank" class="">Full Audit Report</a></li>
<li class=""><a href="https://backstage.io/docs/overview/threat-model" target="_blank" rel="noopener noreferrer" class="">Backstage Threat Model</a></li>
<li class=""><a href="https://github.com/backstage/backstage/blob/master/SECURITY.md" target="_blank" rel="noopener noreferrer" class="">Backstage Security Policy</a></li>
</ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Backstage in Salt Lake City: Highlights from BackstageCon and KubeCon + CloudNativeCon North America 2024]]></title>
            <link>https://backstage.io/blog/2024/12/09/kubecon-slc-24</link>
            <guid>https://backstage.io/blog/2024/12/09/kubecon-slc-24</guid>
            <pubDate>Mon, 09 Dec 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Beaver in front of snowcapped mountains peeking over a banner that reads BackstageCon and KubeCon + CloudNativeCon North America 2024, Salt Lake City]]></description>
            <content:encoded><![CDATA[<p><img decoding="async" loading="lazy" alt="Beaver in front of snowcapped mountains peeking over a banner that reads BackstageCon and KubeCon + CloudNativeCon North America 2024, Salt Lake City" src="https://backstage.io/assets/images/backstagecon-kubecon-2024-salt-lake-city-4e6a0dc7e1ebb82fbd00175e3e91ab38.png" width="1200" height="630" class="img_ev3q"></p>
<p><strong>tl;dr:</strong> Salt Lake City did not disappoint! Backstage continues to be at the forefront of many conversations being had at BackstageCon and across KubeCon + CloudNativeCon. If you weren't able to join us, all the <a href="https://www.youtube.com/playlist?list=PL8iP9yIjU0Q3UUDXdAoCaTC4Ci8asWg-X" target="_blank" rel="noopener noreferrer" class="">BackstageCon talks</a> are available for replay on YouTube. Read on for the highlights — plus, photos of super cute pups — as a treat! 🐕</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-everyone-was-talking-about-at-backstagecon">What everyone was talking about at BackstageCon🦫<a href="https://backstage.io/blog/2024/12/09/kubecon-slc-24#what-everyone-was-talking-about-at-backstagecon" class="hash-link" aria-label="Direct link to What everyone was talking about at BackstageCon🦫" title="Direct link to What everyone was talking about at BackstageCon🦫" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="Speakers on stage at BackstageCon North America 2024" src="https://backstage.io/assets/images/kc24slc-spotify-backstagecon-163e9a8322d0add32eefbc2d32134a36.jpg" width="1200" height="900" class="img_ev3q"></p>
<p><a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america/co-located-events/backstagecon/" target="_blank" rel="noopener noreferrer" class="">BackstageCon</a> featured a day of talks tailored to the diverse Backstage community. Whether you were an evaluator, adopter, integrator, builder, or an innovator, there was something valuable for everyone. Here were the big themes from the day.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="evaluating-backstage-roi">Evaluating Backstage ROI<a href="https://backstage.io/blog/2024/12/09/kubecon-slc-24#evaluating-backstage-roi" class="hash-link" aria-label="Direct link to Evaluating Backstage ROI" title="Direct link to Evaluating Backstage ROI" translate="no">​</a></h3>
<ul>
<li class="">
<p>Olivier (Avalia Systems) presented what makes digital portals <a href="https://youtu.be/kb3F98fKvaQ?list=PL8iP9yIjU0Q3UUDXdAoCaTC4Ci8asWg-X" target="_blank" rel="noopener noreferrer" class="">helpful to C-level executives</a>.</p>
</li>
<li class="">
<p>Himanshu (Harness) shared strategies for adopting Backstage in ways that drive <a href="https://youtu.be/FACtDHQvNf0?list=PL8iP9yIjU0Q3UUDXdAoCaTC4Ci8asWg-X" target="_blank" rel="noopener noreferrer" class="">meaningful value for engineers</a>.</p>
</li>
<li class="">
<p>Eric (Quantum Metric) explained <a href="https://youtu.be/9qPsuMSw_dM?list=PL8iP9yIjU0Q3UUDXdAoCaTC4Ci8asWg-X" target="_blank" rel="noopener noreferrer" class="">how startups can benefit</a> from what big techies have been contributing to Backstage.</p>
</li>
<li class="">
<p>Tom (Spotify) shared how developer productivity furthers Spotify’s mission to <a href="https://youtu.be/AU9BwkRMmMY?list=PL8iP9yIjU0Q3UUDXdAoCaTC4Ci8asWg-X" target="_blank" rel="noopener noreferrer" class="">empower creators</a> and what the future holds for Backstage.</p>
</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="sharing-backstage-adoption-journeys">Sharing Backstage adoption journeys<a href="https://backstage.io/blog/2024/12/09/kubecon-slc-24#sharing-backstage-adoption-journeys" class="hash-link" aria-label="Direct link to Sharing Backstage adoption journeys" title="Direct link to Sharing Backstage adoption journeys" translate="no">​</a></h3>
<ul>
<li class="">
<p>A panel discussion — featuring practitioners from Adobe, American Airlines, JPMorgan Chase, Red Hat, and Roku — showcased <a href="https://youtu.be/DAjhjS2Xg4Q?list=PL8iP9yIjU0Q3UUDXdAoCaTC4Ci8asWg-X" target="_blank" rel="noopener noreferrer" class="">real-world adoption stories from large companies</a>, spanning various stages of Backstage usage. Hear how devs at American Airlines can use Scaffolder to get a new site provisioned and deployed on the .aa.com domain in 20 minutes. “I’ve done it in seven,” said Jay Cox, principal engineer. “It used to take a month.”</p>
</li>
<li class="">
<p>Lizzie (Booz Allen Hamilton) explored corporate barriers to Backstage adoption and lessons learned along the way, including how to navigate <a href="https://youtu.be/RTYVmMbkdNA?list=PL8iP9yIjU0Q3UUDXdAoCaTC4Ci8asWg-X" target="_blank" rel="noopener noreferrer" class="">cultural tensions</a> and the importance of listening to your devs, in order to bring the latest advancements in developer experience to a government consulting company that’s going on “110 years young”.</p>
</li>
<li class="">
<p>Amber and Daniel (Liatrio) elaborated on why <a href="https://youtu.be/GaGbjMJCcRU?list=PL8iP9yIjU0Q3UUDXdAoCaTC4Ci8asWg-X" target="_blank" rel="noopener noreferrer" class="">automated governance</a> belongs inside Backstage portals to facilitate centralized compliance — so your devs don't get held up from going to prod by unforeseen checks.</p>
</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="maintaining-a-backstage-instance">Maintaining a Backstage instance<a href="https://backstage.io/blog/2024/12/09/kubecon-slc-24#maintaining-a-backstage-instance" class="hash-link" aria-label="Direct link to Maintaining a Backstage instance" title="Direct link to Maintaining a Backstage instance" translate="no">​</a></h3>
<ul>
<li class="">
<p>Djamaile and Mitch (Spotify) provided <a href="https://youtu.be/dbLqwEVl52U?list=PL8iP9yIjU0Q3UUDXdAoCaTC4Ci8asWg-X" target="_blank" rel="noopener noreferrer" class="">actionable tips</a> for managing Backstage instances, including how to keep them aligned with the latest open source features.</p>
</li>
<li class="">
<p>Ashna and Mesut (Booking.com) showed how to customize your instance to mirror your company's unique identity and how to leverage reusability for a <a href="https://youtu.be/QV40Yz2i3jQ?list=PL8iP9yIjU0Q3UUDXdAoCaTC4Ci8asWg-X" target="_blank" rel="noopener noreferrer" class="">smoother user experience for your devs</a>.</p>
</li>
<li class="">
<p>Paul (Red Hat) presented a <a href="https://youtu.be/CtbfN--mJkE?list=PL8iP9yIjU0Q3UUDXdAoCaTC4Ci8asWg-X" target="_blank" rel="noopener noreferrer" class="">platform engineer’s POV</a> of what it means to maintain a Backstage instance.</p>
</li>
<li class="">
<p>Yishai (Linear B) spoke about how to approach software engineering intelligence (SEI) and developer productivity metrics inside Backstage, including <a href="https://youtu.be/mxVW2AGoI3A?list=PL8iP9yIjU0Q3UUDXdAoCaTC4Ci8asWg-X" target="_blank" rel="noopener noreferrer" class="">do’s and don’ts</a>.</p>
</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="building-with-backstage-core-features">Building with Backstage core features<a href="https://backstage.io/blog/2024/12/09/kubecon-slc-24#building-with-backstage-core-features" class="hash-link" aria-label="Direct link to Building with Backstage core features" title="Direct link to Building with Backstage core features" translate="no">​</a></h3>
<ul>
<li class="">
<p>Avantika and Emma (Spotify) walked us through the advantages of the new backend system, recommending <a href="https://youtu.be/n7GUlLHN2tQ?list=PL8iP9yIjU0Q3UUDXdAoCaTC4Ci8asWg-X" target="_blank" rel="noopener noreferrer" class="">best practices for plugin development</a> and showcasing why migrating to this updated version is an extensibility game changer.</p>
</li>
<li class="">
<p>Will and Ryan (Microsoft) shared how Software Catalog and Templates provide the model to <a href="https://youtu.be/U2-Lo-yuvdc?list=PL8iP9yIjU0Q3UUDXdAoCaTC4Ci8asWg-X" target="_blank" rel="noopener noreferrer" class="">build visualizations</a> of your cloud native applications.</p>
</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="ai-powered-backstage-plugins-and-modules">AI-powered Backstage plugins and modules<a href="https://backstage.io/blog/2024/12/09/kubecon-slc-24#ai-powered-backstage-plugins-and-modules" class="hash-link" aria-label="Direct link to AI-powered Backstage plugins and modules" title="Direct link to AI-powered Backstage plugins and modules" translate="no">​</a></h3>
<p>Innovative use cases featuring AI integration took center stage.</p>
<ul>
<li class="">
<p>Niall (Amazon Web Services) demonstrated how to <a href="https://youtu.be/DCXzCrIDOAs?list=PL8iP9yIjU0Q3UUDXdAoCaTC4Ci8asWg-X" target="_blank" rel="noopener noreferrer" class="">interact with plugin services</a> using artificial intelligence prompts.</p>
</li>
<li class="">
<p>Ben (Red Hat) outlined <a href="https://youtu.be/cl6E0A5R_nI?list=PL8iP9yIjU0Q3UUDXdAoCaTC4Ci8asWg-X" target="_blank" rel="noopener noreferrer" class="">broader AI integrations</a> to enhance Backstage, sparking exciting possibilities for the future.</p>
</li>
</ul>
<p>The sessions offered a wealth of knowledge and inspiration, underscoring the versatility and potential of Backstage for organizations at every level. The Backstage booth was hopping all day long as community members and cloud natives took advantage of being able to ask the experts questions and learn more about the project.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="backstage-at-the-big-show-kubecon--cloudnativecon️">Backstage at the big show: KubeCon⎈ + CloudNativeCon☁️<a href="https://backstage.io/blog/2024/12/09/kubecon-slc-24#backstage-at-the-big-show-kubecon--cloudnativecon%EF%B8%8F" class="hash-link" aria-label="Direct link to Backstage at the big show: KubeCon⎈ + CloudNativeCon☁️" title="Direct link to Backstage at the big show: KubeCon⎈ + CloudNativeCon☁️" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="A view of the crowd entering KubeCon as seen from the top of the convention center escalator" src="https://backstage.io/assets/images/kc24slc-cncf-entrance-d706b3fb815f3b4254cc53180c69affc.jpg" width="1200" height="800" class="img_ev3q">
📸 <em><a href="https://www.flickr.com/photos/143247548@N03/albums/72177720321905538/" target="_blank" rel="noopener noreferrer" class="">See more KubeCon photos from the CNCF’s Flickr album</a> →</em></p>
<p>My friends, what an intense conference!</p>
<p>Over the course of three packed days, there were a bunch of activities, including talks, a kiosk, and a Contribfest, all centered around Backstage.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="maintainers-take-the-stage">Maintainers take the stage<a href="https://backstage.io/blog/2024/12/09/kubecon-slc-24#maintainers-take-the-stage" class="hash-link" aria-label="Direct link to Maintainers take the stage" title="Direct link to Maintainers take the stage" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="Backstage maintainers presenting in a ballroom" src="https://backstage.io/assets/images/kc24slc-spotify-maintainers-0ad82196ef9d3813cbad46d70f786aba.jpg" width="1200" height="900" class="img_ev3q"></p>
<p>This may be old hat for those who are regular KubeCon attendees, but it’s still pretty exciting to catch up on all the Backstage updates straight from the core maintainers. Spotify’s Ben Lambert and Patrik Oldsberg were in the spotlight in Ballroom C addressing an attentive crowd of Backstage adopters, users, and fans.</p>
<p>Highlights of their maintainers talk include:</p>
<ul>
<li class=""><strong>Project updates:</strong> Yarn 4 is now the default, the new built-in event bus has arrived, and the (New) Backend System is now 1.0!</li>
<li class=""><strong>Security Audit:</strong> Another security audit has been completed with the helpful support of the CNCF</li>
<li class=""><strong>Scaffolder updates:</strong> Addition of Form Decorators and support for Retries!</li>
<li class=""><strong>New Frontend System:</strong> Focus on the plugin builder experience!</li>
</ul>
<p>Watch their entire talk — “<a href="https://youtu.be/BzPCJMQH8tg?list=PL8iP9yIjU0Q3UUDXdAoCaTC4Ci8asWg-X" target="_blank" rel="noopener noreferrer" class="">How to Expand Your IDP: The New Building Blocks of Backstage</a>” — for all the details.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="toyota-and-akamai-in-the-house">Toyota and Akamai in the house<a href="https://backstage.io/blog/2024/12/09/kubecon-slc-24#toyota-and-akamai-in-the-house" class="hash-link" aria-label="Direct link to Toyota and Akamai in the house" title="Direct link to Toyota and Akamai in the house" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="A packed ballroom with Backstage displayed on two large screens" src="https://backstage.io/assets/images/kc24slc-cncf-toyota-cafe425161c2020c8ec0d395b22ac0df.jpg" width="1200" height="800" class="img_ev3q">
📸 <a href="https://www.flickr.com/photos/143247548@N03/albums/72177720321905538/" target="_blank" rel="noopener noreferrer" class="">CNCF</a></p>
<p>There were great talks from Backstage adopters during KubeCon, too. Toyota and Akamai packed the rooms with their Backstage knowledge.</p>
<ul>
<li class="">
<p>“<a href="https://youtu.be/4w_AC81_GZM?list=PL8iP9yIjU0Q3UUDXdAoCaTC4Ci8asWg-X&amp;t=856" target="_blank" rel="noopener noreferrer" class="">Shifting Gears: Leveraging CNCF Tools to Streamline Operations at Toyota Connected</a>”: Benson and Rob talk about failures and successes adopting CNCF tools (including ArgoCD and Backstage) to unify operations, streamline workflows, and enhance cross-team collaboration.</p>
</li>
<li class="">
<p>“<a href="https://youtu.be/RFVB9CEEn1I?list=PL8iP9yIjU0Q3UUDXdAoCaTC4Ci8asWg-X" target="_blank" rel="noopener noreferrer" class="">From Chaos to Calm: Building a Unified and Scalable CI/CD Pipeline at Akamai</a>”: Tomer dives into development efficiency and how you can “conquer cloud-native deployments by adding the right tools, such as Argo Rollouts and Backstage”.</p>
</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="and-the-award-goes-to">And the award goes to…<a href="https://backstage.io/blog/2024/12/09/kubecon-slc-24#and-the-award-goes-to" class="hash-link" aria-label="Direct link to And the award goes to…" title="Direct link to And the award goes to…" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="Adobe accepts the CNCF Top End User Award on the Keynote stage at KubeCon + CloudNativeCon North America 2024" src="https://backstage.io/assets/images/kc24slc-cncf-adobe-50f2a98f8d26d94c6c907e8c5fb74d8a.jpg" width="1200" height="801" class="img_ev3q"></p>
<p>📸 <a href="https://www.flickr.com/photos/143247548@N03/albums/72177720321905538/" target="_blank" rel="noopener noreferrer" class="">CNCF</a></p>
<p>Adobe gave a shoutout to Backstage from the Keynote mainstage on Thursday morning when they (spoiler alert) <a href="https://youtu.be/p7J0lAU3AWo" target="_blank" rel="noopener noreferrer" class="">accepted the CNCF’s Top End User Award</a>, thanking the cloud native community and all the projects that they use.</p>
<p>But Adobe isn’t just a Backstage adopter, they are a model citizen — giving back to the community through their example, having “developed a reference architecture for its IDP, built using Argo, Backstage, Helm, and Kubernetes, which other organizations can use as a template for designing and implementing their systems”.</p>
<p>As Taylor Dolezal, head of ecosystem at the CNCF, <a href="https://www.cncf.io/announcements/2024/11/14/cncf-presents-top-end-user-award-to-adobe/" target="_blank" rel="noopener noreferrer" class="">says</a>: “Their commitment to nurturing technological excellence and developer experience exemplifies what we hope to see in the end user ecosystem. It’s not just about tool adoption or code contributions — it’s about synthesizing these learnings into assets that empower others in their cloud native journeys.”</p>
<p>Way to go, Adobe!</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="a-bustling-cncf-project-pavilion">A bustling CNCF project pavilion<a href="https://backstage.io/blog/2024/12/09/kubecon-slc-24#a-bustling-cncf-project-pavilion" class="hash-link" aria-label="Direct link to A bustling CNCF project pavilion" title="Direct link to A bustling CNCF project pavilion" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="A volunteer wearing an “Ask me about Backstage” T-shirt talks to a visitor at the project kiosk" src="https://backstage.io/assets/images/kc24slc-cncf-kiosk-254f48af157ff03f0e02b574a00dc7dc.jpg" width="1200" height="800" class="img_ev3q"></p>
<p>📸 <a href="https://www.flickr.com/photos/143247548@N03/albums/72177720321905538/" target="_blank" rel="noopener noreferrer" class="">CNCF</a></p>
<p>The CNCF Projects Pavilion was buzzing with activity all week, and the Backstage kiosk was a hub of excitement. Attendees stopped by with a mix of curiosity and enthusiasm, sparking conversations that highlighted the dynamic nature of our community.</p>
<p>Curious visitors asked, “What is Backstage all about?”, while adopters sought personalized advice on customizing Backstage for their specific company needs. Contributors dropped in to say, “Hey, you reviewed my pull request!” And professionals proudly shared their achievements as Backstage experts — in fact, now there’s a way to make that expertise official — by becoming a <a href="https://training.linuxfoundation.org/blog/just-launched-certified-backstage-associate-cba/" target="_blank" rel="noopener noreferrer" class="">Certified Backstage Associate (CBA)</a>, a new certification that was just launched by the CNCF and The Linux Foundation.</p>
<p>Developers eager to give back to the community came to learn how to start contributing, and some of the kindest Backstage fans simply stopped by to say, “Thank you”. Their gratitude and encouragement are a powerful reminder of why we do what we do.</p>
<p>Every interaction in person made the day special, and we wrapped up with a deep sense of fulfillment and pride in how far Backstage has come. Here's to building an even brighter future together!</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="contribfest-its-all-about-community">Contribfest! It’s All About Community👩‍💻<a href="https://backstage.io/blog/2024/12/09/kubecon-slc-24#contribfest-its-all-about-community" class="hash-link" aria-label="Direct link to Contribfest! It’s All About Community👩‍💻" title="Direct link to Contribfest! It’s All About Community👩‍💻" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="Various developers and their laptops participating in the Backstage Contribfest" src="https://backstage.io/assets/images/kc24slc-spotify-cncf-contribfest-6dbd715857936c8030e7bdf55d8f3536.gif" width="800" height="600" class="img_ev3q"></p>
<p>📸 Spotify, <a href="https://www.flickr.com/photos/143247548@N03/albums/72177720321905538/" target="_blank" rel="noopener noreferrer" class="">CNCF</a></p>
<p>On Thursday, the first-ever Backstage Contribfest session took place — hosted by Yi Cai and Paul Schultz from Red Hat, and André Wanlin, Patrik Oldsberg, and Ben Lambert from Spotify.</p>
<p>Participants who hadn't yet used or contributed to Backstage eagerly joined the project's contributors community and were eager to help. Together with the group, experienced Backstage engineers stepped in to assist attendees — whether troubleshooting environment setup or explaining how specific framework and plugin features are implemented. It was a great example of a community coming together to support learning and contribution.</p>
<p>The energy in the room, with 60 enthusiastic participants, was absolutely electric! It was amazing to see ideas bouncing around, impromptu collaboration happening at every corner, and a shared passion for advancing the Backstage project.</p>
<p>Among the great contributions to come out of this event are:</p>
<ul>
<li class=""><a href="https://github.com/backstage/backstage/pull/27694" target="_blank" rel="noopener noreferrer" class="">Add Pagination to Tech Docs Table</a></li>
<li class=""><a href="https://github.com/backstage/backstage/pull/27705" target="_blank" rel="noopener noreferrer" class="">Add Home Page Quick Start Card</a></li>
<li class=""><a href="https://github.com/backstage/community-plugins/pull/2012" target="_blank" rel="noopener noreferrer" class="">Truncate commit message to first newline</a></li>
</ul>
<p>A heartfelt thank you to everyone who joined us — it’s your talent and collaborative spirit that truly define the Backstage community. This event was a powerful reminder that it’s the people behind the project who make Backstage what it is today 💚.</p>
<p>And if you missed out on the fun, it's never too late to join the Backstage community. Just follow along with the <a href="https://static.sched.com/hosted_files/kccncna2024/53/KubeCon-ContribFest-Backstage-NA-2024.pdf" target="_blank" rel="noopener noreferrer" class="">Contribfest slide deck</a> to get started with contributing!</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="bonus-pups">Bonus pups!🐕<a href="https://backstage.io/blog/2024/12/09/kubecon-slc-24#bonus-pups" class="hash-link" aria-label="Direct link to Bonus pups!🐕" title="Direct link to Bonus pups!🐕" translate="no">​</a></h2>
<p>Nothing improves developer experience like hanging out with some fluffy friends. So please enjoy these photos from KubeCon’s “<a href="https://www.flickr.com/photos/143247548@N03/albums/72177720321905538/with/54155382123" target="_blank" rel="noopener noreferrer" class="">Pet A Pup</a>” station.</p>
<p>(All 📸 <a href="https://www.flickr.com/photos/143247548@N03/albums/72177720321905538/with/54155382123" target="_blank" rel="noopener noreferrer" class="">CNCF</a>. Please note: the last pup is not a pup.)</p>
<p><img decoding="async" loading="lazy" alt="A labrador retriever pup in the middle of three people calmly getting pets" src="https://backstage.io/assets/images/kc24slc-cncf-bestpup1-1e9b84af4f21158883e2690975f7c2dd.jpg" width="1000" height="667" class="img_ev3q">
The best labrador-retriever pup graciously accepting pets from the cloud native community.</p>
<p><img decoding="async" loading="lazy" alt="A fluffy white pup staring at the camera surrounded by attendees" src="https://backstage.io/assets/images/kc24slc-cncf-bestpup2-620c3da785079a36b7327fc4582f9bb4.jpg" width="1000" height="667" class="img_ev3q">
The best fluffy white pup surrounded by admirers.</p>
<p><img decoding="async" loading="lazy" alt="A lanky racing pup getting pet on the face" src="https://backstage.io/assets/images/kc24slc-cncf-bestpup3-189b6f37d11ea773bc332f504ae5a191.jpg" width="1000" height="667" class="img_ev3q">
The best racing-style pup getting face scritches.</p>
<p><img decoding="async" loading="lazy" alt="A yellow pup squinting while getting pets from an attendee in a yellow shirt" src="https://backstage.io/assets/images/kc24slc-cncf-bestpup4-9ddb2d6ad5f7d89164da7367209d4ea4.jpg" width="1000" height="667" class="img_ev3q">
The best yellow pup getting pets from his twinsie.</p>
<p><img decoding="async" loading="lazy" alt="A fluffy cat getting pets." src="https://backstage.io/assets/images/kc24slc-cncf-bestpup5-b7dcc76e98d2ca2af5aa943440d0e1a4.jpg" width="1000" height="667" class="img_ev3q">
See? Not a pup. But did get pets.</p>
<p><a href="https://www.therapyanimalsutah.org/" target="_blank" rel="noopener noreferrer" class="">You, too, can give these pups some love</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="cheerio-well-see-you-in-london">Cheerio! We’ll see you in London!💂<a href="https://backstage.io/blog/2024/12/09/kubecon-slc-24#cheerio-well-see-you-in-london" class="hash-link" aria-label="Direct link to Cheerio! We’ll see you in London!💂" title="Direct link to Cheerio! We’ll see you in London!💂" translate="no">​</a></h2>
<p>And that’s a wrap on Salt Lake City! <a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/" target="_blank" rel="noopener noreferrer" class="">Join us in London</a> in April for more community-building fun at BackstageCon and KubeCon + CloudNativeCon Europe 2025!</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Adopter Spotlight: Level-up developer experience with observability and security in context]]></title>
            <link>https://backstage.io/blog/2024/09/24/dynatrace-adopter-spotlight</link>
            <guid>https://backstage.io/blog/2024/09/24/dynatrace-adopter-spotlight</guid>
            <pubDate>Tue, 24 Sep 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[TL;DR]]></description>
            <content:encoded><![CDATA[<p><strong>TL;DR</strong>
To enhance the developer experience, Dynatrace adopted Backstage as its central developer portal and enhances Backstage entities with real-time data. This decision, along with the symbiosis between the Dynatrace platform and Backstage, has unlocked two significant opportunities.</p>
<ul>
<li class="">First, centralizing all development-related artifacts and democratizing ownership have reduced onboarding time for our teams.</li>
<li class="">Second, we enhanced the developer experience by integrating observability and security data into Backstage, offering seamless entry points to Dynatrace for in-depth analysis.</li>
</ul>
<p><img decoding="async" loading="lazy" alt="Dynatrace adopting Backstage" src="https://backstage.io/assets/images/com0027.Dynatrace.Adopter-76144e319e5924be0cda3c36695735e2.png" width="1800" height="945" class="img_ev3q"></p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="why-and-how-dynatrace-rolled-out-backstage">Why and how Dynatrace rolled out Backstage<a href="https://backstage.io/blog/2024/09/24/dynatrace-adopter-spotlight#why-and-how-dynatrace-rolled-out-backstage" class="hash-link" aria-label="Direct link to Why and how Dynatrace rolled out Backstage" title="Direct link to Why and how Dynatrace rolled out Backstage" translate="no">​</a></h2>
<p>A few years ago, Dynatrace developers worked with large monolithic repositories to develop functionality for our platform’s agent and server sides. The server component was particularly large, consisting of 260 Gradle projects in a single repository. This setup centralized development processes for the developers, making it easier for them to push the code while versioning, delivery, and hotfixes were handled automatically. However, maintaining the speed and manageability of these processes required a lot of effort.</p>
<p>Dynatrace decided to move towards the current Dynatrace platform model as the next evolutionary step of our product. This decision led to an architectural change of splitting the monolithic repository into multiple projects. The platform is designed to enable the development of apps on top of platform capabilities to unlock faster innovations and decouple them from the release cycles of other components. Based on this decision, it became apparent that the number of platform components and individual apps would increase significantly, eliminating the option of a single repository to unify all processes. Besides, the risk of increasing cognitive load in software development was high due to development being spread across multiple touchpoints, a challenge discussed in research for years (<a href="https://doi.org/10.1016/0364-0213(88)90023-7" target="_blank" rel="noopener noreferrer" class="">Sweller, 1988</a>, <a href="https://dl.acm.org/doi/10.5555/1388398" target="_blank" rel="noopener noreferrer" class="">Robert, 2008</a>). Consequently, the need to standardize project creation became crucial to ensure corporate governance and compliance even before the first commit was pushed.</p>
<p>Therefore, the Dynatrace Platform Engineering team initiated a project to standardize and simplify the process for starting service or application development. This effort was initially named “project initializer” and launched around the same time Backstage joined the CNCF. Although the platform engineering team saw initial success with the project initializer, we quickly realized that there was a greater demand for centralizing development activities and providing appropriate guidelines. For example, we noted that the complexity of integrating new code had shifted from the build phase to the deployment phase, transferring relatively complex integration tasks from continuous integration to continuous deployment. Overall, the main requirements and focal points were:</p>
<ul>
<li class=""><strong>Ownership</strong>: Who is responsible for which service or app? Who owns infrastructure resources?</li>
<li class=""><strong>Documentation</strong>: Where is the documentation of a service or app?</li>
<li class=""><strong>CI/CD view</strong>: How does the build pipeline in GitHub/Jenkins progress, and what about the ArgoCD deployment?</li>
<li class=""><strong>Dependency management</strong>: Do we know which APIs are used?</li>
<li class=""><strong>Observability and security</strong>: Where is a service deployed, and is it healthy and secure?</li>
</ul>
<p>For more details on Dynatrace's adoption of Backstage, please watch the recording, <a href="https://www.youtube.com/watch?v=0or5K_3HieA" target="_blank" rel="noopener noreferrer" class="">How We Made Backstage Improve Developer Efficiency of 1000+ Engineers</a>, BackstageCon, November 6, 2023 in Chicago. Illinois.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="quick-wins-with-ownership-democratization-and-self-service-templates">Quick wins with ownership democratization and self-service templates<a href="https://backstage.io/blog/2024/09/24/dynatrace-adopter-spotlight#quick-wins-with-ownership-democratization-and-self-service-templates" class="hash-link" aria-label="Direct link to Quick wins with ownership democratization and self-service templates" title="Direct link to Quick wins with ownership democratization and self-service templates" translate="no">​</a></h2>
<p>The discussion on whether to make, buy, or adopt led us to heavily favor Backstage as the chosen solution for our internal developer platform (IDP). We have successfully integrated Backstage within Dynatrace, marking our early wins. This was accomplished by linking it to our internal team management solution. Feeding this data into Backstage resolved the previously lacking transparency concerning the responsibilities and ownership of services and infrastructure. Furthermore, we have contextualized Stack Overflow and CI/CD solutions with entities monitored by Backstage to fulfill developers' requests for a unified view.</p>
<p>Next to establishing a solid software catalog view, providing self-service templates for project and infrastructure creation—initially a focus of the original developer experience—has also been incorporated into Backstage. This enhancement allows the use of a comprehensive set of templates for bootstrapping platform services or applications across different tool stacks. Ultimately, developers can effortlessly use a template to create a ready-to-use repository with observability and security pre-configured.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="static-model-enrichment-with-real-time-observability-and-security">Static model enrichment with real-time observability and security<a href="https://backstage.io/blog/2024/09/24/dynatrace-adopter-spotlight#static-model-enrichment-with-real-time-observability-and-security" class="hash-link" aria-label="Direct link to Static model enrichment with real-time observability and security" title="Direct link to Static model enrichment with real-time observability and security" translate="no">​</a></h2>
<p>After addressing ownership, documentation, and a centralized CI/CD view, our developers highlighted the necessity of accessing real-time data about their services and applications within the Backstage service catalog. This need arose from the understanding that integrating a code change can be optimally evaluated on a deployed version of their service alongside related components. Specifically, the developers were interested in seeing at a high level:</p>
<ul>
<li class="">Where specific versions of services are deployed,</li>
<li class="">How their services perform in the hardening phase and production environments,</li>
<li class="">Which inbound and outbound dependencies their service has,</li>
<li class="">Whether any problems, security vulnerabilities, or SLO breaches are related to their service, and</li>
<li class="">Which recent error logs have been collected.</li>
</ul>
<p>The open source community already developed a Backstage plugin capable of fetching Dynatrace problems and synthetics into Backstage. However, we chose to develop a new plugin that works with the new Dynatrace platform API. Additionally, it was necessary to support Kubernetes use cases by default to offer, for example, deployment overviews out-of-the-box. Based on the feedback from developers, we identified four essential requirements.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="coverage-of-the-software-development-lifecycle">Coverage of the software development lifecycle<a href="https://backstage.io/blog/2024/09/24/dynatrace-adopter-spotlight#coverage-of-the-software-development-lifecycle" class="hash-link" aria-label="Direct link to Coverage of the software development lifecycle" title="Direct link to Coverage of the software development lifecycle" translate="no">​</a></h3>
<p>Observing the software development lifecycle necessitates consolidating all development and delivery phases. In Dynatrace, monitoring the development stage is distinct from rolling out new versions to the hardening and production stages. Nonetheless, developers desire an end-to-end view from development to production. To support this, the plugin allows connections to multiple Dynatrace environments to retrieve data for the various rollout phases.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="kubernetes-observability">Kubernetes observability<a href="https://backstage.io/blog/2024/09/24/dynatrace-adopter-spotlight#kubernetes-observability" class="hash-link" aria-label="Direct link to Kubernetes observability" title="Direct link to Kubernetes observability" translate="no">​</a></h3>
<p>When using the Backstage Kubernetes plugin, an annotation is required to surface your Kubernetes components as part of an entity (for more information, please refer to <a href="https://backstage.io/docs/features/kubernetes/configuration/#surfacing-your-kubernetes-components-as-part-of-an-entity" target="_blank" rel="noopener noreferrer" class="">Backstage documentation</a>). The Dynatrace plugin utilizes this convention to automatically populate monitoring data from Kubernetes deployments into the deployment overview in Backstage. Therefore, additional configuration is unnecessary to enrich Backstage entities with real-time observability data from Kubernetes, as shown below. Additionally, deep links open Dynatrace analysis views for more contextual details.</p>
<p><img decoding="async" loading="lazy" alt="Kubernetes deployment overview" src="https://backstage.io/assets/images/backstage_dynatrace_plugin_K8s-0d79971d1a836d9852e5b1c9f2114082.png" width="1920" height="1080" class="img_ev3q"></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="reliability-and-security-in-context">Reliability and security in context<a href="https://backstage.io/blog/2024/09/24/dynatrace-adopter-spotlight#reliability-and-security-in-context" class="hash-link" aria-label="Direct link to Reliability and security in context" title="Direct link to Reliability and security in context" translate="no">​</a></h3>
<p>While Kubernetes observability was requested to be provided out of the box, we quickly realized that developers prefer to define the insights they want to see by themselves. To remain flexible and to reduce the customization effort required from the platform engineering teams, the plugin allows for the definition of custom queries within the <code>config.yaml</code> file. The Backstage <code>config.yaml</code> file requires special attention since platform teams use this file to standardize entity specifications, while developers use it to customize their Backstage views. After releasing this new functionality, we observed developers moving in two distinct directions:</p>
<ul>
<li class="">Querying quality gate validation results of a new version they’re developing</li>
</ul>
<p><img decoding="async" loading="lazy" alt="Release validation overview" src="https://backstage.io/assets/images/backstage_srg_validations-b758320828e99579c1406710a5061e39.png" width="1920" height="1080" class="img_ev3q"></p>
<ul>
<li class="">Fetching runtime security vulnerability information across different stages</li>
</ul>
<p><img decoding="async" loading="lazy" alt="Security vulnerabilities in context" src="https://backstage.io/assets/images/backstage_catalog_security_vulnerabilities-b821faeb470f81d5deecc30bef5312e9.png" width="1920" height="1080" class="img_ev3q"></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="error-logs-at-hand">Error logs at hand<a href="https://backstage.io/blog/2024/09/24/dynatrace-adopter-spotlight#error-logs-at-hand" class="hash-link" aria-label="Direct link to Error logs at hand" title="Direct link to Error logs at hand" translate="no">​</a></h3>
<p>Developers love logs. Direct access to logs, especially error logs, was a crucial requirement for the plugin. Our developers want to see the current number of error logs accompanied by a direct link to the raw log line, which provides significant value in problem triaging and fixing. With the plugin, we offer a high-level overview of log statistics, with the rich analysis capabilities of Dynatrace available at a single click.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="conclusion">Conclusion<a href="https://backstage.io/blog/2024/09/24/dynatrace-adopter-spotlight#conclusion" class="hash-link" aria-label="Direct link to Conclusion" title="Direct link to Conclusion" translate="no">​</a></h2>
<p>To enhance the developer experience, Dynatrace adopted Backstage as its central developer portal and enhances Backstage entities with real-time data. This decision, along with the symbiosis between the Dynatrace platform and Backstage, has unlocked two significant opportunities.</p>
<p>First, centralizing all development-related artifacts and democratizing ownership have reduced onboarding time for our teams. Although it might seem that onboarding time is only relevant for new developers, it is also important when developers move to a different team, pick up a service or application they haven’t worked on for a while, or replace their laptops. Moreover, a low onboarding time is crucial when quickly kicking off work on a new service or solution app. This became a necessity with the new Dynatrace platform.</p>
<p>Second, we enhanced the developer experience by integrating observability and security data into Backstage, offering seamless entry points to Dynatrace for in-depth analysis. This improvement was crucial as we noted a shift in integration tasks from build to development time, necessitating insights into a later phase of the software lifecycle for our developers. In essence, end-to-end validation of code changes could no longer be accomplished with build pipelines—either in Jenkins or GitHub—but required deployment in production-like environments that facilitate real-world interaction with other components. Consequently, real-time observability data from these environments must be relayed to the developer.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-next">What`s next?<a href="https://backstage.io/blog/2024/09/24/dynatrace-adopter-spotlight#whats-next" class="hash-link" aria-label="Direct link to What`s next?" title="Direct link to What`s next?" translate="no">​</a></h2>
<p>Backstage is a crucial element for Dynatrace's developer experience, providing out-of-the-box core functionality for every developer and supporting extensibility where needed. Our Backstage extension is maintained as an open-source project and is available for every Backstage user. Don't hesitate to utilize it or to contribute: <a href="https://github.com/Dynatrace/backstage-plugin" target="_blank" rel="noopener noreferrer" class="">https://github.com/Dynatrace/backstage-plugin</a></p>
<p>If you have a great Backstage story to tell, please share your experience with us to the variety of use case areas.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[1,186 days with Backstage: A journey through the eyes of a developer]]></title>
            <link>https://backstage.io/blog/2024/06/27/backstage-engineer-journey</link>
            <guid>https://backstage.io/blog/2024/06/27/backstage-engineer-journey</guid>
            <pubDate>Thu, 27 Jun 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[TL;DR There is no shortage of content that discusses the benefits that Backstage brings to organizations (and if you want to read more on that, you can just click here, here, or here). But I want to share what it did for me, a developer here at Spotify. And not just what it did, but how I’ve used Backstage to help me achieve goals at each stage of my journey at Spotify — from my first day as a brand new employee to today, my 1,186th day as a contributor.]]></description>
            <content:encoded><![CDATA[<p><strong>TL;DR</strong> There is no shortage of content that discusses the benefits that Backstage brings to organizations (and if you want to read more on that, you can just click <a href="https://engineering.atspotify.com/?c=backstage" target="_blank" rel="noopener noreferrer" class="">here</a>, <a href="https://backstage.io/blog" target="_blank" rel="noopener noreferrer" class="">here</a>, or <a href="https://backstage.spotify.com/discover/blog/" target="_blank" rel="noopener noreferrer" class="">here</a>). But I want to share what it did for me, a developer here at Spotify. And not just what it did, but how I’ve used Backstage to help me achieve goals at each stage of my journey at Spotify — from my first day as a brand new employee to today, my 1,186th day as a contributor.</p>
<p><img decoding="async" loading="lazy" alt="Backstage Engineer Journey" src="https://backstage.io/assets/images/backstage-engineer-journey-d9d5b1463cb58a944b2484c99b1834d8.svg" width="2407" height="957" class="img_ev3q"></p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="a-new-joiner-with-a-need-to-get-up-to-speed">A new joiner with a need to get up to speed<a href="https://backstage.io/blog/2024/06/27/backstage-engineer-journey#a-new-joiner-with-a-need-to-get-up-to-speed" class="hash-link" aria-label="Direct link to A new joiner with a need to get up to speed" title="Direct link to A new joiner with a need to get up to speed" translate="no">​</a></h2>
<p>My first six months after joining Spotify, I was eager and determined to get up to speed so that I’d be able to start contributing as soon as possible. I set goals for myself and developed concrete activities to reach those goals:</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="goal-1-learn-the-internal-process-to-develop-test-secure-and-publish-applications">Goal 1: Learn the internal process to develop, test, secure, and publish applications.<a href="https://backstage.io/blog/2024/06/27/backstage-engineer-journey#goal-1-learn-the-internal-process-to-develop-test-secure-and-publish-applications" class="hash-link" aria-label="Direct link to Goal 1: Learn the internal process to develop, test, secure, and publish applications." title="Direct link to Goal 1: Learn the internal process to develop, test, secure, and publish applications." translate="no">​</a></h3>
<p>Understanding a company’s practices and technologies is absolutely essential to getting started, no matter what company you join.</p>
<p>At Spotify, we use a Backstage plugin called <a href="https://backstage.io/docs/features/techdocs/" target="_blank" rel="noopener noreferrer" class="">TechDocs</a> to document <a href="https://engineering.atspotify.com/2020/08/how-we-use-golden-paths-to-solve-fragmentation-in-our-software-ecosystem/" target="_blank" rel="noopener noreferrer" class="">Golden Paths</a> — tutorials that teach us the development process for each role at the company — for web, backend, mobile, data science development, and so on.</p>
<p>With Backstage, I had an understanding of how to put things into production, even before I had my first task. I used the web Golden Path to guide me on setting up my environment; creating and structuring projects; and building, publishing, and monitoring production applications.</p>
<blockquote>
<p><strong>Reflection:</strong><br><em>“Is it easy for newly hired engineers to settle in and find information critical to getting started?”</em></p>
</blockquote>
<p>With Backstage, new hires can quickly and easily understand the nuances of their particular positions and be ready to deliver their first task to production.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="goal-2-find-and-read-the-documentation-and-source-code-of-the-products-my-team-maintains">Goal 2: Find and read the documentation and source code of the products my team maintains.<a href="https://backstage.io/blog/2024/06/27/backstage-engineer-journey#goal-2-find-and-read-the-documentation-and-source-code-of-the-products-my-team-maintains" class="hash-link" aria-label="Direct link to Goal 2: Find and read the documentation and source code of the products my team maintains." title="Direct link to Goal 2: Find and read the documentation and source code of the products my team maintains." translate="no">​</a></h3>
<p>Having familiarized myself with the ways of working, it was a good time to understand my specific team’s business domain. This meant spending time reading through documentation and source code to find out the value we provide to our customers. In the past, I would spend time with colleagues for knowledge transfer as opposed to learning on my own and consult my colleagues if needed.</p>
<p>With the <a href="https://backstage.io/docs/features/software-catalog/" target="_blank" rel="noopener noreferrer" class="">Backstage Software Catalog</a>, I could easily browse the components my team owns, find the source repo and documentation.</p>
<blockquote>
<p><strong>Reflection:</strong><br><em>“Are you able to accomplish this without asking a teammate for help?”</em></p>
</blockquote>
<p>Use Backstage to get to know the products that you will be working on, and use your peers' time to ask contextualized clarifying questions instead.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="goal-3-figure-out-where-my-team-fits-within-the-company-and-with-other-teams">Goal 3: Figure out where my team fits within the company and with other teams.<a href="https://backstage.io/blog/2024/06/27/backstage-engineer-journey#goal-3-figure-out-where-my-team-fits-within-the-company-and-with-other-teams" class="hash-link" aria-label="Direct link to Goal 3: Figure out where my team fits within the company and with other teams." title="Direct link to Goal 3: Figure out where my team fits within the company and with other teams." translate="no">​</a></h3>
<p>It was also crucial for me to build a network from the beginning so that I could explore collaboration opportunities.</p>
<p>At Spotify, we use a Backstage plugin called Band Manager which displays information about each team and allows employees to see not only their own teams but also those within the same product area and company domain.</p>
<blockquote>
<p><strong>Reflection:</strong><br><em>“Are you going to need a one-on-one with your manager to ask this question?”</em></p>
</blockquote>
<p>Backstage helped me find the teams close to mine, and I took the opportunity to develop my network and talk to members from those teams to understand our boundaries and gather ideas to contribute.</p>
<p>It’s pretty likely that you can relate to one or more of these examples, so use Backstage to support your goals from the very beginning!</p>
<p>Now let’s move on to the middle of the journey, between six months and two years into life at the company.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="two-years-in--from-contributor-to-leader">Two years in — from contributor to leader<a href="https://backstage.io/blog/2024/06/27/backstage-engineer-journey#two-years-in--from-contributor-to-leader" class="hash-link" aria-label="Direct link to Two years in — from contributor to leader" title="Direct link to Two years in — from contributor to leader" translate="no">​</a></h2>
<p>After about two years of contributing to my team’s products, I began to look for opportunities to actually lead initiatives and create a new project. One of my objectives was to ensure I was upholding Spotify’s standards and choosing Spotify-approved technologies.</p>
<p>My goal has changed from being a contributor to being the driver, i.e., from doing what I was told to do to defining what needed to be done. I “started driving initiatives” and “supporting my peers” in order to position myself as a reference in my technical area.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="goal-1-quickly-spin-up-new-projects-using-the-most-appropriate-technology-stack">Goal 1: Quickly spin up new projects using the most appropriate technology stack.<a href="https://backstage.io/blog/2024/06/27/backstage-engineer-journey#goal-1-quickly-spin-up-new-projects-using-the-most-appropriate-technology-stack" class="hash-link" aria-label="Direct link to Goal 1: Quickly spin up new projects using the most appropriate technology stack." title="Direct link to Goal 1: Quickly spin up new projects using the most appropriate technology stack." translate="no">​</a></h3>
<p>At Spotify, we expect engineers to use technologies approved by our <a href="https://backstage.io/blog/2020/05/14/tech-radar-plugin/#what-is-tech-radar" target="_blank" rel="noopener noreferrer" class="">Tech Radar</a> and follow the best quality standards.</p>
<p>To do so, we use a plugin called <a href="https://backstage.io/api/stable/modules/_backstage_plugin-scaffolder.html" target="_blank" rel="noopener noreferrer" class="">Scaffolder</a> (aka Software Templates), which allows engineers to create templates for setting up new projects. Templates automate actions such as creating repositories, allocating resources, registering in the catalog, configuring deployments, and connecting to other internal systems.</p>
<blockquote>
<p><strong>Reflection:</strong><br><em>“Do you need to create a ticket to get these things done before you even start coding? And is there a lot of time spent looking for boilerplate code to start a new project and connecting it to other internal systems?"</em></p>
</blockquote>
<p>Backstage enabled me to quickly create and publish a new backend that can deploy code to production with just a few clicks, so I could focus on building solutions for the business. I could use Backstage to easily build the right thing. Instead of spending time scaffolding projects, I could spend my time writing code.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="goal-2-create-products-that-have-a-healthy-operational-state-and-are-easy-to-evolve">Goal 2: Create products that have a healthy operational state and are easy to evolve.<a href="https://backstage.io/blog/2024/06/27/backstage-engineer-journey#goal-2-create-products-that-have-a-healthy-operational-state-and-are-easy-to-evolve" class="hash-link" aria-label="Direct link to Goal 2: Create products that have a healthy operational state and are easy to evolve." title="Direct link to Goal 2: Create products that have a healthy operational state and are easy to evolve." translate="no">​</a></h3>
<p>Keeping track of vulnerabilities and letting my team know about technical debts were other parts of my routine.</p>
<p>With the <a href="https://backstage.spotify.com/marketplace/spotify/plugin/soundcheck/" target="_blank" rel="noopener noreferrer" class="">Soundcheck plugin</a>, developers can easily configure checks to verify component health, such as reliability and other development and operational standards. We also have an internal Vulnerabilities plugin that displays fragilities in our components, so we can continuously prevent security issues.</p>
<blockquote>
<p><strong>Reflection:</strong><br><em>“Do you know which components owned by your team follows best practices and standards and which ones are lagging behind?”</em></p>
</blockquote>
<p>Backstage helped me gather and better understand our technical debts, enabling me to effectively prioritize during our team’s planning, visualize which entities were compliant to our team’s best practices, and identify which ones needed improvement.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="goal-3-respond-effectively-to-incidents-within-our-components-or-their-dependencies">Goal 3: Respond effectively to incidents within our components or their dependencies.<a href="https://backstage.io/blog/2024/06/27/backstage-engineer-journey#goal-3-respond-effectively-to-incidents-within-our-components-or-their-dependencies" class="hash-link" aria-label="Direct link to Goal 3: Respond effectively to incidents within our components or their dependencies." title="Direct link to Goal 3: Respond effectively to incidents within our components or their dependencies." translate="no">​</a></h3>
<p>If you’ve been with a company for around two years, you might have had to manage incidents in one way or another — this was certainly the case for me. A typical problem was to determine if the issue is with the service that I own or a downstream dependency.</p>
<p>Spotify has adopted <a href="https://backstage.spotify.com/marketplace/pagerduty/plugin/pagerduty/" target="_blank" rel="noopener noreferrer" class="">PagerDuty</a> to manage on-call rotation and to track incident resolutions. We integrated the PagerDuty plugin in Backstage, so we see who is on call and if there is an incident for a particular component.</p>
<blockquote>
<p><strong>Reflection:</strong><br><em>“When a downstream dependency is failing, do you know who to contact?”</em></p>
</blockquote>
<p>In the event that one of our components starts failing, I check whether any of the systems we rely on is experiencing an incident, and Backstage again makes it easy for me to see the dependencies between systems and the status of those dependencies.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="today-and-beyond">Today and beyond!<a href="https://backstage.io/blog/2024/06/27/backstage-engineer-journey#today-and-beyond" class="hash-link" aria-label="Direct link to Today and beyond!" title="Direct link to Today and beyond!" translate="no">​</a></h2>
<p>With three-plus years of experience at Spotify, I’m taking on more and more responsibility by embracing challenges outside my team’s scope, coordinating cross-team collaboration, attending and facilitating courses for personal development and growth, and mentoring my peers.</p>
<p>Backstage has allowed me to drive my pursuit of growth in a multitude of ways.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="goal-1-stay-in-the-flow-and-optimize-my-time-management-practices">Goal 1: Stay in the flow and optimize my time management practices.<a href="https://backstage.io/blog/2024/06/27/backstage-engineer-journey#goal-1-stay-in-the-flow-and-optimize-my-time-management-practices" class="hash-link" aria-label="Direct link to Goal 1: Stay in the flow and optimize my time management practices." title="Direct link to Goal 1: Stay in the flow and optimize my time management practices." translate="no">​</a></h3>
<p>At this point, finding time to focus — with all that I have on my plate — while also making time to learn new concepts is both fundamental and challenging for me.</p>
<p>Spotify encourages its developers to manage their time in order to stay in the flow and to turn to the tools that help them prioritize effectively and focus on their work.</p>
<blockquote>
<p><strong>Reflection:</strong><br><em>“How do you surface the most important notifications and avoid non-emergency distractions?”</em></p>
</blockquote>
<p>Backstage has been instrumental in helping me stay in the flow by surfacing the most critical notifications and call to actions related to cost spikes, security vulnerabilities in my homepage.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="goal-2-platformize-our-solutions-and-reuse-code-to-boost-my-productivity">Goal 2: Platformize our solutions and reuse code to boost my productivity.<a href="https://backstage.io/blog/2024/06/27/backstage-engineer-journey#goal-2-platformize-our-solutions-and-reuse-code-to-boost-my-productivity" class="hash-link" aria-label="Direct link to Goal 2: Platformize our solutions and reuse code to boost my productivity." title="Direct link to Goal 2: Platformize our solutions and reuse code to boost my productivity." translate="no">​</a></h3>
<p>Reinventing the wheel is a common problem in software development and Spotify is no different.</p>
<p>Autonomous teams tend to prioritize speed over reuse and develop the same solutions in different places (1) as it unblocks the delivery for their team and (2) there is no easy way to discover if a particular functionality has been developed in another part of the company and if it can be reused for their requirement.</p>
<blockquote>
<p><strong>Reflection:</strong><br><em>“Do you find yourself wondering if someone else already did it before starting a task?”</em></p>
</blockquote>
<p>With the <a href="https://backstage.io/docs/features/search/" target="_blank" rel="noopener noreferrer" class="">Backstage Search plugin</a>, I can discover solutions to reuse, find inspiration, and also share what I’ve built for other developers to discover and use.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="goal-3-grow-my-career-and-take-steps-toward-the-next-level">Goal 3: Grow my career and take steps toward the next level.<a href="https://backstage.io/blog/2024/06/27/backstage-engineer-journey#goal-3-grow-my-career-and-take-steps-toward-the-next-level" class="hash-link" aria-label="Direct link to Goal 3: Grow my career and take steps toward the next level." title="Direct link to Goal 3: Grow my career and take steps toward the next level." translate="no">​</a></h3>
<p>I began looking for opportunities to gain new experiences and responsibilities while expanding my knowledge.</p>
<p>With Spotify’s <a href="https://backstage.spotify.com/marketplace/spotify/plugin/skill-exchange/" target="_blank" rel="noopener noreferrer" class="">Skill Exchange plugin</a> for Backstage, engineers temporarily embed with a different team, allowing them to partake in work outside their day-to-day. The plugin also helps engineers connect with mentees or mentors that align with their skills profiles.</p>
<blockquote>
<p><strong>Reflection:</strong><br><em>“Are you able to find opportunities that match your current skill set?”</em></p>
</blockquote>
<p>With Backstage, I've applied for an embed to experience working with another team and eventually make a permanent move to this new team, calling it my new home.</p>
<p>I am passionate about teaching and eager to share my knowledge to help others. Through Skill Exchange, I found a mentee, a colleague transitioning into engineering, and I am helping them take their first steps.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-next">What’s next?<a href="https://backstage.io/blog/2024/06/27/backstage-engineer-journey#whats-next" class="hash-link" aria-label="Direct link to What’s next?" title="Direct link to What’s next?" translate="no">​</a></h2>
<p>Backstage is highly customizable, and with its extensive plugin ecosystem, engineers can use it strategically to achieve their goals.</p>
<p>No matter what point in your journey you are, you can find value with <a href="http://backstage.io/" target="_blank" rel="noopener noreferrer" class="">Backstage</a>. It was, after all, made by engineers for engineers. 💚</p>
<p>Special thanks to <a href="https://github.com/stanley-nicholl" target="_blank" rel="noopener noreferrer" class="">Stanley Nicholl</a>, <a href="https://github.com/Rugvip" target="_blank" rel="noopener noreferrer" class="">Patrik Oldsberg</a>, <a href="https://github.com/vinzscam" target="_blank" rel="noopener noreferrer" class="">Vincenzo Scamporlino</a>, <a href="https://github.com/MihaiTabara" target="_blank" rel="noopener noreferrer" class="">Mihai Tabara</a>, <a href="https://github.com/emmaindal" target="_blank" rel="noopener noreferrer" class="">Emma Indal</a>, <a href="https://github.com/soapraj" target="_blank" rel="noopener noreferrer" class="">Raghunandan Balachandran</a> for all of their support.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Introducing the Backstage Community Plugins Repository]]></title>
            <link>https://backstage.io/blog/2024/04/19/community-plugins</link>
            <guid>https://backstage.io/blog/2024/04/19/community-plugins</guid>
            <pubDate>Fri, 19 Apr 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[tl;dr: We've set up the new community plugins repository, and have migrated most of the packages in the plugins directory of the main Backstage repository to their new home!]]></description>
            <content:encoded><![CDATA[<p><strong>tl;dr</strong>: We've set up the new <a href="https://github.com/backstage/community-plugins" target="_blank" rel="noopener noreferrer" class="">community plugins repository</a>, and have migrated most of the packages in the <code>plugins</code> directory of the main Backstage repository to their new home!</p>
<p>For those who depended on these plugins, migrating is as simple as <code>yarn backstage-cli versions:bump</code> then <code>yarn backstage-cli versions:migrate</code>. If you're already on <code>1.26.1</code>, then be sure to run <code>yarn backstage-cli versions:bump --skip-migrate</code> then <code>yarn backstage-cli versions:migrate</code> to take advantage of the code reference replacement helpers.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-community-plugins-repo">The community plugins repo<a href="https://backstage.io/blog/2024/04/19/community-plugins#the-community-plugins-repo" class="hash-link" aria-label="Direct link to The community plugins repo" title="Direct link to The community plugins repo" translate="no">​</a></h2>
<p>Some of you who have been around a while, or have seen our <a href="https://www.youtube.com/watch?v=ONMBYnhxnNU" target="_blank" rel="noopener noreferrer" class="">Maintainer Track talks</a> at KubeCon, might have seen <a href="https://github.com/backstage/backstage/issues/20266" target="_blank" rel="noopener noreferrer" class="">this RFC</a> which outlines some issues with the scale of the <code>backstage/backstage</code> monorepo, and us as maintainers being the de facto owners of all plugins without a <a href="https://github.com/backstage/community/blob/main/GOVERNANCE.md#project-area" target="_blank" rel="noopener noreferrer" class="">project area</a> or <a href="https://github.com/backstage/community/blob/main/GOVERNANCE.md#project-area-maintainer" target="_blank" rel="noopener noreferrer" class="">plugin maintainer</a>.</p>
<p>There was some great discussion in this issue, and some great ideas. One of the ideas was to create a dedicated home for community plugins, with all the burden of release tooling and workspace tooling already set up, which is a pretty big barrier for people wanting to create plugins for Backstage in their own organization or personal account. These plugins would then have the ability to release independently of the main monorepo, and have their own release cadence, which is something that we've been looking at exploring for a while.</p>
<p>With Red Hat wanting to join forces and help get this set up, this is the path that we picked, and the last few months have been a lot of hard work from both sides getting this repository in shape and coming up with a deprecation plan for these plugins in the main repository.</p>
<p>Would also like to give a shoutout to all the <a href="https://github.com/backstage/backstage/blob/master/OWNERS.md#community-plugins" target="_blank" rel="noopener noreferrer" class="">Community Plugins project area</a> maintainers, who have been helping get us to this state! <a href="https://github.com/vinzscam" target="_blank" rel="noopener noreferrer" class="">@vinzscam</a> <a href="https://github.com/tudi2d" target="_blank" rel="noopener noreferrer" class="">@tudi2d</a> <a href="https://github.com/BethGriggs" target="_blank" rel="noopener noreferrer" class="">@bethgriggs</a> <a href="https://github.com/kadel" target="_blank" rel="noopener noreferrer" class="">@kadel</a> <a href="https://github.com/awanlin" target="_blank" rel="noopener noreferrer" class="">@awanlin</a> 👏</p>
<p>And now with the release of <code>1.26.3</code> there's a large amount of plugins from the main monorepo that have been migrated over to the new <a href="https://github.com/backstage/community-plugins" target="_blank" rel="noopener noreferrer" class="">community plugins repository</a>. <!-- -->🎉</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-migration">The migration<a href="https://backstage.io/blog/2024/04/19/community-plugins#the-migration" class="hash-link" aria-label="Direct link to The migration" title="Direct link to The migration" translate="no">​</a></h2>
<p>With the moving of these plugins, we thought it would also be a good time to move the <code>npm</code> scope, so that end users can differentiate between Backstage packages, and community-maintained packages. So the <code>@backstage-community</code> namespace was born!</p>
<p>This makes migration a little tricky for end users, as there's going to be code references and <code>package.json</code> dependencies pointing to the older packages which are no longer going to be published.</p>
<p>We've added some tooling into the <code>@backstage/cli</code> which is going to smooth the transition here. The last versions which are published under the <code>@backstage/</code> scope from the monorepo, will have a special field in the <code>package.json</code> with a hint to the CLI as to what this package is now called.</p>
<p>The CLI will then be able to replace these references inside the <code>./src</code> folder of your codebase, and update your <code>package.json</code> dependencies to the new <code>@backstage-community</code> scope.</p>
<p>You can migrate today by running the following:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#232323"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#232323"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)"># &lt; 1.26.1</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"></span><span class="token function" style="color:rgb(220, 220, 170)">yarn</span><span class="token plain"> backstage-cli versions:bump</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"></span><span class="token function" style="color:rgb(220, 220, 170)">yarn</span><span class="token plain"> backstage-cli versions:migrate</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"></span><span class="token comment" style="color:rgb(106, 153, 85)"># 1.26.1</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"></span><span class="token function" style="color:rgb(220, 220, 170)">yarn</span><span class="token plain"> backstage-cli versions:bump --skip-migrate</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"></span><span class="token function" style="color:rgb(220, 220, 170)">yarn</span><span class="token plain"> backstage-cli versions:migrate</span><br></span></code></pre></div></div>
<p>From this latest <code>1.26.3</code> release and onwards, the <code>backstage-cli versions:bump</code> command will automatically check for moved packages, so you shouldn't have to worry about running this every time.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="help-my-plugin-has-been-moved">Help! My plugin has been moved!<a href="https://backstage.io/blog/2024/04/19/community-plugins#help-my-plugin-has-been-moved" class="hash-link" aria-label="Direct link to Help! My plugin has been moved!" title="Direct link to Help! My plugin has been moved!" translate="no">​</a></h2>
<p>No stress! If you were a <code>CODEOWNER</code> of the code in the monorepo, these permissions will be migrated over to the <a href="https://github.com/backstage/community-plugins" target="_blank" rel="noopener noreferrer" class="">community plugins repository</a> so you should still have access to the code. And now you're in charge of releasing your own plugin! 🚀 You can do that by following the same flow from the monorepo, with changesets and merging the <code>Version Packages (My Plugin)</code> PR.</p>
<p>Please reach out to us on <a href="https://discord.com/invite/backstage-687207715902193673" target="_blank" rel="noopener noreferrer" class="">Discord</a> if you have any issues! We're looking forward to working together in the new space!</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-moved">What's moved?<a href="https://backstage.io/blog/2024/04/19/community-plugins#whats-moved" class="hash-link" aria-label="Direct link to What's moved?" title="Direct link to What's moved?" translate="no">​</a></h2>
<p>We've taken a pretty big chunk of the plugins from the main monorepo and moved them over to the new repository. There could be more plugins over time that are moved, or even ones that we promote back to the main monorepo.</p>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary><p>Here's a list of plugins that have been moved with this release</p></summary><div><div class="collapsibleContent_i85q"><ul>
<li class="">
<p><code>@backstage/plugin-adr-backend</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-adr-common</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-adr</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-airbrake-backend</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-airbrake</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-allure</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-analytics-module-ga</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-analytics-module-ga4</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-analytics-module-newrelic-browser</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-apache-airflow</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-apollo-explorer</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-azure-devops-backend</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-azure-devops-common</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-azure-devops</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-azure-sites-backend</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-azure-sites-common</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-azure-sites</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-badges-backend</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-badges</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-bazaar-backend</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-bazaar</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-bitrise</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-cicd-statistics-module-gitlab</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-cicd-statistics</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-circleci</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-cloudbuild</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-code-climate</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-code-coverage-backend</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-code-coverage</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-codescene</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-cost-insights-common</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-cost-insights</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-dynatrace</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-entity-feedback-backend</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-entity-feedback-common</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-entity-feedback</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-entity-validation</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-explore-backend</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-explore-common</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-explore-react</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-explore</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-firehydrant</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-fossa</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-gcalendar</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-gcp-projects</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-git-release-manager</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-github-actions</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-github-deployments</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-github-issues</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-github-pull-requests-board</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-gitops-profiles</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-gocd</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-graphiql</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-graphql-voyager</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-ilert</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-jenkins-backend</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-jenkins-common</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-jenkins</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-kafka-backend</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-kafka</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-lighthouse-backend</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-lighthouse-common</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-lighthouse</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-linguist</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-linguist-common</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-linguist-backend</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-microsoft-calendar</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-newrelic-dashboard</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-newrelic</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-nomad</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-nomad-backend</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-octopus-deploy</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-opencost</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-periskop-backend</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-periskop</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-playlist-backend</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-playlist-common</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-playlist</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-puppetdb</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-rollbar-backend</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-rollbar</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-sentry</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-shortcuts</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-sonarqube-backend</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-sonarqube-react</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-sonarqube</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-splunk-on-call</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-stack-overflow-backend</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-stack-overflow</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-stackstorm</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-tech-insights-backend-module-jsonfc</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-tech-insights-backend</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-tech-insights-common</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-tech-insights-node</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-tech-insights</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-tech-radar</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-vault-backend</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-vault-node</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-vault</code></p>
</li>
<li class="">
<p><code>@backstage/plugin-xcmetrics</code></p>
</li>
</ul></div></div></details>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-next">What's next?<a href="https://backstage.io/blog/2024/04/19/community-plugins#whats-next" class="hash-link" aria-label="Direct link to What's next?" title="Direct link to What's next?" translate="no">​</a></h2>
<p>There's going to be a little bit of time now in this migration period where there's going to be issues and pull requests not in the right place, and we're going to do our best to transfer issues to the community plugins repository instead. We will shortly be removing the code for these plugins from the main monorepo as it now has a new home in the community plugins repository.</p>
<p>We're also going to be looking at bringing in some more of the great tooling from the <code>backstage/backstage</code> monorepo into the community plugins repository to help out with more automation for dependency bumps, etc.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="how-can-i-get-involved">How can I get involved?<a href="https://backstage.io/blog/2024/04/19/community-plugins#how-can-i-get-involved" class="hash-link" aria-label="Direct link to How can I get involved?" title="Direct link to How can I get involved?" translate="no">​</a></h2>
<p>If you're interested in getting involved with the community and helping us maintain this repository, please reach out either on <a href="https://discord.com/invite/backstage-687207715902193673" target="_blank" rel="noopener noreferrer" class="">Discord</a> or in an issue on the <a href="https://github.com/backstage/community" target="_blank" rel="noopener noreferrer" class="">community repository</a>.</p>
<p>If you're wanting to contribute some plugins to Backstage, the community plugin repository is open for business <!-- -->🎉<!-- --> and we're looking forward to seeing what you come up with! Head over to the <a href="https://github.com/backstage/community-plugins/tree/main/README.md" target="_blank" rel="noopener noreferrer" class="">community plugins docs</a> to get started creating your own workspace!</p>
<p>Thanks!</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Backstage in Paris: Wrapping up BackstageCon and KubeCon + CloudNativeCon Europe 2024]]></title>
            <link>https://backstage.io/blog/2024/03/27/backstagecon-kubecon-24</link>
            <guid>https://backstage.io/blog/2024/03/27/backstagecon-kubecon-24</guid>
            <pubDate>Wed, 27 Mar 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[tl;dr: And with that the first BackstageCon Europe comes to an end! The City of Light was good to Backstage with many great conversations at both BackstageCon and KubeCon + CloudNativeCon Europe 2024. If you weren't able to join, the CNCF has a great playlist of all the BackstageCon talks ready to go on YouTube. Check out some of the highlights below — then grab your popcorn and settle in!]]></description>
            <content:encoded><![CDATA[<p><strong>tl;dr</strong>: And with that the first BackstageCon Europe comes to an end! The City of Light was good to Backstage with many great conversations at both BackstageCon and KubeCon + CloudNativeCon Europe 2024. If you weren't able to join, the CNCF has a great playlist of all the <a href="https://www.youtube.com/playlist?list=PLj6h78yzYM2P4KPyeDFexAVm6ZvfAWMU8" target="_blank" rel="noopener noreferrer" class="">BackstageCon talks</a> ready to go on YouTube. Check out some of the highlights below — then grab your popcorn and settle in!</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="celebrating-four-years-of-backstage">Celebrating Four Years of Backstage<a href="https://backstage.io/blog/2024/03/27/backstagecon-kubecon-24#celebrating-four-years-of-backstage" class="hash-link" aria-label="Direct link to Celebrating Four Years of Backstage" title="Direct link to Celebrating Four Years of Backstage" translate="no">​</a></h2>
<iframe src="https://www.youtube.com/embed/NgYrweEbFNE" width="100%" height="440" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
<p>Wow! Has it already been four years since we open sourced Backstage? What an amazing run it's been so far. We continue to see the rate of pull requests steadily increase, the attendance and number of <a href="https://github.com/backstage/community/tree/main/sigs" target="_blank" rel="noopener noreferrer" class="">special interest groups</a> (SIGs) has grown, and more people are dedicating their time to new <a href="https://github.com/backstage/community/tree/main/project-areas" target="_blank" rel="noopener noreferrer" class="">project areas</a>!</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="day-1-backstagecon-arrives-in-europe">Day 1: BackstageCon arrives in Europe<a href="https://backstage.io/blog/2024/03/27/backstagecon-kubecon-24#day-1-backstagecon-arrives-in-europe" class="hash-link" aria-label="Direct link to Day 1: BackstageCon arrives in Europe" title="Direct link to Day 1: BackstageCon arrives in Europe" translate="no">​</a></h2>
<p>This was the third BackstageCon and the first to take place outside North America. As you can see, it started with a bang.</p>
<p><img decoding="async" loading="lazy" alt="BackstageCon Europe 2024" src="https://backstage.io/assets/images/backstagecon-europe-2024-ebb97d6902698c8c62e5f7e3dfa9ce1b.jpg" width="1999" height="1333" class="img_ev3q">
Via <a href="https://www.flickr.com/photos/143247548@N03/albums/72177720315561784/" target="_blank" rel="noopener noreferrer" class="">Cloud Native Computing Foundation</a> on Flickr</p>
<p>With hosts like <a href="https://www.linkedin.com/in/balajisiva" target="_blank" rel="noopener noreferrer" class="">Balaji Sivasubramanian</a> (Head of Product Management, Red Hat) and <a href="https://se.linkedin.com/in/elenagreul" target="_blank" rel="noopener noreferrer" class="">Helen Greul</a> (Head of Engineering for Backstage, Spotify) <a href="https://www.youtube.com/watch?v=PwVUW8is_WY&amp;list=PLj6h78yzYM2P4KPyeDFexAVm6ZvfAWMU8&amp;index=2" target="_blank" rel="noopener noreferrer" class="">kicking things off</a>, how could BackstageCon Europe not be a smashing success!</p>
<p>More highlights from the day:</p>
<ul>
<li class=""><strong>Happy alignment:</strong> Do you know when teams really need to be aligned? When they're working at a bank. <a href="https://www.linkedin.com/in/thomas-gr%C3%B8nb%C3%A6k/" target="_blank" rel="noopener noreferrer" class="">Thomas Grønbæk</a> (Senior Manager, Bankdata) gave an exciting talk about how “<a href="https://www.youtube.com/playlist?list=PLj6h78yzYM2P4KPyeDFexAVm6ZvfAWMU8" target="_blank" rel="noopener noreferrer" class="">Backstage Made 500+ Developers Happy</a>” in the highly regulated banking industry.</li>
<li class=""><strong>Scaling up:</strong> On the topic of scaling Backstage — a frequent subject on our <a href="https://discord.com/invite/backstage-687207715902193673" target="_blank" rel="noopener noreferrer" class="">Discord</a> — <a href="https://se.linkedin.com/in/vincenzoscamporlino" target="_blank" rel="noopener noreferrer" class="">Vincenzo Scamporlino</a> (Senior Software Engineer, Spotify) gave us <a href="https://www.youtube.com/playlist?list=PLj6h78yzYM2P4KPyeDFexAVm6ZvfAWMU8" target="_blank" rel="noopener noreferrer" class="">his recommendations</a> that will be helpful for many adopters who want to bring their instance to the next level.</li>
<li class=""><strong>Lightning round:</strong> There were several awesome <a href="https://www.youtube.com/playlist?list=PLj6h78yzYM2P4KPyeDFexAVm6ZvfAWMU8" target="_blank" rel="noopener noreferrer" class="">lightning talks</a> on varying topics — dynamic plugins, accessibility, OpenAPI tooling, and localization — that left you running to your laptop to learn more!</li>
<li class=""><strong>Bonus:</strong> Next door at Platform Engineering Day, <a href="https://uk.linkedin.com/in/samanthacoffman" target="_blank" rel="noopener noreferrer" class="">Samantha Coffman</a> (Senior Product Manager, Spotify) was representing Backstage in her talk "<a href="https://www.youtube.com/watch?v=Z_KCOcoliLI&amp;list=PLj6h78yzYM2Me-TpMQFvCphDu_xm71ed_&amp;index=12" target="_blank" rel="noopener noreferrer" class="">Boosting Developer Platform Teams with Product Thinking</a>".</li>
</ul>
<p>Beyond the talks, it was great to meet so many different members of the community, both those who've been using Backstage since the beginning as well as people who are just learning about internal developer portals and the open source platform. I had so many great conversations, I started to lose my voice — and it was only the first day.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="day-2-onward-to-kubecon--cloudnativecon">Day 2: Onward to KubeCon + CloudNativeCon<a href="https://backstage.io/blog/2024/03/27/backstagecon-kubecon-24#day-2-onward-to-kubecon--cloudnativecon" class="hash-link" aria-label="Direct link to Day 2: Onward to KubeCon + CloudNativeCon" title="Direct link to Day 2: Onward to KubeCon + CloudNativeCon" translate="no">​</a></h2>
<p>Backstage also took the spotlight at KubeCon. On Wednesday, project maintainers <a href="https://github.com/Rugvip" target="_blank" rel="noopener noreferrer" class="">Patrik Oldsberg</a> (Senior Engineer, Spotify) and <a href="https://github.com/benjdlambert" target="_blank" rel="noopener noreferrer" class="">Ben Lambert</a> (Senior Engineer, Spotify) gave us a great overview on “<a href="https://www.youtube.com/watch?v=jBf3g79xcf4" target="_blank" rel="noopener noreferrer" class="">The State of Backstage in 2024</a>” to a packed audience. Highlights from their talk include:</p>
<ul>
<li class=""><strong>New project areas:</strong> There are now project areas for Community Plugins, Notifications, and the Scaffolder</li>
<li class=""><strong>BEPs (Backstage enhancement proposals):</strong> This is a new formal proposal process that allows a more iterative approach then trying to use GitHub Issues as RFCs</li>
<li class=""><strong>Core framework:</strong> They gave updates on the new auth changes to be secure by default, as well as updates on the New Backend System and New Frontend System</li>
<li class=""><strong>The future:</strong> Dynamic features! This allows you to install new plugins without having to rebuild</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="day-3-community-community-community">Day 3: Community, community, community!<a href="https://backstage.io/blog/2024/03/27/backstagecon-kubecon-24#day-3-community-community-community" class="hash-link" aria-label="Direct link to Day 3: Community, community, community!" title="Direct link to Day 3: Community, community, community!" translate="no">​</a></h2>
<p>To top things off, during his <a href="https://www.youtube.com/watch?v=MICHGBAe8gc&amp;list=PLj6h78yzYM2N8nw1YcqqKveySH6_0VnI0&amp;index=161" target="_blank" rel="noopener noreferrer" class="">CNCF Keynote</a> on Thursday morning, <a href="https://www.cncf.io/people/staff/?p=taylor-dolezal" target="_blank" rel="noopener noreferrer" class="">Taylor Dolezal</a> (Head of Ecosystem, The Linux Foundation) shared what should be an unsurprising stat for members of the community: Backstage is the top CNCF project by end user commits!</p>
<p><img decoding="async" loading="lazy" alt="CNCF Keynote, KubeCon + CloudNativeCon Europe 2024" src="https://backstage.io/assets/images/cncf-keynote-kubecon-2024-6b5b54b50be25b9639a795634436f65f.jpg" width="1500" height="844" class="img_ev3q">
Top 10 CNCF Projects by Number of End User Commits</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="day-4-au-revoir-see-you-at-the-next-one">Day 4: Au revoir! See you at the next one!<a href="https://backstage.io/blog/2024/03/27/backstagecon-kubecon-24#day-4-au-revoir-see-you-at-the-next-one" class="hash-link" aria-label="Direct link to Day 4: Au revoir! See you at the next one!" title="Direct link to Day 4: Au revoir! See you at the next one!" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="BackstageCon and KubeCon + CloudNativeCon Europe 2024" src="https://backstage.io/assets/images/backstagecon-kubecon-europe-2024-a26abe3fba4de529d84ce6fb4e641cd5.gif" width="800" height="600" class="img_ev3q"></p>
<p>You can catch up on all the talks from <a href="https://www.youtube.com/playlist?list=PLj6h78yzYM2P4KPyeDFexAVm6ZvfAWMU8" target="_blank" rel="noopener noreferrer" class="">BackstageCon</a> and the rest of the week on the <a href="https://www.youtube.com/@cncf/playlists" target="_blank" rel="noopener noreferrer" class="">CNCF's YouTube channel</a>. See you in Salt Lake City in November at KubeCon + CloudNativeCon North America!</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[CVE-2024-26150: Keeping Backstage safe and secure]]></title>
            <link>https://backstage.io/blog/2024/02/28/security-notice</link>
            <guid>https://backstage.io/blog/2024/02/28/security-notice</guid>
            <pubDate>Wed, 28 Feb 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[TL;DR: For the Backstage maintainers, ensuring that the project is secure for every adopter and end user is one of our top priorities.]]></description>
            <content:encoded><![CDATA[<p><strong>TL;DR</strong>: For the Backstage maintainers, ensuring that the project is secure for every adopter and end user is one of our top priorities.
With the recent discovery of <a href="https://www.cve.org/CVERecord?id=CVE-2024-26150" target="_blank" rel="noopener noreferrer" class="">CVE-2024-26150</a>, we've shipped fixes for versions &gt; v1.15.0.
Please update your Backstage instance.</p>
<p><img decoding="async" loading="lazy" alt="Backstage Security Audit &amp;amp; Updates" src="https://backstage.io/assets/images/backstage-security-audit-d0283e8fb2fc980642fd9b4be7057cf5.png" width="1200" height="630" class="img_ev3q"></p>
<!-- -->
<p>Last week we were notified by <a href="https://roadie.io/" target="_blank" rel="noopener noreferrer" class="">Roadie</a> of a potential security vulnerability in the scaffolder that they had discovered during a third-party security audit.
Roadie are running their scaffolder tasks in an isolated, ephemeral container to mitigate these kinds of issues, but as good citizens of the Backstage community, they alerted the Backstage maintainer team to make sure a fix was applied to the upstream project.
Upon further investigation, it turned out that this was a more widespread issue with the <code>resolveSafeChildPath</code> utility from the <code>@backstage/backend-common</code> package, which is used to prevent path traversal exploits.
This issue has now been fixed, and also backported to cover releases up to almost a year old.</p>
<p>Please make sure that you have updated your Backstage instance to the latest v.1.23.2, or that you are using <code>@backstage/backend-common</code> <code>v0.21.1</code>, <code>v0.19.10</code>, or <code>v0.20.2</code>.
If you are building backend plugins for Backstage and do any local file operations, make sure you use the <code>resolveSafeChildPath</code> utility, as this check is quite tricky to implement correctly 😊</p>
<p>Thanks to Roadie and the team for reporting this issue, and making the Backstage community safe!</p>
<p>For more information you can check out the <a href="https://github.com/backstage/backstage/security/advisories/GHSA-2fc9-xpp8-2g9h" target="_blank" rel="noopener noreferrer" class="">security advisory</a>.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Wrap up: BackstageCon ‘23, KubeCon + Cloud Native NA]]></title>
            <link>https://backstage.io/blog/2023/11/15/backstagecon-kubecon-23</link>
            <guid>https://backstage.io/blog/2023/11/15/backstagecon-kubecon-23</guid>
            <pubDate>Wed, 15 Nov 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[BackstageCon ‘23, KubeCon + Cloud Native NA]]></description>
            <content:encoded><![CDATA[<p><img decoding="async" loading="lazy" alt="BackstageCon ‘23, KubeCon + Cloud Native NA" src="https://backstage.io/assets/images/00-cover-af1761cb266264d9f6b4ce6b66fa359f.png" width="1667" height="875" class="img_ev3q"></p>
<p>tl;dr BackstageCon North America is officially in the books! We had a blast in Chicago talking about Backstage non-stop throughout the week at both BackstageCon and KubeCon. If you weren't able to join us, the <a href="https://www.youtube.com/playlist?list=PLj6h78yzYM2PxiInfZi2OKu1KluNfbLtc" target="_blank" rel="noopener noreferrer" class="">BackstageCon talks are available</a> for replay on the CNCF YouTube channel.</p>
<!-- -->
<p>Obviously we're biased, but Backstage was definitely one of the big topics at <a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america/" target="_blank" rel="noopener noreferrer" class="">KubeCon + CloudNativeCon North America</a> this year. Recently, the CNCF announced that Backstage was the <a href="https://www.cncf.io/blog/2023/10/27/october-2023-where-we-are-with-velocity-of-cncf-lf-and-top-30-open-source-projects/" target="_blank" rel="noopener noreferrer" class="">third fastest-growing project</a> of the year (up from the fifth last year). And you could confirm it with your own eyes during BackstageCon and KubeCon: hundreds of people flocked through the event, talks, and the project booth sharing their enthusiasm and asking more questions about the project.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="backstagecon-a-growing-community">BackstageCon: A growing community&nbsp;<a href="https://backstage.io/blog/2023/11/15/backstagecon-kubecon-23#backstagecon-a-growing-community" class="hash-link" aria-label="Direct link to BackstageCon: A growing community&nbsp;" title="Direct link to BackstageCon: A growing community&nbsp;" translate="no">​</a></h3>
<p>With a whopping peak attendance of 400+ people, the crowd nearly doubled from last year,<a href="https://www.forbes.com/sites/janakirammsv/2023/11/14/backstage-project-takes-center-stage-at-kubecon-north-america-2023/?sh=1972303a6539" target="_blank" rel="noopener noreferrer" class=""> taking the center stage of the conference</a>, as reported by Forbes. For some, BackstageCon was their first entry point into the community, but the event also boasted lots of&nbsp; familiar faces, mostly from some of the most mature adopters such as Dynatrace, Lunar, and US Bank. We also got to hear from new voices in the community like Comcast and Grafana Labs.</p>
<p>We hear a lot of great questions such as:</p>
<ul>
<li class="">
<p>How do I make more developers use my developer portal?</p>
</li>
<li class="">
<p>Will generative AI take my Backstage instance to the next level?</p>
</li>
<li class="">
<p>What's all the fuss around the upcoming Declarative Integration in Backstage?</p>
</li>
</ul>
<p>The community got together to discuss these and more questions with exciting talks and debates. The talks were all recorded and are <a href="https://www.youtube.com/playlist?list=PLj6h78yzYM2PxiInfZi2OKu1KluNfbLtc" target="_blank" rel="noopener noreferrer" class="">up on YouTube</a>, so make sure to check them out.</p>
<p><strong>Driving Backstage adoption</strong></p>
<p>Growing adoption was top of mind during BackstageCon. David Tuite, CEO of Roadie, shared the lessons learned from interviewing 20 adopters, which revealed that the Scaffolder was a prime place to get started when adopting Backstage, as it lets stakeholders get an easily measurable ROI.</p>
<p><img decoding="async" loading="lazy" alt="Panel of Backstage adopters" src="https://backstage.io/assets/images/10-panel-f55c9936ee6e6d1d976be82574658f0e.jpg" width="1999" height="1500" class="img_ev3q"></p>
<p>Helen Greul, Head of Engineering for Backstage at Spotify, hosted <a href="https://www.youtube.com/watch?v=Iti5glzYOG8&amp;list=PLj6h78yzYM2PxiInfZi2OKu1KluNfbLtc&amp;index=10" target="_blank" rel="noopener noreferrer" class="">a panel discussion</a> with four adopters that are using Backstage at scale: Twilio, Lunar Bank, US Bank, and Expedia. The crucial role of Backstage in fostering inner sourcing and simplifying new hires onboarding were a few of the subjects covered in the panel.</p>
<p>How adopters are using Backstage was also a highlight of the day. B3, Brazil's Stock Exchange, shared <a href="https://www.youtube.com/watch?v=FyWCKIVYO7g&amp;list=PLj6h78yzYM2PxiInfZi2OKu1KluNfbLtc&amp;index=14" target="_blank" rel="noopener noreferrer" class="">how they're building their developer portal</a>. And from Grafana Labs, we heard how they're using <a href="https://www.youtube.com/watch?v=q-JUWob69Hw&amp;list=PLj6h78yzYM2PxiInfZi2OKu1KluNfbLtc&amp;index=10" target="_blank" rel="noopener noreferrer" class="">Backstage along Crossplane to drive GitOps</a>.</p>
<p><strong>What's next with Backstage?</strong></p>
<p>The discussion on how Backstage is evolving was featured in a few talks, through live demos that — remarkably — did not go wrong even once! Ben (<a href="https://github.com/benjdlambert" target="_blank" rel="noopener noreferrer" class="">benjdlambert</a>) and Patrik (<a href="https://github.com/Rugvip" target="_blank" rel="noopener noreferrer" class="">Rugvip</a>), core maintainers, presented an introduction to the plans around <a href="https://www.youtube.com/watch?v=8hVMNMXXN44&amp;list=PLj6h78yzYM2PxiInfZi2OKu1KluNfbLtc&amp;index=8" target="_blank" rel="noopener noreferrer" class="">Declarative Integration</a>, which will allow people to install plugins without dealing with TypeScript or React. On the other hand, Djamaile and Mitch, from Spotify, <a href="https://www.youtube.com/watch?v=bUdaO9NKXJY&amp;list=PLj6h78yzYM2PxiInfZi2OKu1KluNfbLtc&amp;index=12" target="_blank" rel="noopener noreferrer" class="">introduced the upcoming Quickstart</a>, a tool from Spotify in private-beta that will allow anyone to get started with Backstage through a GUI in a few steps.</p>
<p><strong>A thriving community</strong></p>
<p>People gathered outside the conference room where BackstageCon was happening to catch up with each other and learn from the event sponsors. It was great to connect with everyone and talk about how everyone is using Backstage.</p>
<p><img decoding="async" loading="lazy" alt="KubeCon Attendees" src="https://backstage.io/assets/images/20-booth-b2a4d9d8d1f03a675222faa335f443d4.jpg" width="1999" height="1500" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="Spotify at BackstageCon" src="https://backstage.io/assets/images/30-spotify-kubecon-b01e6914b1a0e96a0f025b9ad8591f7f.jpg" width="1999" height="1500" class="img_ev3q"></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="mom-backstage-is-not-a-phase">Mom, Backstage is not a phase<a href="https://backstage.io/blog/2023/11/15/backstagecon-kubecon-23#mom-backstage-is-not-a-phase" class="hash-link" aria-label="Direct link to Mom, Backstage is not a phase" title="Direct link to Mom, Backstage is not a phase" translate="no">​</a></h3>
<p>The interest from the cloud-native community in Backstage did not waver this year. Instead, the Backstage booth in the KubeCon Project Pavillion saw a nonstop flux of visitors asking more about the project. There were three talks featuring Backstage during KubeCon.</p>
<p><strong>Backstage talks during KubeCon NA '23</strong></p>
<p>The first talk touching on Backstage of the schedule was Tim Hansen's (<a href="https://github.com/timbonicus" target="_blank" rel="noopener noreferrer" class="">timbonicus</a>) "Everything Is Code: Embracing GitOps at Spotify," who achieved rockstar status thanks to his phenomenal insights. The queue to ask questions after the talk's questions was surreal!</p>
<p><img decoding="async" loading="lazy" alt="KubeCon Attendees" src="https://backstage.io/assets/images/40-tim-talk-ba14abf3c76daf3c15ae23361eb2e6e9.jpg" width="1999" height="1500" class="img_ev3q"></p>
<p>Backstage maintainers Ben and Patrik addressed a full-room during their talk “Simplifying Backstage - Breaking the Code Barrier” in which they explained Declarative Integration, how it works and the expected migration path. Declarative Integration will enable adopters to install the plugins they use—and even customize them—without dealing with TypeScript or React.</p>
<p><img decoding="async" loading="lazy" alt="KubeCon Attendees" src="https://backstage.io/assets/images/50-patrik-ben-full-16bb2a4ab471ae541d6f3891da9bef94.jpg" width="1999" height="1500" class="img_ev3q"></p>
<p>And to close the event, Ritesh Patel, Nirmata and David Murphy, Upbound, introduced the BACK Stack, which stands for Backstage, Argo, Crossplane, and Kyverno. These four tools make up a powerful combo that can enable self-service workflows secure and scalable. After a great demo, the speakers presented a reference architecture that can help guide an approach to using Backstage to build your platform.</p>
<p><img decoding="async" loading="lazy" alt="KubeCon Attendees" src="https://backstage.io/assets/images/60-back-stack-a3d4e7f46aafd58b674887d1a3c9aa52.jpg" width="1999" height="1500" class="img_ev3q"></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="see-you-next-year">See you next year!<a href="https://backstage.io/blog/2023/11/15/backstagecon-kubecon-23#see-you-next-year" class="hash-link" aria-label="Direct link to See you next year!" title="Direct link to See you next year!" translate="no">​</a></h3>
<p>The next KubeCon Europe is scheduled for March 18-22 in Paris. We're looking forward to meeting you all there! <a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/program/cfp/" target="_blank" rel="noopener noreferrer" class="">KubeCon EU</a> and<a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/co-located-events/backstagecon/" target="_blank" rel="noopener noreferrer" class=""> BackstageCon EU</a> are accepting CFPs, submit your proposal now!</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Adopter Spotlight: How Chicago Trading Company saved 18 months of developer effort with Backstage]]></title>
            <link>https://backstage.io/blog/2023/09/29/chicago-traiding-company-adopter-spotlight</link>
            <guid>https://backstage.io/blog/2023/09/29/chicago-traiding-company-adopter-spotlight</guid>
            <pubDate>Fri, 29 Sep 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[backstage header]]></description>
            <content:encoded><![CDATA[<p><img decoding="async" loading="lazy" alt="backstage header" src="https://backstage.io/assets/images/header-92af1a87140c1ca77cef9d6dfea15779.png" width="1200" height="630" class="img_ev3q"></p>
<p><strong><em>TL;DR <a href="https://www.chicagotrading.com/" target="_blank" rel="noopener noreferrer" class="">Chicago Trading Company</a> (CTC) adopted Backstage ten months ago to help reduce onboarding frictions with their new cloud-based DevOps Kubernetes platform. Through templatization and open feedback loops, the team has conservatively saved 18 months of developer time to date with Backstage. We spoke with CTC DevOps engineer <a href="https://github.com/scott-kausler" target="_blank" rel="noopener noreferrer" class="">Scott Kausler</a> who shared the details of their onboarding journey, lessons learned, and insights for other Backstage adopters.</em></strong></p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="templates-or-the-cluster-didnt-happen">Templates or the cluster didn't happen<a href="https://backstage.io/blog/2023/09/29/chicago-traiding-company-adopter-spotlight#templates-or-the-cluster-didnt-happen" class="hash-link" aria-label="Direct link to Templates or the cluster didn't happen" title="Direct link to Templates or the cluster didn't happen" translate="no">​</a></h2>
<p>While mid-activation on a new cloud-based DevOps Kubernetes platform, Scott's team received early feedback that it was difficult to onboard teams onto this platform due to the breadth of requirements and new tools developers needed — from dependency management tools (such as Gradle, Conan, and Conda) to Docker/Kubernetes, Helm/FluxCD, and Vault. Not only were CTC developers required to learn new systems to build, package, and deploy their apps, in several cases even the code needed to be changed. There were also significant modifications required to existing tools such as Jenkins.</p>
<p>Scott's team quickly recognized that this friction could lead to lower adoption and longer onboarding times to the new platform. So he started investigating solutions that would allow him to templatize these new services and create turnkey onboarding with less reference knowledge required.</p>
<p>After exploring several service routes from managed to in-house/owned, CTC opted to use Backstage — already in POC for use of the <a href="https://backstage.io/docs/features/software-catalog/" target="_blank" rel="noopener noreferrer" class="">Software Catalog</a> — due to the <a href="https://backstage.io/docs/features/software-templates/" target="_blank" rel="noopener noreferrer" class="">Software Templates</a> plugin form-based input, UI/json-schema-form abilities, and its extensibility. Scott's team felt Backstage provided the most sustainable solution for growth amongst the multiple developer portal and templation options vetted and would help bridge the gap between UI-driven deployment and GitOps.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="early-wins-on-documentation-and-onboarding">Early wins on documentation and onboarding<a href="https://backstage.io/blog/2023/09/29/chicago-traiding-company-adopter-spotlight#early-wins-on-documentation-and-onboarding" class="hash-link" aria-label="Direct link to Early wins on documentation and onboarding" title="Direct link to Early wins on documentation and onboarding" translate="no">​</a></h2>
<p>The CTC DevOps team created a small special interest group to champion the developer portal build and quickly delved into the big issues impacting their developer experience. From there, the team began creating tasks and templates within Backstage.</p>
<p>To start, Scott worked with end-user teams outside DevOps early in the process of documenting migration to the new DevOps Kubernetes platform services. When Scott wrote the onboarding documentation, he made it a point to pair with a developer on another team that would be using it. This approach provided him with a quality sounding board, great instantaneous feedback, and a sort of "beta developer" to test V1 documentation clarity. A few weeks later, another colleague on the same end-user team followed the documentation and she didn't reach out to Scott at all.</p>
<p>After this early win, the team was ready for broad distribution. Partnering with the senior leadership team, Scott's team began onboarding teams to the new DevOps Kubernetes platform using the templates his team created in Backstage. At CTC, their Backstage instance is set up to automatically scan for deployments in Kubernetes; so if you're in Kubernetes, you're onboarded to Backstage.</p>
<p>"Backstage made onboarding [to the new DevOps platform] not scary," Scott said. "Because now — all of a sudden — you have this recipe for how to do it, you don't have to jump through these hoops, the templates are there and ready for you. You choose what you want based on these templates we have available, and you're off and running on your own."</p>
<p>Scott's team monitored progress against their onboarding goals partially by how often the DevOps team was getting pinged for support and found that it has made support smoother. They can easily refer people to templates and repo standards instead of making them create something ad hoc.</p>
<p>"It's really been cool seeing how that progressed. I even have a few teams that didn't talk to DevOps at all. They used a [template] and they have a service ready. We were actually pretty excited about that, because that means now we have a scalable tool able to onboard others onto our platform," said Scott.</p>
<p>Another exciting win for CTC was template additions generated outside the initial toolkit, which has eased the burden substantially for the DevOps team. They were able to create new templates to deploy against best practices such as a template for creating a brand-new Terraform module and Git repo or — Scott's favorite — a template that creates a Java repository along with Jenkins jobs for CI and the Flux CD config for deployment.</p>
<p>"The template builds and auto-deploys a Docker image, so if you make a change to your mainline branch, then it will automatically build a new Docker image and deploy it to a Kubernetes cluster," Scott said. "So within basically 10 minutes of you filling out a form, you actually have something deployed out to a Kubernetes cluster."</p>
<p>This process eased flows for both end-user devs and DevOps teams overall.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="measuring-backstage-impact-at-ctc">Measuring Backstage impact at CTC<a href="https://backstage.io/blog/2023/09/29/chicago-traiding-company-adopter-spotlight#measuring-backstage-impact-at-ctc" class="hash-link" aria-label="Direct link to Measuring Backstage impact at CTC" title="Direct link to Measuring Backstage impact at CTC" translate="no">​</a></h2>
<p>To calculate the impact of Backstage, Scott began with reviewing template types and assigning a weighted value to each based upon their perceived workload.</p>
<p>At CTC, some templates create a repo, some templates create a repo with some code, some templates even go as far as creating a repo with code and all the prerequisites to deploy to Flux and Jenkins jobs. To be conservative, the highest weight Scott assigned to a template would be saving three days of developer time. Even with that conservative estimate, the figure came out to be a savings of 18 months in developer effort since Backstage was deployed ten months ago.</p>
<p>For CTC, the journey with Backstage has just begun. They're now looking to drive more Catalog adoption and determine what custom plugins they need to build to better support their workflows.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-power-of-partnership-and-good-docs">The power of partnership (and good docs!)<a href="https://backstage.io/blog/2023/09/29/chicago-traiding-company-adopter-spotlight#the-power-of-partnership-and-good-docs" class="hash-link" aria-label="Direct link to The power of partnership (and good docs!)" title="Direct link to The power of partnership (and good docs!)" translate="no">​</a></h2>
<p>When asked about advice he has for other Backstage adopters, Scott talked about the DevOps team's comms strategy and ensuring end-user developers had pathways to provide feedback. In addition to the focus on templates for the new services, having both a dedicated Slack channel and open-door communication with the DevOps team helped reduce onboarding friction to the DevOps Kubernetes platform.</p>
<p>Outside of that, he believes the approach to documentation is paramount. "Write your documentation from the perspective of, 'Hey, you have this task assigned to you to write a template, here are the exact steps you have to follow'," Scott said. "Think of it as a recipe. Removing your familiarity bias will help make this tool more useful for less familiar teams."</p>
<p>Finally, don't be afraid to step outside the core use cases when it comes to the Backstage framework and finding solutions to meet your needs.</p>
<p>"Backstage gives you a lot of really easy to use features right out of the box. And one of the great things about open source is you can look at the code and see exactly what the behavior is and work within that behavior. But we've also developed our own processes for custom tasks because — at the end of the day — our platform has some very custom aspects to it," Scott said.</p>
<p>Interested in more stories from Backstage adopters? Check out these recent posts from <a href="https://backstage.io/blog/2023/07/08/stash-adopter-post" target="_blank" rel="noopener noreferrer" class="">Stash</a> and <a href="https://backstage.io/blog/2023/08/17/expedia-proof-of-value-metrics-2" target="_blank" rel="noopener noreferrer" class="">Expedia Group</a>.</p>
<p>Want to learn more about Backstage? Join our weekly <a href="https://spoti.fi/backstageofficehours" target="_blank" rel="noopener noreferrer" class="">Office Hours</a> and bring your burning questions.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Expedia Group shares Backstage proof of value metrics 2.0]]></title>
            <link>https://backstage.io/blog/2023/08/17/expedia-proof-of-value-metrics-2</link>
            <guid>https://backstage.io/blog/2023/08/17/expedia-proof-of-value-metrics-2</guid>
            <pubDate>Thu, 17 Aug 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[backstage header]]></description>
            <content:encoded><![CDATA[<p><img decoding="async" loading="lazy" alt="backstage header" src="https://backstage.io/assets/images/header-51092d07a873540e421f40edd238b878.png" width="1200" height="630" class="img_ev3q"></p>
<p><em>Editor's Note: In this post, Expedia Group provides a follow-up to their initial Q4 2021 <a href="https://backstage.spotify.com/blog/measuring-backstage-proof-of-value-at-expedia/" target="_blank" rel="noopener noreferrer" class="">post on how they measure Backstage proof of value</a>.
We're grateful to the Expedia Group team for sharing their processes, revised proof of value metrics, and adaptations to their approach over time in hopes of providing a successful framework for the rest of the Backstage community.</em></p>
<p><a href="https://expediagroup.com/" target="_blank" rel="noopener noreferrer" class="">Expedia Group's</a> mission is to power global travel for everyone, everywhere.
This vision is made possible through Expedia Group's massive platform, which connects 168 million loyalty members, 50 thousand B2B partners, 3 million properties and 500 airlines, car rentals and cruise lines across the globe. In short, the scale of our platform is enormous, which means that we need to scale our engineering capabilities as well so we can continue to provide seamless experiences to our travelers and partners.</p>
<!-- -->
<p>In August 2020, we adopted Backstage to enhance our foundational platform capabilities and reduce developer friction in the process. Its framework proved scalable for us and as EG's platform evolved, so did our application of Backstage. Since our <a href="https://backstage.spotify.com/blog/measuring-backstage-proof-of-value-at-expedia/" target="_blank" rel="noopener noreferrer" class="">initial share about our Backstage deployment</a>, we've continued to follow our process of:</p>
<ul>
<li class="">Syncing Expedia Group's internal Developer Journey phases by key DevOps processes and Software Delivery Life Cycle (SDLC) milestones (POC, Alpha, Beta, etc).</li>
<li class="">Identifying Developer Jobs to be Done (JTBD) by our Internal Developer Journey phases</li>
<li class="">Aligning developer JTBD's to proof of value (PoV) metrics.</li>
</ul>
<p>In the diagram below, you can see how we distilled these processes into Backstage PoV metrics.</p>
<p><img decoding="async" loading="lazy" alt="backstage pov metrics" src="https://backstage.io/assets/images/table-29c0da3fec72d6a9999069155af7280d.png" width="1294" height="565" class="img_ev3q"></p>
<p>To ground ourselves in the evolving developer and Backstage landscape at Expedia Group, we constantly ask ourselves, "How can we continue to show the value of Backstage to our customers and the Developer Community?" To fully answer this question, we adapted our initial proof of value metrics to reinforce our alignment to the current landscape of the Expedia Group developer journey.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="expedia-group-proof-of-value-metrics-20">Expedia Group proof of value metrics 2.0<a href="https://backstage.io/blog/2023/08/17/expedia-proof-of-value-metrics-2#expedia-group-proof-of-value-metrics-20" class="hash-link" aria-label="Direct link to Expedia Group proof of value metrics 2.0" title="Direct link to Expedia Group proof of value metrics 2.0" translate="no">​</a></h2>
<p>We are excited to share our PoV metrics because it affirms our investment in Backstage for Expedia Group's Backstage users and provides a compelling metrics-based answer on why more organizations should consider adopting it.</p>
<p>As our Backstage application matured, we updated our PoV metrics and aligned our 2023 roadmap to reflect these changes. Below, we highlight key wins from 2022 and outline our long-term vision for each metric.</p>
<table><thead><tr><th>PoV Metric</th><th>Description</th><th>2022 Key Win(s)</th><th>Long-Term Vision</th></tr></thead><tbody><tr><td>"Ship on Day One" / onboarding metrics</td><td><p></p><p>A metric used to determine an engineer's readiness to develop at EG
during their onboarding process.</p><p></p><p></p><p>It measures the time from first commit to deploying code in
production, using a "Hello World Template"</p><p></p></td><td><ul><li><p>850+ engineers went through the “Ship on Day One” Bootcamp when
first joining Expedia Group</p></li><li><p>We had a success rate of ~95% of engineers completing bootcamp on
first try</p></li><li>7,000+ components created or onboarded</li><li>4-min average per app creation/onboarding</li></ul></td><td><ul><li><p>Develop full onboarding curriculum coverage for all critical
capabilities offered within EG - Example: performance and quality
management, pipeline management, etc.</p></li><li><p>Create an end-to-end guided tour of the EG Developer Journey w/
functional training</p></li></ul></td></tr><tr><td><p>Reduce context switching through integration with core EG capabilities</p></td><td><p>Through plugins, tool integration, reduces context-switching as
engineers will not need to toggle between multiple tools</p></td><td><ul><li><p>15%+ of internal developer tools are integrated within Backstage,
reducing the amount of context-switching needed</p></li><li><p>4000+ unique users using Backstage for ~20 min on average a day.</p></li></ul></td><td><ul><li><p>End-to-end integration with EG paved road tools and Backstage to
support increased developer productivity</p></li><li><p>Drive broader adoption to have all EG employees using Backstage to
manage their SDLC and to build internal UIs using plugins</p></li></ul></td></tr><tr><td>Improve search results relevance</td><td><p>Intuitive search capabilities to surface relevant Backstage content like
TechDocs, entities, tools, etc.</p></td><td><ul><li>Enabled global search functionality throughout Backstage</li><li><p>Contributed to the open source Backstage Search platform</p></li></ul></td><td><ul><li>Engine optimization/ranking improvement</li><li>Visualize key search metrics to support improvements</li><li>Chat + AI integration with chat-based interfaces</li></ul></td></tr><tr><td>Technical documentation reach</td><td><p>Number of developers leveraging TechDocs for all services within EG</p></td><td><ul><li>500+ services tied with TechDocs</li><li>50,000+ average monthly TechDoc views</li></ul></td><td><ul><li><p>All Backstage entities leveraging TechDocs to enable a centralized
documentation portal integrated with the Software Catalog</p></li><li><p>Quality/governance and gamification to support users and
contributors</p></li><li><p>More TechDocs and mkdocs add-ons to compliment the core capabilities
and drive usability of documentation on Backstage</p></li></ul></td></tr><tr><td>Developer Experience community engagement</td><td>Enhance Backstage through community engagement</td><td><ul><li><p>Diverse contributions to Backstage open source focused on search and
discovery - 10+</p></li><li>Community engagement through internal case studies, and blogs</li></ul></td><td><ul><li><p>Continuous contributions to open-source Backstage, focused on plugin
administration, driving documentation adoption, and improved UX
around core capabilities</p></li><li><p>Strategic community engagements to enhance the platform's usability
and long-term confidence in adopting Backstage</p></li><li><p>Event participation and storytelling around EG's Backstage journey</p></li></ul></td></tr></tbody></table>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="ymmv-your-metrics-may-vary">YMMV: Your Metrics May Vary!<a href="https://backstage.io/blog/2023/08/17/expedia-proof-of-value-metrics-2#ymmv-your-metrics-may-vary" class="hash-link" aria-label="Direct link to YMMV: Your Metrics May Vary!" title="Direct link to YMMV: Your Metrics May Vary!" translate="no">​</a></h2>
<p>Measuring the value of Backstage will vary depending on your organization's needs and priorities. As an early adopter of Backstage, we hope the Expedia Group PoV metrics provide a helpful framework for understanding how Backstage can be used to improve developer productivity, collaboration, and knowledge sharing.</p>
<p>We look forward to sharing future updates with the community as we continue to embrace a continuous improvement approach to Backstage. If you missed it, you can read about where we started in our <a href="https://backstage.spotify.com/blog/measuring-backstage-proof-of-value-at-expedia/" target="_blank" rel="noopener noreferrer" class="">initial proof of value metrics</a> back in 2021.</p>
<p><em>Read more about Expedia's tech journey on <a href="https://medium.com/expedia-group-tech" target="_blank" rel="noopener noreferrer" class="">their Medium Blog</a></em></p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Five common traits of successful Backstage adopters]]></title>
            <link>https://backstage.io/blog/2023/07/28/frontside-adopter-post</link>
            <guid>https://backstage.io/blog/2023/07/28/frontside-adopter-post</guid>
            <pubDate>Fri, 28 Jul 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[backstage header]]></description>
            <content:encoded><![CDATA[<p><img decoding="async" loading="lazy" alt="backstage header" src="https://backstage.io/assets/images/header-96abda0eb0018d6cef5a8c9244ae57af.png" width="1200" height="630" class="img_ev3q"></p>
<p>At <a href="https://frontside.com/" target="_blank" rel="noopener noreferrer" class="">Frontside</a>, our goal is to help cloud-native teams create cohesive development experiences. We've been at the Backstage party since the beginning helping companies adopt and extend Backstage to fit the needs of their unique ecosystems.</p>
<p>Through our experience, we've uncovered five common traits of organizations that have improved developer experience through successful Backstage implementation and adoption. In this blog, we'll dive into these traits with some thoughts on how you can follow their blueprint.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-they-take-a-product-centric-approach"><strong>1) They take a product-centric approach</strong><a href="https://backstage.io/blog/2023/07/28/frontside-adopter-post#1-they-take-a-product-centric-approach" class="hash-link" aria-label="Direct link to 1-they-take-a-product-centric-approach" title="Direct link to 1-they-take-a-product-centric-approach" translate="no">​</a></h2>
<p>The biggest factor for successful adopters of Backstage is their approach. There is a high correlation of success within organizations that approach building a developer portal like they're building a product. Some organizations will jump straight into solutioning instead of taking their time to identify what the problems are, how they affect users, and how those issues can be addressed.</p>
<p>The team building out Backstage should assess or work from existing insights on the core challenges that developers are facing in their organization — both qualitative and quantitative data counts here — and connect those issues to a product roadmap with initial use cases and adoption milestones marked. By doing their research in advance, successful orgs have a clear vision of what they want to accomplish with their Backstage instance. They know exactly what goals need to be met and have pressure-tested potential issues and barriers.</p>
<p>If you've already started your Backstage adoption journey but haven't mapped a Product Requirements Document (or PRD), don't panic! There is always time to do the foundational knowledge-building necessary to deploy something successful.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-they-tie-backstage-to-a-larger-platform-journey"><strong>2) They tie Backstage to a larger platform journey</strong><a href="https://backstage.io/blog/2023/07/28/frontside-adopter-post#2-they-tie-backstage-to-a-larger-platform-journey" class="hash-link" aria-label="Direct link to 2-they-tie-backstage-to-a-larger-platform-journey" title="Direct link to 2-they-tie-backstage-to-a-larger-platform-journey" translate="no">​</a></h2>
<p>Platform engineering has emerged in response to the growing complexity of cloud-native software architecture. Backstage has a huge role to play in implementing a platform strategy but its part of a larger story. Having buy-in from both higher ups and the teams tasked with platform goals is an essential step in successful Backstage adoption. Without the support at the top, it can be difficult to implement platforming as a priority within your organization.</p>
<p>And by "the top", we don't necessarily mean your CTO needs to rubber stamp your Backstage POC. But it's important that higher-level Platform goals have been set among VPs and directors with the understanding that a well-constructed developer portal can be the catalyst to achieving not only better developer experience but broader cultural shifts.</p>
<p>Having this kind of executive buy-in means more than just getting stakeholders on board with a portal build or clearing pathways towards Backstage adoption; it also means ensuring they understand the realities of your organization's journey.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-they-prioritize-developer-experience"><strong>3) They prioritize developer experience</strong><a href="https://backstage.io/blog/2023/07/28/frontside-adopter-post#3-they-prioritize-developer-experience" class="hash-link" aria-label="Direct link to 3-they-prioritize-developer-experience" title="Direct link to 3-they-prioritize-developer-experience" translate="no">​</a></h2>
<p>Having a dedicated developer experience or DevOps team tasked not only with building out a Backstage instance — but with leading adoption — is another big factor to success.</p>
<p>Competing platforms are very common at big companies, with many teams doing different things or serving different parts of a business. But developer experience teams usually have a very clear mandate and are often one of the only commonalities between these competing teams. This team should have the bandwidth available to oversee the adoption process from start to finish, and partner with the right folks (research, design, internal comms and marketing) to create an effective adoption plan tailored specifically for a company's needs.</p>
<p>If you don't have ‌established developer experience resources in place, then the questions the team leading the Backstage work needs to ask are "what are the common problems to be solved at a platform level?" and "once we've proved our initial use cases, how are we internally evangelizing this amongst our competing teams?"</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-they-collaborate-with-other-platform-teams"><strong>4) They collaborate with other platform teams</strong><a href="https://backstage.io/blog/2023/07/28/frontside-adopter-post#4-they-collaborate-with-other-platform-teams" class="hash-link" aria-label="Direct link to 4-they-collaborate-with-other-platform-teams" title="Direct link to 4-they-collaborate-with-other-platform-teams" translate="no">​</a></h2>
<p>A developer experience team can not single-handedly transform an organization's development structures, processes, and culture. It requires collaboration with teams responsible for other aspects of the platform. Successful adopters collaborate with other teams to bring them along on the journey of improving developer experience. They use Backstage as an opportunity to foster their inner-source contribution practice by allowing multiple platform teams to contribute plugins to their portal.</p>
<p>The developer experience team takes on the role of host in that collaborative process. They support other teams in integrating their features into the portal, provide guidance on best practices, and advocate for the needs of developers.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="5-they-engage-learn-and-grow-with-the-community"><strong>5) They engage, learn, and grow with the community</strong><a href="https://backstage.io/blog/2023/07/28/frontside-adopter-post#5-they-engage-learn-and-grow-with-the-community" class="hash-link" aria-label="Direct link to 5-they-engage-learn-and-grow-with-the-community" title="Direct link to 5-they-engage-learn-and-grow-with-the-community" translate="no">​</a></h2>
<p>One of the key benefits of building a developer platform based off an open source framework is leveraging the contributions and best practices from the community. The Backstage community is the largest gathering of developer experience practitioners in the world. There are now <a href="https://github.com/backstage/backstage/blob/63aa3a65ec05f638ba76c06878d6635194620b34/ADOPTERS.md#L4" target="_blank" rel="noopener noreferrer" class="">thousands of adopters</a> with a wealth of experience and best practices to learn from — and they are excited to share!</p>
<p>By participating in the community, developer experience leaders can learn from their peers at other companies about strategies that work and can keep up with the latest features of the ever-evolving Backstage platform. They're aware of what solutions exist within the open source framework and plugin marketplace as well as what they may need to build in-house.</p>
<p>In short, successful Backstage adopters engage within the Backstage community and their peer group to find solutions that fit their common challenges as well as their unique needs.</p>]]></content:encoded>
        </item>
    </channel>
</rss>