diff --git a/package-lock.json b/package-lock.json
index 687b4924..074970ac 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -30,6 +30,7 @@
"@types/node": "20.2.3",
"@types/react": "18.2.7",
"@types/react-dom": "18.2.4",
+ "@vercel/speed-insights": "^1.2.0",
"autoprefixer": "10.4.14",
"aws-sdk": "^2.1415.0",
"class-variance-authority": "^0.6.1",
@@ -3413,6 +3414,40 @@
"url": "https://opencollective.com/typescript-eslint"
}
},
+ "node_modules/@vercel/speed-insights": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@vercel/speed-insights/-/speed-insights-1.2.0.tgz",
+ "integrity": "sha512-y9GVzrUJ2xmgtQlzFP2KhVRoCglwfRQgjyfY607aU0hh0Un6d0OUyrJkjuAlsV18qR4zfoFPs/BiIj9YDS6Wzw==",
+ "hasInstallScript": true,
+ "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
+ }
+ }
+ },
"node_modules/acorn": {
"version": "8.8.2",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
diff --git a/package.json b/package.json
index 12d2af07..32de350c 100644
--- a/package.json
+++ b/package.json
@@ -36,6 +36,7 @@
"@types/node": "20.2.3",
"@types/react": "18.2.7",
"@types/react-dom": "18.2.4",
+ "@vercel/speed-insights": "^1.2.0",
"autoprefixer": "10.4.14",
"aws-sdk": "^2.1415.0",
"class-variance-authority": "^0.6.1",
diff --git a/src/app/layout.tsx b/src/app/layout.tsx
index 5fb12ae0..09f028e3 100644
--- a/src/app/layout.tsx
+++ b/src/app/layout.tsx
@@ -7,6 +7,7 @@ import { getServerSession } from "next-auth/next";
import { cache } from "react";
import { Inter } from "next/font/google";
import { Toaster } from "@/app/shadcn_components/ui/toaster";
+import { SpeedInsights } from "@vercel/speed-insights/next";
// If loading a variable font, you don't need to specify the font weight
const inter = Inter({
@@ -57,6 +58,7 @@ export default async function RootLayout({
+