News
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.

v1.48.2 fixes scaffolder form customization regression
Backstage v1.48.2 landed on February 24, addressing a critical regression from v1.48.0. The patch restored formFieldsApiRef and ScaffolderFormFieldsApi alpha exports from @backstage/plugin-scaffolder that had been inadvertently removed, breaking teams relying on scaffolder form customization in the new frontend system. The release also bumped @microsoft/api-extractor to 7.57.3. Teams using scaffolder alpha APIs should upgrade immediately.
The earlier v1.48.1 patch (February 18) fixed a missing sidebar item in frontend system docs and a type compatibility issue in FrontendFeature. Together, these patches close the v1.48 stabilization window.
v1.49.0-next.0 , the first pre-release of the next monthly cycle, also appeared near the end of the week.
ContribFest web app launches
The Backstage blog published its first post of 2026 on February 25: "Get a jump on ContribFest with the new web app ." Written by Elaine de Mattos Silva Bezerra (DB Systel), Heikki Hellgren (OP Financial Group), and André Wanlin (Spotify), the post announces contribfest.backstage.io - a purpose-built app to onboard contributors for ContribFest at KubeCon Europe in Amsterdam on March 26 at 13:45 CET.
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.
This cross-organization collaboration signals the project's maturation - contributor onboarding is now a community-driven effort, not just a maintainer task.

Backstage Community Session - February 18, 2026
The latest Backstage Community Session 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 Backstage reviewer program , 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&A with the Volvo team follows. Watch the recording here.
Publications
Roadie publishes TechDocs Guide
Roadie published "Splitting TechDocs Out of Our Monolithic Backstage Deployment" 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.
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.
Spotify's multi-agent architecture for advertising
Spotify Engineering published "Our Multi-Agent Architecture for Smarter Advertising " 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.
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.
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 @backstage/plugin-mcp-actions-backend plugin and Spotify's AiKA AI Knowledge Assistant, the trajectory is clear: Backstage is becoming the MCP server hub for platform engineering.
Infralovers' three-part series on AI-assisted Backstage development
Infralovers, a Backstage consulting firm, published the final two parts of a notable three-part blog series during the week:
Oct 31, 2025 - "Beyond Copy-Paste: Building Backstage with AI-Assisted Development " 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 publish:github:pull-request vs. publish:github distinction, ArgoCD rejecting catalog-info.yaml - and showed how AI pair programming resolved each issue faster than traditional documentation searching.
Feb 20 - "Five Levels of AI Development: Why the J-Curve Gets Everyone " 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).
Feb 22 - "Dark Factory Architecture: How Level 4 Actually Works " 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.
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.
Community Discussions
Alpha MetricsService Merged into Backstage Core
One of the most celebrated milestones in #backend-system this week: the initial alpha implementation of a native MetricsService was merged into the backstage/backstage repo. Community member kurt 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 PR #32358 (feat(metrics): Implement MetricsService by benjdlambert) 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; kurt opened a meta issue thread to avoid duplicate effort.
"How Do I Actually Delete a Catalog Entity?" - The Cache Mental Model
An 8-message thread in #catalog 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 freben 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.
Disabling Software Templates Registered from catalog-info.yaml
A lively 9-message thread in #general started when phred-te discovered that individual repositories can register their own software templates directly from catalog-info.yaml. The question was whether a platform team could disable this auto-discovery to prevent teams from self-registering templates they shouldn't. Core contributor Peter "ParsiFal-M" confirmed that catalog.rules 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.
Migrating from GitHub GHEC to GitHub EMU - Running Dual Auth Providers
A timely discussion landed in #auth this week as Pedro described a real-world migration scenario: moving from github.com (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.
Extending the Catalog Component Spec with Custom Fields
A thoughtful architecture question in #catalog from new adopter Finn Molloy: their team wants to add a spec.license field (SPDX identifier) and a spec.thirdParty boolean to the Component 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.
Community-Built Producer/Consumer Catalog Graph Processor
In a standout community contribution post in #catalog , isaias.b shared a custom catalog processor that creates symmetric relation types (producesTo/producedBy, consumesFrom/consumedBy) for modelling data flows between components - think Kafka topics, DB schemas, queues, and other resources. The processor and example catalog.yaml 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.
Frontend System Migration: Beware of Duplicate Extension Errors
An 8-message thread in #frontend-system is a useful debugging reference for anyone currently migrating plugins to the new frontend system. lgnd_seba hit the Plugin 'helm-dashboard' provided duplicate extensions: page:helm-dashboard error while migrating a two-page plugin. The culprit: when a PageBlueprint extension is created, the name property must be kebab-case (a-name-like-this rather than Something Like This). Maintainer vinzscam confirmed this requirement. If your NFS migration is failing with duplicate extension errors, this is the first thing to check.
API Extractor Issue Could Break CI for Community Plugin PRs on v1.48.0 Bump
In #maintenance , maintainer Ahhhndre flagged PR #32950 - 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 1.48.0 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 v1.48.2 community plugin bumps - see the auto-version-bump thread for the schedule.
Changelog
v1.48.2 - February 24, 2026
Fixes:
- Restored
formFieldsApiRefandScaffolderFormFieldsApialpha exports in@backstage/plugin-scaffolderthat were removed in v1.48.0 - Updated
@microsoft/api-extractorto 7.57.3
Release: v1.48.2
v1.49.0-next.0 - Pre-release
The first pre-release of the v1.49.0 cycle is now available for early testing.
Release: v1.49.0-next.0