From 3036264d446779f956b5af17f2be05ad93165f26 Mon Sep 17 00:00:00 2001 From: George Powell Date: Sat, 21 Feb 2026 17:13:41 -0500 Subject: [PATCH] Add Rybbit analytics alongside Umami - Load Rybbit script via app.html (recommended SvelteKit approach) - Mirror all Umami custom events (First guess, Guessed correctly, Share, Copy to Clipboard, social link clicks) with rybbit.event() - Identify logged-in users with name/email traits; anonymous users by stable UUID Co-Authored-By: Claude Sonnet 4.6 --- src/app.html | 1 + src/lib/components/Credits.svelte | 3 +++ src/lib/components/WinScreen.svelte | 3 ++- src/lib/stores/game-persistence.svelte.ts | 26 ++++++++++++++++++----- src/routes/+page.svelte | 6 +++++- 5 files changed, 32 insertions(+), 7 deletions(-) diff --git a/src/app.html b/src/app.html index f0ea0b5..a282adb 100644 --- a/src/app.html +++ b/src/app.html @@ -3,6 +3,7 @@ + %sveltekit.head% diff --git a/src/lib/components/Credits.svelte b/src/lib/components/Credits.svelte index 657545a..c5208d9 100644 --- a/src/lib/components/Credits.svelte +++ b/src/lib/components/Credits.svelte @@ -34,6 +34,7 @@ class="inline-flex hover:opacity-80 transition-opacity" aria-label="Follow on Bluesky" data-umami-event="Bluesky clicked" + onclick={() => (window as any).rybbit?.event("Bluesky clicked")} > Bluesky @@ -47,6 +48,7 @@ class="inline-flex hover:opacity-80 transition-opacity" aria-label="Follow on Twitter" data-umami-event="Twitter clicked" + onclick={() => (window as any).rybbit?.event("Twitter clicked")} > Twitter @@ -58,6 +60,7 @@ class="inline-flex hover:opacity-80 transition-opacity" aria-label="Send email" data-umami-event="Email clicked" + onclick={() => (window as any).rybbit?.event("Email clicked")} > {#if hasWebShare}