Microsoft recently rolled out Aspire 13.3, a significant update that refines how developers manage cloud-native applications. This release introduces powerful new commands, expands deployment options, and enhances front-end workflows. Whether you're tearing down resources or publishing JavaScript apps, there’s plenty to explore. Below, we break down the key features and changes in a question-and-answer format to help you grasp what’s new and how it can impact your projects.
1. What is the new aspire destroy command and how does it simplify teardown?
The aspire destroy command is a game-changer for cleaning up deployments. Instead of manually tearing down resources across different environments, you can now use a single command to remove everything. It works across Azure, Kubernetes, and Docker Compose, making it ideal for CI/CD pipelines or local development. For example, after testing a microservices app, you can run aspire destroy to delete all provisioned containers, pods, and cloud resources. This reduces overhead and prevents accidental costs from lingering services. According to the release notes, it's part of Microsoft's push to streamline lifecycle management. If you're using aspired deployments, this command should become a regular part of your workflow.

2. How does native Kubernetes deployment work in preview?
Aspire 13.3 introduces native Kubernetes deployment as a preview feature. Previously, deploying to Kubernetes required additional tooling or manual YAML configuration. Now, Aspire can directly deploy your .NET Aspire applications to a Kubernetes cluster. The process leverages the same project manifest you use locally, generating the necessary Kubernetes resources like Deployments and Services automatically. This tight integration means you can shift from development to production with fewer steps. However, since it's in preview, some advanced scenarios—like custom ingress controllers or persistent volumes—may not be fully supported. Microsoft encourages developers to test it and provide feedback. For those already using Azure Kubernetes Service (AKS) or other clusters, this feature significantly reduces deployment friction.
3. What improvements were made to JavaScript publishing for Next.js and Vite?
Front-end developers get a boost with first-class JavaScript publishing support for Next.js and Vite. In earlier versions, publishing a JavaScript front end from an Aspire project required manual workarounds. Now, Aspire 13.3 recognizes these frameworks natively. When you publish, Aspire handles the build process, bundles the static assets, and deploys them alongside your .NET back end. For example, a Next.js app gets its SSR capabilities preserved, while a Vite app benefits from optimized bundling. The integration also respects the project's existing configuration files (e.g., next.config.js). This means less time wrestling with deployment scripts and more time focusing on features. If you're building full-stack applications with .NET and modern JavaScript, this update is a huge win.
4. How does browser log capture help with debugging?
Debugging client-side issues often involves reproducing errors manually, but browser log capture changes that. Aspire 13.3 can now collect logs from the browser directly—think console logs, network requests, and errors—and stream them into your Aspire dashboard. This works even for remote sessions. For instance, if a user reports a bug, you can enable log capture and see exactly what happened in the browser. The captured logs appear alongside server-side telemetry, giving you a unified view. This feature is especially useful for single-page applications or apps with complex client interactions. It reduces the guesswork of “did the error happen on the client or server?” and speeds up root cause analysis.

5. What is the default-enabled container tunnel and why does it matter?
The container tunnel is now enabled by default in Aspire 13.3. This feature creates a secure tunnel from the container environment back to your local machine, allowing you to access endpoints like APIs or debug ports as if they were running locally. For example, when a service runs in a container, the tunnel automatically forwards its port to localhost—no manual port mapping needed. This simplifies development because you can use tools like curl or your browser without extra configuration. It also works across multiple containers, making it easy to test inter-service communication. Previously, developers had to configure port forwarding manually or rely on Docker Compose networking. The default enablement means less setup overhead and a smoother experience from the start.
6. What breaking changes should developers review before upgrading?
Aspire 13.3 introduces several breaking changes that require attention. First, the aspire run command now uses a new resource naming convention, which may affect scripts that reference specific service names. Second, the dashboard endpoint configuration has changed: the property DASHBOARD_URL is deprecated in favor of ASPIRE_DASHBOARD_URL. Third, some Telemetry APIs have been updated for consistency, so custom tracing code may need adjustments. Finally, the container image tags for base images have been modified; if you pin to specific tags, verify compatibility. Microsoft provides a migration guide in the official release notes. It's recommended to test the upgrade in a staging environment before updating production projects. Ignoring these changes could lead to deployment failures or data inaccuracies.