Ship JavaScript to Netlify, the Aspire way.
A first-party-feeling Aspire integration. One command — aspire deploy — for Angular, Astro, Next.js, React, Svelte, and Vue. Works from C# or TypeScript AppHosts.
$ aspire deploy info: ◆ netlify-deploy(astro): resolving auth token… info: ◆ netlify-deploy(astro): resolving site id… info: ◆ netlify-deploy(astro): netlify deploy --prod --dir dist info: ✓ Deployed to https://your-app.netlify.app info: ✓ pipeline: 1 site, 0 errors, 4.2s 1 command to deploy
0 long-lived secrets
6 frameworks ready
2 AppHost languages
Three-line setup
Section titled “Three-line setup”var builder = DistributedApplication.CreateBuilder(args);
builder.Pipeline.AddNetlifyDeployPipeline();
builder.AddJavaScriptApp("astro", "../astro") .PublishAsNetlifySite("dist");
builder.Build().Run();import { Aspire } from "./.modules/aspire";
const builder = Aspire.createBuilder();
builder.pipeline.addNetlifyDeployPipeline();
builder.addJavaScriptApp("astro", "../astro") .publishAsNetlifySite({ dir: "dist", noBuild: true });
builder.build().run();How it works
Section titled “How it works”- Compose Wire your AppHost in C# or TypeScript. AddNetlifyDeployPipeline + PublishAsNetlifySite.
- Publish aspire publish runs Aspire's pipeline; the integration emits a typed Netlify deploy step.
- Deploy aspire deploy resolves auth, runs netlify deploy --prod, streams logs into Aspire.
Why this integration?
Section titled “Why this integration?” Pipeline-aware Hooks into Aspire's deploy pipeline so aspire deploy is the only command — no shell scripts, no bespoke Actions. Multi-language AppHost Annotated with the Aspire Type System so a TypeScript AppHost gets fully-typed publishAsNetlifySite(...) exports. Secret-safe auth Token resolves via parameter → env → ntl login. Site IDs and tokens are redacted from logs. Six framework demos Angular, Astro, Next.js, React, Svelte, Vue — all wired up and runnable in the repo under samples/. OIDC-published No long-lived NuGet API key. Releases ship via Trusted Publishing on every tagged release. MinVer-driven semver Versions come straight from git tags. No Version.props, no manual bumps, no drift.
Pick your path
Section titled “Pick your path” Quickstart Drop the integration into a fresh AppHost — C# or TypeScript. Configuration Every option on NetlifyDeployOptions, with examples. Authentication Token precedence, secret binding, and ntl login. Deploy pipeline What AddNetlifyDeployPipeline actually does, step by step. Multi-language How [AspireExport] and the Type System come together. CI/CD OIDC publishing, Aspire deploy pipelines, GitHub Actions. API reference The full Aspire.Hosting.Netlify .NET API surface. Troubleshooting Common failure modes and how to fix them.
Install
Section titled “Install”$ aspire add IEvangelist.Aspire.Hosting.NetlifyUse this exact package id — the Aspire.* prefix is reserved on NuGet.org. Full install guide →