feat(site): add Vercel Analytics

Install @vercel/analytics and render <Analytics /> from BaseLayout so it loads on every page. Auto-activates in production on Vercel (no-op locally).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Viktor Vaczi 2026-06-08 14:39:01 +02:00
commit bb6dbfc76e
3 changed files with 50 additions and 4 deletions

51
site/package-lock.json generated
View file

@ -10,6 +10,7 @@
"dependencies": {
"@astrojs/vercel": "^10.0.8",
"@fontsource/oswald": "^5.2.8",
"@vercel/analytics": "^2.0.1",
"astro": "^6.4.4",
"resend": "^6.12.4"
},
@ -227,6 +228,44 @@
"astro": "^6.0.0"
}
},
"node_modules/@astrojs/vercel/node_modules/@vercel/analytics": {
"version": "1.6.1",
"resolved": "https://registry.npmjs.org/@vercel/analytics/-/analytics-1.6.1.tgz",
"integrity": "sha512-oH9He/bEM+6oKlv3chWuOOcp8Y6fo6/PSro8hEkgCW3pu9/OiCXiUpRUogDh3Fs3LH2sosDrx8CxeOLBEE+afg==",
"license": "MPL-2.0",
"peerDependencies": {
"@remix-run/react": "^2",
"@sveltejs/kit": "^1 || ^2",
"next": ">= 13",
"react": "^18 || ^19 || ^19.0.0-rc",
"svelte": ">= 4",
"vue": "^3",
"vue-router": "^4"
},
"peerDependenciesMeta": {
"@remix-run/react": {
"optional": true
},
"@sveltejs/kit": {
"optional": true
},
"next": {
"optional": true
},
"react": {
"optional": true
},
"svelte": {
"optional": true
},
"vue": {
"optional": true
},
"vue-router": {
"optional": true
}
}
},
"node_modules/@astrojs/yaml2ts": {
"version": "0.2.4",
"resolved": "https://registry.npmjs.org/@astrojs/yaml2ts/-/yaml2ts-0.2.4.tgz",
@ -2159,14 +2198,15 @@
"license": "ISC"
},
"node_modules/@vercel/analytics": {
"version": "1.6.1",
"resolved": "https://registry.npmjs.org/@vercel/analytics/-/analytics-1.6.1.tgz",
"integrity": "sha512-oH9He/bEM+6oKlv3chWuOOcp8Y6fo6/PSro8hEkgCW3pu9/OiCXiUpRUogDh3Fs3LH2sosDrx8CxeOLBEE+afg==",
"license": "MPL-2.0",
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/@vercel/analytics/-/analytics-2.0.1.tgz",
"integrity": "sha512-MTQG6V9qQrt1tsDeF+2Uoo5aPjqbVPys1xvnIftXSJYG2SrwXRHnqEvVoYID7BTruDz4lCd2Z7rM1BdkUehk2g==",
"license": "MIT",
"peerDependencies": {
"@remix-run/react": "^2",
"@sveltejs/kit": "^1 || ^2",
"next": ">= 13",
"nuxt": ">= 3",
"react": "^18 || ^19 || ^19.0.0-rc",
"svelte": ">= 4",
"vue": "^3",
@ -2182,6 +2222,9 @@
"next": {
"optional": true
},
"nuxt": {
"optional": true
},
"react": {
"optional": true
},

View file

@ -16,6 +16,7 @@
"dependencies": {
"@astrojs/vercel": "^10.0.8",
"@fontsource/oswald": "^5.2.8",
"@vercel/analytics": "^2.0.1",
"astro": "^6.4.4",
"resend": "^6.12.4"
},

View file

@ -2,6 +2,7 @@
import { ClientRouter } from 'astro:transitions';
import Header from '../components/Header.astro';
import Footer from '../components/Footer.astro';
import Analytics from '@vercel/analytics/astro';
import '../styles/global.css';
interface Props {
@ -71,5 +72,6 @@ const canonical = Astro.url.href;
)
}
<Footer />
<Analytics />
</body>
</html>