GA4 wasn't built for Remix. Here's what goes wrong.
GA integration in Remix requires root.tsx modifications, useLocation hooks, and useEffect calls that contradict Remix's server-first approach
Remix's nested routing and loader/action pattern creates complex pageview tracking scenarios that GA4 doesn't handle well out of the box
Server-side rendering means GA's client-only gtag.js needs careful conditional loading to avoid hydration mismatches
Remix's focus on web standards makes GA's proprietary measurement protocol feel like an anti-pattern
Built for speed, simplicity, and privacy.
Add to root.tsx links or head — no useEffect, no useLocation, no client-side tracking code
Automatic route tracking across nested routes without custom loader or action code
Works perfectly with Remix's SSR and progressive enhancement — the defer attribute handles everything
Privacy-first approach matches Remix's web-standards philosophy
Add StatFast to your Remix project with one snippet.
All the insights. None of the bloat.