VOOZH about

URL: https://aspire.dev/

⇱ Aspire β€” Your stack, streamlined


Skip to content
Aspire 13.4 is here! β€” See what's new
πŸ‘ Aspire logo

Aspire

Your stack, streamlined.

Orchestrate frontends, APIs, containers, and databases effortlesslyβ€”no rewrites, no limits. Extend Aspire to power any project. Free, open-source, and agent ready.

Code-centric control

Define your stack in codeβ€”type-safe and readable. Run locally, deploy anywhere without architectural changes.

Modular and extensible

Orchestrate frontends, 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 checks automaticallyβ€”debug faster with zero setup.

Flexible deployments

Deploy anywhereβ€”Kubernetes, cloud, or on-prem. Aspire adapts to your environment for consistent deployments without rewrites.

Your coding agents, supercharged

Aspire is the control plane for agentic dev. AI agents use your app model to understand, build, and operate your entire stack.

Get started quickly

Install the Aspire CLI, run aspire init in your repo, and fuel your agents with aspire agent init.

Aspire is modular, composable, and extensible. Configure relationships, deployment options, and dev-time flags in one place. Learn more about the AppHost.

Build your AppHost

Toggle different features on/off to see how Aspire defines different parts of your stack.

AppHost.cs
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();
AppHost.cs
var builder =DistributedApplication.CreateBuilder(args);
// Add frontend service
var frontend =builder.AddViteApp("frontend","../frontend")
.WithHttpEndpoint(env:"PORT");
builder.Build().Run();
AppHost.cs
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();
AppHost.cs
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();
AppHost.cs
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();
AppHost.cs
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();
AppHost.cs
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();
AppHost.cs
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();
AppHost.cs
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();
AppHost.cs
var builder =DistributedApplication.CreateBuilder(args);
// Add database
var postgres =builder.AddPostgres("db")
.AddDatabase("appdata");
builder.Build().Run();
AppHost.cs
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();
AppHost.cs
var builder =DistributedApplication.CreateBuilder(args);
// Add API service
var api =builder.AddProject("api","../api/ApiService.csproj");
builder.Build().Run();
AppHost.cs
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();
AppHost.cs
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();
AppHost.cs
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();
AppHost.cs
var builder =DistributedApplication.CreateBuilder(args);
// Add custom container
var customContainer =builder.AddContainer("mycustomcontainer","myregistry/myapp","latest")
.WithHttpEndpoint(targetPort:8080);
builder.Build().Run();
AppHost.cs
var builder =DistributedApplication.CreateBuilder(args);
// Add frontend service
var frontend =builder.AddViteApp("frontend","../frontend")
.WithHttpEndpoint(env:"PORT")
.WithNpmPackageInstallation()
.PublishAsDockerFile();
builder.Build().Run();
AppHost.cs
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();
AppHost.cs
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();
AppHost.cs
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();
AppHost.cs
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();
AppHost.cs
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();
AppHost.cs
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();
AppHost.cs
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();
AppHost.cs
var builder =DistributedApplication.CreateBuilder(args);
// Add database
var postgres =builder.AddAzurePostgresFlexibleServer("db")
.AddDatabase("appdata")
.WithDataVolume()
.RunAsContainer();
builder.Build().Run();
AppHost.cs
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();
AppHost.cs
var builder =DistributedApplication.CreateBuilder(args);
// Add API service
var api =builder.AddProject("api","../api/ApiService.csproj")
.PublishAsAzureContainerApp();
builder.Build().Run();
AppHost.cs
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();
AppHost.cs
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();
AppHost.cs
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();
AppHost.cs
var builder =DistributedApplication.CreateBuilder(args);
// Add custom container
var customContainer =builder.AddContainer("mycustomcontainer","myregistry/myapp","latest")
.WithHttpEndpoint(targetPort:8080)
.PublishAsKubernetes();
builder.Build().Run();
apphost.mts
import{createBuilder}from'./.aspire/modules/aspire.mjs';
constbuilder=awaitcreateBuilder();
// 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.
awaitbuilder.build().run();
apphost.mts
import{createBuilder}from'./.aspire/modules/aspire.mjs';
constbuilder=awaitcreateBuilder();
// Add Vite frontend
constfrontend=awaitbuilder
.addViteApp("frontend","./frontend")
.withHttpEndpoint({ env:"PORT"});
awaitbuilder.build().run();
apphost.mts
import{createBuilder}from'./.aspire/modules/aspire.mjs';
constbuilder=awaitcreateBuilder();
// Add Vite frontend
constfrontend=awaitbuilder
.addViteApp("frontend","./frontend")
.withHttpEndpoint({ env:"PORT"});
// Add custom container
constcustomContainer=awaitbuilder
.addContainer("mycustomcontainer","myregistry/myapp","latest")
.withHttpEndpoint({ targetPort:8080});
awaitbuilder.build().run();
apphost.mts
import{createBuilder}from'./.aspire/modules/aspire.mjs';
constbuilder=awaitcreateBuilder();
// Add database
constpostgres=awaitbuilder
.addPostgres("db")
.addDatabase("appdata");
// Add Vite frontend
constfrontend=awaitbuilder
.addViteApp("frontend","./frontend")
.withHttpEndpoint({ env:"PORT"});
awaitbuilder.build().run();
apphost.mts
import{createBuilder}from'./.aspire/modules/aspire.mjs';
constbuilder=awaitcreateBuilder();
// Add database
constpostgres=awaitbuilder
.addPostgres("db")
.addDatabase("appdata");
// Add Vite frontend
constfrontend=awaitbuilder
.addViteApp("frontend","./frontend")
.withHttpEndpoint({ env:"PORT"});
// Add custom container
constcustomContainer=awaitbuilder
.addContainer("mycustomcontainer","myregistry/myapp","latest")
.withHttpEndpoint({ targetPort:8080});
awaitbuilder.build().run();
apphost.mts
import{createBuilder}from'./.aspire/modules/aspire.mjs';
constbuilder=awaitcreateBuilder();
// Add Express API
constapi=awaitbuilder
.addNodeApp("api","./api","src/index.ts")
.withHttpEndpoint({ env:"PORT"});
// Add Vite frontend and reference the API
constfrontend=awaitbuilder
.addViteApp("frontend","./frontend")
.withHttpEndpoint({ env:"PORT"})
.withReference(api);
awaitbuilder.build().run();
apphost.mts
import{createBuilder}from'./.aspire/modules/aspire.mjs';
constbuilder=awaitcreateBuilder();
// Add Express API
constapi=awaitbuilder
.addNodeApp("api","./api","src/index.ts")
.withHttpEndpoint({ env:"PORT"});
// Add Vite frontend and reference the API
constfrontend=awaitbuilder
.addViteApp("frontend","./frontend")
.withHttpEndpoint({ env:"PORT"})
.withReference(api);
// Add custom container
constcustomContainer=awaitbuilder
.addContainer("mycustomcontainer","myregistry/myapp","latest")
.withHttpEndpoint({ targetPort:8080});
awaitbuilder.build().run();
apphost.mts
import{createBuilder}from'./.aspire/modules/aspire.mjs';
constbuilder=awaitcreateBuilder();
// Add database
constpostgres=awaitbuilder
.addPostgres("db")
.addDatabase("appdata");
// Add Express API and reference the database
constapi=awaitbuilder
.addNodeApp("api","./api","src/index.ts")
.withHttpEndpoint({ env:"PORT"})
.withReference(postgres);
// Add Vite frontend and reference the API
constfrontend=awaitbuilder
.addViteApp("frontend","./frontend")
.withHttpEndpoint({ env:"PORT"})
.withReference(api);
awaitbuilder.build().run();
apphost.mts
import{createBuilder}from'./.aspire/modules/aspire.mjs';
constbuilder=awaitcreateBuilder();
// Add database
constpostgres=awaitbuilder
.addPostgres("db")
.addDatabase("appdata");
// Add Express API and reference the database
constapi=awaitbuilder
.addNodeApp("api","./api","src/index.ts")
.withHttpEndpoint({ env:"PORT"})
.withReference(postgres);
// Add Vite frontend and reference the API
constfrontend=awaitbuilder
.addViteApp("frontend","./frontend")
.withHttpEndpoint({ env:"PORT"})
.withReference(api);
// Add custom container
constcustomContainer=awaitbuilder
.addContainer("mycustomcontainer","myregistry/myapp","latest")
.withHttpEndpoint({ targetPort:8080});
awaitbuilder.build().run();
apphost.mts
import{createBuilder}from'./.aspire/modules/aspire.mjs';
constbuilder=awaitcreateBuilder();
// Add database
constpostgres=awaitbuilder
.addPostgres("db")
.addDatabase("appdata");
awaitbuilder.build().run();
apphost.mts
import{createBuilder}from'./.aspire/modules/aspire.mjs';
constbuilder=awaitcreateBuilder();
// Add database
constpostgres=awaitbuilder
.addPostgres("db")
.addDatabase("appdata");
// Add custom container
constcustomContainer=awaitbuilder
.addContainer("mycustomcontainer","myregistry/myapp","latest")
.withHttpEndpoint({ targetPort:8080});
awaitbuilder.build().run();
apphost.mts
import{createBuilder}from'./.aspire/modules/aspire.mjs';
constbuilder=awaitcreateBuilder();
// Add Express API
constapi=awaitbuilder
.addNodeApp("api","./api","src/index.ts")
.withHttpEndpoint({ env:"PORT"});
awaitbuilder.build().run();
apphost.mts
import{createBuilder}from'./.aspire/modules/aspire.mjs';
constbuilder=awaitcreateBuilder();
// Add Express API
constapi=awaitbuilder
.addNodeApp("api","./api","src/index.ts")
.withHttpEndpoint({ env:"PORT"});
// Add custom container
constcustomContainer=awaitbuilder
.addContainer("mycustomcontainer","myregistry/myapp","latest")
.withHttpEndpoint({ targetPort:8080});
awaitbuilder.build().run();
apphost.mts
import{createBuilder}from'./.aspire/modules/aspire.mjs';
constbuilder=awaitcreateBuilder();
// Add database
constpostgres=awaitbuilder
.addPostgres("db")
.addDatabase("appdata");
// Add Express API and reference the database
constapi=awaitbuilder
.addNodeApp("api","./api","src/index.ts")
.withHttpEndpoint({ env:"PORT"})
.withReference(postgres);
awaitbuilder.build().run();
apphost.mts
import{createBuilder}from'./.aspire/modules/aspire.mjs';
constbuilder=awaitcreateBuilder();
// Add database
constpostgres=awaitbuilder
.addPostgres("db")
.addDatabase("appdata");
// Add Express API and reference the database
constapi=awaitbuilder
.addNodeApp("api","./api","src/index.ts")
.withHttpEndpoint({ env:"PORT"})
.withReference(postgres);
// Add custom container
constcustomContainer=awaitbuilder
.addContainer("mycustomcontainer","myregistry/myapp","latest")
.withHttpEndpoint({ targetPort:8080});
awaitbuilder.build().run();
apphost.mts
import{createBuilder}from'./.aspire/modules/aspire.mjs';
constbuilder=awaitcreateBuilder();
// Add custom container
constcustomContainer=awaitbuilder
.addContainer("mycustomcontainer","myregistry/myapp","latest")
.withHttpEndpoint({ targetPort:8080});
awaitbuilder.build().run();
apphost.mts
import{createBuilder}from'./.aspire/modules/aspire.mjs';
constbuilder=awaitcreateBuilder();
// Add Vite frontend
constfrontend=awaitbuilder
.addViteApp("frontend","./frontend")
.withHttpEndpoint({ env:"PORT"})
.withNpmPackageInstallation()
.publishAsDockerFile();
awaitbuilder.build().run();
apphost.mts
import{createBuilder}from'./.aspire/modules/aspire.mjs';
constbuilder=awaitcreateBuilder();
// Add Vite frontend
constfrontend=awaitbuilder
.addViteApp("frontend","./frontend")
.withHttpEndpoint({ env:"PORT"})
.withNpmPackageInstallation()
.publishAsDockerFile();
// Add custom container
constcustomContainer=awaitbuilder
.addContainer("mycustomcontainer","myregistry/myapp","latest")
.withHttpEndpoint({ targetPort:8080})
.publishAsKubernetes();
awaitbuilder.build().run();
apphost.mts
import{createBuilder}from'./.aspire/modules/aspire.mjs';
constbuilder=awaitcreateBuilder();
// Add database
constpostgres=awaitbuilder
.addAzurePostgresFlexibleServer("db")
.addDatabase("appdata")
.withDataVolume()
.runAsContainer();
// Add Vite frontend
constfrontend=awaitbuilder
.addViteApp("frontend","./frontend")
.withHttpEndpoint({ env:"PORT"})
.withNpmPackageInstallation()
.publishAsDockerFile();
awaitbuilder.build().run();
apphost.mts
import{createBuilder}from'./.aspire/modules/aspire.mjs';
constbuilder=awaitcreateBuilder();
// Add database
constpostgres=awaitbuilder
.addAzurePostgresFlexibleServer("db")
.addDatabase("appdata")
.withDataVolume()
.runAsContainer();
// Add Vite frontend
constfrontend=awaitbuilder
.addViteApp("frontend","./frontend")
.withHttpEndpoint({ env:"PORT"})
.withNpmPackageInstallation()
.publishAsDockerFile();
// Add custom container
constcustomContainer=awaitbuilder
.addContainer("mycustomcontainer","myregistry/myapp","latest")
.withHttpEndpoint({ targetPort:8080})
.publishAsKubernetes();
awaitbuilder.build().run();
apphost.mts
import{createBuilder}from'./.aspire/modules/aspire.mjs';
constbuilder=awaitcreateBuilder();
// Add Express API
constapi=awaitbuilder
.addNodeApp("api","./api","src/index.ts")
.withHttpEndpoint({ env:"PORT"})
.publishAsAzureContainerApp();
// Add Vite frontend and reference the API
constfrontend=awaitbuilder
.addViteApp("frontend","./frontend")
.withHttpEndpoint({ env:"PORT"})
.withReference(api)
.withNpmPackageInstallation()
.publishAsDockerFile();
awaitbuilder.build().run();
apphost.mts
import{createBuilder}from'./.aspire/modules/aspire.mjs';
constbuilder=awaitcreateBuilder();
// Add Express API
constapi=awaitbuilder
.addNodeApp("api","./api","src/index.ts")
.withHttpEndpoint({ env:"PORT"})
.publishAsAzureContainerApp();
// Add Vite frontend and reference the API
constfrontend=awaitbuilder
.addViteApp("frontend","./frontend")
.withHttpEndpoint({ env:"PORT"})
.withReference(api)
.withNpmPackageInstallation()
.publishAsDockerFile();
// Add custom container
constcustomContainer=awaitbuilder
.addContainer("mycustomcontainer","myregistry/myapp","latest")
.withHttpEndpoint({ targetPort:8080})
.publishAsKubernetes();
awaitbuilder.build().run();
apphost.mts
import{createBuilder}from'./.aspire/modules/aspire.mjs';
constbuilder=awaitcreateBuilder();
// Add database
constpostgres=awaitbuilder
.addAzurePostgresFlexibleServer("db")
.addDatabase("appdata")
.withDataVolume()
.runAsContainer();
// Add Express API and reference the database
constapi=awaitbuilder
.addNodeApp("api","./api","src/index.ts")
.withHttpEndpoint({ env:"PORT"})
.withReference(postgres)
.waitFor(postgres)
.publishAsAzureContainerApp();
// Add Vite frontend and reference the API
constfrontend=awaitbuilder
.addViteApp("frontend","./frontend")
.withHttpEndpoint({ env:"PORT"})
.withReference(api)
.withNpmPackageInstallation()
.publishAsDockerFile();
awaitbuilder.build().run();
apphost.mts
import{createBuilder}from'./.aspire/modules/aspire.mjs';
constbuilder=awaitcreateBuilder();
// Add database
constpostgres=awaitbuilder
.addAzurePostgresFlexibleServer("db")
.addDatabase("appdata")
.withDataVolume()
.runAsContainer();
// Add Express API and reference the database
constapi=awaitbuilder
.addNodeApp("api","./api","src/index.ts")
.withHttpEndpoint({ env:"PORT"})
.withReference(postgres)
.waitFor(postgres)
.publishAsAzureContainerApp();
// Add Vite frontend and reference the API
constfrontend=awaitbuilder
.addViteApp("frontend","./frontend")
.withHttpEndpoint({ env:"PORT"})
.withReference(api)
.withNpmPackageInstallation()
.publishAsDockerFile();
// Add custom container
constcustomContainer=awaitbuilder
.addContainer("mycustomcontainer","myregistry/myapp","latest")
.withHttpEndpoint({ targetPort:8080})
.publishAsKubernetes();
awaitbuilder.build().run();
apphost.mts
import{createBuilder}from'./.aspire/modules/aspire.mjs';
constbuilder=awaitcreateBuilder();
// Add database
constpostgres=awaitbuilder
.addAzurePostgresFlexibleServer("db")
.addDatabase("appdata")
.withDataVolume()
.runAsContainer();
awaitbuilder.build().run();
apphost.mts
import{createBuilder}from'./.aspire/modules/aspire.mjs';
constbuilder=awaitcreateBuilder();
// Add database
constpostgres=awaitbuilder
.addAzurePostgresFlexibleServer("db")
.addDatabase("appdata")
.withDataVolume()
.runAsContainer();
// Add custom container
constcustomContainer=awaitbuilder
.addContainer("mycustomcontainer","myregistry/myapp","latest")
.withHttpEndpoint({ targetPort:8080})
.publishAsKubernetes();
awaitbuilder.build().run();
apphost.mts
import{createBuilder}from'./.aspire/modules/aspire.mjs';
constbuilder=awaitcreateBuilder();
// Add Express API
constapi=awaitbuilder
.addNodeApp("api","./api","src/index.ts")
.withHttpEndpoint({ env:"PORT"})
.publishAsAzureContainerApp();
awaitbuilder.build().run();
apphost.mts
import{createBuilder}from'./.aspire/modules/aspire.mjs';
constbuilder=awaitcreateBuilder();
// Add Express API
constapi=awaitbuilder
.addNodeApp("api","./api","src/index.ts")
.withHttpEndpoint({ env:"PORT"})
.publishAsAzureContainerApp();
// Add custom container
constcustomContainer=awaitbuilder
.addContainer("mycustomcontainer","myregistry/myapp","latest")
.withHttpEndpoint({ targetPort:8080})
.publishAsKubernetes();
awaitbuilder.build().run();
apphost.mts
import{createBuilder}from'./.aspire/modules/aspire.mjs';
constbuilder=awaitcreateBuilder();
// Add database
constpostgres=awaitbuilder
.addAzurePostgresFlexibleServer("db")
.addDatabase("appdata")
.withDataVolume()
.runAsContainer();
// Add Express API and reference the database
constapi=awaitbuilder
.addNodeApp("api","./api","src/index.ts")
.withHttpEndpoint({ env:"PORT"})
.withReference(postgres)
.waitFor(postgres)
.publishAsAzureContainerApp();
awaitbuilder.build().run();
apphost.mts
import{createBuilder}from'./.aspire/modules/aspire.mjs';
constbuilder=awaitcreateBuilder();
// Add database
constpostgres=awaitbuilder
.addAzurePostgresFlexibleServer("db")
.addDatabase("appdata")
.withDataVolume()
.runAsContainer();
// Add Express API and reference the database
constapi=awaitbuilder
.addNodeApp("api","./api","src/index.ts")
.withHttpEndpoint({ env:"PORT"})
.withReference(postgres)
.waitFor(postgres)
.publishAsAzureContainerApp();
// Add custom container
constcustomContainer=awaitbuilder
.addContainer("mycustomcontainer","myregistry/myapp","latest")
.withHttpEndpoint({ targetPort:8080})
.publishAsKubernetes();
awaitbuilder.build().run();
apphost.mts
import{createBuilder}from'./.aspire/modules/aspire.mjs';
constbuilder=awaitcreateBuilder();
// Add custom container
constcustomContainer=awaitbuilder
.addContainer("mycustomcontainer","myregistry/myapp","latest")
.withHttpEndpoint({ targetPort:8080})
.publishAsKubernetes();
awaitbuilder.build().run();

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.

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
Terminal window
aspirerun
Terminal window
aspiredeploy-etest
Terminal window
aspiredeploy
Redis
AWS ElastiCache
Redis
Shortlived container
Redis
Local container
PostgreSQL
Azure Database for PostgreSQL
PostgreSQL
Staged DB
PostgreSQL
Local container
Frontend
Azure Static Web Apps
Frontend
Dev tunnel
Frontend
Local process
API
Azure Container Apps
API
Staging environment
API
Local process

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. Dive into the 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. Discover all integrations.

