diff --git a/app/layout.tsx b/app/layout.tsx
index a9f6d7b..24c32a9 100644
--- a/app/layout.tsx
+++ b/app/layout.tsx
@@ -1,5 +1,6 @@
import type { Metadata } from "next";
import { Geist, Geist_Mono } from "next/font/google";
+import { Analytics } from "@vercel/analytics/next";
import "./globals.css";
const geistSans = Geist({
@@ -25,7 +26,10 @@ export default function RootLayout({
}>) {
return (
-
{children}
+
+ {children}
+
+
);
}
diff --git a/next.config.ts b/next.config.ts
index f5ee101..abf1615 100644
--- a/next.config.ts
+++ b/next.config.ts
@@ -14,12 +14,12 @@ const nextConfig: NextConfig = {
key: "Content-Security-Policy",
value: [
"default-src 'self'",
- "script-src 'self' 'unsafe-eval' 'unsafe-inline'",
+ "script-src 'self' 'unsafe-eval' 'unsafe-inline' https://va.vercel-scripts.com",
"style-src 'self' 'unsafe-inline'",
"img-src 'self' data: blob: https://img.youtube.com https://*.tile.openstreetmap.org https://*.basemaps.cartocdn.com",
"frame-src https://www.youtube.com https://www.youtube-nocookie.com",
"media-src 'self' https://www.youtube.com https://www.youtube-nocookie.com blob:",
- "connect-src 'self' https://api.openai.com https://*.tile.openstreetmap.org https://www.youtube.com https://www.youtube-nocookie.com",
+ "connect-src 'self' https://api.openai.com https://*.tile.openstreetmap.org https://www.youtube.com https://www.youtube-nocookie.com https://va.vercel-scripts.com https://vitals.vercel-insights.com",
"font-src 'self' data:",
"worker-src blob:",
].join("; "),
diff --git a/package-lock.json b/package-lock.json
index fc78e54..aed15f1 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,6 +9,7 @@
"version": "0.1.0",
"dependencies": {
"@types/leaflet": "^1.9.21",
+ "@vercel/analytics": "^2.0.1",
"framer-motion": "^12.38.0",
"leaflet": "^1.9.4",
"lucide-react": "^1.14.0",
@@ -2290,6 +2291,48 @@
"win32"
]
},
+ "node_modules/@vercel/analytics": {
+ "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",
+ "vue-router": "^4"
+ },
+ "peerDependenciesMeta": {
+ "@remix-run/react": {
+ "optional": true
+ },
+ "@sveltejs/kit": {
+ "optional": true
+ },
+ "next": {
+ "optional": true
+ },
+ "nuxt": {
+ "optional": true
+ },
+ "react": {
+ "optional": true
+ },
+ "svelte": {
+ "optional": true
+ },
+ "vue": {
+ "optional": true
+ },
+ "vue-router": {
+ "optional": true
+ }
+ }
+ },
"node_modules/acorn": {
"version": "8.16.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz",
diff --git a/package.json b/package.json
index 51f5874..6ad46a0 100644
--- a/package.json
+++ b/package.json
@@ -10,6 +10,7 @@
},
"dependencies": {
"@types/leaflet": "^1.9.21",
+ "@vercel/analytics": "^2.0.1",
"framer-motion": "^12.38.0",
"leaflet": "^1.9.4",
"lucide-react": "^1.14.0",