VOOZH about

URL: https://aspire.dev

⇱ Aspire β€” Your stack, streamlined


Skip to content
Aspire 13.2 is here! Get the latest release that brings TypeScript AppHost authoring, an agent-native CLI, and so much more. β€” Get Aspire 13.2
πŸ‘ 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.ts
import{createBuilder}from'./.modules/aspire.js';
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.ts
import{createBuilder}from'./.modules/aspire.js';
constbuilder=awaitcreateBuilder();
// Add Vite frontend
constfrontend=awaitbuilder
.addViteApp("frontend","./frontend")
.withHttpEndpoint({ env:"PORT"});
awaitbuilder.build().run();
apphost.ts
import{createBuilder}from'./.modules/aspire.js';
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.ts
import{createBuilder}from'./.modules/aspire.js';
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.ts
import{createBuilder}from'./.modules/aspire.js';
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.ts
import{createBuilder}from'./.modules/aspire.js';
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.ts
import{createBuilder}from'./.modules/aspire.js';
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.ts
import{createBuilder}from'./.modules/aspire.js';
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.ts
import{createBuilder}from'./.modules/aspire.js';
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.ts
import{createBuilder}from'./.modules/aspire.js';
constbuilder=awaitcreateBuilder();
// Add database
constpostgres=awaitbuilder
.addPostgres("db")
.addDatabase("appdata");
awaitbuilder.build().run();
apphost.ts
import{createBuilder}from'./.modules/aspire.js';
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.ts
import{createBuilder}from'./.modules/aspire.js';
constbuilder=awaitcreateBuilder();
// Add Express API
constapi=awaitbuilder
.addNodeApp("api","./api","src/index.ts")
.withHttpEndpoint({ env:"PORT"});
awaitbuilder.build().run();
apphost.ts
import{createBuilder}from'./.modules/aspire.js';
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.ts
import{createBuilder}from'./.modules/aspire.js';
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.ts
import{createBuilder}from'./.modules/aspire.js';
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.ts
import{createBuilder}from'./.modules/aspire.js';
constbuilder=awaitcreateBuilder();
// Add custom container
constcustomContainer=awaitbuilder
.addContainer("mycustomcontainer","myregistry/myapp","latest")
.withHttpEndpoint({ targetPort:8080});
awaitbuilder.build().run();
apphost.ts
import{createBuilder}from'./.modules/aspire.js';
constbuilder=awaitcreateBuilder();
// Add Vite frontend
constfrontend=awaitbuilder
.addViteApp("frontend","./frontend")
.withHttpEndpoint({ env:"PORT"})
.withNpmPackageInstallation()
.publishAsDockerFile();
awaitbuilder.build().run();
apphost.ts
import{createBuilder}from'./.modules/aspire.js';
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.ts
import{createBuilder}from'./.modules/aspire.js';
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.ts
import{createBuilder}from'./.modules/aspire.js';
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.ts
import{createBuilder}from'./.modules/aspire.js';
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.ts
import{createBuilder}from'./.modules/aspire.js';
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.ts
import{createBuilder}from'./.modules/aspire.js';
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.ts
import{createBuilder}from'./.modules/aspire.js';
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.ts
import{createBuilder}from'./.modules/aspire.js';
constbuilder=awaitcreateBuilder();
// Add database
constpostgres=awaitbuilder
.addAzurePostgresFlexibleServer("db")
.addDatabase("appdata")
.withDataVolume()
.runAsContainer();
awaitbuilder.build().run();
apphost.ts
import{createBuilder}from'./.modules/aspire.js';
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.ts
import{createBuilder}from'./.modules/aspire.js';
constbuilder=awaitcreateBuilder();
// Add Express API
constapi=awaitbuilder
.addNodeApp("api","./api","src/index.ts")
.withHttpEndpoint({ env:"PORT"})
.publishAsAzureContainerApp();
awaitbuilder.build().run();
apphost.ts
import{createBuilder}from'./.modules/aspire.js';
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.ts
import{createBuilder}from'./.modules/aspire.js';
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.ts
import{createBuilder}from'./.modules/aspire.js';
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.ts
import{createBuilder}from'./.modules/aspire.js';
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.

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

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.
Connect with us
SHA β€” 8939bb8 Β© Microsoft