Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
b25c688
Merge main into release/13.4 (#893)
davidfowl May 8, 2026
8a6601b
[docs] Add command arguments, validation, and visibility to custom-re…
aspire-repo-bot[bot] May 9, 2026
c544bc8
docs: update Foundry TypeScript role assignment method name (#895)
aspire-repo-bot[bot] May 9, 2026
b89370d
Merge remote-tracking branch 'origin/main' into release/13.4
github-actions[bot] May 9, 2026
065e75b
Remove execCommandEnabled from CLI config settings reference (#901)
aspire-repo-bot[bot] May 11, 2026
f015e0a
docs: update custom-resource-commands to use new CommandResults.Succe…
aspire-repo-bot[bot] May 11, 2026
2dd28e6
[docs] aspire update: document --yes required with --non-interactive …
aspire-repo-bot[bot] May 11, 2026
3699c5a
[docs] Document resource-scoped command help and --include-hidden opt…
aspire-repo-bot[bot] May 11, 2026
6d968db
Merge remote-tracking branch 'origin/main' into release/13.4
github-actions[bot] May 11, 2026
d0f4a44
[docs] Dashboard AI Agents dialog and DisableAgentHelp configuration …
aspire-repo-bot[bot] May 11, 2026
318202d
[docs] Update aspire resource command docs with named options and com…
aspire-repo-bot[bot] May 11, 2026
deed841
[docs] Add AzureRoleAssignmentResource documentation to Azure role as…
aspire-repo-bot[bot] May 11, 2026
efdb602
[docs] Add AspireUseCliBundle opt-in documentation (#894)
aspire-repo-bot[bot] May 11, 2026
882b2b6
Merge remote-tracking branch 'origin/main' into release/13.4
github-actions[bot] May 11, 2026
5f9d13c
Draft skeleton What's New for Aspire 13.4 (#914)
Copilot May 11, 2026
1afc5b3
[docs] Add process-backed resource commands documentation (#918)
aspire-repo-bot[bot] May 12, 2026
3731f39
Merge remote-tracking branch 'origin/main' into release/13.4
github-actions[bot] May 12, 2026
3761291
[docs] Add Custom process commands docs (withProcessCommand / withPro…
aspire-repo-bot[bot] May 12, 2026
caf0493
Merge remote-tracking branch 'origin/main' into release/13.4
github-actions[bot] May 13, 2026
1b467fa
Merge remote-tracking branch 'origin/main' into release/13.4
github-actions[bot] May 14, 2026
cc4742c
Add first-class Go hosting docs (#950)
davidfowl May 14, 2026
2ada4ec
Update Aspire 13.4 release notes (#975)
davidfowl May 15, 2026
d019fb7
Update Azure Front Door Bicep naming in docs for 13.4 (#965)
aspire-repo-bot[bot] May 15, 2026
494b9ec
Merge remote-tracking branch 'origin/main' into release/13.4
github-actions[bot] May 15, 2026
e1a483d
Merge remote-tracking branch 'origin/main' into release/13.4
github-actions[bot] May 15, 2026
ec5d7df
Document AddAzureKubernetesEnvironment ingress + AddCertManager flow …
mitchdenny May 16, 2026
afb9f8a
Merge remote-tracking branch 'origin/main' into release/13.4
github-actions[bot] May 18, 2026
0974a1c
Merge remote-tracking branch 'origin/main' into release/13.4
github-actions[bot] May 18, 2026
08184d5
Merge remote-tracking branch 'origin/main' into release/13.4
github-actions[bot] May 18, 2026
4feace5
Merge remote-tracking branch 'origin/main' into release/13.4
github-actions[bot] May 18, 2026
3f5d512
Merge remote-tracking branch 'origin/main' into release/13.4
github-actions[bot] May 18, 2026
d1d7f55
Optimize Open Graph SEO metadata across every English page (#1007)
IEvangelist May 19, 2026
72a6235
Merge remote-tracking branch 'origin/main' into release/13.4
github-actions[bot] May 19, 2026
87ca7cd
docs(ts-apphost): document supported AppHost-root package managers an…
IEvangelist May 19, 2026
755d1a2
Regenerate TS API docs against Aspire CLI 13.4 (XML doc preservation)…
IEvangelist May 19, 2026
eb576bd
Merge remote-tracking branch 'origin/main' into release/13.4
github-actions[bot] May 19, 2026
d82b415
Merge remote-tracking branch 'origin/main' into release/13.4
github-actions[bot] May 19, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
28 changes: 28 additions & 0 deletions .github/skills/doc-writer/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,8 +73,36 @@ description: A brief summary of the page content (required for SEO)
Optional frontmatter fields:

- `next: false` - Disable "Next page" link for terminal pages
- `seoTitle` - Override the page's `og:title` / `twitter:title` only,
without touching the visible H1 or sidebar label. Use this **only**
when the natural H1 must stay short (commands, terse labels). When
set, the value is emitted verbatim — no `· Aspire` suffix is appended.
- Custom metadata as needed by Starlight theme

#### SEO length targets

The site uses Open Graph metadata to render social cards and feed SEO
tooling. To keep previews scannable on every social network and to
avoid the "title too short / description too long" lints that surface
on Yoast, LinkedIn, and the search-console reports, follow these
length targets when authoring frontmatter:

| Field | Composed length target | Hard limit |
| ------------- | ---------------------: | ---------: |
| `title` | 41-51 characters | 70 characters |
| `seoTitle` | 50-60 characters | 70 characters |
| `description` | 110-160 characters | 200 characters (auto-truncated) |

`title` becomes `og:title` composed as `${title} · Aspire`, so the
target window leaves room for the 9-character suffix. `seoTitle`
overrides the composition outright — write the full string yourself.

Surface keywords from the article body itself in the description
(verbs, integration names, API surfaces). The CI guard at
`tests/unit/seo-lengths.vitest.test.ts` fails when any English page
strays outside the wider 30-65 / 80-200 character guard ranges, so a
draft can land slightly off-target and tighten in follow-ups.

### Required Imports

Import Starlight components at the top of your MDX file:
Expand Down
2 changes: 2 additions & 0 deletions src/frontend/config/redirects.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,8 @@ export const redirects = {
'/integrations/devtools/flagd/': '/integrations/devtools/flagd/flagd-get-started/',
'/integrations/devtools/goff/': '/integrations/devtools/goff/goff-get-started/',
'/integrations/devtools/mailpit/': '/integrations/devtools/mailpit/mailpit-get-started/',
'/integrations/frameworks/go/': '/integrations/frameworks/go/go-get-started/',
'/integrations/frameworks/go-apps/': '/integrations/frameworks/go/go-get-started/',
'/integrations/frameworks/csharp-file-based-apps/': '/integrations/dotnet/csharp-file-based-apps/',
'/integrations/frameworks/maui/': '/integrations/dotnet/maui/',
'/fundamentals/service-defaults/': '/get-started/csharp-service-defaults/',
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.4',
slug: 'whats-new/aspire-13-4',
},
{
label: 'Aspire 13.3',
slug: 'whats-new/aspire-13-3',
Expand Down
17 changes: 15 additions & 2 deletions src/frontend/config/sidebar/integrations.topics.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1248,7 +1248,7 @@ export const integrationTopics: StarlightSidebarTopicsUserConfig = {
},
],
},
{
{
label: 'SQLite',
collapsed: true,
items: [
Expand Down Expand Up @@ -1338,7 +1338,20 @@ export const integrationTopics: StarlightSidebarTopicsUserConfig = {
],
},
{ label: 'Dapr', slug: 'integrations/frameworks/dapr' },
{ label: 'Go', slug: 'integrations/frameworks/go-apps' },
{
label: 'Go',
collapsed: true,
items: [
{
label: 'Get started',
slug: 'integrations/frameworks/go/go-get-started',
},
{
label: 'Set up Go apps in the AppHost',
slug: 'integrations/frameworks/go/go-host',
},
],
},
{ label: 'Java', slug: 'integrations/frameworks/java' },
{
label: 'JavaScript and Node.js',
Expand Down
4 changes: 4 additions & 0 deletions src/frontend/config/sidebar/reference.topics.ts
Original file line number Diff line number Diff line change
Expand Up @@ -666,6 +666,10 @@ export const referenceTopics: StarlightSidebarTopicsUserConfig[number] = {
label: 'ASPIREPOSTGRES001',
link: '/diagnostics/aspirepostgres001',
},
{
label: 'ASPIREPROCESSCOMMAND001',
link: '/diagnostics/aspireprocesscommand001',
},
{
label: 'ASPIREUSERSECRETS001',
link: '/diagnostics/aspireusersecrets001',
Expand Down
1 change: 1 addition & 0 deletions src/frontend/scripts/update-integrations.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ const EXCLUDED_PACKAGES = [
'Aspire.RabbitMQ.Client.v7',
'CommunityToolkit.Aspire.Hosting.Azure.StaticWebApps',
'CommunityToolkit.Aspire.Hosting.EventStore',
'CommunityToolkit.Aspire.Hosting.Golang',
'CommunityToolkit.Aspire.EventStore',
];
const OUTPUT_PATH = './src/data/aspire-integrations.json';
Expand Down
12 changes: 12 additions & 0 deletions src/frontend/src/content.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,18 @@ export const collections = {
* site-wide `og-image.png` is used in social cards instead.
*/
og: z.boolean().optional(),
/**
* SEO-only title override. Used **verbatim** as the page's
* `og:title` and `twitter:title` (no `· Aspire` suffix is
* appended) so authors can tune the social-card title to the
* 50–60 character optimal range without bloating the visible
* `<h1>` or sidebar label. Falls back to `title` when unset.
*
* Prefer rewriting the visible `title` when the natural H1 can
* accommodate the longer string. Use `seoTitle` only when the
* sidebar/H1 must stay short (commands, terse labels, etc.).
*/
seoTitle: z.string().optional(),
/**
* The date the release was published to NuGet. Used on What's New
* pages to display the release date near the top of the page.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
title: Certificate configuration
description: Learn how to configure HTTPS endpoints and certificate trust for resources in Aspire to enable secure communication.
seoTitle: Aspire HTTPS certificate configuration for AppHost
description: Configure HTTPS endpoints and certificate trust for Aspire resources to enable secure local development, container-to-container TLS, and trusted browser connections.
---

import { Aside, Tabs, TabItem } from '@astrojs/starlight/components';
Expand Down
3 changes: 2 additions & 1 deletion src/frontend/src/content/docs/app-host/configuration.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
title: AppHost configuration
description: Learn about the Aspire AppHost configuration options.
seoTitle: Aspire AppHost configuration reference and overview
description: Configure the Aspire AppHost — environment variables, launch profiles, network ports, container runtime selection, and the options that change orchestration behavior.
---

import { Aside, Steps, Tabs, TabItem } from '@astrojs/starlight/components';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
title: Container files
description: Learn how to inject files and directories into containers at development time and publish time using the container file APIs in Aspire.
seoTitle: Inject container files in your Aspire AppHost project
description: Inject files and directories into Aspire container resources at development and publish time using WithContainerFiles, with options for source paths and permissions.
---

import { Aside, Tabs, TabItem } from '@astrojs/starlight/components';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
title: Container registry configuration
description: Learn how to configure container registries for your Aspire applications, including generic registries and Azure Container Registry.
seoTitle: Configure container registries for your Aspire AppHost
description: Configure container registries for Aspire — generic registries, Docker Hub, Azure Container Registry, GitHub Container Registry, and per-resource image tagging.
---

import { Aside, Steps, Tabs, TabItem } from '@astrojs/starlight/components';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Docker Compose to Aspire AppHost
description: Quick reference for converting Docker Compose YAML syntax to Aspire AppHost API calls.
title: Docker Compose to Aspire AppHost reference
description: Quick reference for converting Docker Compose YAML syntax to Aspire AppHost API calls — services, networks, volumes, environment variables, and health checks.
---

import LearnMore from '@components/LearnMore.astro';
Expand Down
3 changes: 2 additions & 1 deletion src/frontend/src/content/docs/app-host/eventing.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
title: AppHost eventing APIs
description: Learn how to use the Aspire AppHost eventing features for lifecycle events, custom event publishing, and event-driven resource orchestration.
seoTitle: AppHost eventing APIs in your Aspire AppHost project
description: Use the Aspire AppHost eventing APIs for lifecycle events, custom event publishing, and reactive integrations that respond to resource state transitions at runtime.
---

import { Aside, Steps, Tabs, TabItem } from '@astrojs/starlight/components';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Host external executables in Aspire
description: Learn how to host external executable applications in your Aspire AppHost using AddExecutable.
description: Host external executable applications in your Aspire AppHost using AddExecutable — model CLI tools, daemons, and language runtimes alongside containers and projects.
---

import { Aside, Steps, Tabs, TabItem } from '@astrojs/starlight/components';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
title: Hot Reload and watch
description: Learn how hot reload works in Aspire.
seoTitle: Aspire AppHost hot reload and aspire watch overview
description: "Learn how hot reload works in Aspire and how `aspire watch` rebuilds and restarts resources automatically when project files change during development."
---

import { Tabs, TabItem } from '@astrojs/starlight/components';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Migrate from Docker Compose to Aspire
description: Learn how to migrate your Docker Compose applications to Aspire and understand the key conceptual differences.
description: Migrate your Docker Compose applications to Aspire — map services, volumes, networks, and environment variables to AppHost APIs and modernize your developer workflow.
---

import { Aside, Steps, Tabs, TabItem } from '@astrojs/starlight/components';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
title: Persistent container lifetimes
description: Learn how to configure containers to persist and be re-used between Aspire AppHost runs.
seoTitle: Persistent container lifetimes in your Aspire AppHost
description: Configure Aspire containers to persist and be re-used between AppHost runs so databases, caches, and message brokers keep their data and accelerate the inner loop.
---

import { Aside, Tabs, TabItem } from '@astrojs/starlight/components';
Expand Down
44 changes: 36 additions & 8 deletions src/frontend/src/content/docs/app-host/typescript-apphost.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
title: TypeScript AppHost project structure
description: Learn about the files and configuration that make up a TypeScript AppHost project.
seoTitle: Aspire TypeScript AppHost project structure overview
description: Learn the files and configuration that make up a TypeScript AppHost project — entry point, package manifest, dependencies, and how the AppHost runs Aspire resources.
---

import { Aside, FileTree, Steps, Tabs, TabItem } from '@astrojs/starlight/components';
Expand Down Expand Up @@ -138,14 +139,17 @@ await builder.build().run();

## Package managers

The Aspire CLI automatically detects which package manager your TypeScript AppHost uses by inspecting lock files and the `packageManager` field in `package.json`. The following package managers are supported:
The Aspire CLI supports the following package managers at the **AppHost root** — the directory that contains your `apphost.ts` and `aspire.config.json`. The CLI selects between them by inspecting the `packageManager` field in `package.json` and any lock files in the AppHost root.

| Package manager | Lock file detected | Notes |
| Package manager | Lock file | Support |
|---|---|---|
| npm | `package-lock.json` | Default; no extra setup required |
| pnpm | `pnpm-lock.yaml` | |
| Yarn (v4+) | `yarn.lock` | Must be Yarn 4 or later (Berry) |
| Bun | `bun.lock` / `bun.lockb` | |
| npm | `package-lock.json` | **Supported (default)** — no extra setup required |
| pnpm | `pnpm-lock.yaml` | **Supported** |
| Yarn 4+ (Berry) | `yarn.lock` (with Yarn 4 metadata) | **Supported** |
| Bun | `bun.lock` / `bun.lockb` | **Supported** |
| Yarn Classic (v1) | `yarn.lock` with `# yarn lockfile v1` | **Not supported** |

This policy governs the **AppHost root only**. Apps the AppHost orchestrates — for example, a Node.js service added with `addNodeApp`, a Bun guest app, or a workspace package — can use any package manager their own tooling requires; they are independent of the AppHost-root toolchain.

<Aside type="caution">
**Yarn Classic (v1) is not supported.** If the Aspire CLI detects a Yarn Classic lock file (`# yarn lockfile v1`) or a `packageManager` field such as `"yarn@1.x"` in `package.json`, it throws an error and stops. Upgrade to Yarn 4 or later, or switch to npm, pnpm, or Bun.
Expand Down Expand Up @@ -180,13 +184,37 @@ The scaffolded `package.json` includes convenience scripts and the required Node

The `dev` script means you can also start your AppHost with `npm run dev` (or the equivalent for your toolchain, for example `bun run dev` or `pnpm run dev`).

### Supported Node.js engine

Aspire 13.4 TypeScript AppHosts target the Node.js engine range that `aspire init` writes into the scaffolded `package.json`:

```json title="package.json — supported engines.node"
{
"engines": {
"node": "^20.19.0 || ^22.13.0 || >=24"
}
}
```

The supported ranges are:

- **Node.js 20.19+** (LTS) — supported.
- **Node.js 22.13+** (LTS) — supported.
- **Node.js 24+** — supported; this is the range the scaffolded `engines.node` constraint allows out of the box.

Older Node.js versions are not supported. Package managers may enforce `engines.node` on install (for example, pnpm does by default, while npm only does when `engine-strict` is configured), so unsupported runtimes are best treated as blocked even when a given toolchain only warns.

<Aside type="note">
If you widen `engines.node` beyond the scaffolded constraint, you take on responsibility for compatibility. Aspire CLI behavior, TypeScript SDK generation, and the `tsc --noEmit` startup validation are tested against the ranges listed above.
</Aside>

## Package manager toolchain

The Aspire CLI automatically detects which Node-compatible package manager your project uses and adjusts install and run commands accordingly. The following toolchains are supported: **npm** (default), **Bun**, **Yarn**, and **pnpm**.

### Toolchain detection

The CLI resolves the toolchain by inspecting the AppHost directory and its parent directories (up to eight levels). It checks, in order:
Detection follows the [supported AppHost-root package managers](#package-managers) policy. The CLI resolves the toolchain by inspecting the AppHost directory and its parent directories (up to eight levels). It checks, in order:

<Steps>

Expand Down
3 changes: 2 additions & 1 deletion src/frontend/src/content/docs/app-host/withdockerfile.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
title: Add Dockerfiles to your app model
description: Learn how to add Dockerfiles to your app model.
seoTitle: Add Dockerfiles to your Aspire AppHost project app model
description: Add Dockerfiles to your Aspire app model with WithDockerfile — build local container images, layer arguments, and pin context paths for project and executable resources.
---

import { Aside, Tabs, TabItem } from '@astrojs/starlight/components';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
title: Multi-language architecture
description: Understand how Aspire uses a guest/host architecture, ATS, SDK generation, and local token-based authentication to support multi-language AppHosts.
seoTitle: 'Aspire multi-language architecture: C# and TypeScript'
description: Understand how Aspire uses a guest/host architecture, ATS, SDK generation, and local token-based auth to bring TypeScript, Python, and Java apps into the AppHost.
---

import LearnMore from '@components/LearnMore.astro';
Expand Down
4 changes: 2 additions & 2 deletions src/frontend/src/content/docs/architecture/overview.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Aspire architecture
description: Learn about the overall architecture of Aspire, including its integrations, orchestration, and networking capabilities.
title: Aspire architecture overview
description: Learn the overall architecture of Aspire — the AppHost, resource model, orchestration, networking, dashboard, and how multi-language integrations fit together.
---


Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
title: Resource API Patterns
description: Discover common API resource patterns in Aspire, including how to add and configure resources, use annotations, and implement custom value objects.
seoTitle: Aspire resource API patterns for AppHost integrations
description: Discover common API resource patterns in Aspire, including how to add and configure resources, use annotations, and compose hosting and client integrations.
---

import { Aside, Steps } from '@astrojs/starlight/components';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
title: Examples
description: Explore complete, runnable examples demonstrating key concepts in Aspire.
seoTitle: Aspire resource model examples for AppHost authors
description: "Explore complete, runnable examples that demonstrate Aspire's resource model — custom container resources, connection strings, health checks, and event subscriptions."
next: false
---

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
title: Resource Hierarchies
description: Learn how Aspire manages resources and their dependencies in your application.
seoTitle: Aspire resource parent-child hierarchies in AppHost
description: Model parent-child resource relationships in Aspire to express ownership, lifecycle containment, and dashboard grouping for distributed application topologies.
---

import { Aside, Tabs, TabItem } from '@astrojs/starlight/components';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
title: Resource Model
description: Learn how Aspire's resource model simplifies the development and management of distributed applications.
seoTitle: Aspire resource model and dependency DAG explained
description: "Learn how Aspire's resource model represents distributed apps as a directed acyclic graph of services, containers, executables, and integrations in the AppHost."
---

import { Aside, Steps } from '@astrojs/starlight/components';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
---
title: Resource Publishing
seoTitle: Publish Aspire resource manifests from your AppHost
description: Learn how Aspire publishes resource manifests as JSON for deployment tooling, including manifest annotations, value providers, and structured field expressions.
---

import { Steps } from '@astrojs/starlight/components';
Expand Down
3 changes: 2 additions & 1 deletion src/frontend/src/content/docs/aspireconf/index.mdx
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
---
title: That's a wrap!
seoTitle: Aspire Conf 2026 — celebrating the Aspire 13.3 release
prev: false
next: false
giscus: false
crumbs: false
head:
- tag: title
content: Aspire Conf — Thank you for watching!
description: Thank you for joining us and celebrating the release of Aspire 13.3. Watch the replay on YouTube and connect with us on Discord, X, and BlueSky.
description: "Watch the Aspire Conf replays celebrating Aspire 13.3. Connect with the team and community across Discord, X, and BlueSky for sessions, demos, and Q&A."
template: splash
editUrl: false
hero:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
title: Contributor guide for aspire.dev
description: "Learn how to contribute to aspire.dev: clone the repo, run the docs site locally, write Starlight MDX, follow the style guide, and open a pull request."
tableOfContents:
minHeadingLevel: 2
maxHeadingLevel: 3
Expand Down
5 changes: 3 additions & 2 deletions src/frontend/src/content/docs/community/contributors.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
title: Contributors 🤝
description: We're grateful for the contributions of our community members who help make Aspire better every day.
title: Contributors 🤝
seoTitle: Aspire contributors and the open-source community team
description: Meet the contributors who help make Aspire better every day. Explore the global community of engineers, writers, and translators powering the Aspire ecosystem.
lastUpdated: false
editUrl: false
giscus: false
Expand Down
Loading
Loading