diff --git a/package.json b/package.json
index 6925628..fcee09c 100644
--- a/package.json
+++ b/package.json
@@ -22,6 +22,8 @@
"@tailwindcss/typography": "^0.5.12",
"@types/mdx": "^2.0.12",
"@types/three": "^0.162.0",
+ "@vercel/analytics": "^1.2.2",
+ "@vercel/speed-insights": "^1.0.10",
"class-variance-authority": "^0.7.0",
"clsx": "^2.1.0",
"cmdk": "^1.0.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 0f60b98..18787d5 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -38,6 +38,12 @@ dependencies:
'@types/three':
specifier: ^0.162.0
version: 0.162.0
+ '@vercel/analytics':
+ specifier: ^1.2.2
+ version: 1.2.2(next@14.1.4)(react@18.2.0)
+ '@vercel/speed-insights':
+ specifier: ^1.0.10
+ version: 1.0.10(next@14.1.4)(react@18.2.0)
class-variance-authority:
specifier: ^0.7.0
version: 0.7.0
@@ -977,6 +983,50 @@ packages:
/@ungap/structured-clone@1.2.0:
resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
+ /@vercel/analytics@1.2.2(next@14.1.4)(react@18.2.0):
+ resolution: {integrity: sha512-X0rctVWkQV1e5Y300ehVNqpOfSOufo7ieA5PIdna8yX/U7Vjz0GFsGf4qvAhxV02uQ2CVt7GYcrFfddXXK2Y4A==}
+ peerDependencies:
+ next: '>= 13'
+ react: ^18 || ^19
+ peerDependenciesMeta:
+ next:
+ optional: true
+ react:
+ optional: true
+ dependencies:
+ next: 14.1.4(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ server-only: 0.0.1
+ dev: false
+
+ /@vercel/speed-insights@1.0.10(next@14.1.4)(react@18.2.0):
+ resolution: {integrity: sha512-4uzdKB0RW6Ff2FkzshzjZ+RlJfLPxgm/00i0XXgxfMPhwnnsk92YgtqsxT9OcPLdJUyVU1DqFlSWWjIQMPkh0g==}
+ requiresBuild: true
+ peerDependencies:
+ '@sveltejs/kit': ^1 || ^2
+ next: '>= 13'
+ react: ^18 || ^19
+ 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
+ dependencies:
+ next: 14.1.4(react-dom@18.2.0)(react@18.2.0)
+ react: 18.2.0
+ dev: false
+
/@webassemblyjs/ast@1.12.1:
resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==}
dependencies:
@@ -3997,6 +4047,10 @@ packages:
randombytes: 2.1.0
dev: false
+ /server-only@0.0.1:
+ resolution: {integrity: sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==}
+ dev: false
+
/set-function-length@1.2.2:
resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
engines: {node: '>= 0.4'}
diff --git a/src/app/favicon.ico b/src/app/favicon.ico
deleted file mode 100644
index 718d6fe..0000000
Binary files a/src/app/favicon.ico and /dev/null differ
diff --git a/src/app/favicon.svg b/src/app/favicon.svg
new file mode 100644
index 0000000..4597df7
--- /dev/null
+++ b/src/app/favicon.svg
@@ -0,0 +1,14 @@
+
diff --git a/src/app/layout.tsx b/src/app/layout.tsx
index 5d4a970..5a46ceb 100644
--- a/src/app/layout.tsx
+++ b/src/app/layout.tsx
@@ -13,6 +13,9 @@ import Layout from "@/components/layout";
import fonts from "@/components/fonts";
+import { Analytics } from "@vercel/analytics/react";
+import { SpeedInsights } from "@vercel/speed-insights/next";
+
export default function RootLayout({
children,
}: {
@@ -34,6 +37,8 @@ export default function RootLayout({
>
{children}
+
+