Back to browse
I replaced my morning GA4 tab explosion with one page

I replaced my morning GA4 tab explosion with one page

by tskulbru·Mar 11, 2026·2 points·0 comments

AI Analysis

●●SolidSolve My ProblemSlick

Unified GA4 dashboard with anomaly detection saves morning tab-switching rituals.

Strengths
  • Modified Z-score detection catches traffic drops faster than manual checking.
  • Read-only OAuth scope ensures security without full account access.
  • Weekly AI digest summarizes trends across all properties in one email.
Weaknesses
  • Reliant on GA4 API limits and data freshness delays.
  • Anomaly detection requires 28-day history, delaying value for new sites.
Category
Target Audience

Founders and developers managing multiple web or app properties

Similar To

Looker Studio · Triple Whale · Fathom

Post Description

I have a handful of GA4 properties — a couple web apps, a side project, a thing I shipped on a weekend — and I got tired of clicking through Google's UI every morning to check if anything weird happened overnight. I was spending my mornings clicking through GA4 properties one at a time just to see yesterday's numbers, and whenever I needed to actually understand what was going on I'd have to connect Claude to each one individually. It's a lot of tab-switching for what should be a 30-second check. So I built a dashboard that pulls them all into one screen and tells me when traffic does something statistically unusual.

That's Plask. It connects via Google OAuth (read-only scope) and shows all your GA4 properties in one place. Sessions, users, key events, comparison deltas — the quick pulse check I wanted without navigating Google's interface six times.

The part I spent the most time on is the anomaly detection. I went with modified Z-scores using Median Absolute Deviation over a 28-day rolling window instead of standard deviation — it handles the spiky traffic patterns you get on smaller sites without crying wolf every weekend. No ML, no black box, just basic stats that run at zero cost. Alerts get classified as info/warning/critical, and you can tune sensitivity per property.

There's also a weekly digest powered by Claude Haiku that turns the numbers into a couple paragraphs of plain English every Monday morning. I built it mostly because I wanted to stop opening the dashboard on Mondays.

Stack for those interested: Next.js 16, Supabase Postgres with Drizzle ORM, Auth.js v5 (needed custom OAuth scopes that Supabase Auth doesn't support), Stripe, deployed on Vercel. Daily sync runs as a cron at 6am UTC — nothing fancy, no event streaming.

Solo project. Would genuinely appreciate feedback on the product, the anomaly detection approach, or anything else. Happy to go deep on implementation details.

https://plask.dev

Similar Projects