<?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 Weekly</title><link>https://roadie.io/backstage-weekly/</link><description>Weekly roundup of Backstage news, articles, and community updates.</description><lastBuildDate>Sat, 06 Jun 2026 07:28:45 GMT</lastBuildDate><docs>https://validator.w3.org/feed/docs/rss2.html</docs><generator>https://github.com/jpmonette/feed</generator><language>en</language><copyright>All rights reserved 2026, Roadie</copyright><item><title><![CDATA[AI Assistants Can't See Your Platform, v1.50.3, and RemixIcons License Issue]]></title><link>https://roadie.io/backstage-weekly/132-ai-assistants-cant-see-your-platform/</link><guid isPermaLink="false">https://roadie.io/backstage-weekly/132-ai-assistants-cant-see-your-platform/</guid><pubDate>Mon, 04 May 2026 13:00:00 GMT</pubDate><description><![CDATA[We published a deep dive on why AI coding assistants fail in production, examining the four categories of missing platform context. Backstage v1.50.3 and v1.51.0-next.1 shipped, and the community flagged a RemixIcons licensing change that prompted an immediate dependency pin.]]></description><content:encoded><![CDATA[<p>👋 Let’s dive into Backstage Weekly #132.</p><p>In this issue:</p><ul><li>Why AI coding assistants break down in real production environments</li><li>What shipped this week (including v1.50.3 and what’s next)</li><li>Community highlights, from RemixIcons changes to migration tips</li></ul><p><img src="//images.ctfassets.net/hcqpbvoqhwhm/6OU5BfBFiHGjoMd7EbwfFn/9aaa81206a1bb81fd8d5819c187e1dcd/image1.png" alt="AI coding assistants can read your code, but they can&#x27;t see your platform."></p><h3>AI coding assistants can read your code, but they can't see your platform.</h3><p>We published a deep dive on why AI coding assistants fail in production engineering organizations.</p><p>The scenario: an engineer asks their assistant to refactor a synchronous call into retry logic with exponential backoff. The suggestion looks clean, tests pass, and the PR gets approved. But the assistant couldn't see that the service is already at 99.91% against a 99.9% SLO, p99 latency is at 450ms against a 500ms budget, and there's been a code freeze for 48 hours. The retry logic hammers a degraded downstream service, pushes latency past budget, and burns the remaining error budget in under an hour.</p><p>The model produced syntactically correct, architecturally reasonable code. Every piece of information that would have changed its output lived in the service catalog, the observability platform, and on-call tooling, none of which it could reach.</p><p>The article identifies four categories of missing platform context: service ownership, SLOs and reliability targets, deployment history, and incident history. It also explains why individual workarounds like GEMINI.md files don't scale beyond small teams. A file written this morning doesn't reflect the deployment that happened this afternoon.</p><p>The required shift is platform context engineering: structured, machine-readable operational data exposed through queryable APIs. The article walks through how to implement this architecture using Roadie and includes three practical steps teams can take this week.</p><p>Read the full article: <a href="https://roadie.io/blog/ai-coding-assistants-missing-platform-context/">AI Coding Assistants Can Read Your Code. They Can't See Your Platform.</a></p><h3>v1.50.3 and v1.51.0-next.1 releases</h3><p>Two releases shipped this week. <a href="https://github.com/backstage/backstage/releases/tag/v1.50.3">v1.50.3</a> (April 22) addresses two targeted fixes: homepage widgets that became non-draggable or non-resizable after the first save are now restored, and a facets endpoint performance regression triggered when filters or permissions are applied has been resolved. <a href="https://github.com/backstage/backstage/releases/tag/v1.51.0-next.1">v1.51.0-next.1</a> (April 28) marks the second canary iteration toward the next minor release, giving adopters and plugin authors an early look at upcoming changes.</p><h2>Community Discussions</h2><h3>RemixIcons license flagged, Backstage caps dependency at v4.8.0</h3><p>An OSPO (Open-Source Policy Office) member <a href="https://discord.com/channels/687207715902193673/1496796967894913075">flagged in #support</a> that <code>@remixicon/react</code> had switched from Apache 2.0 to a custom license starting with v4.9.0, a license not on the CNCF's approved allowlist. Rugvip responded within hours by opening <a href="https://github.com/backstage/backstage/pull/34045">PR #34045</a> to pin the dependency to <code>&#x3C; 4.9.0</code> across all Backstage packages until the licensing situation is fully understood. The original reporter thanked the team for the quick action, making this a textbook example of community-driven supply chain vigilance paying off.</p><h3>Codemod recipe for v1.49 to v1.50 migration</h3><p>In #general in the <a href="https://discord.com/channels/687207715902193673/1498351429151363102">"Codemods" thread</a>, Backstage maintainer schultzp2020 shared that he has been collaborating with the Codemod team to build a migration recipe for the v1.49 to v1.50 upgrade, now available on the Codemod Registry at <code>app.codemod.com/registry/@backstage/v1-50-0-migration-recipe</code>. The Backstage codemod repository is currently private but is expected to open up shortly. If you've been dreading the v1.50 migration, this automated recipe should significantly reduce the manual effort.</p><h3>React Aria dependency errors when upgrading to v1.51</h3><p>Users upgrading from v1.50 to v1.51 <a href="https://discord.com/channels/687207715902193673/1494240858453708852">ran into module resolution errors</a> (<code>Module not found: Can't resolve '@react-stately/layout'</code>) originating from <code>@backstage/ui</code> table components. Rugvip escalated the issue to the React Aria team and simultaneously patched <code>@backstage/ui</code> releases going back roughly six months to use <code>~</code> range specifiers for React Aria packages, which resolved the problem. If you're still seeing errors on v1.50.2 or later, remove all <code>@backstage/ui</code> blocks from your <code>yarn.lock</code> and re-run <code>yarn install</code> to pull in the patched package resolutions.</p><h3>Yarn 4.14.1 brings new security defaults</h3><p>A <a href="https://discord.com/channels/687207715902193673/1497203791886549012">PR to bump the community-plugins repo</a> from Yarn v4.12.0 to v4.14.1 (<a href="https://github.com/backstage/community-plugins/pull/8543">PR #8543</a>) prompted discussion in #maintenance about new security-focused defaults introduced in Yarn v4.13.0. The most notable change is the <code>enableScripts</code> lockdown. Maintainer Sarabadu chose the more restrictive defaults over allowing <code>enableScripts</code> everywhere, and is actively seeking sign-off from maintainers Peter "Parsifal-M" and Ahhhndre, given the change touches every workspace in the mono-repo. Worth watching if you maintain a large Backstage mono-repo with Yarn workspaces.</p><h2>Changelog</h2><h3>v1.50.3</h3><p>Released April 22, 2026</p><p>Highlights:</p><ul><li>Fixed homepage widgets becoming non-draggable or non-resizable after first save</li><li>Resolved facets endpoint performance regression when filters or permissions are applied</li><li>Patch release addressing issues from v1.50.0</li></ul><p>Full changelog: <a href="https://github.com/backstage/backstage/releases/tag/v1.50.3">https://github.com/backstage/backstage/releases/tag/v1.50.3</a></p><h3>v1.51.0-next.1</h3><p>Released April 28, 2026</p><p>Highlights:</p><ul><li>Second prerelease of v1.51 cycle</li><li>Available for testing on the next channel</li><li>Continued New Frontend System improvements</li></ul><p>Full changelog: <a href="https://github.com/backstage/backstage/releases/tag/v1.51.0-next.1">https://github.com/backstage/backstage/releases/tag/v1.51.0-next.1</a></p><hr><p>Read past issues: <a href="https://roadie.io/backstage-weekly/">https://roadie.io/backstage-weekly/</a></p>
]]></content:encoded></item><item><title><![CDATA[Context Engineering for Developers, AIContext RFC, and New Releases]]></title><link>https://roadie.io/backstage-weekly/131-context-engineering-for-developers-and-new-releases/</link><guid isPermaLink="false">https://roadie.io/backstage-weekly/131-context-engineering-for-developers-and-new-releases/</guid><pubDate>Mon, 27 Apr 2026 13:00:00 GMT</pubDate><description><![CDATA[We published a developer-focused deep dive on context engineering infrastructure, Backstage introduced a new AIContext catalog kind for AI agent integration, and v1.50.2 and v1.51.0-next.0 shipped with fixes and new features.]]></description><content:encoded><![CDATA[<p>We published a technical deep dive on context engineering for developers, examining why AI coding tools fail in production orgs and how to build the metadata infrastructure that produces reliable suggestions. Backstage maintainers introduced a new AIContext catalog kind via RFC for structured AI agent integration. Two new releases shipped: v1.50.2 with TechDocs improvements and v1.51.0-next.0 opening the next release cycle. The community resolved a React Aria breaking change affecting v1.50/v1.51 upgrades, diagnosed a production scaffolder memory leak, and surfaced critical gaps in the New Frontend System migration documentation.
<img src="https://backstage.io/assets/images/header-93351b4254863212ce2c149a2a5ea388.png" alt="Backstage Software Catalog"></p><h3>Context engineering for developers: Making AI actually useful for engineers</h3><p>We published a developer-focused deep dive explaining that AI coding tools often fail in production because of a lack of context rather than bad prompts. An engineer debugging p99 latency can get a suggestion that compiles cleanly but bypasses a PCI compliance boundary because that constraint doesn't live in source files.</p><p>This piece makes the case that context engineering is a distinct discipline from prompt engineering, one that happens at the data infrastructure layer.</p><p>We illustrate two production workflows with diagrams: one showing the context assembly loop engineers perform during incidents and another showing the same engineer querying a context infrastructure API and receiving the relevant information in a single call. The AI agent receives the same structured response and produces system-aware suggestions.</p><p>It also includes a practical first step: audit your service catalog for owner, system, dependsOn, and operational annotations. If 30%+ of entities are missing two or more fields, that should be your focus to fix AI productivity, not prompt tuning.</p><p>Read the full article: <a href="https://roadie.io/blog/context-engineering-for-developers-ai-infrastructure/">Context Engineering for Developers: Making AI Actually Useful for Engineers</a></p><h3>New AIContext catalog kind RFC for AI agent integration</h3><p>Core maintainer freben surfaced a significant RFC this week when a community member asked whether Backstage's catalog could serve as a Claude skills marketplace. freben's one-word response: "yes!" came with a link to GitHub RFC <a href="https://github.com/backstage/backstage/issues/33575">#33575</a>, which proposes introducing a new <code>AIContext</code> kind in the Software Catalog.</p><p>The RFC aims to make Backstage a structured source of context for AI coding agents like Claude Code, GitHub Copilot, and Cursor. An early implementation PR (<a href="https://github.com/backstage/backstage/pull/33663">#33663</a>) adds a catalog model layer system using JSON Schema-based kind declarations and is already available as an alpha feature. The proposal aligns directly with the context engineering architecture outlined in this week's article: a typed entity graph that AI agents can query deterministically for operational metadata.</p><h3>v1.50.2 and v1.51.0-next.0 releases</h3><p>Two releases shipped this week. <a href="https://github.com/backstage/backstage/releases/tag/v1.50.2">v1.50.2</a> (April 18) is a patch release that makes TechDocs sidebar positioning configurable via CSS custom properties and bumps the zod dependency to v4 for packages using <code>configSchema</code>. <a href="https://github.com/backstage/backstage/releases/tag/v1.51.0-next.0">v1.51.0-next.0</a> (April 21) marks the opening of the next release candidate cycle. Adopters running the next channel can begin testing now.</p><p>Additionally, a series of earlier patch releases (v1.47.4, v1.49.5) retroactively pinned React Aria packages to <code>~</code> ranges in response to a breaking change in the React Aria library that caused module resolution errors for teams upgrading to v1.50 and v1.51.</p><h2>Community Discussions</h2><h3>⚠️ React Aria breaking change hits Backstage upgrades</h3><p>Users upgrading to Backstage v1.50 and v1.51 <a href="https://discord.com/channels/687207715902193673/1494240858453708852">ran into a module resolution error</a>: <code>Module not found: Can't resolve '@react-stately/layout'</code>. The issue stems from an intentional breaking change in the React Aria library, which does not follow SemVer. Backstage maintainer Rugvip confirmed that the team patched <code>@backstage/ui</code> releases going back approximately six months to pin React Aria packages to <code>~</code> ranges. The fix: unlock and bump any <code>@backstage/ui</code> package in your lockfile where the issue appears. Some users reported the problem persisting even on v1.50.2, suggesting the patch may not yet cover all affected packages.</p><h3>🐛 Scaffolder memory leak traced to isolated-vm</h3><p>A production-impacting <a href="https://discord.com/channels/687207715902193673/1494743209073577994">memory leak in Scaffolder task execution</a> was diagnosed and a fix proposed this week. The user discovered that <code>isolated-vm</code> instances used for Scaffolder template rendering were not being garbage collected after task completion. Even a trivial log-only template caused a 10-15% memory spike per 100 runs, leading to eventual container crashes on ECS. The root cause was identified as the <code>SecureTemplater</code> failing to release VM contexts, and <a href="https://github.com/backstage/backstage/pull/33991">PR #33991</a> was opened to add an explicit <code>dispose()</code> method. The fix significantly reduces the spike, though the author notes some residual memory growth remains.</p><h3>🔍 Search backend breaks on upgrade to v1.50.0</h3><p>Users upgrading from v1.49.x to v1.50.0 <a href="https://discord.com/channels/687207715902193673/1493879011808641125">reported the search backend failing to start</a> with <code>TypeError: cannot read properties of undefined (reading 'id')</code>. The culprit was identified as community search backend modules, specifically <code>@backstage-community/search-backend-module-adr</code>, which weren’t updated to match a breaking interface change in the core search backend. Maintainer Ahhhndre identified four affected plugins and committed to releasing fixes by the end of the week, with a <a href="https://github.com/backstage/community-plugins/pull/8580">tracking PR #8580</a> open in the community plugins repo.</p><h3>📚 NFS migration docs need significant work</h3><p>Two separate threads this week highlighted gaps in the New Frontend System migration documentation. In <a href="https://discord.com/channels/687207715902193673/1491892650939383809">#techdocs</a>, a team mid-migration shared a detailed list of missing guidance: how to distinguish between extension overrides, blueprints, and extension config; how to handle custom EntityPage cards and plugin pages; why plugin auto-discovery silently fails when a plugin is also imported explicitly; and the notorious double-header issue caused by running legacy and modern headers simultaneously. Separately, in <a href="https://discord.com/channels/687207715902193673/1476212110970323045">#frontend-system</a>, Sarabadu shared a <a href="https://dev.to/sarabadu/backstage-logbook-migrating-the-catalog-plugin-to-the-new-frontend-system-f6">dev.to blog post</a> documenting their own catalog plugin migration experience, a valuable community resource filling a gap in the official docs.</p><h3>🤝 Bootstrapping internal plugin contributions is hard</h3><p>The #adoption channel hosted a <a href="https://discord.com/channels/687207715902193673/1493940580407840839">discussion about the challenge of growing internal plugin contributions</a>. Sarabadu noted a recurring pattern where teams build internal tools on their own servers rather than contributing plugins to the company Backstage instance. Their team is experimenting with reducing setup friction, adding plugin starter templates, and reframing the message as "you don't need to be a Backstage expert to build a plugin." Commenter drodil added that AI-assisted development has meaningfully lowered the bar. Good instructions now let someone "vibe code a plugin in a single prompt."</p><h3>🔧 Scaffolder form decorator API conflict after v1.47</h3><p>A <a href="https://discord.com/channels/687207715902193673/1493909066433564782">thread in #scaffolder</a> surfaced an <code>API_FACTORY_CONFLICT</code> error affecting teams upgrading to the New Frontend System: <code>plugin.scaffolder.form-decorators is already provided by plugin 'scaffolder', cannot also be provided by 'app'</code>. The conflict stems from a change introduced around v1.47 where the Scaffolder's <code>formDecoratorsApiRef</code> moved, and custom form decorators registered in <code>App.tsx</code> now collide with the plugin's own registration. A community member posted a code sample showing the correct NFS extension approach, and the thread links to the Backstage Experimental Features documentation for Scaffolder.</p><h2>Changelog</h2><h3>v1.50.2</h3><p>Released April 18, 2026</p><p>Highlights:</p><ul><li>TechDocs sidebar positioning now configurable via CSS custom properties</li><li>Zod dependency bumped to v4 for packages using <code>configSchema</code></li><li>Patch release addressing minor issues from v1.50.0</li></ul><p>Full changelog: <a href="https://github.com/backstage/backstage/releases/tag/v1.50.2">https://github.com/backstage/backstage/releases/tag/v1.50.2</a></p><h3>v1.51.0-next.0</h3><p>Released April 21, 2026</p><p>Highlights:</p><ul><li>First prerelease of v1.51 cycle</li><li>Available for testing on the next channel</li><li>Includes ongoing New Frontend System improvements</li></ul><p>Full changelog: <a href="https://github.com/backstage/backstage/releases/tag/v1.51.0-next.0">https://github.com/backstage/backstage/releases/tag/v1.51.0-next.0</a></p><hr><p>Read past issues: <a href="https://roadie.io/backstage-weekly/">https://roadie.io/backstage-weekly/</a></p>
]]></content:encoded></item><item><title><![CDATA[v1.50.0 Release, BackstageCon Recordings, and Context Engineering]]></title><link>https://roadie.io/backstage-weekly/130-v1-50-0-backstagecon-context-engineering/</link><guid isPermaLink="false">https://roadie.io/backstage-weekly/130-v1-50-0-backstagecon-context-engineering/</guid><pubDate>Mon, 20 Apr 2026 14:00:00 GMT</pubDate><description><![CDATA[Backstage v1.50.0 ships as a stable release, BackstageCon Amsterdam recordings go live on YouTube, and we published a deep dive on why RAG is one retrieval primitive inside a production context engineering system.]]></description><content:encoded><![CDATA[<p>Backstage v1.50.0 landed as a stable release on April 14 with several breaking changes. The full BackstageCon Amsterdam 2026 recordings went live on YouTube, and ING Bank announced plans to open-source their "Golden Path" and "Contributions Plugin." We published a technical deep dive on context engineering, examining why production AI systems fail when all context is routed through vector retrieval. The community discussed new frontend system migration challenges, proposed an Entity Patch plugin for direct catalog updates, and welcomed a new TechDocs contributor after KubeCon.
<img src="https://img.youtube.com/vi/93M6jStFEf4/maxresdefault.jpg" alt="BackstageCon Amsterdam 2026"></p><h3>Backstage v1.50.0 stable release with breaking changes</h3><p>Backstage <a href="https://github.com/backstage/backstage/releases/tag/v1.50.0">v1.50.0</a> landed on April 14 as a stable release. This release includes several breaking changes that teams should review before upgrading, including changes to identity token ownership claims, the removal of deprecated APIs, and updates to Backstage UI components.</p><p>Key breaking changes include the identity token ownership claim being removed by default (reducing token size), Standard Schema replacing the deprecated <code>createSchemaFromZod</code> helper, and React 18 becoming the minimum supported version. See the <a href="https://github.com/backstage/backstage/releases/tag/v1.50.0">full release notes</a> and <a href="https://backstage.io/docs/releases/v1.50.0/">v1.50.0 migration documentation</a> for detailed upgrade instructions.</p><h3>BackstageCon Amsterdam 2026 recordings available, ING Bank to open-source plugins</h3><p>The full <a href="https://www.youtube.com/playlist?list=PLj6h78yzYM2Py6kX3NDSsM53wAzF2JkV7">BackstageCon Amsterdam 2026 YouTube playlist</a> went live on April 14. The community had been waiting for the complete set of talks from the co-located KubeCon Europe event since "The State of Backstage in 2026" by Ben Lambert and Patrik Oldsberg from Spotify went up a few days earlier.</p><p>During their BackstageCon talk, ING Bank announced plans to release two of their internal plugins as open source: "Golden Path" and "Contributions Plugin." The community spotted the announcement <a href="https://discord.com/channels/687207715902193673/1211692810294788126/1493645126466277447">in #plugins</a>. The plugins were not yet in the community repository at the time of writing, but the community is watching closely for a release date.</p><h3>Context engineering covers more ground than RAG</h3><p><img src="//images.ctfassets.net/hcqpbvoqhwhm/4acJlQUWgCHnBDsA0TQyJu/fba1aaa5746be1d75b4f85572fded864/image1.png" alt="Why Conflating RAG with Context Engineering Costs You in Production">
We published a technical deep dive this week on why production AI systems fail when treating retrieval augmented generation as a complete context engineering system. The piece examines how context engineering involves intentionally designing every slot in an LLM’s context window, with RAG serving as one retrieval primitive within that system.</p><p>An AI ops agent that routes all queries through a vector store has wired up one context slot out of six. The remaining five depend on source systems with entirely different query mechanisms. When an agent escalates an incident to the wrong team, the runbook content is often correct, but the ownership data is stale because ownership records live as structured entity metadata in a service catalog rather than as documentation chunks in a vector index.</p><p>The article covers six distinct context source categories used in production systems: system prompts, structured entity metadata, conversation history, retrieved documents via RAG, tool call outputs, and agent working memory. Each source has different authority and staleness characteristics. A system prompt updated by a senior engineer carries different authority than a documentation chunk reflecting last year’s architecture. An entity graph record updated when service ownership changes is more authoritative for ownership questions than any passage in a runbook.</p><p>The highest value context is usually structured entity metadata, including service ownership, dependency graphs, on-call assignments, and API configurations. These change faster than documentation can keep up. The article includes a production architecture diagram showing how an incident triage agent assembles context from all six sources at once, including an entity graph, a vector store, and live APIs.</p><p>Read the full article: <a href="https://roadie.io/blog/rag-vs-context-engineering-production/">Context Engineering Is Not RAG: Here's the Difference</a></p><h2>Community Discussions</h2><h3>🧭 NavContentBlueprint breaking on 1.46 to 1.49 upgrade</h3><p>With 38 messages, the <a href="https://discord.com/channels/687207715902193673/1491719629087834265">most active thread in #frontend-system</a> this week was about an error thrown during the new frontend system upgrade: <code>NavContentBlueprint</code> returning <code>navItems is undefined</code>. The issue turned out to be caused by a user accidentally including <code>if(!navItems) return &#x3C;>&#x3C;/></code> in their component, which triggered an apiRef resolution error. The thread works as a debugging walkthrough for anyone migrating from the legacy frontend to the new BUI-based system.</p><h3>🧩 New community plugin: Entity Patch</h3><p>Sarabadu <a href="https://discord.com/channels/687207715902193673/1211692810294788126/1492995960853496010">proposed a new community plugin</a> called <strong>Entity Patch</strong> (<a href="https://github.com/backstage/community-plugins/pull/8510">PR #8510</a>) that lets teams update catalog entity metadata directly from the Backstage UI, with no YAML editing, custom frontend, or deployments required. The motivation was that Entra/Azure AD group custom fields are unreliable as a source of truth, and some teams need a lightweight escape hatch for manual data corrections.</p><h3>🔐 Axios security upgrade: Self-serve solution available</h3><p>Questions arose in <a href="https://discord.com/channels/687207715902193673/1493191312902459522">#general</a> about when the axios security upgrade in <a href="https://github.com/backstage/backstage/pull/33826">PR #33826</a> would be released. Maintainer Sarabadu clarified that the change is only in the app scaffolder template (not in Backstage's core package dependencies), meaning teams can immediately upgrade their own instance by running <code>yarn why axios</code> and <code>yarn up -R axios</code>. freben also linked to the <a href="https://backstage.io/docs/overview/threat-model#operator-responsibilities">Backstage Threat Model docs</a> explaining operator responsibilities for dependency management.</p><h3>📚 New TechDocs contributor joins post-KubeCon</h3><p>In #techdocs, Eva Gustavsson <a href="https://discord.com/channels/687207715902193673/1491892650939383809">introduced herself</a> after attending her first KubeCon in Amsterdam, where she was mentored by CNCF during the event. Now retired after many years writing documentation at Ericsson, she's looking to contribute to TechDocs and the "How to Guides Hard to Navigate" <a href="https://github.com/backstage/backstage/issues/30062">issue #30062</a>. A good example of the KubeCon hallway track bringing new contributors into the project.</p><h2>Changelog</h2><h3>v1.50.0</h3><p>Released April 14, 2026</p><p><strong>Breaking Changes:</strong></p><ul><li><p><strong>Identity token ownership claim removed by default:</strong> The <code>auth.omitIdentityTokenOwnershipClaim</code> setting now defaults to <code>true</code>. User tokens no longer contain the <code>ent</code> claim with ownership entity refs. Use the <code>userInfo</code> core service to get ownership info instead.</p></li><li><p><strong>Standard Schema replaces createSchemaFromZod:</strong> The deprecated <code>createSchemaFromZod</code> helper has been removed from <code>@backstage/frontend-plugin-api</code>. The new <code>configSchema</code> option accepts direct schema values from Standard Schema compatible libraries like zod v4. Zod v3 schemas require migration to a compatible version.</p></li><li><p><strong>Backstage UI updates:</strong> Header tabs now use <code>HeaderNavTabItem[]</code> instead of <code>HeaderTab[]</code>, with a new <code>activeTabId</code> prop for controlling highlighted tabs. Tab <code>href</code> values are now resolved through router context. The <code>toolbarWrapper</code> element has been removed from <code>PluginHeader</code>. Minimum React version is now 18.</p></li><li><p><strong>Removed deprecated PermissionedRoute:</strong> Use <code>RequirePermission</code> component from <code>@backstage/plugin-permission-react</code>.</p></li><li><p><strong>Removed deprecated signal service exports:</strong> Use <code>SignalsService</code> and <code>DefaultSignalsService</code> instead of the old <code>SignalService</code> and <code>DefaultSignalService</code> exports.</p></li><li><p><strong>Catalog node alpha exports removed:</strong> Several deprecated alpha exports removed from <code>@backstage/plugin-catalog-node/alpha</code>. Use stable exports from <code>@backstage/plugin-catalog-node</code> instead.</p></li><li><p><strong>Location entity refs and update method:</strong> The <code>Location</code> type now includes a required <code>entityRef</code> field. Code that produces <code>Location</code> objects must include this field. New <code>updateLocation</code> method added to <code>CatalogApi</code> and <code>CatalogService</code>.</p></li></ul><p><strong>Highlights:</strong></p><ul><li>New catalog model layer system (alpha, opt-in) for declaring and extending entity kinds, annotations, and relations using JSON Schema</li><li>Experimental embedded Postgres support for local development</li><li>New <code>DialogApi.open()</code> method</li><li>Enhanced Backstage UI components, including Badge, RangeSlider, and CheckboxGroup</li></ul><p>See the <a href="https://backstage.io/docs/releases/v1.50.0/">v1.50.0 migration documentation</a> for detailed upgrade guidance.</p><p>Full changelog: <a href="https://github.com/backstage/backstage/releases/tag/v1.50.0">https://github.com/backstage/backstage/releases/tag/v1.50.0</a></p><hr><p>Read past issues: <a href="https://roadie.io/backstage-weekly/">https://roadie.io/backstage-weekly/</a></p>
]]></content:encoded></item><item><title><![CDATA[Catalog Model Fragments RFC, OAuth Fix & Finland Meetup]]></title><link>https://roadie.io/backstage-weekly/129-catalog-model-fragments-rfc-oauth-fix-finland-meetup/</link><guid isPermaLink="false">https://roadie.io/backstage-weekly/129-catalog-model-fragments-rfc-oauth-fix-finland-meetup/</guid><pubDate>Mon, 13 Apr 2026 13:00:00 GMT</pubDate><description><![CDATA[freben proposes Catalog Model Fragments to formalize entity model extensions, v1.49.4 fixes OAuth regression affecting AI tools, and the first Backstage Finland User Group meetup is announced for May.
]]></description><content:encoded><![CDATA[<p>Core maintainer freben published a mini-RFC proposing Catalog Model Fragments, a new system for plugins to formally declare and extend the entity model. Backstage v1.49.4 shipped with an OAuth 2.0 fix affecting MCP and AI tool integrations. The community explored building Backstage MCP servers inspired by Spotify's AiKA, discussed Zod schema incompatibility blocking v1.49.x upgrades, and surfaced patterns for running multiple environments on shared PostgreSQL servers. A yarn tsc out-of-memory issue after Zod upgrades generated substantial discussion. The first Backstage Finland User Group meetup was announced for May 19 in Helsinki. April Fools brought a Windows 95-themed Backstage UI complete with Clippy assistant.</p><p><img src="https://secure.meetupstatic.com/photos/event/3/2/7/4/highres_533592916.webp?w=640" alt="Backstage Finland User Group"></p><h3>Catalog Model Fragments RFC: Formalizing entity model extensions</h3><p>Core maintainer freben <a href="https://discord.com/channels/687207715902193673/923144214580191282/1490702946533638274">announced in #catalog</a> that he'd opened a mini-RFC on GitHub (<a href="https://github.com/backstage/backstage/issues/33770">issue #33770</a>) calling for community input on a new alpha system for declaring, extending, and introspecting the catalog entity model. The proposal would let plugins register their own entity model fragments (custom fields, relationships, or metadata schemas) in a structured way that the catalog engine can reason about, rather than relying on ad hoc conventions.</p><p>The current model treats the catalog schema as implicit. Plugins add fields or relationships through convention, but there's no formal registration mechanism. This makes it difficult for tools to discover what fields are valid, for validation to catch schema drift, and for documentation to stay synchronized with actual usage. The RFC treats this as an API review opportunity ahead of implementation. Comment on the issue directly if you've ever wished plugins could formally advertise what they add to the catalog.</p><h3>v1.49.4 ships with OAuth fix for MCP and AI integrations</h3><p>Backstage <a href="https://github.com/backstage/backstage/releases/tag/v1.49.4">v1.49.4</a> landed on April 7 with a focused set of fixes. It addresses a previous regression where the OAuth 2.0 Protected Resource Metadata endpoint was returning the wrong URL, affecting MCP and AI tool integrations. It also fixes an incorrect legacy-frontend-plugin template name and several other minor issues.</p><p>The OAuth fix solved an issue where Backstage actions worked fine with GitHub Copilot in VS Code but failed with Claude Code. The community had already flagged this in <a href="https://discord.com/channels/687207715902193673/1034089724664610938">#backend-system</a>, and <a href="https://github.com/backstage/backstage/pull/33092">PR #33092</a> resolves it by correcting the metadata endpoint response.</p><h3>First Backstage Finland User Group meetup announced for May</h3><p>The <a href="https://www.meetup.com/backstage-finland-user-group/events/314169878/">Backstage Finland User Group</a> is hosting its inaugural meetup on Tuesday, May 19, 2026, the day before KubeCon Community Day in Helsinki. The event was <a href="https://discord.com/channels/687207715902193673/831533806899953715/1491302094190153890">announced in #meetups</a> by drodil on April 8. The community-organized event includes knowledge sharing, live demos, and networking. Speakers are welcome to present. Contact drodil directly if you're interested.</p><h2>Community Discussions</h2><h3>🤖 Community wants to build a Backstage MCP, inspired by Spotify's AiKA</h3><p>A Spotify R&#x26;D video titled "Build like Vincenzo: AiKA | Spotify for Backstage" sparked an <a href="https://discord.com/channels/687207715902193673/1489259833579409458">8-message thread in #general</a>, with community members asking about the MCP tooling used in the demo. SonilPro's team is trying to build a Backstage MCP server that can answer questions about their system, similar to how AiKA works internally at Spotify. freben joined in and suggested that Backstage's TechDocs search action would be a natural starting point for MCP tool definitions in documentation lookup use cases. Teams are actively exploring how to expose Backstage's catalog as context for AI coding agents, and this thread is a good snapshot of where that work stands.</p><h3>🔐 Service account vs. user token: permissions in multi-tool Backstage</h3><p>A <a href="https://discord.com/channels/687207715902193673/1489540420215111732">thread in #auth</a> surfaced a common architectural tension: when Backstage integrates with tools like Bitbucket, Jenkins, Kubernetes, and Jira via Keycloak, teams often use a shared service account token for backend-to-service communication, bypassing individual user permissions. This is particularly concerning when AI agents are granted Backstage access to open PRs. The thread explored whether Backstage should proxy user-scoped JWT tokens to downstream services and whether the permissions framework should support federated permission checks from external systems. No clear solution emerged, but teams building AI-augmented pipelines will increasingly run into this design problem.</p><h3>🔑 Zod schema incompatibility blocking upgrades to v1.49.x</h3><p>Jon Koops opened a <a href="https://discord.com/channels/687207715902193673/1489207408218734794">6-message thread in #general</a> requesting a backport of PR #33536 to the v1.49.x line. The change, which refactors APIs to use <code>TSchema extends ZodType</code> instead of <code>ZodSchema&#x3C;Output, ZodType...></code> decomposition, is blocking downstream consumers who can't jump directly to v1.50. freben explained that the team generally doesn't backport breaking-change fixes to stable branches, and the pragmatic workaround is a Yarn <code>resolution</code> override. A related <a href="https://discord.com/channels/687207715902193673/1006844959170764851/threads/1491001601740116059">#support thread</a> posted April 7 is also asking about Zod v4.x compatibility, and is still awaiting a maintainer response.</p><h3>🏗️ Running multiple Backstage environments on one PostgreSQL server</h3><p>A <a href="https://discord.com/channels/687207715902193673/1488838813538062467">thread in #general</a> explored how to isolate multiple Backstage environments (for example, <code>idp_dev</code> and <code>idp_uat</code>) on a single shared PostgreSQL server. Backstage creates one database per plugin (catalog, app, search), so running two full environments means managing <code>TOTAL_PLUGINS × N_ENVIRONMENTS</code> databases, which gets unwieldy fast. The thread covered schema-naming conventions and whether a shared server is actually worth the operational complexity compared to dedicated instances per environment.</p><h3>💾 yarn tsc out of memory after Zod upgrade</h3><p>A <a href="https://discord.com/channels/687207715902193673/1006844959170764851/threads/1488809734441144422">#support thread</a> from April 1 hit on a widespread pain point: after updating to recent Backstage versions, <code>yarn tsc</code> crashes with a JS heap out-of-memory error. Dinesh confirmed that updating from Zod v3 to Zod v4 resolved the OOM, and freben added context: ensure everything is at least <code>^3.25.0</code>, prefer <code>import { z }</code> over <code>import z</code>, and use <code>from 'zod/v3'</code> explicitly to avoid the v3/v4 ambiguity. A related <a href="https://discord.com/channels/687207715902193673/1483759483950862421">thread in #general</a> from the same week noted that migrating from the deprecated <code>makeFieldSchemaFromZod</code> to <code>makeFieldSchema</code> also stopped the OOM during type-checking.</p><h3>😄 Entity provider with delta mutation: How does it actually work?</h3><p>In a <a href="https://discord.com/channels/687207715902193673/1006844959170764851/threads/1488216961140920433">13-message thread in #support</a>, Enri Kapaj from Red Hat asked how delta-type entity providers know when to fire. Full-mutation providers run on a schedule you define, but delta providers are event-driven with no obvious wiring. freben clarified that some listen to PubSub messages, some run on a cadence, and some are triggered by API calls from a custom backend plugin. The catalog engine receives mutation commands without caring about the source. This thread is now a solid community reference for anyone building event-driven entity ingestion.</p><h3>📝 app-config.yaml intellisense: The community wants it, it's just hard</h3><p>Sarabadu kicked things off with a well-received meme ("I don't know if there is an easy way to get app-config intellisense, and at this point I'm too afraid to ask") that triggered an <a href="https://discord.com/channels/687207715902193673/1489734293818445927">8-message thread</a> about IDE support for <code>app-config.yaml</code>. Partial intellisense exists for the core framework via <code>config.d.ts</code> schema files, but it doesn't extend to installed community plugins. freben noted that plugin schema discovery is non-trivial, but hinted that the output of <code>backstage-cli config:schema</code> could potentially feed into standard VS Code JSON schema tooling. freben replied on April 7, so it's worth watching.</p><h3>😂 April Fools: Windows 95-themed Backstage UI with Clippy</h3><p>The community marked April 1 in their own way. Ballpointcarrot <a href="https://discord.com/channels/687207715902193673/1489008598901198968">shared a Windows 95-themed Backstage UI</a> complete with a "Clippy"-style assistant with benji saying it was better than his own half-finished "Backstage premium subscription plugin" joke. The "Backstage is dead" LinkedIn post shared by drodil ( from Zohar Einy and Spotify for Backstage) prompted a <a href="https://discord.com/channels/687207715902193673/1488903320377495655">6-message thread</a> including freben quipping "...you'd be poor 😂".</p><h2>Changelog</h2><h3>v1.49.4</h3><p>Released April 7, 2026</p><p>Highlights:</p><ul><li>Fixed OAuth 2.0 Protected Resource Metadata endpoint returning wrong URL (affecting MCP and AI tool integrations)</li><li>Corrected legacy-frontend-plugin template name</li><li>Additional minor bug fixes</li></ul><p>Full changelog: <a href="https://github.com/backstage/backstage/releases/tag/v1.49.4">https://github.com/backstage/backstage/releases/tag/v1.49.4</a></p><h3>v1.50.0-next.2</h3><p>Released April 7, 2026</p><p>Highlights:</p><ul><li>Second prerelease of v1.50 cycle</li><li>Continues work from v1.50.0-next.1</li></ul><p>Full changelog: <a href="https://github.com/backstage/backstage/releases/tag/v1.50.0-next.2">https://github.com/backstage/backstage/releases/tag/v1.50.0-next.2</a></p><hr><p>Read past issues: <a href="https://roadie.io/backstage-weekly/">https://roadie.io/backstage-weekly/</a></p>
]]></content:encoded></item><item><title><![CDATA[BackstageCon Recordings, DevLake Plugin, and Two New Releases]]></title><link>https://roadie.io/backstage-weekly/128-backstagecon-recordings-devlake-plugin-new-releases/</link><guid isPermaLink="false">https://roadie.io/backstage-weekly/128-backstagecon-recordings-devlake-plugin-new-releases/</guid><pubDate>Mon, 06 Apr 2026 13:00:00 GMT</pubDate><description><![CDATA[BackstageCon recordings are live, Unity contributes a DevLake DORA plugin, and the community surfaces critical upgrade issues in two releases shipped this week.]]></description><content:encoded><![CDATA[<p>BackstageCon Europe 2026 recordings are now available, including the KubeCon keynote Live Demo Showcase. We published a technical deep dive on context engineering as the prerequisite enterprise AI deployments are missing, examining why most initiatives stall when context layers are built on unstructured data. Unity's VP of Engineering contributed a DevLake-to-DORA backend module after community validation. The Backstage team shipped two releases (v1.49.3 and v1.50.0-next.1), but v1.49.3 introduced double headers and scaffolder regressions. Community discussions covered supply chain security hardening, plugin isolation architecture, and AI-powered scaffolder experiments replacing traditional templates with Copilot-backed chatbots.</p><p><img src="https://img.youtube.com/vi/cTXlkhKXgyE/maxresdefault.jpg" alt="Backstage: From Spreadsheet to Standard"></p><h3>BackstageCon Europe 2026 recordings now available</h3><p>The recordings from BackstageCon Europe 2026 are now live. The <a href="https://www.youtube.com/watch?v=cTXlkhKXgyE&#x26;t=298s">KubeCon keynote Live Demo Showcase</a> is available on YouTube, along with the CNCF documentary "Backstage: From Spreadsheet to Standard."</p><p>Co-chair balajisiva <a href="https://discord.com/channels/687207715902193673/687207715902193679/1487105297603494128">shared raw community feedback in #general</a> from the event. Highlights from the "what's working" side included good adoption momentum, easy upgrades, MCP actions becoming useful, and the flexible entity model. Pain points included ESM support gaps, breaking changes between minor versions, the complexity of the new frontend system, and keeping YAML-based component definitions in sync.</p><h3>Context engineering: The prerequisite your enterprise AI deployment is missing</h3><p>We published a technical piece this week on why most enterprise AI initiatives stall. It looks at context engineering as an architectural discipline that determines whether LLMs have accurate, current, and scoped information at inference time. The piece covers four layers: data collection and normalization, semantic modeling and entity resolution, retrieval strategy design, and context validation.</p><p>Enterprises accumulate context debt when LLM features are built on unstructured context layers. Service metadata sits distributed across GitHub, Jira, PagerDuty, Confluence, and custom CMDBs with no consistent schema. Ownership modeling defaults to ad hoc assignments with no canonical identity. Almost no tooling tracks lineage by default.</p><p>The guide includes a context readiness audit with five critical questions to ask before shipping your next AI feature. Five yes answers mean your context layer is ready to support an LLM feature. Fewer than five means you still have some architectural work to do. We also argue that a well-maintained software catalog already gives you the critical foundation for context infrastructure.</p><p>→ <a href="https://roadie.io/blog/context-engineering-enterprise-ai-prerequisite/">Read the full article</a></p><h3>Unity contributes DevLake DORA metrics plugin</h3><p>Miki Lior (VP Engineering at Unity) contributed a new <a href="https://github.com/backstage/community-plugins/pull/8364">DevLake-to-DORA Backend Module</a> after an <a href="https://discord.com/channels/687207715902193673/1211692810294788126/threads/1484915554996195399">18-message community validation thread in #plugins</a>. The plugin bridges Apache DevLake's engineering metrics API directly to the standard Backstage DORA plugin, featuring a new <code>EntityDoraCard</code> for the Catalog Overview, a Secure SQL Proxy for DevLake v1.0.2, and full compatibility with the new Backend System architecture. If your organization uses DevLake for engineering metrics, this provides a direct path to surface DORA metrics in your internal developer portal.</p><h3>Two releases this week, v1.49.3 ships with regressions</h3><p>The Backstage team shipped two releases in the past week. <a href="https://github.com/backstage/backstage/releases/tag/v1.49.3">v1.49.3</a> landed on March 28 with accidentally self-deprecating release notes. Maintainer freben forgot that the automation would take the release note text verbatim, resulting in notes that read "I messed up #33600 in a silly way so ... made this instead" (it got its own <a href="https://discord.com/channels/687207715902193673/687207715902193679/threads/1488081472337219604">#silly-goose thread</a>). <a href="https://github.com/backstage/backstage/releases/tag/v1.50.0-next.1">v1.50.0-next.1</a> landed on March 31, kicking off the next minor release cycle.</p><p>v1.49.3 introduced two significant regressions. Users upgrading from v1.48.3 to v1.49.3 are seeing <a href="https://discord.com/channels/687207715902193673/1101159492298743808/threads/1488185135953084449">two page headers render on most pages</a> in the new frontend system. Adam (tty0) <a href="https://discord.com/channels/687207715902193673/923143744176418836/threads/1486791112147337287">reported in #scaffolder</a> that v1.49.x broke the NFS custom field explorer, affecting both the template editor and custom field extension loading. Adam already opened <a href="https://github.com/backstage/backstage/pull/33599">PR #33599</a> to fix the scaffolder issue, so a patch should arrive soon. If you're planning to upgrade to v1.49.3, monitor these threads for fixes before pulling the trigger.</p><h2>Community Discussions</h2><h3>Supply chain security: yarn-install action uses version refs instead of hashes</h3><p>In #maintenance, a contributor from INGKA (IKEA Group) flagged that <code>backstage/actions/yarn-install</code><a href="https://discord.com/channels/687207715902193673/1201559534754345110/1488495628152475739">still pins its cache action using a version tag rather than a full commit hash</a>, which fails stricter supply chain security policies such as those required by the trivy toolchain. INGKA already issued an internal fix and opened <a href="https://github.com/backstage/actions/pull/184">PR #184</a> to pin the cache action version to a hash upstream. Teams using GitHub Actions with hardened supply chain policies should be aware of this until the fix is merged.</p><h3>Backend startup failure when upgrading from v1.46 to v1.47+</h3><p>A <a href="https://discord.com/channels/687207715902193673/1006844959170764851/threads/1486729815938699264">busy support thread</a> (21 messages) tackled a common pain point when upgrading from v1.46.x to v1.47+. The backend throws <code>Plugin 'catalog' startup failed; service or extension point dependencies of plugin 'catalog' are missing: serviceRef{alpha.core.metrics}</code> because the new alpha metrics service needs to be explicitly imported. The fix is to add <code>import { rootSystemMetadataServiceFactory } from '@backstage/backend-defaults/alpha'</code> to your <code>backend/index.ts</code>. A helpful tip from the thread: use <code>yarn why &#x3C;package-name></code> to diagnose version mismatches when upgrading.</p><h3>Plugin isolation and data access security architecture</h3><p>A <a href="https://discord.com/channels/687207715902193673/1041734397369532487/threads/1486363040407355452">12-message thread in #security</a> explored whether Backstage's plugin architecture provides sufficient isolation to prevent a compromised plugin from accessing sensitive data in other plugins via <code>code.api</code> calls. The thread examined whether Backstage's permissions framework can be used to restrict inter-plugin access. Peter "Parsifal-M" mentioned that OPA (Open Policy Agent) can help with this. The thread also discussed whether Dependabot surfaces community plugin vulnerabilities. Teams running Backstage in high-security environments should treat this as an open architectural question.</p><h3>Announcements plugin docs fixed after community-reported confusion</h3><p>A <a href="https://discord.com/channels/687207715902193673/1211692810294788126/threads/1487094223521058840">15-message thread in #plugins</a> surfaced that the documentation for configuring <code>NewAnnouncementsBanner</code> was incorrect. Specifically, the config key documented in <code>app-config.yaml</code> for disabling the banner didn't actually work. Community member Tyson tracked down the issue, and contributor kurtaking opened <a href="https://github.com/backstage/community-plugins/pull/8363">PR #8363</a> to fix the docs and add instructions for how to properly disable the banner.</p><h3>Scaffolder + AI: Replacing templates with Copilot-backed chatbots</h3><p>A discussion started in <a href="https://discord.com/channels/687207715902193673/923143744176418836">#scaffolder</a> when goldbug1 described experimenting with the <code>copilot-sdk</code> to replace traditional scaffolder templates with an AI-powered "create new app" chatbot backed by GitHub Copilot.
The chatbot uses Backstage scaffolder actions as tools so it can scaffold apps the same way a template would. The thread attracted community commentary and is an early signal of how teams are exploring AI-augmented scaffolding.</p><h3>Zod v3 to v4 migration underway internally</h3><p>A March 27 post in #general noted that the internal migration of <code>@backstage/backend-defaults</code> from Zod v3 to v4 is in progress (<a href="https://github.com/backstage/backstage/actions/runs/23655426685/job/68911291239?pr=33629">linked commit</a>). This is relevant for anyone building plugins that depend on Backstage's internal Zod usage, and for plugin maintainers who may want to align their own Zod versions ahead of any downstream breaking changes.</p><h2>Changelog</h2><h3>v1.49.3</h3><p>Released March 28, 2026</p><p>Highlights:</p><ul><li>Contains regressions: double headers in new frontend system, broken NFS custom field explorer</li><li>Accidentally self-deprecating release notes (automation artifact)</li><li>Patches expected soon</li></ul><p>Full changelog: <a href="https://github.com/backstage/backstage/releases/tag/v1.49.3">https://github.com/backstage/backstage/releases/tag/v1.49.3</a></p><h3>v1.50.0-next.1</h3><p>Released March 31, 2026</p><p>Highlights:</p><ul><li>First prerelease of v1.50 minor release cycle</li><li>Continues work from v1.50.0-next.0</li></ul><p>Full changelog: <a href="https://github.com/backstage/backstage/releases/tag/v1.50.0-next.1">https://github.com/backstage/backstage/releases/tag/v1.50.0-next.1</a></p><hr><p>Read past issues: <a href="https://roadie.io/backstage-weekly/">https://roadie.io/backstage-weekly/</a></p>
]]></content:encoded></item><item><title><![CDATA[KubeCon Recap, 4 Backstage Releases & Context Engineering Explained]]></title><link>https://roadie.io/backstage-weekly/127-kubecon-recap-backstage-releases-context-engineering/</link><guid isPermaLink="false">https://roadie.io/backstage-weekly/127-kubecon-recap-backstage-releases-context-engineering/</guid><pubDate>Mon, 30 Mar 2026 13:00:00 GMT</pubDate><description><![CDATA[KubeCon Europe recap, four Backstage releases in one week, the CNCF documentary premiere, and a closer look at why context engineering is becoming the real challenge for AI systems.]]></description><content:encoded><![CDATA[<p>A sprint week at KubeCon delivered four Backstage releases (v1.49.0 through v1.49.2, plus v1.50.0-next.0), fixing regressions and launching the next cycle. The CNCF documentary "Backstage: From Spreadsheet to Standard" premiered at KubeCon Amsterdam. Roadie's team presented on AI context engineering and agentic catalog management at BackstageCon Europe. A new piece from Roadie examines why most AI systems fail at the context engineering layer rather than the prompt. The community surfaced critical production issues, including PostgreSQL deadlocks in multi-replica deployments and TypeScript compiler OOMs after v1.49.0 upgrades.</p><p><img src="https://www.cncf.io/wp-content/uploads/2025/08/KCCNC-EU-25-CFP-1.jpg" alt="Backstage Logo"></p><h3>BackstageCon Europe 2026</h3><p>BackstageCon Europe 2026 took place on March 23 at RAI Amsterdam as a co-located event with KubeCon + CloudNativeCon Europe, featuring talks on AI integration with platform engineering, agentic software catalogs, and production patterns.</p><p>Roadie's team participated with two presentations. David Tuite delivered a <a href="https://colocatedeventseu2026.sched.com/event/2Djmz/backstagecon-sponsored-keynote-ai-cant-use-data-it-doesnt-have-david-tuite-roadie">sponsored keynote titled "AI Can't Use Data it Doesn't Have"</a>, covering how to provide AI the context it needs. He demoed live how Roadie can help platform teams use agents in production with 34% better answer correctness than direct MCP and up to 88% less token usage.</p><p>Sam Nixon presented <a href="https://colocatedeventseu2026.sched.com/event/2DY30/agentic-backstage-how-to-manage-an-ai-software-catalog-sam-nixon-roadie">"Agentic Backstage: How To Manage an AI Software Catalog"</a>, examining how autonomous agents increasingly become the primary users of engineering systems. When your software catalog serves AI agents, it needs fresher metadata, traversable relationships, structured low-token output, and actionability behind proper permissions. Provider-based ingestion beats manual YAML authoring at scale, and relationships matter more than perfect taxonomy.</p><p>Other BackstageCon sessions included <a href="https://kccnceu2026.sched.com/event/2EF6r/the-state-of-backstage-in-2026-ben-lambert-patrik-oldsberg-spotify">"The State of Backstage in 2026"</a> from core maintainers Ben Lambert and Patrik Oldsberg, and the <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">Backstage ContribFest</a> for contributors to make direct open source impact. If you’ve been thinking about contributing, you can check out the [Getting Started Guide] (https://contribfest.backstage.io/getting-started/)
Available recordings from these sessions will be shared in upcoming newsletters.</p><p>The CNCF documentary "Backstage: From Spreadsheet to Standard" <a href="https://kccnceu2026.sched.com/event/2ILJt/documentary-premiere-backstage-from-spreadsheet-to-standard">premiered at KubeCon + CloudNativeCon Europe</a>. The film, produced with support from Spotify and Roadie, traces how Backstage evolved from an internal Spotify tool into a CNCF standard for developer portals. The documentary is <a href="https://youtu.be/gJHYTlO0VwA">now available on YouTube</a>.</p><p><a href="https://youtu.be/gJHYTlO0VwA"><img src="https://img.youtube.com/vi/gJHYTlO0VwA/maxresdefault.jpg" alt="Backstage: From Spreadsheet to Standard"></a></p><h3>Prompt Engineering vs Context Engineering: Roadie explains why AI systems fail</h3><p>Roadie published a technical guide this week on the distinction between prompt engineering (how you phrase instructions) and context engineering (what information actually reaches the model). As Andrej Karpathy frames it, the LLM is the CPU, and the context window is RAM. Everything the model can reason about must fit into that buffer before generation starts.</p><p>The guide argues that most AI projects fail because of poor context inputs rather than model limitations. A service dependency agent can have a perfectly crafted system prompt and still hallucinate answers when it runs without the relevant catalog metadata. The same prompt with actual entity data injected produces correct, grounded results, with the improvement coming entirely from what gets loaded into the context window.</p><p>The article examines four failure patterns that prompt-only approaches can't solve. <a href="https://arxiv.org/abs/2307.03172">Stanford's "Lost in the Middle" research</a> shows models ignore content in the middle of 20 documents, meaning positional attention degrades recall on long contexts. Context rot hits before token limits, with performance dropping as context grows even under 128K tokens. Static prompts can't track dynamic systems, so the model doesn't know that the on-call rotation shifted or the runbook was updated. Uncontrolled context produces non-determinism that's impossible to debug, where the same prompt yields different outputs with no way to reproduce them.</p><p>The guide includes a production context pipeline architecture, Python code for wiring the Backstage Catalog API into a retrieval pipeline, and a comparison table showing how prompt engineering and context engineering differ in scope, ownership, and failure modes.</p><p>Read the full article: https://roadie.io/blog/prompt-engineering-vs-context-engineering/</p><p><strong>Backstage ships v1.49.0 through v1.50.0-next.0 in one week</strong></p><p>The Backstage team shipped four releases between March 18-24. v1.49.0 dropped on March 18 with the New Frontend System 1.0 RC as the new default, marking a milestone in the platform's evolution. Patch releases v1.49.1 (March 20) and v1.49.2 (March 22) followed quickly to address regressions. The patch releases added a <code>titleLink</code> prop to <code>PageLayoutProps</code> so plugin header titles can link back to the plugin root, removed the now-unnecessary <code>@backstage/cli-module-new</code> package, and fixed OIDC/CIMD redirect URI matching to support any port on loopback addresses. The v1.50.0‑next.0 prerelease landed on March 24, opening the next release cycle.</p><p>Full release notes: <a href="https://github.com/backstage/backstage/releases/tag/v1.49.0">v1.49.0</a>, <a href="https://github.com/backstage/backstage/releases/tag/v1.49.1">v1.49.1</a>, <a href="https://github.com/backstage/backstage/releases/tag/v1.49.2">v1.49.2</a>, <a href="https://github.com/backstage/backstage/releases/tag/v1.50.0-next.0">v1.50.0-next.0</a></p><h2>Community Discussions</h2><p><strong>PostgreSQL deadlocks in the catalog backend with multiple replicas</strong></p><p>A <a href="https://discord.com/channels/687207715902193673/687207715902193679/threads/1484578906161021029">38-message thread in #general</a> uncovered a serious production issue for anyone running more than one Backstage replica. PostgreSQL deadlocks were occurring in the catalog backend's <code>refresh_state</code> table, surfacing as <code>"PostgreSQL error of type 'error' occurred (code: 40P01)"</code> in OTEL traces. The root cause is concurrent UPDATE statements racing during catalog stitching. Maintainer freben confirmed the first fix was merged and shipped in the <code>-next</code> prerelease on March 24, with the community still investigating a second potential deadlock path in <code>DefaultStitcher</code>. If you're running multiple replicas and seeing this error, watch the -next releases.</p><p><strong>TypeScript compiler OOMs after upgrading to v1.49.0</strong></p><p>Multiple community members hit TypeScript compiler (TSC) <a href="https://discord.com/channels/687207715902193673/1483759483950862421">out-of-memory crashes after upgrading to v1.49.0</a>. Maintainer freben identified the likely cause as mixed zod 3/zod 4 imports causing excessive type-checking memory usage. The fix involves ensuring your workspace uses at least <code>zod@^3.25.0</code>, preferring <code>import { z } from 'zod'</code> over the default import, and using explicit <code>from 'zod/v3'</code> paths where needed. Rugvip confirmed that v1.49.1 also addressed many related header alignment regressions introduced in v1.49.0, describing it as a hectic pre-KubeCon patch sprint.</p><p><strong>Scaffolder dry-run now strips task secrets</strong></p><p>A <a href="https://discord.com/channels/687207715902193673/1006844959170764851/threads/1484188141651755008">#support post</a> flagged that a recent security commit (<code>4f5ed06</code>) removed both environment variables and user-supplied <code>task.secrets</code> from Scaffolder dry-run executions. The change was motivated by preventing secret leakage, but the community noted that user-supplied secrets (distinct from env secrets) are now also stripped, breaking integration test suites that rely on the dry-run API with <code>tasks.secrets</code>. If your team uses dry-run executions for testing, review this before upgrading.</p><p><strong>Unity's VP of Engineering plans a DevLake to Backstage DORA plugin</strong></p><p>In a lively <a href="https://discord.com/channels/687207715902193673/1211692810294788126/threads/1484915554996195399">17-message thread in #plugins</a>, Miki Lior (VP of Engineering at Unity) announced plans to contribute a DevLake-to-DORA community backend module that maps DevLake APIs into the standard Backstage DORA plugin. This gives teams using Apache DevLake a way to surface DORA metrics in their IDP. After feedback from maintainer Ahhhndre (recommending the New Frontend System and Backstage UI components), Miki committed to building it as a community plugin, opening a GitHub issue first to gather feedback on the data mapping design. Unity has production use of DevLake, so long-term maintenance is on the table.</p><p><strong>yarn new template naming conflict in v1.49.0</strong></p><p>Community member Sarabadu spotted a bug in #general. Running <code>yarn new</code> in a fresh v1.49.0 workspace throws <code>Error: Invalid template configuration, received conflicting template name 'frontend-plugin'</code>. The cause is the legacy <code>frontend-plugin</code> template name colliding with the new naming convention. Sarabadu <a href="https://github.com/backstage/backstage/pull/33446">opened a PR (#33446)</a> to rename <code>frontend-plugin</code> to <code>legacy-frontend-plugin</code> as a fix. If you're initializing new Backstage workspaces on v1.49.x, this is worth watching.</p><p><strong>Scaffolder SIG skipped due to KubeCon week</strong></p><p>Blam <a href="https://discord.com/channels/687207715902193673/923143744176418836">posted in #scaffolder</a> that the Backstage Scaffolder SIG meeting was cancelled for the week of March 19 due to the KubeCon Amsterdam schedule and maintainers being heads-down in preparation. Community members with Scaffolder topics were invited to bring them up directly at the KubeCon pavilion instead. Regular SIG cadence should resume after the conference.</p><h2>Changelog</h2><h3>v1.49.0</h3><p>Released March 18, 2026</p><p>Highlights:</p><ul><li>New Frontend System 1.0 RC becomes the default frontend framework</li><li>Breaking changes to Backstage UI package</li><li>AI and MCP improvements</li><li>CLI Module System enhancements</li><li>Predicate-based catalog filtering</li></ul><p>Full changelog: <a href="https://github.com/backstage/backstage/releases/tag/v1.49.0">https://github.com/backstage/backstage/releases/tag/v1.49.0</a></p><h3>v1.49.1</h3><p>Released March 20, 2026</p><p>Highlights:</p><ul><li>Added <code>titleLink</code> prop to <code>PageLayoutProps</code> for plugin header navigation</li><li>Fixed header alignment regressions from v1.49.0</li><li>Addressed zod 3/4 type-checking issues</li></ul><p>Full changelog: <a href="https://github.com/backstage/backstage/releases/tag/v1.49.1">https://github.com/backstage/backstage/releases/tag/v1.49.1</a></p><h3>v1.49.2</h3><p>Released March 22, 2026</p><p>Highlights:</p><ul><li>Removed unnecessary <code>@backstage/cli-module-new</code> package</li><li>Fixed OIDC/CIMD redirect URI matching for loopback addresses</li><li>Additional regression fixes</li></ul><p>Full changelog: <a href="https://github.com/backstage/backstage/releases/tag/v1.49.2">https://github.com/backstage/backstage/releases/tag/v1.49.2</a></p><h3>v1.50.0-next.0</h3><p>Released March 24, 2026</p><p>Highlights:</p><ul><li>First prerelease of v1.50 cycle</li><li>PostgreSQL deadlock fix for multi-replica catalog deployments</li></ul><p>Full changelog: <a href="https://github.com/backstage/backstage/releases/tag/v1.50.0-next.0">https://github.com/backstage/backstage/releases/tag/v1.50.0-next.0</a></p>
]]></content:encoded></item><item><title><![CDATA[New Frontend System Becomes Default, AI Context & IDP Architecture]]></title><link>https://roadie.io/backstage-weekly/126-new-frontend-system-default-ai-context-idp-architecture/</link><guid isPermaLink="false">https://roadie.io/backstage-weekly/126-new-frontend-system-default-ai-context-idp-architecture/</guid><pubDate>Mon, 23 Mar 2026 15:00:00 GMT</pubDate><description><![CDATA[Backstage v1.49.0 makes the New Frontend System the default, marking the end of a multi-year migration. Plus, Roadie explores IDP architecture tradeoffs and how the catalog becomes critical infrastructure for AI agents.]]></description><content:encoded><![CDATA[<p>The New Frontend System hit its 1.0 Release Candidate this week with v1.49.0, making it the default for all new Backstage apps. After years of parallel development, the framework switchover is complete. The <code>--next</code> flag is now <code>--legacy</code>, and the ecosystem has a stable foundation for the next chapter of plugin development. Meanwhile, as BackstageCon Europe approaches on March 23, two new pieces from Roadie examine Backstage's architectural position in the IDP market and how the catalog becomes context infrastructure for AI agents.</p><p><img src="https://backstage.io/assets/images/backstage-contribfest-kubecon-web-app-header-aa55b2b3a64c012a90f1e0d2fbeb74ab.png" alt="Contibfest"></p><h3>Backstage v1.49.0 ships with New Frontend System 1.0 Release Candidate</h3><p>Backstage v1.49.0 dropped on March 18. It brings the New Frontend System to 1.0 Release Candidate status, making it the default for all newly created Backstage apps. The old <code>--next</code> flag for <code>create-app</code> has been replaced with a <code>--legacy</code> flag. This is the effective end of a multi-year migration.</p><p>Key changes include significant Backstage UI migrations (entity cards moved from MUI to BUI, new <code>SearchAutocomplete</code>, <code>List</code>, and <code>ListRow</code> components), removal of long-deprecated integrations (Bitbucket, legacy Azure DevOps fields), and new requirements for the <code>ScaffolderApi</code> interface. AI and MCP capabilities expanded with new built-in actions (<code>who-am-i</code>, <code>query-catalog-entities</code>, <code>list-scaffolder-actions</code>, <code>get-scaffolder-task-logs</code>) and support for splitting MCP actions into multiple servers. The CLI was refactored into an extensible module system, the catalog gained predicate-based filtering with operators like <code>$all</code>, <code>$any</code>, and <code>$contains</code>, and a new <code>ToastApi</code> replaces <code>AlertApi</code> for rich notifications.</p><p>Additional improvements include permission batching for better performance, GitLab integration enhancements (configurable throttling, group access scaffolder action), and migration of OpenAPI schemas to version 3.1. Two catalog processors (<code>AnnotateScmSlugEntityProcessor</code> and <code>CodeOwnersProcessor</code>) were deprecated and moved to the Community Plugins repo.</p><p>Full release notes: <a href="https://github.com/backstage/backstage/releases/tag/v1.49.0">https://github.com/backstage/backstage/releases/tag/v1.49.0</a></p><h3>Roadie publishes architectural guide to Backstage and the IDP market</h3><p><img src="https://images.ctfassets.net/hcqpbvoqhwhm/5ho2GN48V9YJynxcMS66eD/0600345f04fe3e54b06f0a0f67a2ae49/image1.png" alt="Backstage architecture diagram"></p><p>Roadie published a technical deep dive on March 17 examining the choice most teams are actually making when evaluating developer portals. What architecture do you want to commit to for the next 5-10 years of developer experience?</p><p>The piece presents three possible paths. Self-hosted Backstage gives you framework ownership and architectural control, but you’re responsible for monthly releases that don't follow semver, the TypeScript tax of plugin compatibility, and the ongoing engineering effort to prevent upgrades from turning into periodic migrations. Proprietary SaaS portals offer speed through vendor-defined schemas and workflows but tie your service metadata to a product-defined model. SaaS portals built on the Backstage standard absorb framework lifecycle management while retaining plugin-based extensibility and catalog-driven context.</p><p>The guide includes a detailed look at the New Backend System migration as a case study in operational complexity. The shift from imperative plugin setup to declarative <code>backend.add()</code> calls, deprecated packages, and changed service communication patterns requires planning, testing, and staged rollouts for self-hosted teams. The article argues this is where the responsibility boundary matters. Self-hosting makes your team responsible for maintaining the framework itself, while SaaS shifts that boundary so teams can focus on extending and using the portal.</p><p>Read the full guide: <a href="https://roadie.io/blog/backstage-and-its-place-among-developer-portals/">https://roadie.io/blog/backstage-and-its-place-among-developer-portals/</a></p><h3>Your IDP is an AI goldmine: Roadie explains context engineering</h3><p><img src="//images.ctfassets.net/hcqpbvoqhwhm/tN5AR7pE9s4VVydIsj8oh/b67e17b8f83989c1f41cc2dc3fa7fe50/image1.png" alt="Your IDP Is an AI Goldmine"></p><p>Roadie published a technical guide this week on how your IDP can become the context infrastructure that makes org-specific AI agents actually work. The gap between what LLMs can do and what they know about your systems is what kills AI adoption beyond code generation.</p><p>Generic tasks like writing unit tests work fine out of the box. But org-specific questions (who owns auth-gateway, did payments-service deploy in the last four hours, what's the runbook for queue consumer failures) require private structural knowledge no pre-trained model has. Most teams dump documentation into vector stores and call it RAG. This produces confident wrong answers when docs go stale or the agent retrieves a page describing your system as it existed eighteen months ago.</p><p>Your IDP already has the context you need. The Catalog API surfaces ownership graphs, dependency maps, deployment history, and incident data as structured, continuously-updated JSON. The article presents three wiring patterns for consuming it (RAG over catalog entities, MCP server wrapping the API, direct function-tool definitions), includes code examples for parsing entity JSON into context strings, and provides a Python script for auditing catalog completeness. The operational hygiene section emphasizes that AI agents are only as good as the catalog data they rely on. Missing `spec.owner` removes escalation paths during incidents, and empty descriptions degrade embedding quality, turning the catalog into unreliable context.</p><p>Read the full article: <a href="https://roadie.io/blog/idp-ai-goldmine-context-engineering/">https://roadie.io/blog/idp-ai-goldmine-context-engineering/</a></p><h2>Community Discussions</h2><h3>v1.49.0 ships with New Frontend System 1.0 RC</h3><p><a href="https://discord.com/channels/687207715902193673/705123584468582400/1483613555369705562">Backstage v1.49.0 was announced on March 18</a> in #announcements. The New Frontend System (NFS) has reached its 1.0 Release Candidate, meaning newly scaffolded Backstage apps now use NFS by default. The old <code>--next</code> flag for <code>create-app</code> has been inverted to <code>--legacy</code>, and <code>yarn new</code> templates now auto-detect which frontend system your app uses and present the appropriate plugin templates.</p><p>The release also brings significant Backstage UI (BUI) breaking changes: new <code>SearchAutocomplete</code> and <code>List</code>/<code>ListRow</code> components built on React Aria, a <code>virtualized</code> prop on <code>Table</code>, centralized <code>BUIProvider</code> routing requirements, and removal of deprecated CSS tokens and types. Entity cards (<code>EntityAboutCard</code>, <code>EntityLinksCard</code>, <code>EntityLabelsCard</code>, and others) have been migrated from MUI to BUI. Additionally, deprecated Bitbucket and legacy integrations have been removed, and <code>ScaffolderApi</code> methods (<code>retry</code>, <code>listTasks</code>, <code>autocomplete</code>, etc.) are now fully required on implementations.</p><p>The demo site upgraded to 1.49.0-next.2 on March 13 and the full stable release followed on March 18. See the <a href="https://github.com/backstage/backstage/releases/tag/v1.49.0">complete release notes on GitHub</a>.</p><h3>v1.49.0 early upgrade issues: TSC OOMs and double headers</h3><p><a href="https://discord.com/channels/687207715902193673/687207715902193679/threads/1483759483950862421">A thread that started within hours of the release</a> in #general is already tracking real-world upgrade pain. Contributor drodil (Buildforce) reported that upgrading to 1.49.0 causes TypeScript compilation to OOM even with <code>--max-old-space-size=16384</code>, <code>backstage-cli repo lint</code> taking 466 seconds on a handful of files, and double headers appearing on catalog pages (one from BUI, one from the old core components). Maintainer Rugvip confirmed the double-header issue is a known transitional artifact while the BUI/NFS cleanup completes, and began investigating the TSC and lint regressions. If you're planning to upgrade, watch this thread before starting.</p><h3>Framework SIG missed due to Daylight Saving Time confusion</h3><p>A <a href="https://discord.com/channels/687207715902193673/687207715902193679/threads/1483481281735037101">33-message thread in #general</a> on March 17 highlighted a community coordination issue around SIG scheduling. The biweekly Backstage Framework SIG was missed after the meeting time was configured in a US Eastern timezone, causing European participants (in Stockholm/Amsterdam, which had just entered DST) to see the event one hour earlier than expected.</p><p>Maintainer freben apologized for the miss, noting he was heads‑down on the v1.49.0 release. The thread turned into a discussion about how the community tracks SIG schedules, surfacing that Discord event exports use UTC without explicit timezone context, making them unreliable across DST transitions. The consensus was that SIG meetings in the shared Google Calendar should be set to CET/Europe/Stockholm rather than a US‑based timezone to avoid future drift.</p><h3>Is NFS the default yet? Community asks about the switchover timeline</h3><p>Jon Koops opened a <a href="https://discord.com/channels/687207715902193673/687207715902193679/threads/1483495541991276749">short thread in #general</a> on March 17, asking whether it made sense to make the New Frontend System the default for <code>create-app</code>, noting that the <code>--next</code> flag still felt opt-in while NFS had matured significantly. The question turned out to be perfectly timed. v1.49.0 (released the next morning) answered it definitively by flipping the default.</p><h3>NFS migration challenges: Scaffolder TaskPageComponent missing and routing gaps</h3><p>Multiple discussions in <a href="https://discord.com/channels/687207715902193673/1101159492298743808/threads/1481889254559977533">#frontend-system</a> this week showed that teams are actively attempting the NFS migration and running into real gaps. One team (arlamaeen, March 5) discovered that <code>TemplateWizardPageProps</code> in the NFS scaffolder alpha doesn't expose a <code>TaskPageComponent</code> option (available in the legacy system), making it impossible to replace the task page UI without forking. Meanwhile, another user (Dinesh, March 12–13) reported a <a href="https://discord.com/channels/687207715902193673/1101159492298743808/1481516281151754320">blank page on the base route after migrating the homepage</a>. A separate thread showed teams struggling with custom routing for entity pages and the K8s plugin. Community member Sarabadu shared a <a href="https://dev.to/sarabadu/backstage-logbook-migrating-the-catalog-plugin-to-the-new-frontend-system-f6">practical migration logbook on dev.to</a> (posted March 16) documenting their catalog plugin migration journey, which received a warm community reception. The prevailing sentiment is that the docs have gaps, routing for custom pages is the biggest blocker, and the community is learning in the open while the 1.0 RC stabilizes.</p><h3>RBAC + OIDC role mapping: Dynamic role assignment from Keycloak</h3><p>A detailed <a href="https://discord.com/channels/687207715902193673/1211692810294788126/1483087771810660363">exchange in #plugins</a> starting March 16 tackled a common enterprise pattern: how to dynamically assign RBAC roles to users based on roles returned from an OIDC provider (Keycloak), without hardcoding group memberships in <code>policy.yaml</code>. User Mattia Dell'Oca hit the <code>Policy already set</code> error when trying to stack a second policy implementation. Contributor pknight6443 pointed to RBAC providers as the correct approach. This involves creating a custom backend module that calls Keycloak at login time and invokes <code>applyRoles</code> and <code>applyPermissions</code> dynamically. This is a pattern many enterprise teams are converging on.</p><h3>BackstageCon Plugins Panel soliciting community input</h3><p>A <a href="https://discord.com/channels/687207715902193673/1211692810294788126/1481493339839922327">#plugins post</a> invited the Backstage community to submit questions for the Plugins Panel at BackstageCon Europe 2026 (March 23, Amsterdam, co-located with KubeCon). The panel will cover plugin stewardship, contribution barriers, balancing innovation with maintenance quality, and what should happen when a plugin is no longer maintained. If you're attending KubeCon or BackstageCon and have opinions on plugin health, ownership, or the contributor experience, there is still time to submit questions. A reminder in <a href="https://discord.com/channels/687207715902193673/1045031039061479536">#adoption</a> also asked who from the community will be present in Amsterdam.</p><h3>Scale question: 200,000+ entities with 6+ relations each</h3><p>A <a href="https://discord.com/channels/687207715902193673/923144214580191282/threads/1481938196471349449">4-message thread in #catalog</a> from March 13 asked whether anyone had practical experience ingesting very large catalogs (200k+ entities each with six or more relations). User Hulmir reported hitting issues at scale and asked for guidance on tuning the catalog for this volume. freben jumped in to confirm the specific errors being seen, signaling the start of a troubleshooting discussion. This thread is worth monitoring if you're running or planning to run Backstage at this scale.</p><h3>MCP/AI discoverability of skills in the catalog</h3><p>A brief <a href="https://discord.com/channels/687207715902193673/923144214580191282/1483144422613844099">message in #catalog</a> on March 16 from cal5barton asked how teams are making MCPs and AI skills discoverable within Backstage. The question drew reactions from multiple community members, suggesting broad interest, but no clear direction yet. With MCP becoming a widely-adopted standard for AI agent tooling, integrating MCP discovery into the Software Catalog (as a new kind, as annotations, or via a dedicated plugin) is an emerging topic that the community is starting to explore.</p><h2>Changelog</h2><h3>v1.49.0</h3><p>Released March 18, 2026</p><p><strong>Highlights:</strong></p><ul><li>New Frontend System 1.0 Release Candidate (NFS now default for new apps)</li><li>Backstage UI breaking changes (new components, removed props, CSS token changes)</li><li>Entity cards migrated from MUI to BUI</li><li>Deprecated Bitbucket and legacy integrations removed</li><li>AI and MCP improvements (new built-in actions, MCP server splitting)</li><li>CLI Module System refactored into extensible architecture</li><li>Predicate-based catalog entity filtering</li><li>New ToastApi replaces AlertApi</li><li>Permission batching for improved performance</li></ul><p>Full changelog: <a href="https://github.com/backstage/backstage/blob/master/docs/releases/v1.49.0-changelog.md">https://github.com/backstage/backstage/blob/master/docs/releases/v1.49.0-changelog.md</a></p>
]]></content:encoded></item><item><title><![CDATA[v1.49 Pre-Release, Context Engineering & MCP Discovery]]></title><link>https://roadie.io/backstage-weekly/125-v149-pre-release-context-engineering-mcp-discovery/</link><guid isPermaLink="false">https://roadie.io/backstage-weekly/125-v149-pre-release-context-engineering-mcp-discovery/</guid><pubDate>Mon, 16 Mar 2026 15:00:00 GMT</pubDate><description><![CDATA[Backstage v1.49.0-next.2 lands ahead of the March 17 release while the community debates DOM types, catalog modeling, and AI integrations. Roadie’s context engineering deep dive reframes IDPs as the missing layer for grounding AI development.]]></description><content:encoded><![CDATA[<p><img src="//images.ctfassets.net/hcqpbvoqhwhm/3C0J5TmmD5Nm2aaRL3WnlN/c4f545662c81eaa1d49d15004b139ae9/backstage-contribfest-kubecon-web-app-header-aa55b2b3a64c012a90f1e0d2fbeb74ab.png" alt="Backstage ContribFest Kubecon"></p><p>The pre-conference quiet continued this week. Backstage shipped v1.49.0-next.2 with incremental fixes ahead of the March 17 stable release, while the community focused on New Frontend System migrations and the recurring DOM types debate in backend packages.</p><p>Roadie published a deep dive on context engineering that reframes AI grounding as a platform discipline that requires structured catalog metadata, not just better prompts. With BackstageCon and KubeCon Europe eleven days away, Discord traffic is centered on migration patterns, MCP discovery, and getting production instances ready for Amsterdam.</p><h3>v1.49.0-next.2 ships incremental fixes</h3><p><a href="https://github.com/backstage/backstage/releases/tag/v1.49.0-next.2">Backstage v1.49.0-next.2</a> landed on March 10, the second weekly pre-release in the v1.49 cycle. This follows v1.49.0-next.1 from March 3 and keeps everything on track for the stable v1.49.0 release expected March 17. The full changelog is available in <code>docs/releases/v1.49.0-next.2-changelog.md</code>. The v1.49.0 release will be the last before KubeCon Europe and BackstageCon on March 23.</p><h3>Roadie publishes Context Engineering deep dive</h3><p><img src="https://roadie.io/_next/image/?url=https%3A%2F%2Fimages.ctfassets.net%2Fhcqpbvoqhwhm%2F5S9aa96TLOgqCIrFmAjIHN%2F7938e1870de4fd36d3640204b35ad00b%2Fimage1.png%3Fw%3D500%26h%3D500%26fm%3Dwebp&#x26;w=1080&#x26;q=75" alt="Context Engineering: The Missing Discipline in AI-Assisted Development"></p><p>Roadie published "<a href="https://roadie.io/blog/context-engineering-ai-development/">Context Engineering: The Missing Discipline in AI-Assisted Development</a>" this week, arguing that organizational context is the unsolved layer in AI coding tools. GitHub Copilot and Cursor handle local context and repository context reasonably well, but neither knows who owns <code>payment-service</code>, what lifecycle state <code>legacy-auth-api</code> is in, or what security constraints apply to production services. No amount of prompt engineering can retrieve information that doesn't exist in any repository.</p><p>The article frames the Internal Developer Portal as the natural solution to Layer 3 context. Your IDP already holds the two things an AI needs: metadata in <code>catalog-info.yaml</code> (owner, tier, lifecycle, dependencies) and semantics in TechDocs (ADRs, runbooks, how-to guides). Spotify proved this architecture works at scale with AiKA and Honk, both tightly integrated with Backstage's catalog and metadata graph. The piece walks through connecting AI tools via the Model Context Protocol (MCP), with Roadie acting as an MCP Server that exposes your catalog and TechDocs as queryable endpoints.</p><p>A key warning: the "dump everything into a vector database" approach produces context poisoning. A Confluence instance with 2,000 pages where only 300 are accurate means your AI retrieves from both canonical ADRs and three-year-old contradictory wiki pages with no way to distinguish them. The <code>catalog-info.yaml</code> schema enforces structure at the source. A deprecated service can't masquerade as current because its lifecycle field says otherwise. Context engineering starts with good catalog maintenance.</p><hr><h2>Community Discussions</h2><h3>Removing <code>node-fetch</code> and the DOM Types Problem</h3><p>Backstage maintainer Jon Koops opened a significant <a href="https://discord.com/channels/687207715902193673/687207715902193679/threads/1480626043483193394">architectural discussion in #general</a> (22 replies) about the implications of removing <code>node-fetch</code> from the main repo, as outlined in ADR14. As backend packages (like <code>@backstage/backend-defaults</code>) are built from the root TSConfig, they silently receive browser DOM types, which means that incorrect web-based types are provided anywhere the Fetch API behaves differently between Node.js and the browser. Jon proposes changing the TypeScript configurations so that backend-only packages are never exposed to library types from the web, and he plans to bring it to the framework SIG. The discussion also covers project references performance in CI, the upcoming tsgo compiler, and whether the change should be opt-in for adopters initially.</p><h3>State of AI in Backstage: MCP, RAG, and a Discoverability Gap</h3><p>A thread in #general titled <a href="https://discord.com/channels/687207715902193673/687207715902193679/threads/1480545349843161120">"ai"</a> (6 replies) kicked off a survey of what AI integration currently looks like in Backstage. The conversation catalogued the current landscape: an MCP chat plugin in the community plugins repo, a plugin for exposing Backstage actions as MCP tools (<code>mcp-actions-backend</code>), and Roadie's RAG-based AI assistant plugin for querying catalog and TechDocs knowledge. This knowledge is currently scattered across Discord threads and GitHub PRs, with no central tracking page. Thomvaill and drodil (a Backstage Framework maintainer) agreed that a dedicated documentation page listing all available MCP actions per plugin would be valuable. Drodil also noted a new PR (<a href="https://github.com/backstage/backstage/pull/33253">#33253</a>) they've made on the topic, though it's not yet clear whether it belongs in the main repo or community plugins.</p><h3>Templates and <code>partOf</code> Relations: A Design Clarification</h3><p>A <a href="https://discord.com/channels/687207715902193673/687207715902193679/threads/1480910931293765705">21-message thread in #general</a> surfaced a common point of confusion: why can't Scaffolder Templates reference entities outside of their <code>owner</code> using <code>partOf</code> relations? A user wanted to track which Component (a repo containing all their templates) each Template "belongs to" in the catalog graph. Maintainer Freben explained that this is an intentional design constraint of the System Model. Templates are not designed to have arbitrary cross-entity relations. Freben suggested the <code>Resource</code> kind as a better fit if the model needs to be extended. The thread links to the <a href="https://backstage.io/docs/features/software-catalog/extending-the-model#implementing-custom-model-extensions">Extending the Model docs</a> as the recommended solution.</p><h3>Finding Entities with Missing or Unknown Owners</h3><p>An <a href="https://discord.com/channels/687207715902193673/923144214580191282/threads/1478048303198376017">18-message thread in #catalog</a> explored how to hook into catalog ingestion to detect or process entities with invalid or unknown owners. Freben recommended the <a href="https://backstage.io/docs/features/software-catalog/faq#can-i-validate-relations-in-processors">Catalog FAQ's processor-based validation section</a> as a starting point, and followed up with a more advanced pattern: as you page through entities, you can call <code>.prime()</code> on the existence dataloader to pre-populate knowledge of which entities exist, then mark the ones that don't as having broken relations. This approach avoids storing the full catalog in memory or making repeated catalog API requests.</p><h3>Jest Removed from Backstage CLI: Community Plugin Impact</h3><p>Maintainer Ahhhndre <a href="https://discord.com/channels/687207715902193673/1201559534754345110/threads/1477050964237091181">investigated why removing Jest from the Backstage CLI in v1.46.0 hadn't broken anything yet</a>, and found the answer: a version of the Backstage CLI still exists in the root <code>package.json</code>, and CI is using that. Simply removing it would break most workspaces. The fix is a gradual migration. A <a href="https://github.com/backstage/community-plugins/pull/7867">PR for community plugins (#7867)</a> has been opened to migrate packages one by one, and Ahhhndre has also filed <a href="https://github.com/backstage/community-plugins/issues/7868">an issue (#7868)</a> for maintainer-owned workspaces so the community can help during ContribFest.</p><h3>Release Train: v1.49.0 Pre-Releases Are Rolling</h3><p>The <a href="https://discord.com/channels/687207715902193673/705123584468582400">#announcements</a> channel has been active with the v1.49.0 pre-release train. <strong>v1.49.0-next.2</strong> dropped on March 10, following <strong>v1.49.0-next.1</strong> on March 4 (which also updated the <a href="https://demo.backstage.io/">Backstage Demo site</a>). Before that, <strong>v1.48.2</strong> (Feb 24) included a fix to update <code>@microsoft/api-extractor</code> to 7.57.3 and restore <code>formFieldsApiRef</code> and <code>ScaffolderFormFieldsApi</code> alpha exports that had gone missing. If you're tracking pre-releases or running the demo, this is a good time to test against next.2 ahead of the stable v1.49.0 release.</p><h3>Templates Randomly Disappearing with Split Catalog Deployments</h3><p>A <a href="https://discord.com/channels/687207715902193673/923144214580191282">recent #catalog thread</a> flags a possible operational issue for anyone running Backstage at scale with a split read/write catalog deployment and HPA. One user reported that Template entities (and only Templates, not Components or APIs) were disappearing periodically from statically configured catalog locations. The logs showed a <code>ConflictError: Conflicting write of processing result for &#x3C;entity-id> with location key 'url:https://github.com/&#x3C;location-key>'</code> error. This appears to be a race condition specific to multi-pod catalog-write deployments; if you're running 2–4 catalog-write pods in production, this thread is worth watching.</p><h3>Backstage Documentary Premieres at KubeCon Amsterdam</h3><p>For those attending KubeCon + CloudNativeCon Europe in Amsterdam on March 23, don't miss the premiere of the <strong>CNCF Documentary: "Backstage: From Spreadsheet to Standard"</strong>, a film co-produced by Spotify, CNCF, and Roadie. The <a href="https://kccnceu2026.sched.com/event/2ILJt">screening is on the official KubeCon schedule</a>. The Community Plugins SIG scheduled for March 24 has been cancelled due to the KubeCon overlap, so the documentary event is the place to be for community networking around Backstage that week.</p><hr><h2>Changelog</h2><h3>v1.49.0-next.2 - March 10, 2026</h3><p><strong>Pre-release:</strong></p><ul><li>Incremental fixes and improvements ahead of v1.49.0 stable release</li></ul><p><strong>Release:</strong><a href="https://github.com/backstage/backstage/releases/tag/v1.49.0-next.2">v1.49.0-next.2</a></p>
]]></content:encoded></item><item><title><![CDATA[Critical TechDocs Security Fix, BackstageCon’s AI Vision & the First v1.49 Preview]]></title><link>https://roadie.io/backstage-weekly/124-techdocs-security-fix-backstagecon-ai-preview-v1-49/</link><guid isPermaLink="false">https://roadie.io/backstage-weekly/124-techdocs-security-fix-backstagecon-ai-preview-v1-49/</guid><pubDate>Mon, 09 Mar 2026 15:00:00 GMT</pubDate><description><![CDATA[Backstage v1.48.4 ships a high-severity TechDocs security fix, the CNCF previews an AI-focused BackstageCon Europe, Roadie publishes a deep Context Engineering glossary, and the first v1.49 pre-release lands ahead of KubeCon EU.]]></description><content:encoded><![CDATA[<p>This week's headline is a critical security release. Backstage v1.48.4 shipped on March 4 with fixes for three newly disclosed vulnerabilities, including a HIGH-severity TechDocs arbitrary code execution flaw that affects anyone running TechDocs in local mode. Teams need to upgrade immediately.</p><p>Beyond security, the CNCF published a BackstageCon Europe preview that positions AI integration as the defining theme for 2026, Roadie released a comprehensive Context Engineering Glossary that reframes catalog hygiene as an AI infrastructure concern, and the first v1.49.0 pre-release landed with quality-of-life fixes. With KubeCon Europe three weeks away, the community is in pre-conference mode.</p><p><img src="//images.ctfassets.net/hcqpbvoqhwhm/7nUhwtOyMgiUyip5HRObGc/26ced060a2d6c698348103cb2953e74e/CNCF-Website-Desktop.png" alt="CNCF Europe 2026"></p><h3>v1.48.4 addresses three security vulnerabilities, including HIGH-severity TechDocs flaw</h3><p><a href="https://github.com/backstage/backstage/releases/tag/v1.48.4">Backstage v1.48.4</a> shipped on March 4 alongside three GitHub Security Advisories. This is a security-focused patch release with no feature changes, making it a low-risk upgrade for all teams.</p><p>The most critical advisory is <a href="https://github.com/backstage/backstage/security/advisories/GHSA-928r-fm4v-mvrw">GHSA-928r-fm4v-mvrw</a>, rated HIGH. When TechDocs runs in <code>local</code> mode, an attacker who can modify a repository's <code>mkdocs.yml</code> file can execute arbitrary Python code on the TechDocs build server. The attack vector uses MkDocs hooks, a feature that allows custom Python execution during documentation builds. The <code>@backstage/plugin-techdocs-node</code> package didn't sanitize hook configurations before passing them to MkDocs, allowing embedded Python to run with full privileges of the TechDocs service. Teams running TechDocs with <code>runIn: local</code> should upgrade to v1.48.4 immediately or switch to <code>runIn: docker</code> as a workaround.</p><p>The two remaining advisories are rated LOW but still worth patching. <a href="https://github.com/backstage/backstage/security/advisories/GHSA-95v5-prp4-5gv5">GHSA-95v5-prp4-5gv5</a> affects <code>@backstage/integration</code> and could allow unauthorized reading of SCM URLs using the built-in token. <a href="https://github.com/backstage/backstage/security/advisories/GHSA-8qp7-fhr9-fw53">GHSA-8qp7-fhr9-fw53</a> affects <code>@backstage/plugin-scaffolder-backend</code> and relates to session token exfiltration via insufficient log redaction. All three advisories were authored by maintainer benjdlambert.</p><h3>v1.49.0-next.1 fixes MUI dependency and tab ordering issues</h3><p><a href="https://github.com/backstage/backstage/releases/tag/v1.49.0-next.1">Backstage v1.49.0-next.1</a> landed on March 3 as the first weekly pre-release in the v1.49 cycle. The release fixes the <code>@mui/material/styles</code> shared dependency key by removing a trailing slash that caused module resolution failures with Material UI package exports. It also resolves an issue where entity page tab groups weren't respecting the ordering specified in the groups configuration. The full changelog is available in <code>docs/releases/v1.49.0-next.1-changelog.md</code>. The stable v1.49.0 release is expected later in March, following Backstage's monthly cadence.</p><h3>CNCF frames BackstageCon Europe around AI and governance</h3><p>The CNCF published "<a href="https://www.cncf.io/blog/2026/02/27/kubecon-cloudnativecon-europe-2026-co-located-event-deep-dive-backstagecon/">KubeCon + CloudNativeCon Europe 2026 Co-located Event Deep Dive: BackstageCon</a>" on February 27, revealing the event's strategic focus: AI integration is the defining theme. Co-chairs Balaji Sivasubramanian and Bryan Landes describe the core thesis as "cloud native adoption colliding with AI-accelerated software delivery," with teams needing shared patterns for making the portal and catalog "the trusted context layer that AI copilots and agents can safely use."</p><p>BackstageCon takes place March 23 at RAI Amsterdam as a full-day CNCF-hosted co-located event alongside KubeCon + CloudNativeCon Europe (March 23-26). The event targets five audiences: platform engineering teams scaling Backstage in production, AI-forward organizations managing models and agents as first-class portal entities, maintainers and plugin developers, newcomers seeking production-grade implementation examples, and leaders evaluating Backstage adoption. Key topics include golden paths, standardized metadata, governance, plugin ecosystems, and observability. An All-Access Pass to KubeCon is required for entry. The Backstage ContribFest session follows on March 26.</p><h3>Roadie publishes Context Engineering Glossary for platform engineers</h3><p><img src="https://roadie.io/_next/image/?url=https%3A%2F%2Fimages.ctfassets.net%2Fhcqpbvoqhwhm%2F2YR1ZwHxUEFUTFhAnvEn9p%2Ff7a9637d5c0864c65fe0004baec1a88f%2Fimage1.png%3Fw%3D500%26h%3D500%26fm%3Dwebp&#x26;w=1080&#x26;q=75" alt="Context Engineering Glossary"></p><p>Roadie published "<a href="https://roadie.io/blog/context-engineering-glossary/">The Context Engineering Glossary for Platform Engineers</a>" on March 5, a comprehensive reference guide defining every key term in the context engineering stack through the lens of Internal Developer Portals. The timing aligns with BackstageCon's AI focus, as the CNCF positions the catalog as "the trusted context layer that AI copilots and agents can safely use" and Roadie's glossary defines the engineering discipline required to make that vision work in production.</p><p>The glossary covers five major sections: Context Fundamentals (context windows, grounding, what context engineering actually means), Architecture and Retrieval Terms (RAG, vector embeddings, semantic search), Platform Data Types (Service Catalog context, TechDocs context, operational context, golden paths), Agentic Capabilities (agentic context injection, function calling, system prompts), and Quality and Risk Definitions (hallucination, context drift, context poisoning, privilege leakage, implicit trust chains).</p><p>The guide frames context engineering as a core platform responsibility with dedicated engineering ownership. Its central argument is that an LLM is a powerful reasoning engine with no institutional memory, and context engineering is how you give it one. The glossary defines context engineering as the entire information supply chain feeding the model before it generates output, covering what the model is allowed to know, when, and why. For platform teams building AI assistants on top of Backstage, the piece emphasizes that poor catalog hygiene directly degrades AI output quality, context drift is an ongoing operational concern requiring automated re-indexing, and retrieval pipelines must enforce RBAC to prevent privilege leakage. The article includes practical architecture diagrams showing how Service Catalog metadata, TechDocs, and operational data flow through RAG systems to produce grounded responses.</p><hr><h2>Community Discussions</h2><h3>Release Updates: v1.48.3 and v1.49.0-next.1</h3><p>Two releases landed this week. v1.48.3 (February 26) is a patch that fixes a <code>@mui/material/styles</code> shared dependency key issue caused by a trailing slash, which was breaking module resolution with MUI package exports. Anyone using MUI-heavy customisations who encountered odd import failures after 1.48 should pick this up. Hot on its heels, v1.49.0-next.1 dropped on March 3, with the demo site already running it. See the <a href="https://discord.com/channels/687207715902193673/705123584468582400">announcements</a> for both releases.</p><h3>Security: Transitive Vulnerability Scan Results Shared in Community</h3><p>A detailed Snyk scan of a Backstage project uncovered 7 HIGH-severity vulnerabilities across 13 instances, with no Critical ones. Packages flagged included <code>tar@6.2.1</code> (Directory Traversal), <code>ajv@6.12.6</code> (ReDoS), <code>glob@10.4.5</code> (Command Injection), and <code>ip@2.0.1</code> (SSRF). The discussion highlighted that many of these are transitive dependencies deep in the dependency tree and cannot simply be overridden locally without breaking CLI linting. The thread had 17 messages with maintainer participation and is worth tracking if your security posture requires a clean Snyk report. See <a href="https://discord.com/channels/687207715902193673/1041734397369532487/threads/1473033473622151283">the discussion in #security</a>.</p><h3>New Frontend System Migration: Still the Community's Biggest Challenge</h3><p>The new frontend system continued to dominate support traffic this week. The most active thread, "New Frontend System migration" in #support, accumulated 37 messages and a resolved badge, with users working through migrating full Catalog plugin routing and internal plugins. A parallel thread titled "Catalog migration" in #frontend-system (17 messages, still active yesterday) saw a user sharing their complete <code>EntityContentBlueprint</code> and <code>createFrontendPlugin</code> patterns for migrating GitHub-releases entity tabs, while a first-time contributor asking how to add a catalog entity card using the new frontend API received 14 replies in under a day. Maintainer Ahhhndre pointed users toward the <a href="https://backstage.io/docs/frontend-system/building-apps/migrating">migration docs</a> and noted that the catalog plugin's README is still lagging behind. Join the discussion <a href="https://discord.com/channels/687207715902193673/1101159492298743808/threads/1476212110970323045">in #frontend-system</a> or the <a href="https://discord.com/channels/687207715902193673/1101159492298743808/threads/1478670797865488495">first-plugin thread</a>.</p><h3>BUI vs MUI: Which UI System for New Instances?</h3><p>With v1.48 shipping Backstage's new BUI component system alongside continued MUI support, a thread in #general sparked debate about the recommended upgrade path. A team upgrading from v1.12 to v1.48 discovered that many of their custom screens are not fully supported in BUI and asked whether staying on MUI is viable for production. Maintainer Ahhhndre confirmed both systems are currently supported, but the direction of travel is clearly toward BUI. This mirrors a parallel support thread ("Upgrade failure", 16 messages) where another user faced the same BUI vs MUI decision mid-migration. The community consensus is that MUI remains the safe path for heavily customised portals for now. See the <a href="https://discord.com/channels/687207715902193673/687207715902193679/threads/1477904643009941504">bui vs mui thread in #general</a>.</p><h3>Jest Removed from Backstage CLI 1.46.0: Community Plugin Impact</h3><p>A thread started by maintainer Ahhhndre in #maintenance revealed why removing Jest from the Backstage CLI in version 1.46.0 hadn't broken the community plugins repository CI: the CLI was still pinned in the root <code>package.json</code>. Removing that pin would break most workspaces. A migration PR (<a href="https://github.com/backstage/community-plugins/pull/7867">#7867</a>) has been opened to slowly migrate workspaces away, and a companion issue (<a href="https://github.com/backstage/community-plugins/issues/7868">#7868</a>) was logged to involve the community during ContribFest Amsterdam. If you maintain plugins in the community repo, the issue is a good place to volunteer. Follow the progress in the <a href="https://discord.com/channels/687207715902193673/1201559534754345110/threads/1477050964237091181">jest-gone thread in #maintenance</a>.</p><h3>Bug Report: GithubMultiOrgEntityProvider Misses Team Hierarchy on Webhook Events</h3><p>A well-documented bug report landed in #catalog this week. When using <code>GithubMultiOrgEntityProvider</code>, parent/child team relationships are <em>not</em> updated in real time via GitHub webhook events: the hierarchy only self-corrects on the next scheduled full sync. The root cause identified is that <code>GithubMultiOrgEntityProvider.onTeamEditedInOrganization()</code> updates team members but never calls <code>buildOrgHierarchy()</code>, unlike its single-org counterpart <code>GithubOrgEntityProvider</code>. The thread generated 7 messages with community-contributed analysis. If you're running the multi-org provider and rely on accurate team hierarchy, either trigger more frequent full syncs or watch for an upstream fix. Read the full investigation in the <a href="https://discord.com/channels/687207715902193673/923144214580191282/threads/1477135489000669256">#catalog thread</a>.</p><h3>How to Update Community Plugins Without Renovate</h3><p>A recurring question in #plugins was resolved clearly this week: <code>yarn backstage-cli versions:bump</code> only bumps core <code>@backstage/*</code> packages and will <strong>not</strong> update <code>@backstage-community/*</code> plugins. To bump community plugins manually, run <code>yarn backstage-cli versions:bump --pattern "@backstage-community/*"</code>. Maintainer Ahhhndre also recommended Renovate for automating this for monorepos, noting that Dependabot struggles with the mono-repo setup. See the full <a href="https://discord.com/channels/687207715902193673/1211692810294788126/threads/1465421694171877637">Plugin releases thread in #plugins</a>.</p><h2>Changelog</h2><h3>v1.48.4 - March 4, 2026</h3><p>Security Fixes:</p><ul><li>Fixed arbitrary code execution via MkDocs hooks in TechDocs (GHSA-928r-fm4v-mvrw, HIGH severity)</li><li>Fixed potential reading of SCM URLs using built-in token (GHSA-95v5-prp4-5gv5, LOW severity)</li><li>Fixed session token exfiltration via log redaction bypass (GHSA-8qp7-fhr9-fw53, LOW severity)</li></ul><p>Release: <a href="https://github.com/backstage/backstage/releases/tag/v1.48.4">v1.48.4</a></p><h3>v1.49.0-next.1 - March 3, 2026</h3><p>Fixes:</p><ul><li>Fixed <code>@mui/material/styles</code> shared dependency key by removing trailing slash</li><li>Fixed entity page tab groups not respecting ordering configuration</li></ul><p>Release: <a href="https://github.com/backstage/backstage/releases/tag/v1.49.0-next.1">v1.49.0-next.1</a></p>
]]></content:encoded></item><item><title><![CDATA[Scaffolder Fixes, ContribFest Launch & Backstage’s AI Shift]]></title><link>https://roadie.io/backstage-weekly/123-scaffolder-fix-contribfest-ai-native-backstage/</link><guid isPermaLink="false">https://roadie.io/backstage-weekly/123-scaffolder-fix-contribfest-ai-native-backstage/</guid><pubDate>Mon, 02 Mar 2026 15:00:00 GMT</pubDate><description><![CDATA[Backstage ships v1.48.2 to fix scaffolder regressions, launches the ContribFest web app ahead of KubeCon Europe, merges an alpha MetricsService into core, and the community dives deep into AI-native platform engineering, multi-agent systems, and scaling TechDocs.]]></description><content:encoded><![CDATA[<p>The week after v1.48.0's ambitious feature release was about stabilization and scaffolding the road to Amsterdam. Backstage shipped two patch releases to fix scaffolder regressions, launched the ContribFest web app ahead of KubeCon Europe, and continued its trajectory toward becoming an AI-native developer portal - with Spotify publishing a multi-agent architecture deep dive, Infralovers dropping a three-part series on AI-assisted Backstage development, and Roadie detailed how they split TechDocs out of their monolithic backend to solve resource contention at multi-tenant scale.</p><p><img src="https://backstage.io/assets/images/backstage-contribfest-kubecon-web-app-header-aa55b2b3a64c012a90f1e0d2fbeb74ab.png" alt="Backstage ContribFest banner"></p><h3>v1.48.2 fixes scaffolder form customization regression</h3><p><a href="https://github.com/backstage/backstage/releases/tag/v1.48.2">Backstage v1.48.2</a> landed on February 24, addressing a critical regression from v1.48.0. The patch restored <code>formFieldsApiRef</code> and <code>ScaffolderFormFieldsApi</code> alpha exports from <code>@backstage/plugin-scaffolder</code> that had been inadvertently removed, breaking teams relying on scaffolder form customization in the new frontend system. The release also bumped <code>@microsoft/api-extractor</code> to 7.57.3. Teams using scaffolder alpha APIs should upgrade immediately.</p><p>The earlier <a href="https://github.com/backstage/backstage/releases/tag/v1.48.1">v1.48.1 patch</a> (February 18) fixed a missing sidebar item in frontend system docs and a type compatibility issue in <code>FrontendFeature</code>. Together, these patches close the v1.48 stabilization window.</p><p><a href="https://github.com/backstage/backstage/releases/tag/v1.49.0-next.0">v1.49.0-next.0</a>, the first pre-release of the next monthly cycle, also appeared near the end of the week.</p><h3>ContribFest web app launches</h3><p>The Backstage blog published its first post of 2026 on February 25: "<a href="https://backstage.io/blog/2026/02/25/get-a-jump-on-contribfest/">Get a jump on ContribFest with the new web app</a>." Written by Elaine de Mattos Silva Bezerra (DB Systel), Heikki Hellgren (OP Financial Group), and André Wanlin (Spotify), the post announces <a href="https://contribfest.backstage.io/">contribfest.backstage.io</a> - a purpose-built app to onboard contributors for ContribFest at KubeCon Europe in Amsterdam on March 26 at 13:45 CET.</p><p>The app features five sections: Welcome, Getting Started, Curated Issues, Contrib Champs (celebrating past merged PRs), and Hall of Hosts. New Dev Containers support enables streamlined local setup using Docker Desktop and VS Code or IntelliJ. Past ContribFest contributions highlighted include TechDocs pagination, OpenShift auth provider work, and HTML rendering fixes in GitHub-flavored Markdown.</p><p>This cross-organization collaboration signals the project's maturation - contributor onboarding is now a community-driven effort, not just a maintainer task.</p><p><img src="https://openssf.org/wp-content/uploads/2025/11/Screenshot-2025-11-19-at-4.47.18-PM.png" alt="KubeCon + CloudNativeCon Europe 2026 in Amsterdam"></p><h3>Backstage Community Session - February 18, 2026</h3><p>The latest <a href="https://www.youtube.com/watch?v=YCfPv0RwEJY">Backstage Community Session</a> is now available on YouTube. Mihai kicks things off with a walkthrough of what's new in v1.48.0 - catalog extension points graduating out of alpha, stricter API override restrictions, experimental MCP authorization via Client ID Metadata Documents, and experimental token refresh support. From there, the session covers a call for community members to join the new <a href="https://github.com/backstage/backstage/issues/32794">Backstage reviewer program</a>, where your feedback shapes PR prioritization and your own PRs get priority review in return. The highlight of the session is a talk from Volvo Group's Mingdao and Tom, who share how one of the world's largest manufacturers adopted Backstage - rolling out golden paths, access provisioning, and community-driven templates while navigating the organizational challenges of a large-scale IDP rollout. A Q&#x26;A with the Volvo team follows. Watch the recording here.</p><h2>Publications</h2><h3>Roadie publishes TechDocs Guide</h3><p>Roadie published "<a href="https://roadie.io/blog/splitting-techdocs-out-of-our-monolithic-backstage-deployment/">Splitting TechDocs Out of Our Monolithic Backstage Deployment</a>" on February 26, detailing how they redesigned their multi-tenant Backstage architecture to solve resource contention issues. The article walks through their original monolithic design where each tenant ran a single Backstage backend pod containing all plugins (Catalog, Scaffolder, TechDocs, Auth), and how TechDocs' resource-intensive workload - fetching documentation files, rendering Markdown, running MkDocs generators - began causing CPU saturation and memory pressure that impacted unrelated functionality like catalog ingestion and authentication.</p><p>The solution was extracting TechDocs into a separate Backstage backend service that runs independently using Backstage's native discovery service for backend-to-backend communication. Each tenant now runs two distinct services: a core Backstage backend handling catalog, scaffolder, and auth, and a dedicated TechDocs backend. Results were immediate: cleaner cluster allocations with CPU and memory limits tuned specifically for documentation workloads, improved stability with documentation builds no longer pressuring core APIs, and easier debugging with resource spikes immediately attributable to the correct service. The article emphasizes that Backstage provides the primitives needed to support this modular design, and at scale, using them becomes "less of an optimization and more of a requirement." For teams running Backstage in multi-tenant or high-scale environments experiencing similar symptoms, the piece recommends examining heavy backend plugins and questioning whether they belong in the same process as core Backstage functionality.</p><h3>Spotify's multi-agent architecture for advertising</h3><p>Spotify Engineering published "<a href="https://engineering.atspotify.com/2026/2/our-multi-agent-architecture-for-smarter-advertising">Our Multi-Agent Architecture for Smarter Advertising</a>" on February 19, detailing how they built Ads AI - a multi-agent system using Google's Agent Development Kit (ADK) and Vertex AI. The system transforms media planning from a 15-30 minute manual process requiring 20+ form fields into a conversational interface generating optimized plans in 5-10 seconds using 1-3 natural language messages.</p><p>The architecture decomposes planning into specialized agents - RouterAgent, GoalResolverAgent, AudienceResolverAgent, BudgetAgent, ScheduleAgent, and MediaPlannerAgent - executing in parallel. Three key learnings resonate with the Backstage community: prompt engineering is software engineering (prompts need version control and testing), agent boundaries matter (one agent per distinct skill or data source), and evaluation requires new approaches beyond traditional unit testing.</p><p>While not a Backstage feature, this connects directly to where Backstage is heading. The v1.48.0 release shipped experimental Client ID Metadata Documents and experimental refresh token support - both designed to reduce MCP client authentication friction. Combined with the <code>@backstage/plugin-mcp-actions-backend</code> plugin and Spotify's AiKA AI Knowledge Assistant, the trajectory is clear: Backstage is becoming the MCP server hub for platform engineering.</p><h3>Infralovers' three-part series on AI-assisted Backstage development</h3><p>Infralovers, a Backstage consulting firm, published the final two parts of a notable three-part blog series during the week:</p><p><strong>Oct 31, 2025</strong> - "<a href="https://www.infralovers.com/blog/2025-10-31-building-backstage-with-ai-assisted-development/">Beyond Copy-Paste: Building Backstage with AI-Assisted Development</a>" detailed how Claude Sonnet 4.5 and GitHub Copilot helped navigate custom Backstage integrations with Crossplane and ArgoCD. The post documented real integration friction - scaffolder temporary directories, the <code>publish:github:pull-request</code> vs. <code>publish:github</code> distinction, ArgoCD rejecting <code>catalog-info.yaml</code> - and showed how AI pair programming resolved each issue faster than traditional documentation searching.</p><p><strong>Feb 20</strong> - "<a href="https://www.infralovers.com/blog/2026-02-20-fuenf-stufen-ki-entwicklung/">Five Levels of AI Development: Why the J-Curve Gets Everyone</a>" applied Dan Shapiro's five-level framework to developer tooling, arguing that 90% of "AI-native" developers are stuck at Level 2 (pair programming) when the real gains come at Levels 3-4 (specification-driven development and autonomous workflows).</p><p><strong>Feb 22</strong> - "<a href="https://www.infralovers.com/blog/2026-02-22-architektur-patterns-dark-factory/">Dark Factory Architecture: How Level 4 Actually Works</a>" got concrete about Level 4 in practice, referencing StrongDM's "Digital Twin Universe" approach and Boris Cherny's claim that 90% of Claude Code was written by Claude Code, with SemiAnalysis estimating 4% of public GitHub commits now attributable to Claude Code.</p><p>The series offers practical context for Backstage adopters evaluating where AI fits in their developer portal strategy - not as a chatbot bolted onto the sidebar, but as a fundamental shift in how platform engineering work gets done.</p><hr><h2>Community Discussions</h2><h3>Alpha MetricsService Merged into Backstage Core</h3><p>One of the most celebrated milestones in <code>#backend-system</code> this week: the initial alpha implementation of a native <code>MetricsService</code> was merged into the backstage/backstage repo. Community member <code>kurt</code> had been championing this effort for weeks and celebrated with the note "I am very stoked to see the initial alpha merged," thanking the maintainers who rallied to get <a href="https://github.com/backstage/backstage/pull/32358">PR #32358</a> (<code>feat(metrics): Implement MetricsService</code> by <code>benjdlambert</code>) across the finish line. The service provides a first-class, framework-native way to emit metrics from Backstage backends - an alternative to the community's current patchwork of OTel instrumentation. The next milestone is documenting the current state and migrating catalog metrics to the new abstraction; <code>kurt</code> opened a <a href="https://discord.com/channels/687207715902193673/1034089724664610938/threads/1469347165762490418">meta issue thread</a> to avoid duplicate effort.</p><h3>"How Do I Actually Delete a Catalog Entity?" - The Cache Mental Model</h3><p>An 8-message thread in <a href="https://discord.com/channels/687207715902193673/923144214580191282/threads/1476155714371190826">#catalog</a> surfaced a question many new adopters run into: a user tried to delete test entities via the OpenAPI spec by UID, only to find them reappearing with a new UID after a refresh. Maintainer <code>freben</code> delivered the canonical answer - "The catalog is sort of like a big cache, a mirror of externalities… the thing that generated the entity keeps generating the entity as it was instructed to. There's no functionality like 'delete this and refuse all future attempts at creating something with that name'." The resolution is to disconnect or modify the source (e.g., the GitHub repo), not the catalog record. This remains one of the most common conceptual hurdles for new Backstage adopters.</p><h3>Disabling Software Templates Registered from <code>catalog-info.yaml</code></h3><p>A lively 9-message thread in <a href="https://discord.com/channels/687207715902193673/687207715902193679/threads/1474435693978714348">#general</a> started when <code>phred-te</code> discovered that individual repositories can register their own software templates directly from <code>catalog-info.yaml</code>. The question was whether a platform team could disable this auto-discovery to prevent teams from self-registering templates they shouldn't. Core contributor <code>Peter "ParsiFal-M"</code> confirmed that <code>catalog.rules</code> governs this behavior and should prevent unwanted registrations - though the caveat is that the Backstage demo doesn't explicitly exercise this rule so community members were testing edge cases live.</p><h3>Migrating from GitHub GHEC to GitHub EMU - Running Dual Auth Providers</h3><p>A timely discussion landed in <a href="https://discord.com/channels/687207715902193673/978977570852835379/1476344287246549233">#auth</a> this week as <code>Pedro</code> described a real-world migration scenario: moving from <code>github.com</code> (GHEC) to GitHub Enterprise Managed Users (EMU), where users temporarily exist in both systems. The key questions: can Backstage run two GitHub auth providers simultaneously in the same instance? If not, what is the recommended EMU-first auth pattern with a fallback during the cutover window? Options discussed include a single provider routing by email domain/org membership, a custom sign-in resolver that attempts EMU first, or a custom auth provider with fallback logic. If you're planning a similar migration, this thread is worth following.</p><h3>Extending the Catalog Component Spec with Custom Fields</h3><p>A thoughtful architecture question in <a href="https://discord.com/channels/687207715902193673/923144214580191282/1476323508249165965">#catalog</a> from new adopter <code>Finn Molloy</code>: their team wants to add a <code>spec.license</code> field (SPDX identifier) and a <code>spec.thirdParty</code> boolean to the <code>Component</code> kind - and they've implemented it using a custom Zod schema validator and a custom processor plugin rather than annotations. Their reasoning: typed fields are preferable to string annotations, especially for booleans. They asked whether this approach is safe/recommended or whether company-specific annotations are the better path. This is a great practical exploration of the catalog's extensibility model that will resonate with any team standardising their component metadata.</p><h3>Community-Built Producer/Consumer Catalog Graph Processor</h3><p>In a standout community contribution post in <a href="https://discord.com/channels/687207715902193673/923144214580191282/1474101155322794179">#catalog</a>, <code>isaias.b</code> shared a custom catalog processor that creates symmetric relation types (<code>producesTo</code>/<code>producedBy</code>, <code>consumesFrom</code>/<code>consumedBy</code>) for modelling data flows between components - think Kafka topics, DB schemas, queues, and other resources. The processor and example <code>catalog.yaml</code> were shared directly in the channel with working screenshots of the resulting catalog graph. It's the kind of pattern that Backstage's extensibility model was designed for, and demonstrates how rich service dependency maps can be created without any core changes.</p><h3>Frontend System Migration: Beware of Duplicate Extension Errors</h3><p>An 8-message thread in <a href="https://discord.com/channels/687207715902193673/1101159492298743808/threads/1475497869954912519">#frontend-system</a> is a useful debugging reference for anyone currently migrating plugins to the new frontend system. <code>lgnd_seba</code> hit the <code>Plugin 'helm-dashboard' provided duplicate extensions: page:helm-dashboard</code> error while migrating a two-page plugin. The culprit: when a <code>PageBlueprint</code> extension is created, the <code>name</code> property must be kebab-case (<code>a-name-like-this</code> rather than <code>Something Like This</code>). Maintainer <code>vinzscam</code> confirmed this requirement. If your NFS migration is failing with duplicate extension errors, this is the first thing to check.</p><h3>API Extractor Issue Could Break CI for Community Plugin PRs on v1.48.0 Bump</h3><p>In <a href="https://discord.com/channels/687207715902193673/1201559534754345110/threads/1474830502446760027">#maintenance</a>, maintainer <code>Ahhhndre</code> flagged <a href="https://github.com/backstage/backstage/pull/32950">PR #32950</a> - an issue with the API Extractor tsdoc-base configuration that is expected to cause CI failures across community plugin PRs when the version bump to <code>1.48.0</code> runs. Plugin maintainers were advised to watch for this and may need to update PRs manually. Separately, the automated version bump scheduler was running as of Feb 24, generating <code>v1.48.2</code> community plugin bumps - see the <a href="https://discord.com/channels/687207715902193673/1201559534754345110/threads/1475766456670224414">auto-version-bump thread</a> for the schedule.</p><h2>Changelog</h2><h3>v1.48.2 - February 24, 2026</h3><p><strong>Fixes:</strong></p><ul><li>Restored <code>formFieldsApiRef</code> and <code>ScaffolderFormFieldsApi</code> alpha exports in <code>@backstage/plugin-scaffolder</code> that were removed in v1.48.0</li><li>Updated <code>@microsoft/api-extractor</code> to 7.57.3</li></ul><p><strong>Release:</strong><a href="https://github.com/backstage/backstage/releases/tag/v1.48.2">v1.48.2</a></p><h3>v1.49.0-next.0 - Pre-release</h3><p>The first pre-release of the v1.49.0 cycle is now available for early testing.</p><p><strong>Release:</strong><a href="https://github.com/backstage/backstage/releases/tag/v1.49.0-next.0">v1.49.0-next.0</a></p>
]]></content:encoded></item><item><title><![CDATA[Backstage v1.48 Ships, Patch Follows & CVE Alert]]></title><link>https://roadie.io/backstage-weekly/122-backstage-v1-48-ships-patch-follows-and-cve-alert/</link><guid isPermaLink="false">https://roadie.io/backstage-weekly/122-backstage-v1-48-ships-patch-follows-and-cve-alert/</guid><pubDate>Mon, 23 Feb 2026 14:00:00 GMT</pubDate><description><![CDATA[Backstage v1.48.0 introduces major New Frontend System updates, API restriction changes, and experimental MCP authorization support. We cover the 1.48.1 patch, CSS migration issues, ajv CVE-2025-69873, SCM webhook contributions, and new community plugins.]]></description><content:encoded><![CDATA[<p><img src="https://backstage.io/assets/images/kcon25-atl-contribfest-b92a27361da7f3bc16b3b957d716ac60.jpg" alt="Backstage ContribFest community collaboration"></p><h3>Backstage v1.48.0 Ships with Major New Frontend System Updates</h3><p>Backstage v1.48.0 shipped February 17 after nearly a month of pre-release testing. The release brings significant changes to the New Frontend System, including graduated catalog extension points, experimental MCP authorization support, and breaking changes to API restrictions.</p><p>Key highlights:</p><ul><li>Catalog processing extension points graduated from alpha to stable (remove <code>/alpha</code> imports).</li><li>API restrictions now enforced (plugins can only provide APIs to themselves, not other plugins). * New <code>createServiceMock</code> and <code>createApiMock</code> utilities for testing.</li><li>Plugin titles and icons now supported, and module federation enabled by default without build-time overhead.</li></ul><p>The release also introduces experimental <code>catalogScmEventsServiceRef</code> for instant catalog updates via webhooks, experimental Client ID Metadata Documents for MCP authorization (<code>auth.experimentalClientIdMetadataDocuments.enabled</code>), and experimental refresh token support to prevent hourly token expiration.</p><p>The breaking changes caught some teams off guard. Some users reported Soundcheck rendering issues tied to recently removed CSS variables in Backstage UI. Anyone running a custom theme should check that their files are referencing current CSS tokens before upgrading.</p><p><a href="https://github.com/backstage/backstage/releases/tag/v1.48.0">v1.48.0 release notes</a></p><h3>v1.48.1 Patch Fixes Type Compatibility and Documentation Issues</h3><p>A patch release shipped February 18, fixing two regressions from v1.48.0:</p><ul><li>A missing sharing extensions sidebar item in the frontend system architecture docs</li><li>A type compatibility issue for older plugins in the <code>FrontendFeature</code> type.</li></ul><p>If you upgraded to 1.48.0 and hit plugin type errors, update to 1.48.1.</p><p><a href="https://github.com/backstage/backstage/releases/tag/v1.48.1">v1.48.1 release notes</a></p><h3>Security Advisory: CVE-2025-69873 in ajv Dependency</h3><p>Community members flagged CVE-2025-69873 (CVSS 8.2) affecting ajv@6.12.6, a transitive dependency of <code>@backstage/cli@0.35.3</code>. The vulnerability involves potential denial-of-service via uncontrolled schema input. Maintainer freben assessed impact as low since ajv only runs during build, not in production applications. Teams that tried resolving it by upgrading to ajv@8.18.0 ran into breaking changes in the CLI's linting pipeline. The maintainers are still working through it.</p><p><a href="https://nvd.nist.gov/vuln/detail/CVE-2025-69873">CVE details</a></p><hr><h2>Roadie Blog</h2><p><img src="https://roadie.io/_next/image/?url=https%3A%2F%2Fimages.ctfassets.net%2Fhcqpbvoqhwhm%2F2ifARS13jPFyoGOHMJEIwr%2Fd82ab15ea3af3b5b226938731ea02d4a%2Fimage1.png%3Fw%3D500%26h%3D500%26fm%3Dwebp&#x26;w=640&#x26;q=75" alt="Supercharge your GitLab setup with Roadie&#x27;s Internal Developer Portal"></p><p>Roadie published a new post this week on GitLab integration: <a href="https://roadie.io/blog/supercharge-your-gitlab-setup/">Supercharge your GitLab setup with Roadie's Internal Developer Portal</a>. It covers how teams using GitLab can eliminate repo sprawl, centralize ownership and governance, and visualize CI/CD pipelines through Roadie's managed Backstage platform. The post focuses on getting a production-ready IDP running in hours rather than months.</p><h2>Community Discussions</h2><h3>Release Updates: Backstage v1.48.0 and v1.48.1</h3><p><a href="https://github.com/backstage/backstage/releases/tag/v1.48.0">Backstage v1.48.0</a> shipped on February 17, followed quickly by a <a href="https://github.com/backstage/backstage/releases/tag/v1.48.1">patch release v1.48.1</a> on February 18. The patch fixed two regressions introduced in 1.48.0: a missing sharing extensions sidebar item in the frontend system architecture docs, and a type compatibility issue for older plugins in the FrontendFeature type. Community members reported that some third-party plugins (notably Soundcheck) showed rendering issues after upgrading to 1.48.0, and a thread in <a href="https://discord.com/channels/687207715902193673/687207715902193679/threads/1473623389334667266">#general</a> noted that GabDug pointed to recently removed CSS variables in the latest Backstage UI update as a likely cause. Users encountering visual glitches after upgrading should check whether they need to update CSS variable references in custom theme files.</p><h3>New Frontend System: "Is It Production-Ready?" Gets a Definitive Answer</h3><p>One of the most active discussions of the week came from <a href="https://discord.com/channels/687207715902193673/1006844959170764851/threads/1473031098639450247">#support</a> (25 replies), where Dinesh asked whether the New Frontend System is production-ready, what the alpha/experimental status means, and whether teams should migrate now or wait.</p><p>Maintainer Ahhhndre gave a clear and confident answer: <em>the NFS has been announced as adoption-ready for several months and many organizations are already running it in production.</em> The thread evolved into a practical migration walkthrough, with Sarabadu and Ahhhndre helping Dinesh navigate the transition from <code>convertLegacyAppOptions</code> to the new <code>createApp</code> API and clarifying plugin compatibility with signals.</p><p>Key clarifications from maintainers:</p><ul><li>There is no difference from a deployment standpoint between the legacy and new frontend systems.</li><li><code>convertLegacyAppOptions</code> is a transitional helper that will be removed once the full migration is complete.</li><li><code>signalPlugin</code> is already NFS-compatible and should not be added to the legacy options during migration.</li></ul><p>If you're looking for more information, check out these <a href="https://backstage.io/docs/frontend-system/">docs and migration guides</a></p><h3>BUI Migration Pain Points: Theming and Missing Card Types</h3><p>Teams migrating to Backstage UI (BUI) ran into several friction points this week. In <a href="https://discord.com/channels/687207715902193673/1101159492298743808/threads/1472875207361433633">#frontend-system</a>, lgnd_seba reported being unable to apply a custom theme when migrating to BUI, finding that neither <code>import '@backstage/ui/css/styles.css'</code> nor the CSS variable approach using <code>[data-theme-mode='dark']</code> caused the component to pick up the custom font; it fell back to the BUI default system-ui. In the same channel, adders flagged that <code>EntityDependencyOfComponentsCard</code> is missing an entity-card equivalent in the NFS, with no clear workaround for using existing cards. Brian Wink noted that <code>type: summary</code> was removed in 1.48.0 for Overview cards, raising questions about how to place two smaller cards side-by-side without it.</p><h3>Security Advisory: CVE-2025-69873 in ajv@6.12.6 (Backstage CLI Dependency)</h3><p>A message thread in <a href="https://discord.com/channels/687207715902193673/1101159492298743808/threads/1472875207361433633">#security</a> raised a Snyk alert for ajv@6.12.6, which is a transitive dependency of @backstage/cli@0.35.3. The vulnerability is CVE-2025-69873 (CVSS 8.2, SNYK-JS-AJV-15274295) and involves a potential denial-of-service via uncontrolled schema input. Maintainer freben assessed the impact as low for Backstage since ajv is used only in the build process (not in the running application).</p><p>Teams attempting to resolve the issue by upgrading to ajv@8.18.0 reported that doing so breaks the CLI's linting pipeline with "NOT SUPPORTED: option missingRefs" errors. The thread was ongoing as of Feb 18, with the team investigating the correct version bump path.</p><p><a href="https://nvd.nist.gov/vuln/detail/CVE-2025-69873">CVE details</a></p><h3>Call for Help: SCM Webhook Event Handlers for the Catalog</h3><p>In <a href="https://discord.com/channels/687207715902193673/923144214580191282/1471821293983764551">#catalog</a>, maintainer freben shared an open call for community contributions. The Backstage catalog now has a generic interface for handling SCM events (things like file changes, repo renames/deletions, branch creation, and archiving), but only a GitHub adapter has been implemented so far. Teams using GitLab, Bitbucket, or other SCM providers that want instant reactive updates to catalog state are encouraged to contribute adapters. This was a required feature for the 1.48 release cycle.</p><p><a href="https://github.com/backstage/backstage/issues/32833">GitHub Issue #32833</a></p><h3>Community Plugin: Excalidraw-Style Catalog Graph</h3><p>Milan May'r shared a new community plugin in <a href="https://discord.com/channels/687207715902193673/696709358544879716/1470820083809914980">#visual-design</a> and <a href="https://discord.com/channels/687207715902193673/1211692810294788126/1470820170615492671">#plugins</a>: <code>backstage-plugin-roughjs-catalog-graph</code>, which replaces the standard Relations Graph on entity pages with one rendered using rough.js (the same hand-drawn aesthetic popularized by Excalidraw). The plugin takes approximately five minutes to install. It received positive reactions in the community and is a fun way to give the dependency graph a more casual, whiteboard-style look.</p><p><a href="https://github.com/milanmayr/backstage-plugin-roughjs-catalog-graph">View the plugin on GitHub</a></p><h3>Kubernetes-Ingestor Plugin: New Release with Cache Improvements</h3><p>A 9-message thread in <a href="https://discord.com/channels/687207715902193673/1471907254587490417">#plugins</a> tracked a community request for a new release of the kubernetes-ingestor plugin. User prims47 had contributed a PR improving cache behavior when resolving owner from namespace, and Thomvaill's team was waiting on the release to plan their project schedule. Plugin maintainer Scott Rosenberg (vRabbi) confirmed on Feb 17 that a new release went out with the changes, and prims47 noted significantly improved performance on local testing.</p><h3>Volvo Backstage Adoption Story Featured in Community Session</h3><p>In <a href="https://discord.com/channels/687207715902193673/696709358544879716">#adoption</a>, mihait announced that the upcoming Backstage Community Session (week of Feb 18) would feature Volvo showcasing their Backstage adoption journey. This continues the tradition of enterprise adoption stories in the monthly community calls and is a great resource for teams making the business case for Backstage internally.</p><h3>TechDocs Content Rendering Randomly Blank in 1.44.x</h3><p>A detailed bug report landed in <a href="https://discord.com/channels/687207715902193673/714754240933003266/1473120233639121040">#techdocs</a> from user RP on Feb 17: TechDocs pages randomly show a blank content area while the sidebar renders correctly, with the issue appearing after 3–20 navigation clicks through docs pages.</p><p>The instance is running Backstage 1.44.1 with an external builder and GCS publisher. Network inspection showed all requests completing with 200/304 responses and no timeouts, making it tricky to diagnose. RP noted the issue is more common on pages with nested navigation and a custom plugin linking TechDocs for 150+ technologies. The thread was open for community input as of this writing.</p><hr><h2>Changelog</h2><p><strong>v1.48.0</strong> (Feb 17, 2026)
Major release with graduated catalog extension points, NFS enhancements, module federation enabled by default, experimental MCP authorization, and breaking changes to API restrictions. Full changelog at <a href="https://github.com/backstage/backstage/blob/master/docs/releases/v1.48.0-changelog.md">docs/releases/v1.48.0-changelog.md</a>.</p><p><strong>v1.48.1</strong> (Feb 18, 2026)
Patch release fixing missing sharing extensions sidebar item in frontend system docs and type compatibility for older plugins.</p><p><a href="https://github.com/backstage/backstage/releases">All releases</a></p><hr>
]]></content:encoded></item><item><title><![CDATA[Wiz Plugin Reaches GA & Spotify Details Mobile Release Engineering with Backstage]]></title><link>https://roadie.io/backstage-weekly/121-wiz-plugin-ga-spotify-release-engineering/</link><guid isPermaLink="false">https://roadie.io/backstage-weekly/121-wiz-plugin-ga-spotify-release-engineering/</guid><pubDate>Mon, 16 Feb 2026 14:00:00 GMT</pubDate><description><![CDATA[This week highlights real-world Backstage adoption: Wiz launches its GA plugin, Spotify details its mobile release engineering dashboard, and the community dives into security advisories, scaffolder patterns, and backend challenges.]]></description><content:encoded><![CDATA[<h3>Wiz Plugin Reaches General Availability</h3><p><img src="https://www.datocms-assets.com/75231/1770136797-backstage-2x.png?dpr=0.5&#x26;fm=webp" alt="Wiz Plugin Reaches General Availability - Image from Wiz blog post"></p><p>Wiz published their first-party Backstage plugin on February 6. The <code>@wiz-sec/backstage-plugin-wiz</code> package surfaces Wiz Issues and Vulnerabilities directly in your portal by mapping Wiz projects to catalog components.</p><p>You can search and filter findings by rule, resource, or CVE, track severity, and navigate into Wiz for remediation without leaving Backstage. This is distinct from the earlier Roadie-built Wiz plugin, representing Wiz's own investment in the Backstage ecosystem.</p><p><a href="https://www.wiz.io/blog/wiz-spotify-backstage">Wiz blog post</a></p><h3>Spotify Details Mobile Release Engineering with Backstage</h3><p><img src="https://engineering.atspotify.com/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fp762jor363g1%2F71j14YPhkb7exdwGJVJTY7%2Fea363f7f74cd73bec5afad1a7a70c95c%2FHow_we_release_the_main_Spotify_app_Part_2_featured_final.png&#x26;w=750&#x26;q=75" alt="Spotify Mobile Release - Image from Spotify blog post"></p><p>Spotify Engineering published Part 2 of their mobile release process deep-dive on February 9. The post details how their Release Manager Dashboard, built as a Backstage plugin in React/TypeScript, uses the Software Catalog for build distribution configuration.</p><p>The article covers the evolution from Jira-based release tracking to a unified Backstage-powered dashboard, including backend optimization, automated release progression ("the Robot"), and data-driven release insights.</p><p><a href="https://engineering.atspotify.com/2026/2/how-we-release-the-spotify-app-part-2">Read the post</a> | <a href="https://engineering.atspotify.com/2025/04/how-we-release-the-spotify-app-part-1">Part 1 from April 2025</a></p><hr><h2>From the Roadie Blog</h2><p><img src="https://roadie.io/_next/image/?url=https%3A%2F%2Fimages.ctfassets.net%2Fhcqpbvoqhwhm%2F4vvjI8YXk62MaINfC6FQjw%2F7a56658a110c9ed0d65f7cc0e95a6c64%2Fimage1.png%3Fw%3D500%26h%3D500%26fm%3Dwebp&#x26;w=640&#x26;q=75" alt="">
We published <a href="https://roadie.io/blog/backstage-microservices-strategies/">Backstage Microservices Strategies: Taming Sprawl with a Service Catalog</a> on February 12.</p><p>The piece tackles the ownership problem: when a 3 AM incident cascades through your 400-microservice architecture, who owns what's broken? Without a centralized system of record, you accumulate "zombie services" that nobody claims until they fail.</p><p>Key sections cover the hidden cost of microservices at scale (Expedia's 5,000 developers managing 20,000 services), how Backstage functions as your microservices operating system, Golden Paths that eliminate the copy-paste tax (Spotify's new service creation time dropped from 14 days to 5 minutes), dependency visualization for blast radius analysis, and Tech Insights that gamify production readiness.</p><p>The article compares self-hosted versus managed options, noting self-hosted typically requires 2-3 dedicated FTEs with TypeScript/React expertise, while managed solutions like Roadie cost approximately $20/user/month with same-day setup.</p><hr><h2>Community Discussions</h2><h3>New Pull Request Review Workflow for Backstage Contributors</h3><p>The Backstage maintainers have <a href="https://github.com/backstage/backstage/issues/32794">launched a significantly improved pull request review process</a> that makes it easier for community members to become reviewers. The new workflow incorporates a dedicated reviewers group from the start, addressing long-standing feedback about contribution barriers. This change aims to make the review process more transparent and accessible, particularly for those wanting to contribute at a deeper level. The initiative comes with a call for new reviewers to join the program, with RBAC permissions to ensure only authorized platform team members can participate.</p><h3>Developer Experience: Manual Triggering of Scheduled Tasks</h3><p>A <a href="https://discord.com/channels/687207715902193673/1470354816193531945">significant discussion emerged</a> around the pain points of testing scheduled tasks during development. Currently, developers must modify task frequency in config, restart the app, and wait for execution—a slow feedback loop that can take several minutes per iteration. Community member Thomvaill proposed building a "Task Manager" plugin that would provide a UI at <code>/task-manager</code> to list and manually trigger tasks across all plugins, leveraging the existing scheduler trigger API (<code>POST /.backstage/scheduler/v1/tasks/&#x3C;taskId>/trigger</code>). The proposed solution would integrate with Backstage's native auth, support RBAC permissions, and show task status, run history, and cadence information. This resonated with multiple community members facing similar development workflow challenges.</p><h3>Security Vulnerability: tar Package Advisory</h3><p>Users <a href="https://discord.com/channels/687207715902193673/1468949919653171221">reported concerns</a> about the tar package vulnerability (versions &#x3C;=7.5.3) affecting Backstage 1.45.3 installations. The discussion focused on identifying remediation paths and whether upgrading to newer Backstage versions would resolve the issue. This thread included 14 messages with community members sharing workarounds and dependency resolution strategies, highlighting the ongoing need for security vigilance in the ecosystem.</p><h3>Scaffolder: Multiple Action Modules Support</h3><p><a href="https://discord.com/channels/687207715902193673/1471246543402307789">Discussion about scaffolder architecture</a> revealed questions about organizing multiple action modules within a single scaffolder backend module. When running <code>yarn backstage-cli new</code> to create a new action module, developers wondered whether multiple actions should live in separate subdirectories or if there's a recommended pattern for organizing multiple related actions. The conversation highlighted documentation gaps around scaffolder action organization patterns.</p><h3>Catalog Backend: SQLite Race Condition Issues</h3><p>Users <a href="https://discord.com/channels/687207715902193673/1471141097911750796">encountered race condition problems</a> when using SQLite for Backstage catalog backend storage, with multiple participants discussing whether this is a known limitation of the in-memory/SQLite configuration. The recommendation shifted toward using file storage or PostgreSQL for production deployments to avoid database locking issues during concurrent operations. This thread contained 8 messages exploring the technical details of the problem and referencing <a href="https://github.com/backstage/backstage/issues/22207">GitHub issue #22207</a>.</p><h3>Authentication: GitHub Enterprise OAuth Scope Errors</h3><p>Multiple users <a href="https://discord.com/channels/687207715902193673/978977570852835379">reported</a> "Refresh failed, session has not been granted the requested scope" errors when trying to access Backstage components. The discussion focused on GitHub integration configurations and whether certain auth providers properly handle scope refresh tokens. Additionally, there was a thread about GitHub Enterprise authentication CORS policy issues when the GitHub Actions plugin attempts to fetch CI/CD pipeline data from self-hosted instances.</p><h3>Backend System: OpenTelemetry Setup Challenges</h3><p>A user <a href="https://discord.com/channels/687207715902193673/1034089724664610938">struggled with internal Backstage metrics deployment</a> using Helm Chart, specifically around OpenTelemetry configuration. The thread included detailed troubleshooting with 2 messages pointing to <a href="https://github.com/backstage/charts/issues/307">GitHub issue #307</a> in the backstage/charts repository for documentation improvements around metrics setup.</p><h3>Community Plugin: rough.js-based Relations Graph</h3><p>A <a href="https://discord.com/channels/687207715902193673/1211692810294788126">new community plugin was shared</a> that updates the visuals of the Relations Graph using the <code>rough.js</code> library to give components a hand-drawn, sketch-like appearance inspired by Excalidraw. The implementation is described as simple and takes only 5 minutes to set up, offering an alternative visual style for catalog entity relationships. <a href="https://github.com/milanmayr/backstage-plugin-roughjs-catalog-graph">View the plugin on GitHub →</a></p><h3>Catalog Backend Actions Documentation</h3><p><a href="https://discord.com/channels/687207715902193673/1470547837950623866">A discussion emerged</a> about whether there should be formal documentation for the catalog-backend actions or if the community should rely on description and parameter descriptions within the code. The conversation highlighted interest in creating a basic README under the actions directory or in the top-level catalog plugin documentation to make these actions more discoverable for developers.</p><h3>CNCF Travel Support for KubeCon EU Contributors</h3><p>Community contributor Ayush More, who has been contributing to Backstage for several months, <a href="https://discord.com/channels/687207715902193673/1470708184217026662">received approval for a CNCF Travel Scholarship</a> to KubeCon EU. However, as a 17-year-old traveling solo from India, additional costs like the Tatkaal passport and Schengen visa aren't covered. The community discussed possibilities for a small $200-300 "contributor stipend" to help bridge this gap, highlighting the challenges young international contributors face attending events.</p><hr><h2>Changelog</h2><h3>Core Releases</h3><p><strong>v1.48.0-next.2</strong> (Feb 10, 2026)
Pre-release continuing v1.48.0 development. Full changelog at <a href="https://github.com/backstage/backstage/blob/master/docs/releases/v1.48.0-next.2-changelog.md">docs/releases/v1.48.0-next.2-changelog.md</a>. The <a href="https://demo.backstage.io/">demo site</a> runs this version for early testing.</p><p>Latest stable release remains v1.47.3 from February 2.</p><p><a href="https://github.com/backstage/backstage/releases">All releases</a></p>
]]></content:encoded></item><item><title><![CDATA[TechDocs Security Patch, 14+ Plugin Updates & BackstageCon EU]]></title><link>https://roadie.io/backstage-weekly/120-techdocs-security-patch-plugin-updates-backstagecon-eu/</link><guid isPermaLink="false">https://roadie.io/backstage-weekly/120-techdocs-security-patch-plugin-updates-backstagecon-eu/</guid><pubDate>Mon, 09 Feb 2026 14:00:00 GMT</pubDate><description><![CDATA[Backstage v1.47.3 ships a TechDocs security fix, 14+ community plugins update for compatibility, BackstageCon Europe dates are confirmed, and the community debates tar vulnerabilities, theming bugs, and Renovate PR overload.]]></description><content:encoded><![CDATA[<h3>TechDocs Security Patch Shipped</h3><p>Backstage v1.47.3 shipped February 2nd with security fixes for <code>@backstage/plugin-techdocs-node</code>. The patch addresses vulnerabilities in how TechDocs handles external content. If you're running TechDocs, upgrade now.</p><p>Still on 1.46.x? v1.46.5 backports the same fixes.</p><p>This follows the security improvements in v1.47.0 from January 20th for Software Templates and external content reading. Use the <a href="https://backstage.github.io/upgrade-helper/">Backstage Upgrade Helper</a> for your upgrade.</p><p><a href="https://github.com/backstage/backstage/releases/tag/v1.47.3">v1.47.3 release notes</a> | <a href="https://github.com/backstage/backstage/releases/tag/v1.46.5">v1.46.5 release notes</a></p><h3>14+ Community Plugins Updated</h3><p>Between February 4-5, over 14 community plugins got version bumps for v1.47.3 compatibility: SonarQube, Azure DevOps, RBAC, Jenkins, OCM, Tech Radar, ServiceNow, 3scale, Quay, Keycloak, and several scaffolder backend modules.</p><p>Beyond version bumps, a few substantial changes landed:</p><p>Cost Insights now supports custom date ranges (<a href="https://github.com/backstage/community-plugins/pull/7463">#7463</a>). You can analyze cloud costs over specific periods instead of fixed windows.</p><p>Confluence fixed legacy app-config compatibility for the search collector (<a href="https://github.com/backstage/community-plugins/pull/7494">#7494</a>).</p><p>MCP Chat updated to @modelcontextprotocol/sdk v1.26.0 (<a href="https://github.com/backstage/community-plugins/pull/7479">#7479</a>).</p><p><a href="https://github.com/backstage/community-plugins/pulls">Browse all updates</a></p><h3>BackstageCon Europe: Dates Confirmed</h3><p><img src="https://events.linuxfoundation.org/wp-content/uploads/2025/10/KC-CNC-EU-26-Subhero-1920x600.png" alt="BackstageCon and KubeCon + CloudNativeCon Europe 2025"></p><p>As we mentioned last week, BackstageCon Europe 2026 happens March 23-26 in Amsterdam, co-located with KubeCon + CloudNativeCon Europe. The sponsorship deadline passed February 2nd, but registration opens soon.</p><p>Amsterdam will also host a Backstage ContribFest session on March 26th where you can contribute directly to the project. <a href="https://kccnceu2026.sched.com/event/2EFTv">Full schedule here</a>.</p><p>If you missed BackstageCon North America 2025 in Atlanta, videos are available on <a href="https://www.youtube.com/playlist?list=PL8iP9yIjU0Q33vpSaBlAvIhgDb-9smXUU">Backstage Community YouTube</a>.</p><p><a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/co-located-events/backstagecon/">Event page</a></p><hr><h2>Ecosystem Pulse</h2><p>AI + Platform Engineering convergence continues to be a major theme for 2026. Jennifer Riggins at The New Stack published <a href="https://thenewstack.io/in-2026-ai-is-merging-with-platform-engineering-are-you-ready/">In 2026, AI Is Merging With Platform Engineering. Are You Ready?</a> noting that Spotify used AI agents to generate 1,500+ merged PRs with 60-90% time savings, and internal developer platforms have become "nearly universal" per the DORA report.</p><p>Roadie published <a href="https://roadie.io/blog/ai-is-showing-up-in-developer-portals/">AI, IDPs and Platform Teams: What We're Seeing</a> documenting how platform teams are experimenting with RAG over TechDocs, AI-powered scaffolder actions, and natural language queries across internal tools. Key challenge: AI agents are being built in silos without discoverability, ownership, or governance. Roadie's solution treats AI agents as first-class catalog entities, just like services, enabling teams to track who owns what, where PII flows, and whether agents follow security standards.</p><hr><h2>Community Discussions</h2><h3>Aliases Configuration Partially Broken</h3><p>A user <a href="https://discord.com/channels/687207715902193673/687207715902193679/1468509507092221952">deploying Backstage with multiple aliases in #general</a> hit customization issues on January 30. Ingress patches, CORS configuration, and Azure app callbacks all need fixes. Only some alias functionality works.</p><h3>Tar Vulnerability in 1.45.3</h3><p>The <a href="https://discord.com/channels/687207715902193673/687207715902193679/1468949919653171221">#general channel surfaced a discussion</a> February 5 about the tar (&#x3C; 7.5.3) vulnerability affecting Backstage 1.45.3. Tar is a transitive dependency. The bookworm-slim base image makes this worse because packages age without updates.</p><p>Users want remediation options. No clear path forward yet.</p><h3>Dark Mode Theming Broken</h3><p>Custom themes with company logos work in light mode but break in dark mode, according to <a href="https://discord.com/channels/687207715902193673/687207715902193679/1468948605720203324">a #general post tagged #visual-design</a> from February 5. The sidebar uses one theme, while catalog and home pages use different theming.</p><h3>Timezone Support Request</h3><p>A Sydney-based team <a href="https://discord.com/channels/687207715902193673/831533806899953715/1467662925299978441">asked in #meetups</a> on February 2 for different timezone support for community sessions and calls. Current times mean 2am calls.</p><h3>Renovate Creates Immortal PRs</h3><p>Renovate creates persistent PRs for Backstage security updates, <a href="https://discord.com/channels/687207715902193673/1201559534754345110/1466821865111552030">according to discussion in #maintenance</a> on January 30. OSV vulnerability alerts create too many PRs. You can't configure them at package level, only globally. These PRs block the concurrent PR limit.</p>
]]></content:encoded></item><item><title><![CDATA[2026 Roadmap, v1.48.0 Pre-Release & CNCF Velocity]]></title><link>https://roadie.io/backstage-weekly/119-2026-roadmap-v1-48-0-backstagecon/</link><guid isPermaLink="false">https://roadie.io/backstage-weekly/119-2026-roadmap-v1-48-0-backstagecon/</guid><pubDate>Mon, 02 Feb 2026 13:00:00 GMT</pubDate><description><![CDATA[Backstage maintainers are gathering community input on priorities for 2026, alongside the v1.48.0 pre-release, BackstageCon Europe updates, and new CNCF velocity metrics.]]></description><content:encoded><![CDATA[<h3>Backstage Maintainers Want Your Input on 2026 Roadmap</h3><p>The maintainers opened <a href="https://github.com/backstage/backstage/issues/32083">a GitHub discussion</a> asking what you want prioritized in 2026. Four themes have emerged:</p><p><strong>Performance and Reliability</strong>: Core performance improvements, better memory management, and stability at scale. This matters if you're running Backstage for hundreds or thousands of engineers.</p><p><strong>Scaffolder Enhancements</strong>: Better workflows, clearer form UX, and debugging tools that actually help. If you've wrestled with template errors, this should interest you.</p><p><strong>Tech Stack Modernization</strong>: React 19, TypeScript 5.7+, and modern bundling. This isn't just version bumping, it's about making Backstage easier to extend and maintain.</p><p><strong>Security Improvements</strong>: Enhanced auth patterns and security features. Given the sensitive data Backstage handles, this is overdue.</p><p>The discussion is active now. If you have strong opinions about what needs fixing or improving, add them there.</p><h3>BackstageCon Europe: March 23 in Amsterdam</h3><p><a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/co-located-events/backstagecon/">BackstageCon Europe 2026</a> happens March 23 in Amsterdam, co-located with KubeCon + CloudNativeCon Europe.</p><p>Sponsorship deadline is February 2. <a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/register/">Registration is open</a>.</p><p><img src="https://backstage.io/assets/images/kcon25-atl-slideshow-80d0c3c88c2250dc90de0ab343d0ea8f.gif" alt="BackstageCon Atlanta 2025 slideshow showing conference scenes and community collaboration - Source: backstage.io"></p><h3>Backstage Ranks #5 in CNCF Velocity</h3><p>The <a href="https://www.cncf.io/announcements/2026/01/20/kubernetes-established-as-the-de-facto-operating-system-for-ai-as-production-use-hits-82-in-2025-cncf-annual-cloud-native-survey/">CNCF's 2025 Annual Survey</a> ranks Backstage as the #5 CNCF project by velocity. The <a href="https://www.cncf.io/projects/backstage/">CNCF project page</a> shows the current metrics:</p><ul><li>46,063 total contributors</li><li>13,506 contributing organizations</li><li>$125.1M estimated software value</li><li>Health score: 82 (excellent)</li></ul><hr><h2>Backstage Changelog</h2><h3>v1.48.0-next.0 Pre-Release</h3><p><a href="https://github.com/backstage/backstage/releases/tag/v1.48.0-next.0">Released January 27</a>, this pre-release packages the latest features heading into v1.48.0. The <a href="https://github.com/backstage/backstage/blob/master/docs/releases/v1.48.0-next.0-changelog.md">full changelog</a> has details.</p><p><img src="//images.ctfassets.net/hcqpbvoqhwhm/26dgn0OAg8ZQ4h5djo2Qrs/8f6bd5668539133dfdafe38c00103723/image1.jpg" alt="v1.48.0-next.0 Pre-Release"></p><h3>v1.47.0 Breaking Changes and Updates</h3><p><a href="https://github.com/backstage/backstage/releases/tag/v1.47.0">v1.47.0 shipped January 20</a> with 103 PRs from 40 contributors. Here's what breaks and what improves:</p><h4>Table Component Redesign</h4><p>The Table in <code>@backstage/core-components</code> got rebuilt. If you use custom columns or cell renderers, they need updates. The new version performs better and gives you more control over pagination.</p><p>Check the <a href="https://github.com/backstage/backstage/releases/tag/v1.47.0">release notes</a> for the migration guide.</p><h4>Blueprint Component Deprecations</h4><p>Blueprint.js components are being replaced with Material UI equivalents. The deprecation warnings tell you what to use instead. This isn't urgent but plan for it.</p><h4>GithubOrgEntityProvider Performance Fix</h4><p>The GitHub org provider now does incremental updates instead of full refreshes. If you ingest hundreds of repos, this matters. Update your config to enable it.</p><h4>AWS S3 Auth Priority Change</h4><p>The URL reader now uses explicit credentials before falling back to environment variables. If you're using S3 for TechDocs storage, verify your auth setup still works.</p><h4>URL Reader Redirect Validation</h4><p>Redirects now get validated to prevent security issues. This might break integrations that rely on redirect chains. Test your setup after upgrading.</p><h4>Kubernetes Plugin Backend Migration</h4><p>New backend modules are available for the Kubernetes plugin. The old approach still works but follow the migration guide to move to the new system.</p><h4>Docker Image Updates</h4><p><a href="https://github.com/backstage/backstage/blob/master/docs/releases/v1.47.0-next.2-changelog.md">v1.47.0-next.2</a> moved to Node 24 and Debian Trixie. The <a href="https://backstage.io/docs/deployment/docker/">Docker deployment docs</a> show the new <code>node:24-trixie-slim</code> base image.</p><hr><h2>Community Discussions</h2><h3>Release Updates: v1.47.2 Fixes Zod Issues</h3><p>A new patch release, <strong>Backstage v1.47.2</strong>, has been published. This is a critical update as it fixes a breaking <code>Cannot find module 'zod/v3'</code> error that affected users on 1.47.1 and caused automated version bump processes for community plugins to fail. The issue stemmed from work to migrate to Zod v4 leaking into the release.</p><ul><li><strong>Fix:</strong> The patch restores dependency on a specific version of Zod.</li><li><strong>API Factory:</strong> It also rolls back immediate breaking changes regarding API factory conflicts, converting them to deprecation warnings instead.</li><li><strong>Community Plugins:</strong> Following this fix, the automated version bump process for community plugins has been re-triggered and is back to green.</li></ul><p><a href="https://github.com/backstage/backstage/releases/tag/v1.47.2">See the release notes</a> or view the discussion in <a href="https://discord.com/channels/687207715902193673/1201559534754345110/1465824423377502466">#maintenance</a>.</p><h3>Managing Community Plugin Updates</h3><p>There was an insightful discussion in <a href="https://discord.com/channels/687207715902193673/1211692810294788126/threads/1465421694171877637">#plugins</a> regarding how community plugins are released and upgraded:</p><ul><li><strong>Release Process:</strong> Once a functionality PR is merged, a "Version Packages" PR is generated. The new version is only published to NPM after <em>that</em> second PR is merged.</li><li><strong>How to Update:</strong> Running the standard <code>yarn backstage-cli versions:bump</code> does <strong>not</strong> update community plugins by default. To bump these packages manually without Renovate, use:
<code>yarn backstage-cli versions:bump --pattern "@backstage-community/*"</code></li></ul><h3>DevTools and Scheduler Configuration</h3><p>In <a href="https://discord.com/channels/687207715902193673/687207715902193679/1465264870562988062">#general</a>, users discussed configuring <code>devtools.scheduledTasks.plugins</code>. Current findings suggest that <strong>Catalog</strong>, <strong>Search</strong>, and <strong>Notifications</strong> are the primary plugins supported in this configuration section.</p><h3>Technical Q&#x26;A Highlights</h3><p>Several technical patterns were debated in <a href="https://discord.com/channels/687207715902193673/687207715902193679">#general</a>:</p><ul><li><strong>Config outside React:</strong> Users looking to access app config outside of React components (without <code>useApi</code>) were pointed toward <code>defaultConfigLoader.ts</code> as a reference implementation.</li><li><strong>Migration Rollbacks:</strong> There is an active issue regarding rolling back <code>backend-defaults</code> scheduler migrations (<code>20250411000000_last_run.js</code>). The standard Knex rollback commands are failing with a "migration directory corrupt" error because the file references tables not strictly bound to the expected database context.</li><li><strong>Tag Validation:</strong> A reminder that the Catalog currently enforces lowercase tags; uppercase tags in <code>catalog.yml</code> will fail registration.</li></ul><hr><h2>From the Roadie Blog</h2><h3>Creating Backstage EntityProviders at Runtime</h3><p>Brian Fletcher's <a href="https://roadie.io/blog/creating-backstage-entityproviders-at-runtime/">runtime EntityProviders guide</a> shows how to build a provider pooling pattern. The key idea: pre-register providers at startup, then assign them to consumers at runtime.</p><p>This pattern enables:</p><ul><li>Multi-tenancy (different teams, different data sources)</li><li>User-defined integrations without code deployment</li><li>Self-service onboarding</li><li>Dynamic provider registration</li></ul><p>If you're building a platform where users define their own integrations, this pattern solves the "restart the backend every time someone adds a data source" problem.</p><h3>The Real Cost of Self-Hosting Backstage</h3><p>A recent <a href="https://roadie.io/blog/the-true-cost-of-self-hosting-backstage/">build vs. buy analysis from Roadie</a> breaks down what self-hosting actually costs. Not just infrastructure, the engineering time to maintain it, upgrade it, and keep it secure.</p><p>The analysis covers:</p><ul><li>Real infrastructure costs (compute, storage, networking)</li><li>Hidden maintenance costs (upgrades, plugin updates, security patches)</li><li>Opportunity cost (platform team time vs. product work)</li><li>When self-hosting makes sense vs. when managed makes sense</li></ul><p>If you're evaluating Backstage deployment options, this gives you the framework to calculate total cost of ownership.</p><p>That's this week's Backstage Weekly. See you next week.</p>
]]></content:encoded></item><item><title><![CDATA[Backstage v1.47.0 ships with major table redesign and AWS auth improvements]]></title><link>https://roadie.io/backstage-weekly/118-backstage-v1-47-0-ships-with-major-table-redesign/</link><guid isPermaLink="false">https://roadie.io/backstage-weekly/118-backstage-v1-47-0-ships-with-major-table-redesign/</guid><pubDate>Mon, 26 Jan 2026 11:30:00 GMT</pubDate><description><![CDATA[Backstage 1.47.0 introduces a redesigned Table component, updated UI tokens, and improved AWS authentication in TechDocs.]]></description><content:encoded><![CDATA[<p>Here are the stories and projects that caught our attention this week:</p><h3>CNCF End User Case Study Contest opens for Backstage adopters</h3><p>The CNCF announced their End User Case Study Contest, which showcases proven, real-world adoption of CNCF technologies including Backstage by end user organizations. Winners will present a 5-minute live keynote at KubeCon + CloudNativeCon EU 2026 in Amsterdam (March 23-26, 2026) and have their case study published on cncf.io. The contest closes on January 30, 2026 at 11:59pm PT, with winners announced by February 25, 2026. End user case studies published on cncf.io during 2025 will also be considered.</p><p><a href="https://www.surveymonkey.com/r/FJL5X3G">Submit your case study →</a></p><h3>Backstage agent skills for AI assistants</h3><p>A community member shared a new GitHub repository called backstage-agent-skills that provides Backstage skills for AI agents. The project aims to help AI assistants interact with Backstage instances programmatically. This is part of the growing intersection between AI and developer platforms as organizations look to automate more workflows.</p><p><a href="https://github.com/rothenbergt/backstage-agent-skills">Explore the repository →</a></p><h3>Code Wiki generates automated documentation for Backstage</h3><p>A new tool called Code Wiki has appeared that automatically generates up-to-date documentation for codebases. The community discussion highlighted its potential application for the Backstage repository itself, providing automatically generated API references and architecture overviews without manual documentation work.</p><p><a href="https://codewiki.google/github.com/backstage/backstage">Check out Code Wiki →</a></p><h2>Backstage Changelog</h2><p>A quick look at the changes that shipped in Backstage v1.47.0, released on January 20th.</p><h3>Breaking Changes</h3><ul><li><p><strong>Redesigned Table and useTable in @backstage/ui</strong> - The Table component now has pagination, sorting, selection, and data display built-in. The low-level wrapper is now TableRoot. The useTable hook supports three pagination modes: complete, offset, and cursor. <a href="https://ui.backstage.io/changelog">Migration guide →</a></p></li><li><p><strong>Updated color tokens in @backstage/ui</strong> - Color tokens updated to align with the new neutral surface-based design system. The <code>-tint</code> tokens have been removed.</p></li><li><p><strong>Redirect validation in URL reader</strong> - <code>coreServices.urlReader</code> now validates redirect chains against the allow list in <code>backend.reading.allow</code>. The FetchUrlReader class constructor is now private, replaced with a <code>fromConfig</code> static factory method.</p></li><li><p><strong>Better AWS S3 auth handling in TechDocs</strong> - Auth priority is now: 1) <code>aws.accounts</code>, 2) <code>techdocs.publisher.awsS3.credentials</code>, 3) <code>integrations.awsS3</code>, 4) Default credential chain.</p></li></ul><h3>Features</h3><ul><li><p><strong>Backend action filtering support</strong> - ActionsService now supports action filtering based on configuration to control which actions are exposed to consumers like the MCP backend.</p></li><li><p><strong>GitHub repository workflow access configuration</strong> - The scaffolder now supports configuring <code>workflowAccess</code> level when creating GitHub repositories to control GitHub Actions workflow access. Contributed by <a href="https://github.com/fearphage">@fearphage</a> in <a href="https://github.com/backstage/backstage/pull/32237">#32237</a></p></li><li><p><strong>Additional Kafka Events streaming settings</strong> - The Kafka event module now supports <code>fromBeginning</code> offsets and <code>autoCommit</code>. Contributed by <a href="https://github.com/imod">@imod</a> in <a href="https://github.com/backstage/backstage/pull/31410">#31410</a></p></li></ul><h3>Improvements</h3><ul><li><p><strong>Home plugin UI improvements</strong> - Widget configuration changes now only save when the Save button is clicked. A new Cancel button lets users discard unsaved changes. Contributed by <a href="https://github.com/kmikko">@kmikko</a> in <a href="https://github.com/backstage/backstage/pull/31198">#31198</a></p></li><li><p><strong>GithubOrgEntityProvider performance boost</strong> - The provider now fetches only specific user teams instead of all organization users when processing membership events, and uses <code>addEntitiesOperation</code> instead of <code>replaceEntitiesOperation</code> to avoid unnecessary deletions. Contributed by <a href="https://github.com/angeliski">@angeliski</a> in <a href="https://github.com/backstage/backstage/pull/32184">#32184</a></p></li><li><p><strong>Link component navigation fix</strong> - The Link component now properly uses React Router's navigation system instead of causing full page refreshes for internal routes.</p></li></ul><h3>Deprecations</h3><ul><li><p><strong>App customization blueprints moved</strong> - IconBundleBlueprint, NavContentBlueprint, RouterBlueprint, SignInPageBlueprint, SwappableComponentBlueprint, ThemeBlueprint, and TranslationBlueprint have been deprecated and moved to <code>@backstage/plugin-app-react</code>. These are now restricted to use in the app plugin only.</p></li><li><p><strong>API factory restrictions</strong> - Plugins are now restricted from overriding core Utility APIs and API factories from other plugins. Overrides must be made using plugin overrides or modules.</p></li></ul><h3>Security Fixes</h3><p>This release contains security fixes for Software Templates and reading external content.</p><h2>Community Discussions</h2><p>Here's what the Backstage community has been talking about this week:</p><h3>Entity naming best practices</h3><p>With auto-ingestion of GitHub repos, AWS resources, and Kubernetes resources, a community member asked about handling name clashes across entity types. The discussion covered using namespaces to scope things (kubens, aws, github) versus prefixing names. Using <code>spec.title</code> for more explicit names in the UI was also suggested as a way to maintain clean URLs while showing friendly names.</p><p><a href="https://discord.com/channels/687207715902193673/687207715902193679/1461382234794754171">View the discussion →</a></p><h3>CLI templates and conditional file creation</h3><p>Questions about the CLI templates feature revealed that you can name files with variables like <code>plugin-{{ pluginId }}.prod.yaml.hbs</code> and use conditional logic like <code>{%- if values.some == "yes" -%}file-name.yaml{%- endif -%}</code> to only create files when conditions are met. This applies both to file names and content within files.</p><p><a href="https://discord.com/channels/687207715902193673/687207715902193679/1463201160755282098">View the discussion →</a></p>
]]></content:encoded></item><item><title><![CDATA[Backstage on the Stack Overflow Podcast & A review of IDPs in 2025]]></title><link>https://roadie.io/backstage-weekly/117-spotify-plugins-v-1-43-tech-insights-legacy-backend-eol/</link><guid isPermaLink="false">https://roadie.io/backstage-weekly/117-spotify-plugins-v-1-43-tech-insights-legacy-backend-eol/</guid><pubDate>Tue, 21 Oct 2025 23:00:00 GMT</pubDate><description><![CDATA[Backstage updates: new CLI for catalog providers, auth screen uses app title, Postgres v18 support, ESLint UI CSS rule, TechDocs fixes, SES v2 emails, improved UI styles, Docker example app, updated docs.]]></description><content:encoded><![CDATA[<p>Here's a couple of recent articles that caught our attention this week:</p><h3>Getting Backstage in front of a shifting dev experience [podcast]</h3><p>Pia Nilsson, GM for Backstage and Head of Developer Experience at Spotify, was interviewed on The Stack Overflow Blog to discuss the organic growth and widespread adoption of Backstage, as well as the impact of AI on developer experience. As of September 2025, Backstage boasts over 3,400 known adopters, including numerous Fortune 500 companies like Airbnb, Booking.com, H&#x26;M, Toyota, and Lego. Nilsson highlighted how Spotify approaches platform engineering and standardization to help teams address specific needs, emphasizing Backstage's role in reducing friction, cognitive overhead, and operational toil for developers. The discussion also touched upon the future evolution of the developer experience, particularly with the integration of AI-driven workflows.</p><p><a href="https://stackoverflow.blog/2025/09/26/getting-backstage-in-front-of-a-shifting-dev-experience/">Read more →</a></p><h3>Backstage, a Mid-Year Snapshot - Platform Engineering</h3><p>A mid-year snapshot from Platform Engineering in September 2025 positions Backstage as the "gravitational center" of the Internal Developer Portal (IDP) conversation, having evolved significantly since its open-sourcing. The article notes that Backstage, now at version 1.42.5, is actively maintained under the CNCF and adopted by over 270 organizations (Editors note: It's more like 3,400). This article provides a good overview of the state of the IDP ecosystem in 2025.</p><p><a href="https://platformengineering.com/social-facebook/backstage-a-mid-year-snapshot/">Read more →</a></p><h2>Backstage Changelog</h2><h3>Features</h3><ul><li>Add CLI template to create new catalog entity provider modules. <a href="https://github.com/backstage/backstage/pull/31459">#31459</a> by @Rugvip, merged 1 day ago</li><li>Use app title in the auth consent screen. <a href="https://github.com/backstage/backstage/pull/31475">#31475</a> by @drodil, merged 2 days ago</li><li>Update Postgres policy to support version 18 with tests on 18 and 14. <a href="https://github.com/backstage/backstage/pull/31453">#31453</a> by @awanlin, merged 4 days ago</li><li>Add eslint rule that blocks importing Backstage UI CSS in plugins to keep styles consistent. <img src="https://github.com/user-attachments/assets/da4e00bb-57a8-4caf-b566-c9b5a8a14a12" alt=""><a href="https://github.com/backstage/backstage/pull/31463">#31463</a> by @Rugvip, merged 5 days ago</li></ul><h3>Bug Fixes</h3><ul><li>Fix TechDocs page rerender on each subpage navigation high activity. Before https://github.com/user-attachments/assets/99566977-052f-4aca-bc0f-cedb18631ce8 After https://github.com/user-attachments/assets/bbbcf127-30d3-4785-a53c-6e9b4c64994d <a href="https://github.com/backstage/backstage/pull/31447">#31447</a> by @GabDug, merged 2 days ago</li><li>Fix TechDocs CLI missing styles in version 1.10.0. Before <img src="https://github.com/user-attachments/assets/184572c8-1a5e-45ce-9175-e428b4f95299" alt=""> After <img src="https://github.com/user-attachments/assets/a52b7110-4ddf-4b0f-a300-e1bbd839d4e1" alt=""><a href="https://github.com/backstage/backstage/pull/31456">#31456</a> by @GabDug, merged 5 days ago</li><li>Update email notifications backend to SES v2 to avoid nodemailer v7 errors. <a href="https://github.com/backstage/backstage/pull/31458">#31458</a> by @drodil, merged 2 days ago</li><li>Make BitbucketUrlReader use the provided token. <a href="https://github.com/backstage/backstage/pull/31360">#31360</a> by @RedlineTriad, merged 6 days ago</li><li>Fix Backstage UI CSS layer order so base and tokens apply before components. <a href="https://github.com/backstage/backstage/pull/31448">#31448</a> by @cdedreuille, merged 5 days ago</li><li>Set default font smoothing in Backstage UI for clearer text. <a href="https://github.com/backstage/backstage/pull/31444">#31444</a> by @cdedreuille, merged 6 days ago</li><li>Import Backstage UI CSS in index.ts to ensure styles load. <a href="https://github.com/backstage/backstage/pull/31449">#31449</a> by @vinzscam, merged 1 day ago</li></ul><h3>Improvements</h3><ul><li>Soften task worker starting log text to avoid confusion about actual task start. <a href="https://github.com/backstage/backstage/pull/31460">#31460</a> by @freben, merged 2 days ago</li><li>Allow running the example app with Docker using Postgres OpenSearch Redis for local dev. <a href="https://github.com/backstage/backstage/pull/31107">#31107</a> by @drodil, merged 2 days ago</li></ul><h3>Documentation</h3><ul><li>Improve Backstage UI installation docs to show how to add the global theme and use components. <img src="https://github.com/user-attachments/assets/81c2bb3f-0197-403e-a893-4acd2316c47f" alt=""><a href="https://github.com/backstage/backstage/pull/31471">#31471</a> by @cdedreuille, merged 2 days ago</li><li>Update mainline release publishing docs to remove steps that are now automated. <a href="https://github.com/backstage/backstage/pull/31443">#31443</a> by @camilaibs, merged 6 days ago</li><li>Add blog post Get ready for Backstage ContribFest at KubeCon. <a href="https://github.com/backstage/backstage/pull/31440">#31440</a> by @awanlin, merged 6 days ago</li></ul><h2>Ecosystem Changelog</h2><h3><a href="/backstage/plugins/announcements/">Announcements Plugin</a></h3><ul><li><strong>Bug Fixes</strong> Add missing CSS so the dark theme renders correctly <a href="https://github.com/backstage/community-plugins/pull/5784">#5784</a> merged 6 days ago</li></ul><h3><a href="/backstage/plugins/azure-pipelines/">Azure Pipelines Plugin</a></h3><ul><li><strong>Features</strong> Add option to limit clone depth for the azure repository clone action <a href="https://github.com/backstage/community-plugins/pull/5632">#5632</a> merged 5 days ago</li></ul><h3><a href="/backstage/plugins/coder/">Coder Plugin</a></h3><ul><li><strong>Features</strong> Add OAuth2 sign in to the Coder frontend
Add a backend plugin to handle the OAuth2 flow <a href="https://github.com/coder/backstage-plugins/pull/151">#151</a> merged 7 days ago</li></ul><h3><a href="/backstage/plugins/crossplane/">Crossplane Plugin</a></h3><ul><li><strong>Features</strong> Add default exports for NFS alpha export to simplify usage merged 7 days ago</li></ul><h3><a href="/backstage/plugins/dev-pod/">DevPod Plugin</a></h3><ul><li><strong>Features</strong> Add default exports for NFS alpha export to simplify usage merged 7 days ago</li></ul><h3><a href="/backstage/plugins/dx/">DX Plugin</a></h3><ul><li><strong>Bug Fixes</strong> Fix infinite loop in DxDataChartCard when the variables prop is missing <a href="https://github.com/get-dx/backstage-plugin/pull/41">#41</a> merged 2 days ago</li></ul><h3><a href="/backstage/plugins/github-actions/">GitHub Actions Plugin</a></h3><ul><li><strong>Changes</strong> Disable two NFS cards by default to reduce clutter
Remove the optional overview card from the NFS
The full view stays in the GitHub Actions tab <a href="https://github.com/backstage/community-plugins/pull/5678">#5678</a> merged 5 days ago</li></ul><h3><a href="/backstage/plugins/kyverno-policy-reports/">Kyverno Policy Reports Plugin</a></h3><ul><li><strong>Features</strong> Add default exports for NFS alpha export to simplify usage merged 7 days ago</li></ul><h3><a href="/backstage/plugins/pipelines-with-tekton/">Pipelines with Tekton Plugin</a></h3><ul><li><strong>Improvements</strong> Move status components and helper hooks into the Tekton plugin to reduce external imports <a href="https://github.com/backstage/community-plugins/pull/5777">#5777</a> merged 5 days ago</li></ul><h3><a href="/backstage/plugins/s-3-viewer/">S3 Viewer Plugin</a></h3><ul><li><strong>Features</strong> Add config to show or hide bucket details for end users
Default stays true to keep current behavior <a href="https://github.com/spreadshirt/backstage-plugin-s3/pull/183">#183</a> merged 1 day ago</li></ul><h3><a href="/backstage/plugins/scaffolder-utility-actions/">Scaffolder Utility Actions Plugin</a></h3><ul><li><strong>Bug Fixes</strong> Fix YAML merge when a file starts with a top level block comment <a href="https://github.com/RoadieHQ/roadie-backstage-plugins/pull/2070">#2070</a> merged 2 days ago</li></ul><h3><a href="/backstage/plugins/scale-ops/">ScaleOps Plugin</a></h3><ul><li><strong>Features</strong> Add default exports for NFS alpha export to simplify usage merged 7 days ago</li></ul>
]]></content:encoded></item><item><title><![CDATA[Backstage v1.44.0 drops, and many plugins have new features added]]></title><link>https://roadie.io/backstage-weekly/101-backstage-ui-revamp-drop-icon-scroll-area-dialog-ships/</link><guid isPermaLink="false">https://roadie.io/backstage-weekly/101-backstage-ui-revamp-drop-icon-scroll-area-dialog-ships/</guid><pubDate>Wed, 15 Oct 2025 23:00:00 GMT</pubDate><description><![CDATA[Backstage 1.44.0 drops, and PagerDuty unveils a new end-to-end AI suite which includes Backstage amongst it's integrations.]]></description><content:encoded><![CDATA[<p>It appears there has been a recent flurry of activity and discussions around Backstage, Spotify's open-source developer portal. Several articles and announcements highlight its role in enhancing developer experience, new integrations, and ongoing platform evolution.</p><h3>PagerDuty Unveils End-to-End AI Agent Suite with Backstage Integration</h3><p>PagerDuty recently announced the launch of its end-to-end AI agent suite, featuring over 150 enhancements and deep integrations with various tools, including Backstage. This new suite aims to leverage AI to improve incident resolution times and reduce on-call fatigue. The integration with Backstage suggests a move towards embedding AI-driven incident management capabilities directly within the developer portal, enabling more streamlined operations and potentially automated responses to system alerts.</p><p><a href="https://investor.pagerduty.com/news/news-details/2025/PagerDuty-Launches-Industrys-First-End-to-End-AI-Agent-Suite-Slashing-Incident-Response-Times-and-Empowering-Teams-to-Innovate/default.aspx">Read more →</a></p><h3>Backstage v1.44.0 Release Notes</h3><p>The Backstage Software Catalog and Developer Platform has announced the release of version 1.44.0, bringing several updates and improvements. Key changes include the removal of the built-in <code>CssBaseline</code> from <code>UnifiedThemeProvider</code>, requiring users to manually import <code>@backstage/ui/css/styles.css</code> for proper styling. Additionally, a new <code>--entrypoint</code> option has been added to the <code>package start</code> command in the Backstage CLI, allowing for custom entry directories for development applications. A notable new plugin called "Themer" has also been introduced, designed to assist with Material UI to Backstage UI migration.</p><p><a href="https://backstage.io/docs/releases/v1.44.0/">Read more →</a></p><h2>Backstage Changelog</h2><h3>Breaking Changes</h3><ul><li>Remove Backstage UI ScrollArea component for accessibility reasons. <a href="https://github.com/backstage/backstage/pull/31409">#31409</a> by @cdedreuille, merged 1 day ago</li><li>Remove Backstage UI Icon component to reduce bundle size and stabilize the API. <a href="https://github.com/backstage/backstage/pull/31407">#31407</a> by @cdedreuille, merged 1 day ago</li></ul><h3>Features</h3><ul><li>Add Backstage UI Dialog component with header body footer and closer. <a href="https://github.com/backstage/backstage/pull/31371">#31371</a> by @ssjoblad, merged 2 days ago <img src="https://github.com/user-attachments/assets/279cd0a6-dc75-41cc-b1ce-a56bfceb8c03" alt="Dialog component screenshot"></li><li>Add virtualization to UI menus via virtualized prop plus maxWidth and maxHeight for long lists. <a href="https://github.com/backstage/backstage/pull/31375">#31375</a> by @cdedreuille, merged 6 days ago</li><li>Allow Box Container Flex Grid GridItem to pass data attributes to rendered elements. <a href="https://github.com/backstage/backstage/pull/31374">#31374</a> by @vinzscam, merged 6 days ago</li><li>Add sentry fetch dsn action in scaffolder backend Sentry module to output a project DSN. <a href="https://github.com/backstage/backstage/pull/31046">#31046</a> by @brentswisher, merged 2 days ago</li><li>Add support in the yarn plugin for a custom Backstage manifest location via env vars for restricted networks. <a href="https://github.com/backstage/backstage/pull/31122">#31122</a> by @drodil, merged 1 day ago (active discussion)</li></ul><h3>Bug Fixes</h3><ul><li>Fix scaffolder form handling of RJSF allOf oneOf anyOf when using nested conditions at the step root. <a href="https://github.com/backstage/backstage/pull/31382">#31382</a> by @iainvdw, merged today</li><li>Fix NotFound page rendering when a page extension is mounted at root slash. <a href="https://github.com/backstage/backstage/pull/31353">#31353</a> by @vinzscam, merged 2 days ago</li><li>Fix default text color in Backstage UI. <a href="https://github.com/backstage/backstage/pull/31429">#31429</a> by @cdedreuille, merged today</li><li>Fix default font weight and family in Backstage UI. <a href="https://github.com/backstage/backstage/pull/31432">#31432</a> by @cdedreuille, merged today</li><li>Fix default font size in Backstage UI. <a href="https://github.com/backstage/backstage/pull/31435">#31435</a> by @cdedreuille, merged today</li><li>Fix table sort icon position and visibility on hover in Backstage UI. <a href="https://github.com/backstage/backstage/pull/31393">#31393</a> by @cdedreuille, merged 2 days ago <img src="https://github.com/user-attachments/assets/d60b6261-ca4b-4728-a2d3-8d50e0ebbd11" alt="Table sort icon"></li><li>Fix scroll jumping when opening UI menus by avoiding modal body scroll lock. <a href="https://github.com/backstage/backstage/pull/31394">#31394</a> by @cdedreuille, merged 2 days ago</li><li>Fix missing Backstage UI CSS in the dev app in dev utils. <a href="https://github.com/backstage/backstage/pull/31428">#31428</a> by @Rugvip, merged today</li><li>Fix discovery of distributed actions in scaffolder backend on startup. <a href="https://github.com/backstage/backstage/pull/31244">#31244</a> by @drodil, merged 1 day ago</li></ul><h3>Improvements</h3><ul><li>Update React Aria in Backstage UI to 1.13.0 with many small fixes. <a href="https://github.com/backstage/backstage/pull/31367">#31367</a> by @cdedreuille, merged 6 days ago</li><li>Add CSS layers to Backstage UI to make custom CSS override defaults more predictably. <a href="https://github.com/backstage/backstage/pull/31362">#31362</a> by @cdedreuille, merged 6 days ago</li><li>Convert Backstage UI components to CSS Modules while keeping theming class names. <a href="https://github.com/backstage/backstage/pull/31399">#31399</a> by @cdedreuille, merged 2 days ago</li><li>Improve Backstage UI styles props across components and simplify internal styling. <a href="https://github.com/backstage/backstage/pull/31404">#31404</a> by @cdedreuille, merged 2 days ago</li><li>Remove MUICssBaseline to avoid conflicts with Backstage UI styles and align resets. <a href="https://github.com/backstage/backstage/pull/31365">#31365</a> by @cdedreuille, merged 6 days ago</li></ul><h3>Developer Experience</h3><ul><li>Relax ESLint rules to allow frontend plugins to import from other frontend plugins with the same plugin id for overrides without warnings. <a href="https://github.com/backstage/backstage/pull/31373">#31373</a> by @drodil, merged 5 days ago</li><li>Deduplicate imports in generated OpenAPI clients in repo tools. <a href="https://github.com/backstage/backstage/pull/31297">#31297</a> by @rferreira98, merged 6 days ago (active discussion)</li><li>Add renderTestApp to frontend test utils for the new routing system with extensions. <a href="https://github.com/backstage/backstage/pull/31353">#31353</a> by @vinzscam, merged 2 days ago</li></ul><h3>Documentation</h3><ul><li>Fix monospace font reference in docs. <a href="https://github.com/backstage/backstage/pull/31364">#31364</a> by @vinzscam, merged 7 days ago</li><li>Tidy docs including a catalog config key correction. <a href="https://github.com/backstage/backstage/pull/31426">#31426</a> by @freben, merged today</li></ul><h3>Reverts</h3><ul><li>Revert user settings storage api blueprint for NFS since it replaced storageApiRef incorrectly. <a href="https://github.com/backstage/backstage/pull/31431">#31431</a> by @benjdlambert, merged today referencing <a href="https://github.com/backstage/backstage/pull/31413">#31413</a></li></ul><h2>Ecosystem Changelog</h2><h3><a href="/backstage/plugins/hetzner-cloud/">Hetzner Cloud Plugin</a></h3><ul><li><strong>Features</strong> Show CPU architecture in the UI merged 5 days ago</li><li><strong>Features</strong> Return server architecture in the API merged 5 days ago</li><li><strong>Documentation</strong> Fix dev setup instructions merged 5 days ago</li></ul><h3><a href="/backstage/plugins/tech-insights/">Tech Insights Plugin</a></h3><ul><li><strong>Features</strong> Show multiple links on MaturityScorePage PR <a href="https://github.com/backstage/community-plugins/pull/5126">#5126</a> merged today</li><li><strong>Features</strong> Show error info when a check fails and the fact type is not boolean PR <a href="https://github.com/backstage/community-plugins/pull/5126">#5126</a> merged today</li><li><strong>Features</strong> Tweak maturity accordion summary layout PR <a href="https://github.com/backstage/community-plugins/pull/5126">#5126</a> merged today</li><li><strong>Bug Fixes</strong> Use the core Accordion to resolve layout issues PR <a href="https://github.com/backstage/community-plugins/pull/5126">#5126</a> merged today</li><li><strong>Documentation</strong> Fix a readme typo PR <a href="https://github.com/backstage/community-plugins/pull/5126">#5126</a> merged today</li></ul><h3><a href="/backstage/plugins/pipelines-with-tekton/">Pipelines with Tekton Plugin</a></h3><ul><li><strong>Features</strong> Show pipeline run params and results PR <a href="https://github.com/backstage/community-plugins/pull/5642">#5642</a> merged 2 days ago</li></ul><h3><a href="/backstage/plugins/announcements/">Announcements Plugin</a></h3><ul><li><strong>Features</strong> Add updated at field so the banner shows the most recent announcement PR <a href="https://github.com/backstage/community-plugins/pull/5595">#5595</a> merged 6 days ago</li></ul><h3><a href="/backstage/plugins/entity-validation/">Entity Validation Plugin</a></h3><ul><li><strong>Features</strong> Add support for the new frontend system PR <a href="https://github.com/backstage/community-plugins/pull/5222">#5222</a> merged 5 days ago</li></ul><h3><a href="/backstage/plugins/questions-and-answers/">Q&#x26;A Plugin</a></h3><ul><li><strong>Features</strong> Support mermaid in markdown content merged 5 days ago</li><li><strong>Features</strong> Allow passing markdown plugins through props merged 2 days ago</li><li><strong>Features</strong> Allow moderators to change post authors merged 2 days ago</li><li><strong>Features</strong> Allow moderators to change answer authors merged 2 days ago</li><li><strong>Features</strong> Improve user and entity search by limiting fetched fields merged 1 day ago</li><li><strong>Bug Fixes</strong> Fix scaffolder import merged today</li><li><strong>Bug Fixes</strong> Sort entities and tags in inputs merged 1 day ago</li><li><strong>Bug Fixes</strong> Show loading state correctly in the posts table merged 1 day ago</li><li><strong>Bug Fixes</strong> Fix posts container props merged 2 days ago</li><li><strong>Bug Fixes</strong> Restore user field for metadata input merged 2 days ago</li><li><strong>Bug Fixes</strong> Use display name for user groups when available merged 5 days ago</li><li><strong>Documentation</strong> Add links to available plugins merged 2 days ago</li></ul><h3><a href="/backstage/plugins/toolbox/">Toolbox Plugin</a></h3><ul><li><strong>Features</strong> Improve overall layout merged today</li><li><strong>Breaking Changes</strong> Roll back to MUI four for compatibility merged today</li><li><strong>Bug Fixes</strong> Remove input debounce that caused slow updates merged today</li><li><strong>Bug Fixes</strong> Add a small input delay to improve typing UX merged today</li></ul><h3><a href="/backstage/plugins/kubernetes-ingestor/">Kubernetes Ingestor Plugin</a></h3><ul><li><strong>Bug Fixes</strong> Fix custom annotation handling merged today</li><li><strong>Bug Fixes</strong> Fix system reference namespace mappings merged today</li><li><strong>Bug Fixes</strong> Fix name and title mapping use in components merged today</li></ul><h3><a href="/backstage/plugins/crossplane/">Crossplane Plugin</a></h3><ul><li><strong>Features</strong> Export the API ref and client for integrators merged today</li><li><strong>Bug Fixes</strong> Fix the API ref export merged 6 days ago</li></ul><h3><a href="/backstage/plugins/nobl-9/">Nobl9 Plugin</a></h3><ul><li><strong>Security</strong> Fix on headers vulnerability merged 5 days ago</li></ul><h3><a href="/backstage/plugins/application-topology-for-kubernetes/">Application Topology for Kubernetes Plugin</a></h3><ul><li><strong>Maintenance</strong> Move status components and related hooks into the plugin PR <a href="https://github.com/backstage/community-plugins/pull/5668">#5668</a> merged today</li></ul>
]]></content:encoded></item><item><title><![CDATA[State of Backstage Closing, BackstageCon EU & Roadie Local Updates]]></title><link>https://roadie.io/backstage-weekly/113-state-of-backstage-backstagecon-roadie-local/</link><guid isPermaLink="false">https://roadie.io/backstage-weekly/113-state-of-backstage-backstagecon-roadie-local/</guid><pubDate>Fri, 21 Mar 2025 15:00:00 GMT</pubDate><description><![CDATA[The State of Backstage survey closes soon, BackstageCon and KubeCon EU are around the corner, and Roadie Local design partnerships near capacity ahead of GA.]]></description><content:encoded><![CDATA[<p>👋 Welcome to Backstage Weekly 113. We're dedicating this issue to everything going on in March and early April.</p><p>This week:</p><ul><li>State of Backstage: closing soon</li><li>BackstageCon &#x26; KubeCon EU</li><li>Roadie Local nears GA, Design Partnerships closing soon</li></ul><p><img src="//images.ctfassets.net/hcqpbvoqhwhm/23vaQNgTyOItFr4GJN79jl/0a96d153f4d7cd20507d2a3f7bc4becb/State_of_Backstage_Blog_1__1_.png" alt="State of Backstage 2025 Blog"></p><h3>State of Backstage: closing soon</h3><p>The State of Backstage survey is winding down for 2025, so now is the time to fill it in if you haven't already.</p><p>The survey itself closes in <em>April 2025.</em></p><p>We'll be analysing the results and publishing them via the <a href="https://stateofbackstage.io/">stateofbackstage.io</a> soon (those that filled in the survey will get an advanced copy before they're published to the wider community).</p><p><a href="https://stateofbackstage.io/survey/">Fill in the survey now</a>.</p><p><img src="//images.ctfassets.net/hcqpbvoqhwhm/7iOQSTb4ogbfmzdaBIBl7J/deec563135c335e7b9cb2dd03e02d5fc/images__2_.png" alt="BackstageCon Europe"></p><h3>BackstageCon &#x26; KubeCon EU</h3><p>Speaking of things that are coming very, very soon: <a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/co-located-events/backstagecon/">BackstageCon &#x26; KubeCon EU</a> in London is right around the corner.</p><p>We'll be there - Roadie founder <a href="https://colocatedeventseu2025.sched.com/event/1ub1G/sponsored-keynote-how-to-succeed-with-backstage-david-tuite-roadie?iframe=no">David is on stage at BackstageCon</a> to share what we've learned over the years about how to be successful with Backstage, as well talk what we have coming up next in Backstage-land. Roadie engineers will also be manning the booth at both BackstageCon and KubeCon.</p><p>We'll be at KubeCon booth N510.</p><p>Come say hello if you're in around. 👋</p><p><img src="//images.ctfassets.net/hcqpbvoqhwhm/35Bwu7Rhdqz1LtjqI7EcfM/01cf4b73e1380b242000df93c802dbc9/Roadie_Local_Blog_A.png" alt="Roadie Local "></p><h3>Roadie Local: Design Partnerships will be <em>closing soon</em></h3><p>For those that missed it: we're building a version of Roadie that you can run locally or on your own infrastructure. We call it Roadie Local.</p><p>That effort is now charging towards GA and so we're closing our call for Design Partners for the beta version soon. The first Design Partners are spinning up (on Azure DevOps Server mainly, if you'll believe it) and we've close to capacity for this tranche of testing and evaluation.</p><p><a href="https://tally.so/r/3lYRkW">Complete the Design Partner form here</a>.</p>
]]></content:encoded></item><item><title><![CDATA[New Kubernetes Plugins, Kratix & Tech Insights Maturity Levels]]></title><link>https://roadie.io/backstage-weekly/112-kubernetes-plugins-kratix-tech-insights-maturity/</link><guid isPermaLink="false">https://roadie.io/backstage-weekly/112-kubernetes-plugins-kratix-tech-insights-maturity/</guid><pubDate>Wed, 19 Feb 2025 13:00:00 GMT</pubDate><description><![CDATA[Terasky ships powerful Kubernetes plugins, Kratix expands Backstage into full platform territory, and open-source Tech Insights introduces maturity levels.]]></description><content:encoded><![CDATA[<p>👋 Welcome to Backstage Weekly 112. We're dedicating this issue to plugins, both new and old, that have seen a bump in functionality and/or been released recently.</p><p>This week:</p><ul><li>Terasky release some killer Kubernetes &#x26; Crossplane plugins</li><li>Kratix makes Backstage into a true Platform</li><li>Open-source Tech Insights gets maturity ranks</li></ul><p><img src="//images.ctfassets.net/hcqpbvoqhwhm/6sy7CqjZmOEJ1QTsdzbGXf/f9968015dc0999e41dc9d5e8835f2735/github-terasky.png" alt="Github Terasky"></p><h3>Terasky release some seriously good K8s plugins</h3><p>When we think of Backstage and Kubernetes, we often don't have <em>great</em> associations. The Backstage K8s plugin can be fiddly and doesn't always act in the way you'd expect.</p><p>To plug that gap, the folks over at Terasky (hat-tip to <a href="https://github.com/vrabbi">Scott Rosenberg</a>) have released a raft of new plugins that meaningfully move Backstage &#x3C; > K8s forward.</p><p>Our personal favourite is the Kubernetes Ingestor plugin, which automatically pulls Kubernetes workloads into the Backstage catalog. That really is as cool as it sounds.</p><p>Check them out <a href="https://www.terasky.com/news/terasky-leadership-just-dropped-7-game-changing-backstage-plugins/">here</a> or on <a href="https://github.com/TeraSky-OSS/backstage-plugins">GitHub</a>.</p><p><img src="//images.ctfassets.net/hcqpbvoqhwhm/66B4w1Kcec6497BaWmCDwE/5c32b24aebe4b0cc3dc29aef5b21741e/kratix.png" alt="Kratix"></p><h3>Kratix brings oss platform dev and Backstage together</h3><p>Speaking of big jumps forward in Backstage functionality, <a href="https://www.kratix.io/">Kratix</a> is a <a href="https://www.syntasso.io/">Syntasso</a>-made OSS project dedicated to the platform-side of Platform Engineering. As their marketing site says: it makes Backstage into a full Platform, not just a Portal. You can instantiate infrastructure, autoingest it into the Catalog and generally interact with all the features you'd expect from a full Platform without leaving Backstage.</p><p>Nice stuff.</p><p>Check it out at <a href="https://www.syntasso.io/solutions/upgrade-backstage-from-portal-to-platform-with-kratix">here</a>.</p><h3>Tech Insights levels</h3><p>The backend for the Tech Insights scorecard plugin is open-sourced and gets some great additions. Recently, it's seen the introduced of the concept of maturity.</p><p>We're currently understanding how much of this is a straight lift into our proprietary Tech Insights product (we have slightly different concepts, like the idea of a Scorecard, which don't exist in the open source version), but expect something on this soon.</p><p><img src="//images.ctfassets.net/hcqpbvoqhwhm/2jwV72r4IyexKPUU9KTTCO/53b0177b6a51f7783a848b448eed2fee/ti-maturity.png" alt="Maturity Rank"></p><p>In the meantime, check it out <a href="https://github.com/backstage/community-plugins/pull/2464">here</a>.</p>
]]></content:encoded></item><item><title><![CDATA[Roadie Local Enters Beta, Canon Launches & Backstage v1.36 Released]]></title><link>https://roadie.io/backstage-weekly/111-roadie-local-beta-canon-backstage-v1-36/</link><guid isPermaLink="false">https://roadie.io/backstage-weekly/111-roadie-local-beta-canon-backstage-v1-36/</guid><pubDate>Wed, 12 Feb 2025 14:00:00 GMT</pubDate><description><![CDATA[Roadie Local moves into beta, Canon launches its new design system site, the State of Backstage survey gains momentum, and Backstage v1.36 brings major frontend updates.]]></description><content:encoded><![CDATA[<p>👋 Welcome to Backstage Weekly 111! We're keeping it light this week, just a (big) product announcement, the new design system getting serious, a bump on the State of Backstage survey and a version release from the oss project. Not much :)</p><p>This week:</p><ul><li><p>Roadie Local is moving to beta</p></li><li><p>Canon gets a website</p></li><li><p>State of Backstage keeps growing</p></li><li><p>Project news: v1.36-next</p></li></ul><h3>Roadie Local is moving to beta</h3><p><img src="//images.ctfassets.net/hcqpbvoqhwhm/6rRC1O5ioJRpvMKmUTFXru/b844a315d0d101f33e524cf2105d8527/Roadie_Local.png" alt="Roadie Local"></p><p>We mentioned it last time but for those that missed it: a self-hosted version of Roadie is coming and its coming fast.</p><p>We'll be talking about this a lot in the next few weeks and months, but the gist is that we'll be offering a locally runnable, self-hosted version of Roadie. It'll include all that you know and love about Roadie SaaS and be free for less than 15 users.</p><p>Read all about it on <a href="https://roadie.io/blog/roadie-local-self-hosted-backstage-ready-in-minutes/">our blog</a>.</p><p>If you're interested, there's still time to sign up as a <strong>Design Partner</strong> for the initial rollout but we'll be closing sign-ups for this at the end of the month.</p><p><a href="https://tally.so/r/3lYRkW">Sign up for Roadie Local</a></p><h3>Canon gets a website (canon.backstage.io)</h3><p>It's all Canon this, Canon that these days, but with good reason.</p><p>The default Backstage UI has been largely unchanged for 4-5 years and UIs for dev tools have come a long way since then.</p><p>That's why we're so excited about Canon and the shift to <a href="https://base-ui.com/react/overview/quick-start">BaseUI</a> and headless components (for those not au fait with all this frontend jazz - it's about decoupling component structure and behaviour from styling, harkening back to the days of the HTML, JS and CSS internet). It means you have <em>much</em> more control over styling than you do currently.</p><p>Exciting stuff.</p><p>Check it out at <a href="https://canon.backstage.io/">https://canon.backstage.io/</a><img src="//images.ctfassets.net/hcqpbvoqhwhm/5LxcG4VJ7oqumZaveHJojT/52e45e8f91f2eb6d08478cdd15867631/State_of_Backstage_Blog_1.png" alt="State of Backstage Blog"></p><h3>🚨 State of Backstage Survey 🚨</h3><p>The <a href="https://stateofbackstage.io/">State of Backstage</a> survey is going strong.</p><p>Our goal is a few hundred responses by the end of March and we're very much on track. That doesn't mean we can let up though: the more responses we get, the more representative of the whole community this survey will be.</p><p>We'll announce the results in a report in Spring 2025.</p><p>Visit <a href="https://stateofbackstage.io/">stateofbackstage.io</a> to complete the survey.</p><h2>Project updates</h2><p>There have been a few updates since our last newsletter.</p><ul><li><a href="https://github.com/backstage/backstage/blob/master/docs/releases/v1.36.0-changelog.md">Backstage v1.36.0</a> is up and brings Canon to it's first full release. There's also a lot of prep for a move to React 19 and the new frontend system. Reading the tea-leaves, you may assume they're related and that a bunch of frontend changes are the ways, but I couldn't possibly speculate...</li></ul><p>Thanks!</p><p>Sam Nixon</p>
]]></content:encoded></item></channel></rss>