> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vued.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Vued ai app download brief

# `vued.ai/app` Desktop Download Brief

Add a macOS desktop install CTA to `vued.ai/app`.

## Release Source

The desktop release pipeline uploads a public Supabase Storage manifest:

```text theme={null}
https://<project-ref>.supabase.co/storage/v1/object/public/downloads/desktop/macos/latest.json
```

Expected shape:

```json theme={null}
{
  "product": "Vued",
  "version": "0.1.0",
  "platform": "macos",
  "channel": "latest",
  "updatedAt": "2026-06-26T00:00:00.000Z",
  "downloadUrl": "https://.../desktop/macos/0.1.0/Vued-0.1.0-arm64.dmg",
  "artifacts": []
}
```

Use `downloadUrl` as the primary CTA href. Do not hard-code a versioned DMG URL in the page.

## UX Copy

Primary button:

```text theme={null}
Download for Mac
```

Install note:

```text theme={null}
Open the DMG, then drag Vued into Applications.
```

Optional metadata:

```text theme={null}
Version 0.1.0
Apple Silicon Mac
```

## Behavior

* Fetch `latest.json` client-side or server-side.
* If the manifest fetch fails, show the CTA disabled with `Download unavailable`.
* Link to the DMG directly; browsers will download it.
* Keep the CTA visible on non-macOS devices, but label it clearly as Mac-only.
* The bucket is public for reads. Never expose `SUPABASE_SERVICE_ROLE_KEY` in the web app.
* If you want a stable branded URL, add a route like `/api/download/mac` that redirects to `latest.json.downloadUrl`.

## Cache Expectations

* `latest.json` should be low-cache, roughly 60 seconds.
* Versioned DMG/ZIP paths should be long-cache, roughly one year.
* The page can revalidate every minute if rendered server-side.
