
Aspire
Orchestrate front ends, APIs, containers, and databases effortlessly—no rewrites, no limits. Extend Aspire to power any project.
Free and open source
Aspire is a developer-first, always-free, open-source platform. Join a thriving community and help shape the future of modern development.
Why developers choose Aspire
Section titled “Why developers choose Aspire”Code-centric control
Define your stack in code—type-safe and readable. Run locally, deployanywhere without architectural changes.
Modular and extensible
Orchestrate front ends, APIs, containers, and databases with zero rewrites.Extend Aspire to fit your stack—deploy anywhere.
Observability from the start
Built-in OpenTelemetry delivers logs, traces, and health checksautomatically—debug faster with zero setup.
Flexible deployments
Deploy anywhere—Kubernetes, cloud, or on-prem. Aspire adapts to yourenvironment for consistent deployments without rewrites.
Define your stack in code
Section titled “Define your stack in code”Aspire is modular, composable, and extensible. Configure relationships, deployment options, and dev-time flags in one place.Learn more about theAppHost.
Build your AppHost
Toggle different features on/off to see how Aspire defines different parts of your stack.
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 servicevar frontend=builder.AddViteApp("frontend","../frontend").WithHttpEndpoint(env:"PORT");builder.Build().Run();var builder=DistributedApplication.CreateBuilder(args);// Add frontend servicevar frontend=builder.AddViteApp("frontend","../frontend").WithHttpEndpoint(env:"PORT");// Add custom containervar customContainer=builder.AddContainer("mycustomcontainer","myregistry/myapp","latest").WithHttpEndpoint(targetPort:8080);builder.Build().Run();var builder=DistributedApplication.CreateBuilder(args);// Add databasevar postgres=builder.AddPostgres("db").AddDatabase("appdata");// Add frontend servicevar frontend=builder.AddViteApp("frontend","../frontend").WithHttpEndpoint(env:"PORT");builder.Build().Run();var builder=DistributedApplication.CreateBuilder(args);// Add databasevar postgres=builder.AddPostgres("db").AddDatabase("appdata");// Add frontend servicevar frontend=builder.AddViteApp("frontend","../frontend").WithHttpEndpoint(env:"PORT");// Add custom containervar customContainer=builder.AddContainer("mycustomcontainer","myregistry/myapp","latest").WithHttpEndpoint(targetPort:8080);builder.Build().Run();var builder=DistributedApplication.CreateBuilder(args);// Add API servicevar api=builder.AddProject("api","../api/ApiService.csproj");// Add frontend service and reference the APIvar frontend=builder.AddViteApp("frontend","../frontend").WithHttpEndpoint(env:"PORT").WithReference(api);builder.Build().Run();var builder=DistributedApplication.CreateBuilder(args);// Add API servicevar api=builder.AddProject("api","../api/ApiService.csproj");// Add frontend service and reference the APIvar frontend=builder.AddViteApp("frontend","../frontend").WithHttpEndpoint(env:"PORT").WithReference(api);// Add custom containervar customContainer=builder.AddContainer("mycustomcontainer","myregistry/myapp","latest").WithHttpEndpoint(targetPort:8080);builder.Build().Run();var builder=DistributedApplication.CreateBuilder(args);// Add databasevar postgres=builder.AddPostgres("db").AddDatabase("appdata");// Add API service and reference the databasevar api=builder.AddProject("api","../api/ApiService.csproj").WithReference(postgres);// Add frontend service and reference the APIvar frontend=builder.AddViteApp("frontend","../frontend").WithHttpEndpoint(env:"PORT").WithReference(api);builder.Build().Run();var builder=DistributedApplication.CreateBuilder(args);// Add databasevar postgres=builder.AddPostgres("db").AddDatabase("appdata");// Add API service and reference the databasevar api=builder.AddProject("api","../api/ApiService.csproj").WithReference(postgres);// Add frontend service and reference the APIvar frontend=builder.AddViteApp("frontend","../frontend").WithHttpEndpoint(env:"PORT").WithReference(api);// Add custom containervar customContainer=builder.AddContainer("mycustomcontainer","myregistry/myapp","latest").WithHttpEndpoint(targetPort:8080);builder.Build().Run();var builder=DistributedApplication.CreateBuilder(args);// Add databasevar postgres=builder.AddPostgres("db").AddDatabase("appdata");builder.Build().Run();var builder=DistributedApplication.CreateBuilder(args);// Add databasevar postgres=builder.AddPostgres("db").AddDatabase("appdata");// Add custom containervar customContainer=builder.AddContainer("mycustomcontainer","myregistry/myapp","latest").WithHttpEndpoint(targetPort:8080);builder.Build().Run();var builder=DistributedApplication.CreateBuilder(args);// Add API servicevar api=builder.AddProject("api","../api/ApiService.csproj");builder.Build().Run();var builder=DistributedApplication.CreateBuilder(args);// Add API servicevar api=builder.AddProject("api","../api/ApiService.csproj");// Add custom containervar customContainer=builder.AddContainer("mycustomcontainer","myregistry/myapp","latest").WithHttpEndpoint(targetPort:8080);builder.Build().Run();var builder=DistributedApplication.CreateBuilder(args);// Add databasevar postgres=builder.AddPostgres("db").AddDatabase("appdata");// Add API service and reference the databasevar api=builder.AddProject("api","../api/ApiService.csproj").WithReference(postgres);builder.Build().Run();var builder=DistributedApplication.CreateBuilder(args);// Add databasevar postgres=builder.AddPostgres("db").AddDatabase("appdata");// Add API service and reference the databasevar api=builder.AddProject("api","../api/ApiService.csproj").WithReference(postgres);// Add custom containervar customContainer=builder.AddContainer("mycustomcontainer","myregistry/myapp","latest").WithHttpEndpoint(targetPort:8080);builder.Build().Run();var builder=DistributedApplication.CreateBuilder(args);// Add custom containervar customContainer=builder.AddContainer("mycustomcontainer","myregistry/myapp","latest").WithHttpEndpoint(targetPort:8080);builder.Build().Run();var builder=DistributedApplication.CreateBuilder(args);// Add frontend servicevar frontend=builder.AddViteApp("frontend","../frontend").WithHttpEndpoint(env:"PORT").WithNpmPackageInstallation().PublishAsDockerFile();builder.Build().Run();var builder=DistributedApplication.CreateBuilder(args);// Add frontend servicevar frontend=builder.AddViteApp("frontend","../frontend").WithHttpEndpoint(env:"PORT").WithNpmPackageInstallation().PublishAsDockerFile();// Add custom containervar customContainer=builder.AddContainer("mycustomcontainer","myregistry/myapp","latest").WithHttpEndpoint(targetPort:8080).PublishAsKubernetes();builder.Build().Run();var builder=DistributedApplication.CreateBuilder(args);// Add databasevar postgres=builder.AddAzurePostgresFlexibleServer("db").AddDatabase("appdata").WithDataVolume().RunAsContainer();// Add frontend servicevar frontend=builder.AddViteApp("frontend","../frontend").WithHttpEndpoint(env:"PORT").WithNpmPackageInstallation().PublishAsDockerFile();builder.Build().Run();var builder=DistributedApplication.CreateBuilder(args);// Add databasevar postgres=builder.AddAzurePostgresFlexibleServer("db").AddDatabase("appdata").WithDataVolume().RunAsContainer();// Add frontend servicevar frontend=builder.AddViteApp("frontend","../frontend").WithHttpEndpoint(env:"PORT").WithNpmPackageInstallation().PublishAsDockerFile();// Add custom containervar customContainer=builder.AddContainer("mycustomcontainer","myregistry/myapp","latest").WithHttpEndpoint(targetPort:8080).PublishAsKubernetes();builder.Build().Run();var builder=DistributedApplication.CreateBuilder(args);// Add API servicevar api=builder.AddProject("api","../api/ApiService.csproj").PublishAsAzureContainerApp();// Add frontend service and reference the APIvar frontend=builder.AddViteApp("frontend","../frontend").WithHttpEndpoint(env:"PORT").WithReference(api).WithNpmPackageInstallation().PublishAsDockerFile();builder.Build().Run();var builder=DistributedApplication.CreateBuilder(args);// Add API servicevar api=builder.AddProject("api","../api/ApiService.csproj").PublishAsAzureContainerApp();// Add frontend service and reference the APIvar frontend=builder.AddViteApp("frontend","../frontend").WithHttpEndpoint(env:"PORT").WithReference(api).WithNpmPackageInstallation().PublishAsDockerFile();// Add custom containervar customContainer=builder.AddContainer("mycustomcontainer","myregistry/myapp","latest").WithHttpEndpoint(targetPort:8080).PublishAsKubernetes();builder.Build().Run();var builder=DistributedApplication.CreateBuilder(args);// Add databasevar postgres=builder.AddAzurePostgresFlexibleServer("db").AddDatabase("appdata").WithDataVolume().RunAsContainer();// Add API service and reference the databasevar api=builder.AddProject("api","../api/ApiService.csproj").WithReference(postgres).WaitFor(postgres).PublishAsAzureContainerApp();// Add frontend service and reference the APIvar frontend=builder.AddViteApp("frontend","../frontend").WithHttpEndpoint(env:"PORT").WithReference(api).WithNpmPackageInstallation().PublishAsDockerFile();builder.Build().Run();var builder=DistributedApplication.CreateBuilder(args);// Add databasevar postgres=builder.AddAzurePostgresFlexibleServer("db").AddDatabase("appdata").WithDataVolume().RunAsContainer();// Add API service and reference the databasevar api=builder.AddProject("api","../api/ApiService.csproj").WithReference(postgres).WaitFor(postgres).PublishAsAzureContainerApp();// Add frontend service and reference the APIvar frontend=builder.AddViteApp("frontend","../frontend").WithHttpEndpoint(env:"PORT").WithReference(api).WithNpmPackageInstallation().PublishAsDockerFile();// Add custom containervar customContainer=builder.AddContainer("mycustomcontainer","myregistry/myapp","latest").WithHttpEndpoint(targetPort:8080).PublishAsKubernetes();builder.Build().Run();var builder=DistributedApplication.CreateBuilder(args);// Add databasevar postgres=builder.AddAzurePostgresFlexibleServer("db").AddDatabase("appdata").WithDataVolume().RunAsContainer();builder.Build().Run();var builder=DistributedApplication.CreateBuilder(args);// Add databasevar postgres=builder.AddAzurePostgresFlexibleServer("db").AddDatabase("appdata").WithDataVolume().RunAsContainer();// Add custom containervar customContainer=builder.AddContainer("mycustomcontainer","myregistry/myapp","latest").WithHttpEndpoint(targetPort:8080).PublishAsKubernetes();builder.Build().Run();var builder=DistributedApplication.CreateBuilder(args);// Add API servicevar api=builder.AddProject("api","../api/ApiService.csproj").PublishAsAzureContainerApp();builder.Build().Run();var builder=DistributedApplication.CreateBuilder(args);// Add API servicevar api=builder.AddProject("api","../api/ApiService.csproj").PublishAsAzureContainerApp();// Add custom containervar customContainer=builder.AddContainer("mycustomcontainer","myregistry/myapp","latest").WithHttpEndpoint(targetPort:8080).PublishAsKubernetes();builder.Build().Run();var builder=DistributedApplication.CreateBuilder(args);// Add databasevar postgres=builder.AddAzurePostgresFlexibleServer("db").AddDatabase("appdata").WithDataVolume().RunAsContainer();// Add API service and reference the databasevar api=builder.AddProject("api","../api/ApiService.csproj").WithReference(postgres).WaitFor(postgres).PublishAsAzureContainerApp();builder.Build().Run();var builder=DistributedApplication.CreateBuilder(args);// Add databasevar postgres=builder.AddAzurePostgresFlexibleServer("db").AddDatabase("appdata").WithDataVolume().RunAsContainer();// Add API service and reference the databasevar api=builder.AddProject("api","../api/ApiService.csproj").WithReference(postgres).WaitFor(postgres).PublishAsAzureContainerApp();// Add custom containervar customContainer=builder.AddContainer("mycustomcontainer","myregistry/myapp","latest").WithHttpEndpoint(targetPort:8080).PublishAsKubernetes();builder.Build().Run();var builder=DistributedApplication.CreateBuilder(args);// Add custom containervar customContainer=builder.AddContainer("mycustomcontainer","myregistry/myapp","latest").WithHttpEndpoint(targetPort:8080).PublishAsKubernetes();builder.Build().Run();Polyglot, multilanguage support
Section titled “Polyglot, multilanguage support”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.
Local-first, production-ready
Section titled “Local-first, production-ready”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.
aspirerunaspiredeploy-etestaspiredeploySame model, different environments
Section titled “Same model, different environments”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.
Local development
aspirerun- Runs with your local container runtime
- Dashboard available on
localhost - Uses dev secrets, volumes, dev-time config
Production deployment
aspiredeploy- Same app structure, deployed where you want
- Use managed cloud services or your own infra
- Integrates with CI/CD pipelines seamlessly
OpenTelemetry developer dashboard
Section titled “OpenTelemetry developer dashboard”Monitor logs, metrics, and traces in real time with the ready-to-use OpenTelemetry dashboard, integrated directly into your workflow.Explore the Aspire dashboard.
Explore integrations
Section titled “Explore integrations”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.
User testimonials
Section titled “User testimonials”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.







Ready for liftoff?
Section titled “Ready for liftoff?”Get started with Aspire by installing the CLI, then dive into the Docs to learn how to model, run, and deploy your applications.

