Code-centric control
Define your stack in code—type-safe and readable. Run locally, deploy anywhere without architectural changes.
Aspire is a developer-first, always-free, open-source platform. Join a thriving community and help shape the future of modern development.
Define your stack in code—type-safe and readable. Run locally, deploy anywhere without architectural changes.
Orchestrate front ends, APIs, containers, and databases with zero rewrites. Extend Aspire to fit your stack—deploy anywhere.
Built-in OpenTelemetry delivers logs, traces, and health checks automatically—debug faster with zero setup.
Deploy anywhere—Kubernetes, cloud, or on-prem. Aspire adapts to your environment for consistent deployments without rewrites.
Aspire is modular, composable, and extensible. Configure relationships, deployment options, and dev-time flags in one place. Learn more about the AppHost.
var builder = DistributedApplication.CreateBuilder(args);
// This would be a rather boring AppHost ☹️...
// Toggle the options above to see what an AppHost might look like.
// For example, select "Front end" to add a frontend service.
builder.Build().Run();
var builder = DistributedApplication.CreateBuilder(args);
// Add frontend service
var frontend = builder.AddViteApp("frontend", "../frontend")
.WithHttpEndpoint(env: "PORT");
builder.Build().Run();
var builder = DistributedApplication.CreateBuilder(args);
// Add frontend service
var frontend = builder.AddViteApp("frontend", "../frontend")
.WithHttpEndpoint(env: "PORT");
// Add custom container
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080);
builder.Build().Run();
var builder = DistributedApplication.CreateBuilder(args);
// Add database
var postgres = builder.AddPostgres("db")
.AddDatabase("appdata");
// Add frontend service
var frontend = builder.AddViteApp("frontend", "../frontend")
.WithHttpEndpoint(env: "PORT");
builder.Build().Run();
var builder = DistributedApplication.CreateBuilder(args);
// Add database
var postgres = builder.AddPostgres("db")
.AddDatabase("appdata");
// Add frontend service
var frontend = builder.AddViteApp("frontend", "../frontend")
.WithHttpEndpoint(env: "PORT");
// Add custom container
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080);
builder.Build().Run();
var builder = DistributedApplication.CreateBuilder(args);
// Add API service
var api = builder.AddProject("api", "../api/ApiService.csproj");
// Add frontend service and reference the API
var frontend = builder.AddViteApp("frontend", "../frontend")
.WithHttpEndpoint(env: "PORT")
.WithReference(api);
builder.Build().Run();
var builder = DistributedApplication.CreateBuilder(args);
// Add API service
var api = builder.AddProject("api", "../api/ApiService.csproj");
// Add frontend service and reference the API
var frontend = builder.AddViteApp("frontend", "../frontend")
.WithHttpEndpoint(env: "PORT")
.WithReference(api);
// Add custom container
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080);
builder.Build().Run();
var builder = DistributedApplication.CreateBuilder(args);
// Add database
var postgres = builder.AddPostgres("db")
.AddDatabase("appdata");
// Add API service and reference the database
var api = builder.AddProject("api", "../api/ApiService.csproj")
.WithReference(postgres);
// Add frontend service and reference the API
var frontend = builder.AddViteApp("frontend", "../frontend")
.WithHttpEndpoint(env: "PORT")
.WithReference(api);
builder.Build().Run();
var builder = DistributedApplication.CreateBuilder(args);
// Add database
var postgres = builder.AddPostgres("db")
.AddDatabase("appdata");
// Add API service and reference the database
var api = builder.AddProject("api", "../api/ApiService.csproj")
.WithReference(postgres);
// Add frontend service and reference the API
var frontend = builder.AddViteApp("frontend", "../frontend")
.WithHttpEndpoint(env: "PORT")
.WithReference(api);
// Add custom container
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080);
builder.Build().Run();
var builder = DistributedApplication.CreateBuilder(args);
// Add database
var postgres = builder.AddPostgres("db")
.AddDatabase("appdata");
builder.Build().Run();
var builder = DistributedApplication.CreateBuilder(args);
// Add database
var postgres = builder.AddPostgres("db")
.AddDatabase("appdata");
// Add custom container
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080);
builder.Build().Run();
var builder = DistributedApplication.CreateBuilder(args);
// Add API service
var api = builder.AddProject("api", "../api/ApiService.csproj");
builder.Build().Run();
var builder = DistributedApplication.CreateBuilder(args);
// Add API service
var api = builder.AddProject("api", "../api/ApiService.csproj");
// Add custom container
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080);
builder.Build().Run();
var builder = DistributedApplication.CreateBuilder(args);
// Add database
var postgres = builder.AddPostgres("db")
.AddDatabase("appdata");
// Add API service and reference the database
var api = builder.AddProject("api", "../api/ApiService.csproj")
.WithReference(postgres);
builder.Build().Run();
var builder = DistributedApplication.CreateBuilder(args);
// Add database
var postgres = builder.AddPostgres("db")
.AddDatabase("appdata");
// Add API service and reference the database
var api = builder.AddProject("api", "../api/ApiService.csproj")
.WithReference(postgres);
// Add custom container
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080);
builder.Build().Run();
var builder = DistributedApplication.CreateBuilder(args);
// Add custom container
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080);
builder.Build().Run();
var builder = DistributedApplication.CreateBuilder(args);
// Add frontend service
var frontend = builder.AddViteApp("frontend", "../frontend")
.WithHttpEndpoint(env: "PORT")
.WithNpmPackageInstallation()
.PublishAsDockerFile();
builder.Build().Run();
var builder = DistributedApplication.CreateBuilder(args);
// Add frontend service
var frontend = builder.AddViteApp("frontend", "../frontend")
.WithHttpEndpoint(env: "PORT")
.WithNpmPackageInstallation()
.PublishAsDockerFile();
// Add custom container
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080)
.PublishAsKubernetes();
builder.Build().Run();
var builder = DistributedApplication.CreateBuilder(args);
// Add database
var postgres = builder.AddAzurePostgresFlexibleServer("db")
.AddDatabase("appdata")
.WithDataVolume()
.RunAsContainer();
// Add frontend service
var frontend = builder.AddViteApp("frontend", "../frontend")
.WithHttpEndpoint(env: "PORT")
.WithNpmPackageInstallation()
.PublishAsDockerFile();
builder.Build().Run();
var builder = DistributedApplication.CreateBuilder(args);
// Add database
var postgres = builder.AddAzurePostgresFlexibleServer("db")
.AddDatabase("appdata")
.WithDataVolume()
.RunAsContainer();
// Add frontend service
var frontend = builder.AddViteApp("frontend", "../frontend")
.WithHttpEndpoint(env: "PORT")
.WithNpmPackageInstallation()
.PublishAsDockerFile();
// Add custom container
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080)
.PublishAsKubernetes();
builder.Build().Run();
var builder = DistributedApplication.CreateBuilder(args);
// Add API service
var api = builder.AddProject("api", "../api/ApiService.csproj")
.PublishAsAzureContainerApp();
// Add frontend service and reference the API
var frontend = builder.AddViteApp("frontend", "../frontend")
.WithHttpEndpoint(env: "PORT")
.WithReference(api)
.WithNpmPackageInstallation()
.PublishAsDockerFile();
builder.Build().Run();
var builder = DistributedApplication.CreateBuilder(args);
// Add API service
var api = builder.AddProject("api", "../api/ApiService.csproj")
.PublishAsAzureContainerApp();
// Add frontend service and reference the API
var frontend = builder.AddViteApp("frontend", "../frontend")
.WithHttpEndpoint(env: "PORT")
.WithReference(api)
.WithNpmPackageInstallation()
.PublishAsDockerFile();
// Add custom container
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080)
.PublishAsKubernetes();
builder.Build().Run();
var builder = DistributedApplication.CreateBuilder(args);
// Add database
var postgres = builder.AddAzurePostgresFlexibleServer("db")
.AddDatabase("appdata")
.WithDataVolume()
.RunAsContainer();
// Add API service and reference the database
var api = builder.AddProject("api", "../api/ApiService.csproj")
.WithReference(postgres)
.WaitFor(postgres)
.PublishAsAzureContainerApp();
// Add frontend service and reference the API
var frontend = builder.AddViteApp("frontend", "../frontend")
.WithHttpEndpoint(env: "PORT")
.WithReference(api)
.WithNpmPackageInstallation()
.PublishAsDockerFile();
builder.Build().Run();
var builder = DistributedApplication.CreateBuilder(args);
// Add database
var postgres = builder.AddAzurePostgresFlexibleServer("db")
.AddDatabase("appdata")
.WithDataVolume()
.RunAsContainer();
// Add API service and reference the database
var api = builder.AddProject("api", "../api/ApiService.csproj")
.WithReference(postgres)
.WaitFor(postgres)
.PublishAsAzureContainerApp();
// Add frontend service and reference the API
var frontend = builder.AddViteApp("frontend", "../frontend")
.WithHttpEndpoint(env: "PORT")
.WithReference(api)
.WithNpmPackageInstallation()
.PublishAsDockerFile();
// Add custom container
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080)
.PublishAsKubernetes();
builder.Build().Run();
var builder = DistributedApplication.CreateBuilder(args);
// Add database
var postgres = builder.AddAzurePostgresFlexibleServer("db")
.AddDatabase("appdata")
.WithDataVolume()
.RunAsContainer();
builder.Build().Run();
var builder = DistributedApplication.CreateBuilder(args);
// Add database
var postgres = builder.AddAzurePostgresFlexibleServer("db")
.AddDatabase("appdata")
.WithDataVolume()
.RunAsContainer();
// Add custom container
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080)
.PublishAsKubernetes();
builder.Build().Run();
var builder = DistributedApplication.CreateBuilder(args);
// Add API service
var api = builder.AddProject("api", "../api/ApiService.csproj")
.PublishAsAzureContainerApp();
builder.Build().Run();
var builder = DistributedApplication.CreateBuilder(args);
// Add API service
var api = builder.AddProject("api", "../api/ApiService.csproj")
.PublishAsAzureContainerApp();
// Add custom container
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080)
.PublishAsKubernetes();
builder.Build().Run();
var builder = DistributedApplication.CreateBuilder(args);
// Add database
var postgres = builder.AddAzurePostgresFlexibleServer("db")
.AddDatabase("appdata")
.WithDataVolume()
.RunAsContainer();
// Add API service and reference the database
var api = builder.AddProject("api", "../api/ApiService.csproj")
.WithReference(postgres)
.WaitFor(postgres)
.PublishAsAzureContainerApp();
builder.Build().Run();
var builder = DistributedApplication.CreateBuilder(args);
// Add database
var postgres = builder.AddAzurePostgresFlexibleServer("db")
.AddDatabase("appdata")
.WithDataVolume()
.RunAsContainer();
// Add API service and reference the database
var api = builder.AddProject("api", "../api/ApiService.csproj")
.WithReference(postgres)
.WaitFor(postgres)
.PublishAsAzureContainerApp();
// Add custom container
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080)
.PublishAsKubernetes();
builder.Build().Run();
var builder = DistributedApplication.CreateBuilder(args);
// Add custom container
var customContainer = builder.AddContainer("mycustomcontainer", "myregistry/myapp", "latest")
.WithHttpEndpoint(targetPort: 8080)
.PublishAsKubernetes();
builder.Build().Run();
Built for your stack, Aspire orchestrates apps in C#, Java, Python, JavaScript, TypeScript, Go, and more—use the languages you prefer. Explore how to model your apps.
Built for local development, Aspire mirrors production environments on your machine, eliminating “works on my machine” issues for smooth deployments. Learn about pipelines and app topology.
Local development with containerized services
Spin up and tear down complete staging environments for testing
Production cloud services—zero code changes
Redis
Shortlived container
PostgreSQL
Azure Database for PostgreSQL
PostgreSQL
Local container
Frontend
Azure Static Web Apps
Use Aspire’s CLI to spin everything up locally or create deployment artifacts during your CI/CD. Dive in, and build your first Aspire app.
Monitor logs, metrics, and traces in real time with the ready-to-use OpenTelemetry dashboard, integrated directly into your workflow. Explore the Aspire dashboard.
Multi-cloud, limitless integrations — Connect Aspire to Azure, AWS, or your own infrastructure. Tap into a vast ecosystem of integrations to power any stack, anywhere. Explore the integration gallery.
Don’t trust our buzzwords? Search our docs for your stack! Type your keywords here and see exactly how Aspire works with the tools you already use.
Search our docs and guides to find what you need:
Don’t just take our word for it! From indie hackers to enterprises, developers like you are building faster and shipping with confidence using Aspire. Explore the community building Aspire.
SP
Aspire lets developers be developers again.
RH
I had someone start on a Monday morning and they were contributing code by lunch.
NC
The best thing that happened in .NET since it went open source in 2014!
MJ
I was surprised by how quickly Aspire got me from idea to running services.
NU
I've never wanted to commit to a Microsoft technology this much.
CT
Hit F5 to begin — skip the setup boss fight, ship code faster.
SK
Aspire was easy to integrate with our existing container orchestration.
DC
OpenTelemetry out-of-the-box in the Aspire dashboard is a game changer for observability!
Get started with Aspire by installing the CLI, then dive into the Docs to learn how to model, run, and deploy your applications.
Get Aspire Install Aspire and streamline your workflow.
Explore docs Learn how to model, run, and deploy apps with Aspire.