Skip to content

Commit

Permalink
feat: setup posthog (#39)
Browse files Browse the repository at this point in the history
* feat: setup posthog

* feat: use web analytics instead of product analytics

* fix: type error

* ci: add build secrets

* fix: typo

---------

Co-authored-by: Ryan Martin <[email protected]>
  • Loading branch information
rmrt1n and rmrt1n authored Sep 27, 2024
1 parent ceafc5b commit 8b4957c
Show file tree
Hide file tree
Showing 6 changed files with 56 additions and 7 deletions.
2 changes: 2 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
VITE_SENTRY_DSN=
VITE_POSTHOG_KEY=
3 changes: 3 additions & 0 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,9 @@ jobs:
run: pnpm install
- name: Build
run: pnpm build
env:
VITE_SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
VITE_POSTHOG_KEY: ${{ secrets.POSTHOG_KEY }}
- name: Archive Release
uses: thedoctor0/[email protected]
with:
Expand Down
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
"class-variance-authority": "^0.7.0",
"clsx": "^2.1.0",
"lucide-react": "^0.334.0",
"posthog-js": "^1.161.3",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-hook-form": "^7.51.2",
Expand Down
27 changes: 27 additions & 0 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

26 changes: 19 additions & 7 deletions src/main.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import * as Sentry from '@sentry/react'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { RouterProvider, createRouter } from '@tanstack/react-router'
import { PostHogConfig } from 'posthog-js'
import { PostHogProvider } from 'posthog-js/react'
import { StrictMode } from 'react'
import ReactDOM from 'react-dom/client'

Expand Down Expand Up @@ -52,18 +54,28 @@ Sentry.init({
profilesSampleRate: 1.0,
})

const postHogConfig = {
apiKey: import.meta.env.VITE_POSTHOG_KEY as string,
options: {
person_profiles: 'identified_only',
capture_pageview: false,
} as PostHogConfig,
}

const rootElement = document.getElementById('root')!
if (!rootElement.innerHTML) {
const root = ReactDOM.createRoot(rootElement)
root.render(
<StrictMode>
<ThemeProvider defaultTheme="light" storageKey="vite-ui-theme">
<QueryClientProvider client={queryClient}>
<CardinalProvider>
<RouterProvider router={router} />
</CardinalProvider>
</QueryClientProvider>
</ThemeProvider>
<PostHogProvider apiKey={postHogConfig.apiKey} options={postHogConfig.options}>
<ThemeProvider defaultTheme="light" storageKey="vite-ui-theme">
<QueryClientProvider client={queryClient}>
<CardinalProvider>
<RouterProvider router={router} />
</CardinalProvider>
</QueryClientProvider>
</ThemeProvider>
</PostHogProvider>
</StrictMode>,
)
}
4 changes: 4 additions & 0 deletions src/routes/__root.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import * as Sentry from '@sentry/react'
import { useQueryClient } from '@tanstack/react-query'
import { createRootRoute, Outlet } from '@tanstack/react-router'
import posthog from 'posthog-js'
import { useEffect } from 'react'

import { BottomBar } from '@/components/bottom-bar'
Expand All @@ -22,6 +23,9 @@ import { cn, errorToast } from '@/lib/utils'

export const Route = createRootRoute({
component: Root,
beforeLoad: (route) => {
posthog.capture('$pageview', { path: route.location.pathname })
},
})

interface CardinalEvent {
Expand Down

0 comments on commit 8b4957c

Please sign in to comment.