diff --git a/ui/package-lock.json b/ui/package-lock.json
index 6e40288..277e225 100644
--- a/ui/package-lock.json
+++ b/ui/package-lock.json
@@ -14,6 +14,7 @@
"@types/node": "^16.18.68",
"@types/react": "^18.3.25",
"@types/react-dom": "^18.2.17",
+ "@vercel/analytics": "^1.6.1",
"autoprefixer": "^10.4.21",
"axios": "^1.6.2",
"framer-motion": "^12.23.22",
@@ -880,6 +881,44 @@
"@types/react": "^18.0.0"
}
},
+ "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/any-promise": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
diff --git a/ui/package.json b/ui/package.json
index 622925d..7cb349e 100644
--- a/ui/package.json
+++ b/ui/package.json
@@ -10,6 +10,7 @@
"@types/node": "^16.18.68",
"@types/react": "^18.3.25",
"@types/react-dom": "^18.2.17",
+ "@vercel/analytics": "^1.6.1",
"autoprefixer": "^10.4.21",
"axios": "^1.6.2",
"framer-motion": "^12.23.22",
diff --git a/ui/src/app/layout.tsx b/ui/src/app/layout.tsx
index cf1722c..90b384c 100644
--- a/ui/src/app/layout.tsx
+++ b/ui/src/app/layout.tsx
@@ -2,6 +2,7 @@ import type { Metadata, Viewport } from 'next';
import { Inter, JetBrains_Mono, Courier_Prime, IBM_Plex_Mono } from 'next/font/google';
import { ClerkProvider } from '@clerk/nextjs';
import { dark } from '@clerk/themes';
+import { Analytics } from '@vercel/analytics/next';
import { Providers } from './providers';
import './globals.css';
@@ -107,6 +108,7 @@ export default function RootLayout({
>
{children}
+