diff --git a/.env.docker.example b/.env.docker.example
index 8cfd56ce2..b26be84cb 100644
--- a/.env.docker.example
+++ b/.env.docker.example
@@ -65,7 +65,6 @@ NEXT_PUBLIC_GA_ID="your_google_analytics_id_here"
NEXT_PUBLIC_APP_ENV=local
NEXT_PUBLIC_LOCAL_STORAGE_PREFIX="@DockerEmuReady_"
NEXT_PUBLIC_EMUREADY_BETA_URL="https://play.google.com/store/apps/details?id=com.producdevity.emureadyapp"
-NEXT_PUBLIC_VERCEL_ANALYTICS_ENABLED=false
NEXT_PUBLIC_ENABLE_ANALYTICS=false
NEXT_PUBLIC_ENABLE_KOFI_WIDGET=false
NEXT_PUBLIC_ENABLE_SENTRY=false
diff --git a/.env.example b/.env.example
index 5e80fcf9f..6bbbb6ae8 100644
--- a/.env.example
+++ b/.env.example
@@ -39,7 +39,6 @@ NEXT_PUBLIC_APP_ENV=local
NEXT_PUBLIC_GA_ID="Google-Analytics-ID"
NEXT_PUBLIC_LOCAL_STORAGE_PREFIX="@LocalEmuReady_"
NEXT_PUBLIC_EMUREADY_BETA_URL="https://play.google.com/store/apps/details?id=com.producdevity.emureadyapp"
-NEXT_PUBLIC_VERCEL_ANALYTICS_ENABLED=false
NEXT_PUBLIC_ENABLE_ANALYTICS=false
NEXT_PUBLIC_ENABLE_KOFI_WIDGET=false
NEXT_PUBLIC_ENABLE_SENTRY=false
diff --git a/.env.test.example b/.env.test.example
index 9dc7a9b4a..19d4b7a8a 100644
--- a/.env.test.example
+++ b/.env.test.example
@@ -30,7 +30,6 @@ NEXT_PUBLIC_APP_ENV=test
NEXT_PUBLIC_GA_ID=""
NEXT_PUBLIC_LOCAL_STORAGE_PREFIX="@TestEmuReady_"
NEXT_PUBLIC_EMUREADY_BETA_URL="https://play.google.com/store/apps/details?id=com.producdevity.emureadyapp"
-NEXT_PUBLIC_VERCEL_ANALYTICS_ENABLED=false
NEXT_PUBLIC_ENABLE_ANALYTICS=false
NEXT_PUBLIC_ENABLE_KOFI_WIDGET=false
NEXT_PUBLIC_ENABLE_SENTRY=false
diff --git a/next.config.ts b/next.config.ts
index bb0d6ef1a..9069d8859 100644
--- a/next.config.ts
+++ b/next.config.ts
@@ -21,7 +21,6 @@ const contentSecurityPolicyDirectives = [
"'unsafe-eval'",
'https://www.googletagmanager.com',
'https://static.cloudflareinsights.com',
- 'https://va.vercel-scripts.com',
'https://*.clerk.com',
'https://*.clerk.accounts.dev',
'https://clerk.emuready.com',
@@ -94,7 +93,6 @@ const contentSecurityPolicyDirectives = [
'https://clerk.emuready.com',
'wss://*.clerk.accounts.dev',
'wss://clerk.emuready.com',
- 'https://va.vercel-scripts.com',
'https://challenges.cloudflare.com',
'https://storage.ko-fi.com',
'https://clerk-telemetry.com',
diff --git a/package.json b/package.json
index a872e5d6c..7cf8ae0a3 100644
--- a/package.json
+++ b/package.json
@@ -80,8 +80,6 @@
"@trpc/react-query": "11.17.0",
"@trpc/server": "11.17.0",
"@types/react-syntax-highlighter": "^15.5.13",
- "@vercel/analytics": "^1.5.0",
- "@vercel/speed-insights": "^1.2.0",
"axios": "1.16.0",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
diff --git a/playwright.config.ts b/playwright.config.ts
index 99c81291c..ac11fb179 100644
--- a/playwright.config.ts
+++ b/playwright.config.ts
@@ -21,7 +21,6 @@ function createWebServerEnv(): { [key: string]: string } {
env.NEXT_PUBLIC_ENABLE_ANALYTICS = 'false'
env.NEXT_PUBLIC_ENABLE_KOFI_WIDGET = 'false'
env.NEXT_PUBLIC_ENABLE_SENTRY = 'false'
- env.NEXT_PUBLIC_VERCEL_ANALYTICS_ENABLED = 'false'
env.NEXT_PUBLIC_DISABLE_COOKIE_BANNER = 'true'
env.PLAYWRIGHT_TEST = 'true'
return env
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 37146b6ad..dd31e3803 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -96,12 +96,6 @@ importers:
'@types/react-syntax-highlighter':
specifier: ^15.5.13
version: 15.5.13
- '@vercel/analytics':
- specifier: ^1.5.0
- version: 1.5.0(next@16.2.6(@babel/core@7.27.7)(@opentelemetry/api@1.9.1)(@playwright/test@1.60.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6)(vue-router@4.5.1(vue@3.5.17(typescript@5.8.3)))(vue@3.5.17(typescript@5.8.3))
- '@vercel/speed-insights':
- specifier: ^1.2.0
- version: 1.2.0(next@16.2.6(@babel/core@7.27.7)(@opentelemetry/api@1.9.1)(@playwright/test@1.60.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6)(vue-router@4.5.1(vue@3.5.17(typescript@5.8.3)))(vue@3.5.17(typescript@5.8.3))
axios:
specifier: 1.16.0
version: 1.16.0
@@ -3968,55 +3962,6 @@ packages:
cpu: [x64]
os: [win32]
- '@vercel/analytics@1.5.0':
- resolution: {integrity: sha512-MYsBzfPki4gthY5HnYN7jgInhAZ7Ac1cYDoRWFomwGHWEX7odTEzbtg9kf/QSo7XEsEAqlQugA6gJ2WS2DEa3g==}
- 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
-
- '@vercel/speed-insights@1.2.0':
- resolution: {integrity: sha512-y9GVzrUJ2xmgtQlzFP2KhVRoCglwfRQgjyfY607aU0hh0Un6d0OUyrJkjuAlsV18qR4zfoFPs/BiIj9YDS6Wzw==}
- peerDependencies:
- '@sveltejs/kit': ^1 || ^2
- next: '>= 13'
- react: ^18 || ^19 || ^19.0.0-rc
- svelte: '>= 4'
- vue: ^3
- vue-router: ^4
- peerDependenciesMeta:
- '@sveltejs/kit':
- optional: true
- next:
- optional: true
- react:
- optional: true
- svelte:
- optional: true
- vue:
- optional: true
- vue-router:
- optional: true
-
'@vitejs/plugin-react@4.6.0':
resolution: {integrity: sha512-5Kgff+m8e2PB+9j51eGHEpn5kUzRKH2Ry0qGoe8ItJg7pqnkPrYPkDQZGgGmTa0EGarHrkjLvOdU3b1fzI8otQ==}
engines: {node: ^14.18.0 || >=16.0.0}
@@ -12350,20 +12295,6 @@ snapshots:
'@unrs/resolver-binding-win32-x64-msvc@1.9.2':
optional: true
- '@vercel/analytics@1.5.0(next@16.2.6(@babel/core@7.27.7)(@opentelemetry/api@1.9.1)(@playwright/test@1.60.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6)(vue-router@4.5.1(vue@3.5.17(typescript@5.8.3)))(vue@3.5.17(typescript@5.8.3))':
- optionalDependencies:
- next: 16.2.6(@babel/core@7.27.7)(@opentelemetry/api@1.9.1)(@playwright/test@1.60.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
- react: 19.2.6
- vue: 3.5.17(typescript@5.8.3)
- vue-router: 4.5.1(vue@3.5.17(typescript@5.8.3))
-
- '@vercel/speed-insights@1.2.0(next@16.2.6(@babel/core@7.27.7)(@opentelemetry/api@1.9.1)(@playwright/test@1.60.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6)(vue-router@4.5.1(vue@3.5.17(typescript@5.8.3)))(vue@3.5.17(typescript@5.8.3))':
- optionalDependencies:
- next: 16.2.6(@babel/core@7.27.7)(@opentelemetry/api@1.9.1)(@playwright/test@1.60.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
- react: 19.2.6
- vue: 3.5.17(typescript@5.8.3)
- vue-router: 4.5.1(vue@3.5.17(typescript@5.8.3))
-
'@vitejs/plugin-react@4.6.0(vite@7.2.4(@types/node@20.19.1)(jiti@2.7.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))':
dependencies:
'@babel/core': 7.27.7
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index 407952f3a..e3236a9c4 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -4,7 +4,6 @@ allowBuilds:
"@prisma/engines": true
"@sentry/cli": true
"@tailwindcss/oxide": true
- "@vercel/speed-insights": false
esbuild: true
prisma: true
sharp: true
diff --git a/src/app/layout.tsx b/src/app/layout.tsx
index 6a4b15df3..12cee3b15 100644
--- a/src/app/layout.tsx
+++ b/src/app/layout.tsx
@@ -2,8 +2,6 @@ import './globals.css'
import { ClerkProvider } from '@clerk/nextjs'
import { shadesOfPurple } from '@clerk/themes'
import { GoogleAnalytics } from '@next/third-parties/google'
-import { Analytics } from '@vercel/analytics/next'
-import { SpeedInsights } from '@vercel/speed-insights/next'
import { type Metadata, type Viewport } from 'next'
import { Inter } from 'next/font/google'
import { connection } from 'next/server'
@@ -55,18 +53,12 @@ export default function RootLayout(props: PropsWithChildren) {
<>
-
{env.GA_ID && }
>
)}
{env.ENABLE_KOFI_WIDGET && }
)}
- {env.ENABLE_ANALYTICS && env.VERCEL_ANALYTICS_ENABLED && (
-
-
-
- )}