diff --git a/.env.example b/.env.example index c149708..f62e0a2 100644 --- a/.env.example +++ b/.env.example @@ -28,5 +28,8 @@ DB_DISABLE_SSL="true" RESEND_API_KEY="your-resend-api-key" RESEND_DOMAIN="" +# Analytics +NEXT_PUBLIC_UMAMI_WEBSITE_ID="your-website-id-here" +NEXT_PUBLIC_UMAMI_SCRIPT_URL="https://analytics.umami.is/script.js" # Build tweaks # SKIP_ENV_VALIDATION=1 diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 3381454..b524e3f 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -9,6 +9,7 @@ import { AnimationPreferencesProvider } from "~/components/providers/animation-p import { ThemeProvider } from "~/components/providers/theme-provider"; import { ColorThemeProvider } from "~/components/providers/color-theme-provider"; +import { UmamiScript } from "~/components/analytics/umami-script"; export const metadata: Metadata = { title: "beenvoice - Invoicing Made Simple", @@ -143,6 +144,7 @@ export default function RootLayout({ {children} + diff --git a/src/components/analytics/umami-script.tsx b/src/components/analytics/umami-script.tsx new file mode 100644 index 0000000..8ba8e3e --- /dev/null +++ b/src/components/analytics/umami-script.tsx @@ -0,0 +1,19 @@ +"use client"; + +import Script from "next/script"; +import { env } from "~/env"; + +export function UmamiScript() { + if (!env.NEXT_PUBLIC_UMAMI_WEBSITE_ID || !env.NEXT_PUBLIC_UMAMI_SCRIPT_URL) { + return null; + } + + return ( +