diff --git a/app/providers.tsx b/app/providers.tsx
index d7a5e71..423fd00 100644
--- a/app/providers.tsx
+++ b/app/providers.tsx
@@ -1,15 +1,28 @@
+"use client";
+
import { ThemeProvider } from "next-themes"
import { ReactNode } from "react"
+import posthog from 'posthog-js'
+import { PostHogProvider } from 'posthog-js/react'
+
+if (typeof window !== 'undefined') {
+ posthog.init(process.env.NEXT_PUBLIC_POSTHOG_KEY!, {
+ api_host: process.env.NEXT_PUBLIC_POSTHOG_HOST,
+ person_profiles: 'always',
+ })
+}
export function Providers({ children }: { children: ReactNode }) {
return (
-
- {children}
-
+
+
+ {children}
+
+
)
}
\ No newline at end of file
diff --git a/package.json b/package.json
index dd1d5db..d8322d6 100644
--- a/package.json
+++ b/package.json
@@ -68,6 +68,7 @@
"next": "^14.2.20",
"next-themes": "^0.3.0",
"openai": "^4.56.0",
+ "posthog-js": "^1.202.2",
"react": "^18",
"react-dom": "^18",
"react-latex-next": "^3.0.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 020cc01..9ecb604 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -182,6 +182,9 @@ dependencies:
openai:
specifier: ^4.56.0
version: 4.67.2(zod@3.24.1)
+ posthog-js:
+ specifier: ^1.202.2
+ version: 1.202.2
react:
specifier: ^18
version: 18.3.1
@@ -2607,6 +2610,11 @@ packages:
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
dev: true
+ /core-js@3.39.0:
+ resolution: {integrity: sha512-raM0ew0/jJUqkJ0E6e8UDtl+y/7ktFivgWvqw8dNSQeNWoSDLvQ1H/RN3aPXB9tBd4/FhyR4RDPGhsNIMsAn7g==}
+ requiresBuild: true
+ dev: false
+
/cross-fetch@4.0.0:
resolution: {integrity: sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==}
dependencies:
@@ -3522,6 +3530,10 @@ packages:
format: 0.2.2
dev: false
+ /fflate@0.4.8:
+ resolution: {integrity: sha512-FJqqoDBR00Mdj9ppamLa/Y7vxm+PRmNWA67N846RvsoYVMKB4q3y/de5PA7gUmRMYK/8CMz2GDZQmCRN1wBcWA==}
+ dev: false
+
/file-entry-cache@6.0.1:
resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
engines: {node: ^10.12.0 || >=12.0.0}
@@ -5611,10 +5623,23 @@ packages:
picocolors: 1.1.0
source-map-js: 1.2.1
+ /posthog-js@1.202.2:
+ resolution: {integrity: sha512-9p7dAWuCfoM0WrasubGwtC8i38HU3iMqK3gd0mhyAoTrEVMVozTQq64Toc2VEv8H69NGNn6ikk5t2LclHT9XFA==}
+ dependencies:
+ core-js: 3.39.0
+ fflate: 0.4.8
+ preact: 10.25.2
+ web-vitals: 4.2.4
+ dev: false
+
/potpack@2.0.0:
resolution: {integrity: sha512-Q+/tYsFU9r7xoOJ+y/ZTtdVQwTWfzjbiXBDMM/JKUux3+QPP02iUuIoeBQ+Ot6oEDlC+/PGjB/5A3K7KKb7hcw==}
dev: false
+ /preact@10.25.2:
+ resolution: {integrity: sha512-GEts1EH3oMnqdOIeXhlbBSddZ9nrINd070WBOiPO2ous1orrKGUM4SMDbwyjSWD1iMS2dBvaDjAa5qUhz3TXqw==}
+ dev: false
+
/prelude-ls@1.2.1:
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
engines: {node: '>= 0.8.0'}
@@ -6728,6 +6753,10 @@ packages:
engines: {node: '>= 14'}
dev: false
+ /web-vitals@4.2.4:
+ resolution: {integrity: sha512-r4DIlprAGwJ7YM11VZp4R884m0Vmgr6EAKe3P+kO0PPj3Unqyvv59rczf6UiGcb9Z8QxZVcqKNwv/g0WNdWwsw==}
+ dev: false
+
/webidl-conversions@3.0.1:
resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
dev: false