Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
5d0e93a
Merge remote-tracking branch 'origin/main' into release/17.0
github-actions[bot] Aug 19, 2026
991d095
Merge remote-tracking branch 'origin/main' into release/17.0
github-actions[bot] Aug 20, 2026
d1b391b
Merge remote-tracking branch 'origin/main' into release/17.0
github-actions[bot] Aug 20, 2026
29946e7
[docs] Update interaction file upload docs for GetFiles() and upload …
aspire-repo-bot[bot] Aug 20, 2026
3eed1c4
Merge remote-tracking branch 'origin/main' into release/17.0
github-actions[bot] Aug 20, 2026
c5ca6ed
Merge remote-tracking branch 'origin/main' into release/17.0
github-actions[bot] Aug 20, 2026
150b137
Merge remote-tracking branch 'origin/main' into release/17.0
github-actions[bot] Aug 20, 2026
0c23201
Merge remote-tracking branch 'origin/main' into release/17.0
github-actions[bot] Aug 20, 2026
3187319
Merge remote-tracking branch 'origin/main' into release/17.0
github-actions[bot] Aug 20, 2026
64af635
Merge remote-tracking branch 'origin/main' into release/17.0
github-actions[bot] Aug 20, 2026
255e09f
Merge remote-tracking branch 'origin/main' into release/17.0
github-actions[bot] Aug 20, 2026
3288fd0
Merge remote-tracking branch 'origin/main' into release/17.0
github-actions[bot] Aug 20, 2026
501c4a7
Merge remote-tracking branch 'origin/main' into release/17.0
github-actions[bot] Aug 20, 2026
5318fb2
Merge remote-tracking branch 'origin/main' into release/17.0
github-actions[bot] Aug 21, 2026
d033638
Merge remote-tracking branch 'origin/main' into release/17.0
github-actions[bot] Aug 21, 2026
ade01a0
Merge remote-tracking branch 'origin/main' into release/17.0
github-actions[bot] Aug 24, 2026
4c323bb
Merge remote-tracking branch 'origin/main' into release/17.0
github-actions[bot] Aug 24, 2026
0e00cb5
Merge remote-tracking branch 'origin/main' into release/17.0
github-actions[bot] Aug 24, 2026
d64a91c
Merge remote-tracking branch 'origin/main' into release/13.6
github-actions[bot] Aug 24, 2026
5721c5e
Merge remote-tracking branch 'origin/main' into release/13.6
github-actions[bot] Aug 24, 2026
4c639c8
Merge remote-tracking branch 'origin/main' into release/13.6
github-actions[bot] Aug 25, 2026
0113d99
Merge remote-tracking branch 'origin/main' into release/13.6
github-actions[bot] Aug 26, 2026
d38c668
Merge remote-tracking branch 'origin/main' into release/13.6
github-actions[bot] Aug 26, 2026
d728f8d
Merge remote-tracking branch 'origin/main' into release/13.6
github-actions[bot] Aug 26, 2026
b0ebffd
Merge remote-tracking branch 'origin/main' into release/13.6
github-actions[bot] Aug 26, 2026
e8f07ba
Merge remote-tracking branch 'origin/main' into release/13.6
github-actions[bot] Aug 26, 2026
6ce3cd9
Merge remote-tracking branch 'origin/main' into release/13.6
github-actions[bot] Aug 26, 2026
13f408c
Merge remote-tracking branch 'origin/main' into release/13.6
github-actions[bot] Aug 27, 2026
e9b4f75
Merge remote-tracking branch 'origin/main' into release/13.6
github-actions[bot] Aug 27, 2026
aee08ea
Merge remote-tracking branch 'origin/main' into release/13.6
github-actions[bot] Aug 27, 2026
abf6852
Merge remote-tracking branch 'origin/main' into release/13.6
github-actions[bot] Aug 31, 2026
1af8fbb
docs: mention copilot-app coding agent detection in CLI telemetry (#1…
aspire-repo-bot[bot] Sep 1, 2026
bea8c5f
docs: scaffold Aspire 13.6 release notes
IEvangelist Sep 1, 2026
4507a42
docs: draft Aspire 13.6 release notes
IEvangelist Sep 1, 2026
37c3436
docs: note Aspire view no longer steals sidebar focus on reload (#1598)
aspire-repo-bot[bot] Sep 1, 2026
ba1b9fd
docs: update aspire wait/describe for reusable resource observation (…
aspire-repo-bot[bot] Sep 1, 2026
be0e603
[docs] Add portable volume path environment variables (#1593)
aspire-repo-bot[bot] Sep 1, 2026
0eec552
[docs] Document appsettings.json support for TypeScript AppHosts (#1597)
aspire-repo-bot[bot] Sep 1, 2026
4f7459f
Merge remote-tracking branch 'origin/main' into release/13.6
github-actions[bot] Sep 1, 2026
bd9f690
docs: document consolidated VS Code AppHost build failure notificatio…
aspire-repo-bot[bot] Sep 1, 2026
16fbf23
Merge remote-tracking branch 'origin/main' into release/13.6
github-actions[bot] Sep 2, 2026
0928406
[docs] Document Show tunnel URLs command for Dev Tunnels integration …
aspire-repo-bot[bot] Sep 3, 2026
f88c6fd
Document GitHub Models retirement (#1606)
eerhardt Sep 10, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/frontend/config/aspire-versions.mjs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
export const currentAspireMajorMinorVersion = '13.5';
export const currentAspireVersion = '13.5.0';
export const currentAspireMajorMinorVersion = '13.6';
export const currentAspireVersion = '13.6.0';

export const aspireVersionPlaceholders = Object.freeze({
'%ASPIRE_VERSION_MAJOR_MINOR%': currentAspireMajorMinorVersion,
Expand Down
4 changes: 4 additions & 0 deletions src/frontend/config/sidebar/docs.topics.ts
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,10 @@ export const docsTopics: StarlightSidebarTopicsUserConfig = {
label: "What's new",
collapsed: true,
items: [
{
label: 'Aspire 13.6',
slug: 'whats-new/aspire-13-6',
},
{
label: 'Aspire 13.5',
slug: 'whats-new/aspire-13-5',
Expand Down
Empty file.
115 changes: 115 additions & 0 deletions src/frontend/src/content/docs/app-host/typescript-apphost.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,121 @@ Projects created with Aspire CLI versions earlier than 13.4 used `apphost.ts` an
For compatibility details and optional migration steps, see [Legacy `apphost.ts` projects in the Aspire 13.4 release notes](/whats-new/aspire-13-4/#legacy-apphostts-projects-pre-134).
</Aside>

## Configuration with appsettings.json

TypeScript AppHosts read configuration from JSON files that live next to `apphost.mts`. Add an `appsettings.json` file to your AppHost and Aspire loads it into the AppHost's configuration at startup. You read the effective values in `apphost.mts` through the builder's configuration accessor.

<FileTree>

- example-app/
- .aspire/modules/
- apphost.mts
- aspire.config.json
- appsettings.json Base configuration
- appsettings.Development.json Environment-specific overrides
- appsettings.Production.json Environment-specific overrides
- package.json

</FileTree>

Start with base settings as plain JSON. Settings can be flat, like `message`, or grouped in nested objects, like `deployment.region`. Keys are matched case-insensitively, so camelCase fits naturally in a TypeScript project:

```json title="appsettings.json"
{
"message": "From appsettings.json",
"deployment": {
"region": "westus"
}
}
```

With only `appsettings.json` present, read a flat value by its key. For a nested value, use `:` to separate each level of the JSON path. The `getConfigValue()` method returns `null` if the key isn't found:

```typescript title="apphost.mts" twoslash
import { createBuilder } from './.aspire/modules/aspire.mjs';

const builder = await createBuilder();
const configuration = await builder.getConfiguration();

const message = await configuration.getConfigValue('message');
// message === 'From appsettings.json';

const region = await configuration.getConfigValue('deployment:region');
// region === 'westus';
```

### Environment-specific settings

Aspire always loads `appsettings.json` first, then layers `appsettings.{Environment}.json` on top. The value passed to `--environment` replaces `{Environment}` in the filename. For example, `--environment Development` loads `appsettings.Development.json`, while `--environment Production` loads `appsettings.Production.json`.

The environment-specific file overrides matching values from `appsettings.json`. The merged configuration is available through `getConfiguration()` when the AppHost starts.

#### Development

Add the Development overrides:

```json title="appsettings.Development.json"
{
"message": "From appsettings.Development.json",
"deployment": {
"region": "westus2"
}
}
```

Start the AppHost with the `Development` environment:

```bash title="Start with Development settings"
aspire start --environment Development
```

The lookups in `apphost.mts` now return the Development values:

```typescript title="apphost.mts — Development values"
const message = await configuration.getConfigValue('message');
// message === 'From appsettings.Development.json';

const region = await configuration.getConfigValue('deployment:region');
// region === 'westus2';
```

#### Production

Add the Production overrides:

```json title="appsettings.Production.json"
{
"message": "From appsettings.Production.json",
"deployment": {
"region": "eastus2"
}
}
```

Start the AppHost with the `Production` environment:

```bash title="Start with Production settings"
aspire start --environment Production
```

The same lookups now return the Production values:

```typescript title="apphost.mts — Production values"
const message = await configuration.getConfigValue('message');
// message === 'From appsettings.Production.json';

const region = await configuration.getConfigValue('deployment:region');
// region === 'eastus2';
```

<LearnMore>
For the full list of run options, see the [`aspire start` CLI reference](/reference/cli/commands/aspire-start/).
</LearnMore>

<Aside type="note">
Aspire looks for `appsettings.json` and `appsettings.{Environment}.json` in the same directory as `apphost.mts`. If more than one mechanism sets the active environment, `--environment` takes precedence over `DOTNET_ENVIRONMENT` and `ASPIRE_ENVIRONMENT`. Environment variables and command-line arguments take precedence over both JSON files, so you can override settings at run time without editing JSON.
</Aside>

## Package managers

The Aspire CLI supports the following package managers at the **AppHost root** — the directory that contains your `apphost.mts` and `aspire.config.json`. The CLI selects between them by inspecting package manager signals, including the `packageManager` field in `package.json`, lock files, and package manager configuration in the AppHost root.
Expand Down
2 changes: 1 addition & 1 deletion src/frontend/src/content/docs/community/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ next: false
description: Connect with the Aspire team and community across Discord, GitHub Discussions, livestreams, social channels, and contribution platforms for distributed apps.
banner:
content: |
<strong>✨ Aspire 13.5 is available!</strong> — <a href="/whats-new/aspire-13-5/">Explore the latest features and improvements</a>
<strong>✨ Aspire 13.6 is available!</strong> — <a href="/whats-new/aspire-13-6/">Explore the latest features and improvements</a>
bannerAutoDismissAfterDays: 14
editUrl: false
giscus: false
Expand Down
2 changes: 1 addition & 1 deletion src/frontend/src/content/docs/da/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ prev: false
next: false
banner:
content: |
<strong>✨ Aspire 13.5 er udgivet!</strong> — <a href="/da/whats-new/aspire-13-5/">Se hvad der er nyt i Aspire 13.5.</a>
<strong>✨ Aspire 13.6 er udgivet!</strong> — <a href="/da/whats-new/aspire-13-6/">Se hvad der er nyt i Aspire 13.6.</a>
bannerAutoDismissAfterDays: 14
hero:
tagline: Din stack, forenklet. <p>Orkestrér frontends, APIs, containere og databaser ubesværet—ingen omskrivninger, ingen grænser. Udvid Aspire til at drive ethvert projekt.</p>
Expand Down
2 changes: 1 addition & 1 deletion src/frontend/src/content/docs/de/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ prev: false
next: false
banner:
content: |
<strong>✨ Aspire 13.5 wurde veröffentlicht!</strong> — <a href="/de/whats-new/aspire-13-5/">Was ist neu in Aspire 13.5.</a>
<strong>✨ Aspire 13.6 wurde veröffentlicht!</strong> — <a href="/de/whats-new/aspire-13-6/">Was ist neu in Aspire 13.6.</a>
bannerAutoDismissAfterDays: 14
hero:
tagline: Dein Stack, vereinfacht. <p>Orchestriere Frontends, APIs, Container und Datenbanken mühelos—ohne Umschreiben, ohne Grenzen. Erweitere Aspire, um jedes Projekt anzutreiben.</p>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,41 @@ await api.withKubernetesPersistentVolumeMount(media, '/srv/media');
</TabItem>
</Tabs>

### Bind with a portable path environment variable

Add the `env` parameter to expose the volume's effective storage path through an environment variable instead of hardcoding the mount path in your application:

<Tabs syncKey="aspire-lang">
<TabItem id="csharp" label="C#">

```csharp title="AppHost.cs"
var data = k8s.AddPersistentVolume("data")
.WithCapacity("20Gi");

builder.AddProject<Projects.Api>("api")
.WithPersistentVolume(data, "/data", env: "DATA_PATH");
```

</TabItem>
<TabItem id="typescript" label="TypeScript">

```typescript title="apphost.mts"
const data = await k8s.addPersistentVolume('data');
await data.withCapacity('20Gi');

const api = await builder.addProject('api');
await api.withKubernetesPersistentVolumeMount(data, '/data', { env: 'DATA_PATH' });
```

</TabItem>
</Tabs>

When a project or executable runs locally, `DATA_PATH` points to a persistent directory in the AppHost's local store — normally under the AppHost's intermediate-output directory, so cleaning build outputs can remove the local data. In publish and deploy modes, `DATA_PATH` contains the mount path (`/data` above), so the application reads the same environment variable in both environments.

Local containers use a worktree-scoped container volume instead when the mount names an environment variable; mounts that don't name one keep the persistent volume's own name for the local container volume, so data written by an earlier version of the AppHost stays attached. A single persistent-volume resource can't be shared between local containers and local projects or executables, because those execution types can't reliably share one backing store.

The `isReadOnly` mount option is enforced after deployment, but Aspire can't make a directory read-only for a process running directly on the host.

<Aside type="caution" title="Workloads are promoted to StatefulSet">
Any workload bound to a persistent volume is rendered as a `StatefulSet` instead of a `Deployment`, regardless of its default workload kind. There is no opt-out. A `Deployment` with a `ReadWriteOnce` claim and more than one replica is broken by design because the second pod can't mount the same volume. Therefore, binding to a durable volume automatically selects the `StatefulSet` path, which gives pods stable identity and ordered rollout.
</Aside>
Expand Down
2 changes: 1 addition & 1 deletion src/frontend/src/content/docs/docs.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ next:
description: 'Browse the official Aspire documentation: get started with C# and TypeScript AppHosts, model distributed apps, deploy to Azure and Kubernetes, and observe in the dashboard.'
banner:
content: |
<strong>✨ Aspire 13.5 is available!</strong> — <a href="/whats-new/aspire-13-5/">Explore the latest features and improvements</a>
<strong>✨ Aspire 13.6 is available!</strong> — <a href="/whats-new/aspire-13-6/">Explore the latest features and improvements</a>
bannerAutoDismissAfterDays: 14
editUrl: false
tableOfContents: false
Expand Down
2 changes: 1 addition & 1 deletion src/frontend/src/content/docs/es/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ prev: false
next: false
banner:
content: |
<strong>✨ ¡Aspire 13.5 está disponible!</strong> — <a href="/es/whats-new/aspire-13-5/">Explora las últimas características y mejoras.</a>
<strong>✨ ¡Aspire 13.6 está disponible!</strong> — <a href="/es/whats-new/aspire-13-6/">Explora las últimas características y mejoras.</a>
bannerAutoDismissAfterDays: 14
hero:
tagline: Tu stack, simplificado. <p>Orquesta frontends, APIs, contenedores y bases de datos sin esfuerzo—sin reescrituras, sin límites. Extiende Aspire para impulsar cualquier proyecto.</p>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -901,19 +901,23 @@ if (result.Canceled)
return CommandResults.Failure("Canceled");
}

var file = result.Data.Files?[0];
if (file is null)
using var files = result.Data.GetFiles();
if (files.Count == 0)
{
return CommandResults.Failure("No file uploaded");
}

var file = files[0];

// Read all file content as bytes
var content = await file.ReadAllBytesAsync(cancellationToken);

// Or open as a stream for large files
await using var stream = file.OpenRead();
```

The uploaded files are temporary files on the AppHost. `GetFiles()` returns a disposable `InteractionFileCollection`, and the caller owns it: dispose the collection when the files are no longer needed to delete them from disk before AppHost shutdown. Files that are never disposed are deleted when the AppHost shuts down. After disposal, `InteractionFile.OpenRead()` and `ReadAllBytesAsync()` throw `ObjectDisposedException`, but any stream already opened before disposal remains usable until that stream is disposed.

</TabItem>
<TabItem id='typescript' label='TypeScript'>

Expand Down Expand Up @@ -943,11 +947,18 @@ if (files.length === 0) {
return { success: false, message: 'No file uploaded' };
}

const file = files[0];
// file.name - original filename
// file.filePath - path to uploaded file on disk
try {
const file = files[0];
// file.name - original filename
// file.filePath - path to uploaded file on disk
} finally {
// Delete the uploaded temporary files from the AppHost.
await fileInput.releaseFiles();
}
```

Call `releaseFiles()` after the uploaded files have been processed to delete the temporary files on the AppHost. The call is idempotent, so a `finally` block is a good place for it. Files that are never released are deleted when the AppHost shuts down.

</TabItem>
</Tabs>

Expand Down
2 changes: 1 addition & 1 deletion src/frontend/src/content/docs/fr/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ prev: false
next: false
banner:
content: |
<strong>✨ Aspire 13.5 est disponible !</strong> — <a href="/fr/whats-new/aspire-13-5/">Découvrez les nouveautés d'Aspire 13.5.</a>
<strong>✨ Aspire 13.6 est disponible !</strong> — <a href="/fr/whats-new/aspire-13-6/">Découvrez les nouveautés d'Aspire 13.6.</a>
bannerAutoDismissAfterDays: 14
hero:
tagline: Votre stack, simplifiée. <p>Orchestrez vos frontends, APIs, conteneurs et bases de données sans effort — sans réécriture, sans limites. Étendez Aspire pour propulser n'importe quel projet.</p>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,42 @@ With the AppHost project being named `VolumeMount.AppHost`, the `WithDataVolume`

- `{appHostProjectName}-{resourceName}-data`: The volume name is derived from the AppHost project name and the resource name.

## Use a portable volume path environment variable

Volume mount paths often differ between local process execution and deployed containers: projects and executables need a host filesystem path during the inner loop, while Docker Compose, Kubernetes, and Azure Container Apps need the in-container mount path. `WithVolume` accepts an optional `env` parameter so an application can read one environment variable in both modes instead of branching on how it's running:

<Tabs syncKey="aspire-lang">
<TabItem id="csharp" label="C#">

```csharp title="AppHost.cs"
builder.AddProject<Projects.Api>("api")
.WithVolume("data", "/data", env: "DATA_PATH");
```

</TabItem>
<TabItem id="typescript" label="TypeScript">

```typescript title="apphost.mts"
const api = await builder.addProject("api");
await api.withVolume("/data", "data", "DATA_PATH");
```

</TabItem>
</Tabs>

In this example:

- In run mode, the project or executable receives a deterministic, workload-scoped directory under the AppHost's local store as the value of `DATA_PATH`.
- Containers, and every workload in publish or deploy mode (Docker Compose, Kubernetes, and Azure Container Apps), receive `/data` — the configured `target` path — as the value of `DATA_PATH`.

<Aside type="note">
The `env` parameter is only available on projects and executables. Container
resources always mount the volume at `target`, so an equivalent environment
variable for a container is just `.WithEnvironment("DATA_PATH", "/data")`.
</Aside>

This convention also applies to Kubernetes persistent volumes bound with `WithPersistentVolume(..., env: ...)`. For details, see [Persistent volumes on Kubernetes](/deployment/kubernetes/persistent-volumes/#bind-with-a-portable-path-environment-variable).

## Use bind mounts

Bind mounts enable access to the data from both within the container and from processes on the host machine. For example, once a bind mount is established, you can copy a file into it on your host computer. The file is then available at the bound path within the container for your resource. With Aspire, you configure a bind mount for each resource container using the `WithBindMount` method, which accepts three parameters:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,12 +93,20 @@ Each resource shows its type, state, health summary, and exit code, plus a healt
`aspire.globalAppHostsPollingInterval` is deprecated. Use `aspire.appHostsPollingInterval` to configure how often the Aspire view polls for running AppHosts.
:::

:::note[Single-AppHost auto-expansion]
When a workspace contains exactly one AppHost, the Aspire view automatically expands it — but only once you explicitly open the Aspire view. Reloading the window (**Developer: Reload Window**) while another sidebar view, such as **Explorer**, is active no longer switches focus to Aspire or reveals a hidden Aspire icon in the Activity Bar.
:::

## Run, debug, and deploy

:::note[Debugging]
The Aspire Dashboard is no longer opened by default when the AppHost starts, as most operations can be performed using the Aspire view inside VS Code. To launch the dashboard, use the **Open Dashboard** CodeLens, the **Aspire: Open Dashboard** command, or open it from the Aspire view.
:::

:::note[Build failure notifications]
If the AppHost fails to build during a run or debug launch, VS Code shows a single error notification with **Open CLI Log** and, when available, **Open AppHost Log** actions that open the relevant log file directly in a non-preview editor. Full diagnostics and log locations are still available in the Debug Console.
:::

**Aspire: Configure launch.json file** adds a minimal launch configuration `.vscode/launch.json` that supports AppHosts written in any language. AppHosts are discovered automatically in the workspace.

<LearnMore>
Expand Down
2 changes: 1 addition & 1 deletion src/frontend/src/content/docs/hi/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ prev: false
next: false
banner:
content: |
<strong>✨ Aspire 13.5 रिलीज़ हो गया है!</strong> — <a href="/hi/whats-new/aspire-13-5/">Aspire 13.5 में नया क्या है देखें।</a>
<strong>✨ Aspire 13.6 रिलीज़ हो गया है!</strong> — <a href="/hi/whats-new/aspire-13-6/">Aspire 13.6 में नया क्या है देखें।</a>
bannerAutoDismissAfterDays: 14
hero:
tagline: आपका स्टैक, सरल। <p>फ्रंटएंड, API, कंटेनर और डेटाबेस को आसानी से ऑर्केस्ट्रेट करें—बिना रीराइट, बिना सीमा। किसी भी प्रोजेक्ट को शक्ति देने के लिए Aspire को विस्तारित करें।</p>
Expand Down
2 changes: 1 addition & 1 deletion src/frontend/src/content/docs/id/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ prev: false
next: false
banner:
content: |
<strong>✨ Aspire 13.5 telah dirilis!</strong> — <a href="/id/whats-new/aspire-13-5/">Lihat apa yang baru di Aspire 13.5.</a>
<strong>✨ Aspire 13.6 telah dirilis!</strong> — <a href="/id/whats-new/aspire-13-6/">Lihat apa yang baru di Aspire 13.6.</a>
bannerAutoDismissAfterDays: 14
hero:
tagline: Stack Anda, disederhanakan. <p>Orkestrasi frontend, API, container, dan database dengan mudah—tanpa menulis ulang, tanpa batasan. Perluas Aspire untuk mendukung proyek apa pun.</p>
Expand Down
2 changes: 1 addition & 1 deletion src/frontend/src/content/docs/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ prev: false
next: false
banner:
content: |
<strong>✨ Aspire 13.5 is available!</strong> — <a href="/whats-new/aspire-13-5/">Explore the latest features and improvements</a>
<strong>✨ Aspire 13.6 is available!</strong> — <a href="/whats-new/aspire-13-6/">Explore the latest features and improvements</a>
bannerAutoDismissAfterDays: 14
hero:
title: Compose distributed apps in code.
Expand Down
Loading
Loading