# generateMetadata

**Kind:** Function

**Source:** [`atloria-monorepo/apps/web/src/app/p/[slugId]/layout.tsx`](https://github.com/sherkety/atloria/blob/main/atloria-monorepo/apps/web/src/app/p/[slugId]/layout.tsx#L31)

SERVER layout for published docs sites: crawlers get real <title>/description/OG/
canonical in the initial HTML (the interactive shell stayed a client component —
see PublicLayoutShell). Metadata degrades gracefully when the API is unreachable.

## Signature

```ts
async function generateMetadata({ params }: { params: Promise<{ slugId: string }> }): Promise<Metadata>
```

## Parameters

| Name | Type |
|---|---|
| `{ params }` | `{ params: Promise<{ slugId: string }> }` |

**Returns:** `Promise<Metadata>`
