diff --git a/CLAUDE.md b/CLAUDE.md
index 73e865e97..9f59acbc2 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -191,7 +191,7 @@ Notes:
- If `release:publish` fails after a successful publish of one workspace, re-run `npm run release:publish`; npm will skip already-published versions and continue where possible.
- If a user asks to "release paseo" (without specifying major/minor), treat it as a patch release and run `npm run release:patch`.
- All workspaces share one version by design. Keep versions synchronized and release together.
-- After each release, update the website Mac download CTA URL to the new version tag in `packages/website/src/routes/index.tsx`.
+- The website Mac download CTA URL is derived from `packages/website/package.json` version at build time, so no manual update is required after release.
Release completion checklist:
- `npm run release:patch` completes successfully.
diff --git a/README.md b/README.md
index 6818c71a1..7acc3cf36 100644
--- a/README.md
+++ b/README.md
@@ -92,6 +92,8 @@ The tag triggers:
- GitHub `Desktop Release` workflow (`.github/workflows/desktop-release.yml`)
- Expo EAS mobile workflow (`packages/app/.eas/workflows/release-mobile.yml`) to build + submit Android/iOS
+The website Mac download CTA is generated from `packages/website/package.json` version at build time, so it tracks each release automatically.
+
Useful monitoring commands after a release push:
```bash
diff --git a/packages/website/src/routes/index.tsx b/packages/website/src/routes/index.tsx
index bd70ba1bf..f78fd3d14 100644
--- a/packages/website/src/routes/index.tsx
+++ b/packages/website/src/routes/index.tsx
@@ -1,8 +1,12 @@
import * as React from 'react'
import { createFileRoute } from '@tanstack/react-router'
import { CursorFieldProvider } from '~/components/butterfly'
+import websitePackage from '../../package.json'
import '~/styles.css'
+const desktopVersion = websitePackage.version
+const macDownloadHref = `https://github.com/getpaseo/paseo/releases/download/v${desktopVersion}/Paseo_${desktopVersion}_aarch64.dmg`
+
export const Route = createFileRoute('/')({
head: () => ({
meta: [
@@ -194,7 +198,7 @@ function GetStarted() {