feat: Replace Vercel analytics with Umami and update CV/resume PDFs.

This commit is contained in:
2025-11-30 18:19:04 -05:00
parent 61bfb74712
commit ad8cae7363
5 changed files with 33 additions and 13 deletions

View File

@@ -1,6 +1,7 @@
import { Analytics } from "@vercel/analytics/react";
import { SpeedInsights } from "@vercel/speed-insights/next";
import Script from "next/script";
import type { Metadata } from "next";
import { env } from "~/env";
import { Footer } from "~/components/Footer";
import { Navigation } from "~/components/Navigation";
import { Sidebar } from "~/components/Sidebar";
@@ -23,8 +24,17 @@ export default function RootLayout({ children }: React.PropsWithChildren) {
className="flex min-h-screen flex-col bg-background font-sans text-foreground"
suppressHydrationWarning
>
<Analytics />
<SpeedInsights />
{env.NEXT_PUBLIC_UMAMI_WEBSITE_ID && (
<Script
defer
src={
env.NEXT_PUBLIC_UMAMI_SCRIPT_URL ||
"https://analytics.umami.is/script.js"
}
data-website-id={env.NEXT_PUBLIC_UMAMI_WEBSITE_ID}
/>
)}
<Navigation />
<div className="flex flex-1">
{/* Desktop sidebar - extends to edge */}

View File

@@ -1,10 +1,17 @@
import { createEnv } from "@t3-oss/env-nextjs";
import { z } from "zod";
export const env = createEnv({
/**
* Specify your server-side environment variables schema here. This way you can ensure the app
* isn't built with invalid env vars.
*/
server: {
DATABASE_URL: z.string().url().optional(),
NODE_ENV: z
.enum(["development", "test", "production"])
.default("development"),
},
/**
* Specify your client-side environment variables schema here. This way you can ensure the app
@@ -13,6 +20,8 @@ export const env = createEnv({
*/
client: {
// NEXT_PUBLIC_CLIENTVAR: z.string(),
NEXT_PUBLIC_UMAMI_WEBSITE_ID: z.string().optional(),
NEXT_PUBLIC_UMAMI_SCRIPT_URL: z.string().url().optional(),
},
/**
@@ -23,6 +32,8 @@ export const env = createEnv({
DATABASE_URL: process.env.DATABASE_URL,
NODE_ENV: process.env.NODE_ENV,
// NEXT_PUBLIC_CLIENTVAR: process.env.NEXT_PUBLIC_CLIENTVAR,
NEXT_PUBLIC_UMAMI_WEBSITE_ID: process.env.NEXT_PUBLIC_UMAMI_WEBSITE_ID,
NEXT_PUBLIC_UMAMI_SCRIPT_URL: process.env.NEXT_PUBLIC_UMAMI_SCRIPT_URL,
},
/**
* Run `build` or `dev` with `SKIP_ENV_VALIDATION` to skip env validation. This is especially