Microsoft has rolled out Aspire 13.3, the newest version of its cloud-native application framework. This aspire 13.3 release packs a substantial set of changes aimed squarely at simplifying deployment workflows, expanding language support for frontend teams, and improving how developers observe their running applications. It also introduces several breaking adjustments that teams should evaluate before upgrading their existing projects.

New Deployment Lifecycle Commands
The aspire destroy Command
One of the most practical additions in this update is the new aspire destroy command. Previously, tearing down resources provisioned by aspire deploy required manual cleanup across multiple cloud consoles or command-line tools. This became tedious, especially for teams running ephemeral environments for continuous integration testing.
The destroy command reverses the deployment process. It works across Azure, Kubernetes, and Docker Compose environments, removing the resources that Aspire created. For a developer who spins up a test environment, runs a suite of integration tests, and then wants to tear everything down to avoid ongoing costs, this command saves significant time and reduces the risk of orphaned resources.
Consider a scenario where a team runs dozens of pull request builds daily. Each build might provision a temporary Azure Container App environment. Without a destroy command, someone must either write cleanup scripts or manually delete resources. The destroy command integrates directly into CI/CD pipelines, allowing teams to add a cleanup step that runs reliably after tests complete.
The aspire dashboard Command
Alongside the destroy command, this release introduces the aspire dashboard command. This lets developers launch the standalone Aspire dashboard without starting the full AppHost project. Previously, accessing the dashboard required running the entire application. Now, a developer can inspect telemetry, logs, and resource states from a previous session or a deployed environment without spinning up the whole stack.
This separation makes sense for debugging production issues. Imagine a developer needs to examine traces from a deployment that ran hours ago. Instead of recreating the environment locally, they can launch the dashboard independently and connect it to the telemetry data already collected.
Native Kubernetes Deployment in Preview
The aspire 13.3 release brings native Kubernetes deployment support, though it remains in preview status. This feature addresses a long-standing frustration among developers who want to deploy Aspire applications to Kubernetes without manually crafting YAML manifests.
Declarative Kubernetes Environments
Developers can now declare a Kubernetes environment directly in their AppHost project. Aspire then generates a Helm chart and runs the full deployment pipeline automatically. This approach reduces the cognitive load of understanding Kubernetes resource definitions for teams that primarily work with.NET or TypeScript.
The system handles the translation from Aspire’s resource model to Kubernetes primitives. Services become Deployments or StatefulSets. Endpoints become Services. Configuration becomes ConfigMaps or Secrets. For teams already comfortable with Aspire’s declarative model, this feels like a natural extension rather than a separate skill to learn.
Ingress and Gateway API Routing
New Ingress and Gateway API routing resources allow traffic configuration at the AppHost level. This means developers can define how external traffic reaches their services without leaving the Aspire configuration. The Gateway API support is particularly relevant for teams adopting the newer Kubernetes networking standards, which offer more flexibility than traditional Ingress controllers.
Azure Kubernetes Service Integration
Microsoft also added an Azure Kubernetes Service hosting integration in preview. The marketing describes it as “Kubernetes without the YAML,” and the implementation largely delivers on that promise. Developers can target AKS clusters directly from their AppHost configuration, and Aspire handles the provisioning and deployment steps.
For organizations already invested in Azure, this integration simplifies the path from local development to production. A developer can test locally with Docker Compose, then deploy to an AKS cluster with minimal configuration changes.
Frontend Publishing Expansions
For frontend developers, the aspire 13.3 release introduces first-class JavaScript publishing through a unified family of PublishAs* methods. This is a significant shift from earlier versions, where frontend deployment often required custom scripts or manual steps.
PublishAs Methods
The new methods cover three common deployment patterns. Static sites publish as static file servers. Node servers publish as Node.js processes. npm-script-based deployments run the build script and publish the output. This unified approach means frontend teams can use the same deployment patterns regardless of their framework choice.
Consider a team building a Vite application that communicates with a Node.js API. With the new methods, both components can be defined in the same AppHost project. The Vite app publishes as a static site. The Node API publishes as a server. Aspire handles the connectivity between them, including environment variable injection for API URLs.
AddNextJsApp Helper
A new AddNextJsApp helper joins the existing helpers for Vite and Node. Next.js developers can now integrate their applications into Aspire deployments with minimal configuration. The helper understands Next.js build outputs and configures the deployment environment appropriately.
This matters because Next.js has specific requirements around server-side rendering and API routes. The helper abstracts those details, allowing developers to focus on application logic rather than deployment configuration.
Package Manager Support
First-class support has been added for Bun, Yarn, and pnpm. Previously, Aspire primarily supported npm. Teams using alternative package managers had to work around limitations or configure custom build steps. Now, the framework detects the package manager from the project configuration and uses it consistently throughout the build and publish pipeline.
For a team that adopted Bun for its faster install times, this means they can stay with their preferred toolchain without fighting the deployment framework.
TypeScript AppHost Parity
The TypeScript AppHost has received significant parity work with its C# counterpart. A unified withEnvironment API now works consistently across both languages. This reduces the friction for teams that prefer TypeScript for their infrastructure configuration but need to interoperate with C# services.
The Python starter template has also been migrated to a TypeScript AppHost, signaling Microsoft’s commitment to making TypeScript a first-class configuration language for Aspire projects.
Observability and Integration Updates
Aspire.Hosting.Browsers Integration
A new integration called Aspire.Hosting.Browsers captures browser console logs, network requests, and screenshots. This telemetry surfaces in the dashboard alongside server-side data. For developers debugging frontend issues, this eliminates the need to switch between browser developer tools and the Aspire dashboard.
You may also enjoy reading: Georgia Tech vs Pitt: Historic Offensive Explosion Seals Series Victory.
Imagine debugging a failed API call. Previously, you might check the browser’s network tab to see the request, then switch to the Aspire dashboard to check server-side logs. Now, both views appear in the same interface. The browser integration captures the request details, and the server-side integration shows the handler’s response, all in one place.
Container Tunnel Enabled by Default
The container tunnel, previously marked as experimental, is now enabled by default. This feature provides uniform host connectivity across Docker Desktop, Docker Engine, and Podman. It resolves a common inconsistency where services running in containers could not reliably reach the host machine’s services.
For developers using Podman on Linux, this change eliminates a frequent source of connectivity issues. The tunnel ensures that service discovery works the same way regardless of the underlying container runtime.
Azure Front Door and Network Security Perimeter
Two Azure-specific integrations deserve mention. Azure Front Door integration allows developers to configure global load balancing and web application firewall rules from within the AppHost. Azure Network Security Perimeter support enables fine-grained network access controls without leaving the Aspire configuration.
These integrations matter for teams deploying to Azure who want to maintain security and performance without managing separate infrastructure-as-code templates.
Breaking Changes to Review
Every major update brings breaking changes, and the aspire 13.3 release is no exception. Teams should review these changes carefully before upgrading their existing projects.
Log-Level Rename
The --log-level parameter has been renamed to --pipeline-log-level. This affects CI/CD scripts and local development commands that rely on the old flag. The rename clarifies that this setting controls pipeline logging rather than application logging, but it will break existing scripts until they are updated.
GitHub Copilot UI Removal
The in-dashboard GitHub Copilot user interface has been removed. Microsoft is shifting toward agentic development through the CLI instead. For teams that relied on the dashboard Copilot integration, this change requires adapting to the command-line workflow.
API Renames
API renames affect Azure Network and AKS resources. These changes are not backward-compatible. Teams using these APIs in their AppHost projects will need to update their resource declarations to match the new naming conventions.
Additional Features Worth Noting
Several smaller updates round out the aspire 13.3 release. The new aspire init command includes an aspireify agent skill that helps convert existing projects to Aspire format. RabbitMQ v7 support arrives for teams using message queuing. A dashboard notification center provides alerts for resource state changes. VS Code extension improvements add CodeLens actions and gutter decorations for quick access to common Aspire commands.
The Foundry Prompt Agent support integration brings AI-assisted development capabilities into the Aspire workflow. While still early, this points toward a future where developers can describe infrastructure requirements in natural language and have Aspire generate the corresponding configuration.
Practical Considerations for Upgrading
Before upgrading to Aspire 13.3, review your current project for usage of the renamed APIs and removed features. Update CI/CD scripts that reference --log-level. Check Azure Network and AKS resource declarations for naming changes. If your team uses the dashboard Copilot integration, explore the CLI-based alternatives.
For frontend teams, the new publishing methods offer immediate value. Consider migrating from custom deployment scripts to the PublishAs* methods to simplify your build pipeline. The package manager support alone may justify the upgrade for teams using Bun or pnpm.
The native Kubernetes deployment preview is worth experimenting with, even if you are not ready to adopt it in production. The declarative environment approach reduces the learning curve for teams new to Kubernetes. As the feature matures toward general availability, early familiarity will pay dividends.
Microsoft continues to invest heavily in Aspire as a central tool for cloud-native development on.NET and TypeScript. The aspire 13.3 release demonstrates a clear focus on reducing operational overhead for deployment and improving the developer experience for frontend teams. While the breaking changes require attention, the overall direction supports a more unified and productive development workflow.






