# Languages & runtimes

Aspire works well with distributed apps that span more than one service, tool, or runtime. You can choose the AppHost style that fits your repo, then bring in the languages and frameworks your app already uses.

## What this means in practice

- Write the **AppHost** in **C#** or **TypeScript** today.
- Orchestrate services and tools written in **C#**, **JavaScript**, **Python**, **Go**, **Java**, **Rust**, **PowerShell**, and more.
- Start with the **Aspire Dashboard** if observability is your first step.
- Adopt Aspire without rewriting your existing app around a single language.

## Two choices to know

When people ask whether Aspire supports a language, they usually mean one of these two things:

- **AppHost language**: the language you use to define how your distributed app is wired together.
- **App language or runtime**: the language and runtime used by the services, frontends, workers, scripts, and tools inside that app.

For example, you might use a **TypeScript AppHost** to coordinate a **Python worker**, a **Node.js frontend**, and a **C# API** in the same application model.
**Tip:** Pick the AppHost language that best fits your repo and team. Your workloads do not need to match it.

## AppHost languages

Both AppHost styles use the same Aspire model. The main difference is how the orchestration is authored and how it fits into your existing workflow.

| AppHost language | Good fit for | Start here | Support |
| --- | --- | --- | --- |
| C# | Teams already using .NET tooling or who want a single-file AppHost | [What is the AppHost?](/get-started/app-host/) | Official |
| TypeScript | Teams working in Node.js or TypeScript workspaces | [TypeScript AppHost project structure](/app-host/typescript-apphost/) | Official |

## Guides for app languages and runtimes

Aspire can coordinate apps written in multiple languages. Some guides are best described by **language** (for example, C# or Python), while others cover a broader **runtime or ecosystem** (for example, .NET or Node.js).

The sections below use the labels that are most helpful when you're trying to answer one practical question: **"How do I use Aspire with the stack I already have?"**

### Official guides
**C# and .NET apps**
Use Aspire with C# projects, file-based apps, and other .NET workloads.

    Start with [C# file-based apps](/integrations/dotnet/csharp-file-based-apps/) or [Project resources](/integrations/dotnet/project-resources/).

**JavaScript and Node.js apps**
Use Aspire with JavaScript apps, Node.js services, and frontend workflows such as Vite.

    Start with [JavaScript integration](/integrations/frameworks/javascript/) and [Standalone Aspire dashboard for Node.js](/dashboard/standalone-for-nodejs/).

**Python apps**
Use Aspire with Python services and OpenTelemetry-enabled Python apps.

    Start with [Python integration](/integrations/frameworks/python/) and [Standalone Aspire dashboard for Python](/dashboard/standalone-for-python/).

### Community Toolkit guides
**Go apps**
Add Go services through the Community Toolkit.

    Start with [Go integration](/integrations/frameworks/go-apps/).

**Java apps**
Add Java services through the Community Toolkit.

    Start with [Java integration](/integrations/frameworks/java/).

**Rust apps**
Add Rust services through the Community Toolkit.

    Start with [Rust integration](/integrations/frameworks/rust/).

**PowerShell scripts and tools**
Add PowerShell-based scripts and developer tools through the Community Toolkit.

    Start with [PowerShell integration](/integrations/frameworks/powershell/).
**Note:** Aspire also works with containers, databases, caches, queues, and cloud services through [Integrations](/integrations/). This page focuses on language-based entry points.

## Dashboard guides for existing apps

If you want to start with observability before adopting a full AppHost, use a standalone dashboard guide:

- [Standalone Aspire dashboard for Node.js](/dashboard/standalone-for-nodejs/)
- [Standalone Aspire dashboard for Python](/dashboard/standalone-for-python/)

## Related guides

- [Multi-language architecture](/architecture/multi-language-architecture/)
- [Add Aspire to an existing app](/get-started/add-aspire-existing-app/)
- [Integrations overview](/integrations/overview/)