Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,12 @@ The following Aspire solution templates are available (assume the solution is na
- **AspireSample.ApiService**: An [ASP.NET Core Minimal API](https://learn.microsoft.com/aspnet/core/fundamentals/minimal-apis) project that provides data to the frontend.
- **AspireSample.Web**: A React-based frontend application with TypeScript configured to work with the Aspire app.

- **Aspire Starter App with FastAPI and React**: This template provides a Python-based starter app with the following projects:
- **AspireSample.AppHost**: The orchestrator project for managing the app's services.
- **AspireSample.ApiService**: A [FastAPI](https://fastapi.tiangolo.com/) Python backend service that provides data to the frontend.
- **AspireSample.Web**: A React-based frontend application with TypeScript.
- **Aspire Starter App with FastAPI and React**: This template provides a Python-based starter app using a **TypeScript AppHost**. It includes:
- **apphost.ts**: The TypeScript AppHost that orchestrates the app's services using `addUvicornApp`.
- **app/**: A [FastAPI](https://fastapi.tiangolo.com/) Python backend service that provides data to the frontend.
- **frontend/**: A React-based frontend application with TypeScript.

The template supports an optional `--use-redis-cache` flag that adds a Redis cache resource to the app. Because the AppHost is TypeScript-based, the .NET SDK is not required to scaffold or run this template.

For more information on Python workloads in Aspire, see [Python integration](/integrations/frameworks/python/) and [Add Aspire to an existing app](/get-started/add-aspire-existing-app/).

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -124,11 +124,23 @@ Each command represents a template. Pass the `--help` parameter to the template
| ---------------------- | --------------------------------- |
| `aspire-starter` | Starter App (ASP.NET Core/Blazor) |
| `aspire-ts-cs-starter` | Starter App (ASP.NET Core/React) |
| `aspire-py-starter` | Starter App (FastAPI/React) |
| `aspire-py-starter` | Starter App (FastAPI/React) |
| `aspire-ts-starter` | Starter App (Express/React) |
| `aspire-empty` | Empty (C# AppHost) |
| `aspire-ts-empty` | Empty (TypeScript AppHost) |

### aspire-py-starter options

The `aspire-py-starter` template accepts the following additional options:

- **`--use-redis-cache`**

Scaffold the template with an optional Redis cache resource in the TypeScript AppHost. Accepts `true` or `false`. Defaults to prompting interactively.

```bash title="Aspire CLI"
aspire new aspire-py-starter --use-redis-cache true
```

## Examples

- Create an Aspire solution from the template. Because the template was selected (`aspire-starter`), you're prompted for the name, output folder, and template version.
Expand Down
28 changes: 28 additions & 0 deletions src/frontend/src/content/docs/whats-new/aspire-13-3.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ tableOfContents:
---

import { Steps, Aside } from '@astrojs/starlight/components';
import LearnMore from '@components/LearnMore.astro';
import { Image } from 'astro:assets';
import LearnMore from '@components/LearnMore.astro';
import azureFrontDoorIcon from '@assets/icons/azure-front-door-icon.png';
Expand Down Expand Up @@ -136,3 +137,30 @@ You can also disable it in `launchSettings.json`:
<LearnMore>
For more details on container networking, see [Inner-loop networking overview](/fundamentals/networking-overview/).
</LearnMore>

## 🐍 Python starter template migrated to TypeScript AppHost

The `aspire-py-starter` template (Starter App with FastAPI and React) has moved from the `dotnet new` template system to the Aspire CLI template system and now uses a **TypeScript AppHost** instead of a C# AppHost. This aligns it with the same pattern as the `aspire-ts-starter` template.

**What changed for you:**

- Use `aspire new aspire-py-starter` instead of `dotnet new aspire-py-starter`.
- The AppHost is now authored in TypeScript — the **.NET SDK is no longer required** to scaffold or run the Python starter.
- The generated TypeScript AppHost uses `addUvicornApp` to run the FastAPI backend.
- A new `--use-redis-cache` option is available to scaffold the template with an optional Redis cache resource.

```bash title="Aspire CLI"
# Basic Python starter
aspire new aspire-py-starter

# Python starter with Redis cache
aspire new aspire-py-starter --use-redis-cache true
```

<Aside type="caution" title="Breaking change">
`dotnet new aspire-py-starter` is no longer available. Existing projects created with the old template continue to work, but new projects should use `aspire new aspire-py-starter` going forward.
</Aside>

<LearnMore>
For details on the `aspire new` command and all available templates, see [aspire new command](/reference/cli/commands/aspire-new/).
</LearnMore>