πŸ‘ Azure Web PubSub
πŸ‘ Oracle
πŸ‘ MongoDB
πŸ‘ Azure Database for PostgreSQL
πŸ‘ Azure SQL Server
πŸ‘ k6
πŸ‘ Java
πŸ‘ MinIO
πŸ‘ Mailpit
πŸ‘ Mailpit
πŸ‘ OpenAI
πŸ‘ OpenAI
πŸ‘ KurrentDB
πŸ‘ KurrentDB
πŸ‘ SQLite
πŸ‘ Kubernetes
πŸ‘ Docker
πŸ‘ Azure Cosmos DB
πŸ‘ Azure Storage Container
πŸ‘ Microsoft Foundry
πŸ‘ Azure Function Apps
πŸ‘ ngrok
πŸ‘ ngrok
πŸ‘ Go
πŸ‘ Go
πŸ‘ Azure SignalR
πŸ‘ Keycloak
πŸ‘ Dapr
πŸ‘ Dapr
πŸ‘ Microsoft Azure
πŸ‘ Valkey
πŸ‘ Redis
πŸ‘ SurrealDB
πŸ‘ SurrealDB
πŸ‘ Azure Web PubSub
πŸ‘ Oracle
πŸ‘ MongoDB
πŸ‘ Azure Database for PostgreSQL
πŸ‘ Azure SQL Server
πŸ‘ k6
πŸ‘ Java
πŸ‘ MinIO
πŸ‘ Mailpit
πŸ‘ Mailpit
πŸ‘ OpenAI
πŸ‘ OpenAI
πŸ‘ KurrentDB
πŸ‘ KurrentDB
πŸ‘ SQLite
πŸ‘ Kubernetes
πŸ‘ Docker
πŸ‘ Azure Cosmos DB
πŸ‘ Azure Storage Container
πŸ‘ Microsoft Foundry
πŸ‘ Azure Function Apps
πŸ‘ ngrok
πŸ‘ ngrok
πŸ‘ Go
πŸ‘ Go
πŸ‘ Azure SignalR
πŸ‘ Keycloak
πŸ‘ Dapr
πŸ‘ Dapr
πŸ‘ Microsoft Azure
πŸ‘ Valkey
πŸ‘ Redis
πŸ‘ SurrealDB
πŸ‘ SurrealDB
πŸ‘ Adminer
πŸ‘ Azure OpenAI
πŸ‘ Elasticsearch
πŸ‘ Python
πŸ‘ NATS Messaging
πŸ‘ GO Feature Flag
πŸ‘ Uv
πŸ‘ Azure Blob/Page Storage
πŸ‘ MySQL Connector
πŸ‘ ActiveMQ
πŸ‘ ActiveMQ
πŸ‘ Azure Cognitive Search
πŸ‘ JavaScript
πŸ‘ Azure Container Apps Environments
πŸ‘ Azure Table Storage
πŸ‘ PostgreSQL
πŸ‘ Azure Event Hubs
πŸ‘ PowerShell
πŸ‘ .NET MAUI
πŸ‘ SQL Database Projects
πŸ‘ Azure Application Insights
πŸ‘ Data API Builder
πŸ‘ Bun
πŸ‘ Azure Cache for Redis
πŸ‘ Azure Key Vault
πŸ‘ Dev Tunnels
πŸ‘ AWS
πŸ‘ AWS
πŸ‘ Qdrant Vector Database
πŸ‘ Adminer
πŸ‘ Azure OpenAI
πŸ‘ Elasticsearch
πŸ‘ Python
πŸ‘ NATS Messaging
πŸ‘ GO Feature Flag
πŸ‘ Uv
πŸ‘ Azure Blob/Page Storage
πŸ‘ MySQL Connector
πŸ‘ ActiveMQ
πŸ‘ ActiveMQ
πŸ‘ Azure Cognitive Search
πŸ‘ JavaScript
πŸ‘ Azure Container Apps Environments
πŸ‘ Azure Table Storage
πŸ‘ PostgreSQL
πŸ‘ Azure Event Hubs
πŸ‘ PowerShell
πŸ‘ .NET MAUI
πŸ‘ SQL Database Projects
πŸ‘ Azure Application Insights
πŸ‘ Data API Builder
πŸ‘ Bun
πŸ‘ Azure Cache for Redis
πŸ‘ Azure Key Vault
πŸ‘ Dev Tunnels
πŸ‘ AWS
πŸ‘ AWS
πŸ‘ Qdrant Vector Database
πŸ‘ Azure Log Analytics
πŸ‘ Azure App Configuration
πŸ‘ Seq Log Server
πŸ‘ Azure App Services
πŸ‘ Rust
πŸ‘ GitHub
πŸ‘ GitHub
πŸ‘ TypeScript
πŸ‘ Papercut
πŸ‘ Papercut
πŸ‘ Node.js
πŸ‘ Node.js
πŸ‘ Ollama
πŸ‘ DbGate
πŸ‘ DbGate
πŸ‘ RabbitMQ
πŸ‘ React
πŸ‘ Garnet
πŸ‘ SQL Database
πŸ‘ LavinMQ
πŸ‘ Milvus Vector Database
πŸ‘ Meilisearch
πŸ‘ MCP Inspector
πŸ‘ MCP Inspector
πŸ‘ FastAPI
πŸ‘ Azure Service Bus
πŸ‘ Deno
πŸ‘ Deno
πŸ‘ Azure Storage Queue
πŸ‘ flagd
πŸ‘ flagd
πŸ‘ RavenDB
πŸ‘ RavenDB
πŸ‘ Azure Log Analytics
πŸ‘ Azure App Configuration
πŸ‘ Seq Log Server
πŸ‘ Azure App Services
πŸ‘ Rust
πŸ‘ GitHub
πŸ‘ GitHub
πŸ‘ TypeScript
πŸ‘ Papercut
πŸ‘ Papercut
πŸ‘ Node.js
πŸ‘ Node.js
πŸ‘ Ollama
πŸ‘ DbGate
πŸ‘ DbGate
πŸ‘ RabbitMQ
πŸ‘ React
πŸ‘ Garnet
πŸ‘ SQL Database
πŸ‘ LavinMQ
πŸ‘ Milvus Vector Database
πŸ‘ Meilisearch
πŸ‘ MCP Inspector
πŸ‘ MCP Inspector
πŸ‘ FastAPI
πŸ‘ Azure Service Bus
πŸ‘ Deno
πŸ‘ Deno
πŸ‘ Azure Storage Queue
πŸ‘ flagd
πŸ‘ flagd
πŸ‘ RavenDB
πŸ‘ RavenDB

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. Join the Aspire community.

I had someone start on a Monday morning and they were contributing code by lunch.
I've never wanted to commit to a Microsoft technology this much.
Hit F5 to begin β€” skip the setup boss fight, ship code faster.
Aspire was easy to integrate with our existing container orchestration.
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.
Use VS Code Install the Aspire extension and run AppHosts from the editor.
FAQ Find answers to frequently asked questions.
Connect with us
SHA β€” b66edbe Β© Microsoft