Tools I'm Using
What each tool captures, what I use it to decide, and where they overlap.
BrowserStack
What it does: Runs automated page-load tests against funeralprints.com on real desktop and mobile devices located in the US (Chrome, Safari, Edge on desktop; iPhone Safari, Android Chrome on mobile).
What I use it for: Measuring how long each step of the purchase funnel — including the editor — takes to load on real US devices, every day, so I can catch any page where load time has crept into "unreasonable" territory.
Status: I've added iPhone 15 (Safari) and Pixel 8 (Chrome) to the smoke suite, so the daily run now covers both desktop and mobile loading times.
Live reports:
- BrowserStack Daily Health Check — daily pass/fail across browsers, designer load times, regressions
Hotjar
What it does: Records anonymized user sessions, builds heatmaps, runs surveys, and tracks funnels.
What I use it for:
- Heatmaps for the homepage, prayer cards, memorial posters, funeral programs, product page, cart, checkout, and order confirmation
- The 5-step purchase funnel (
/c/→/p/→/cart→/onepagecheckout→/checkout/completed) - Saved segments for cart abandonment, designer-to-cart-no-purchase, and registration drop-off
- Watching individual sessions when something looks unusual in the data
Limitation worth knowing: Hotjar samples ~50–60% of traffic on the current plan, and it cannot record the Infigo MegaEdit designer canvas (the screen goes blank in recordings). PostHog covers that gap.
Live reports built off Hotjar data:
- Registration drop-off — where buyers quit — Hotjar step-by-step funnel of the current registration form
- Registration funnel — Current vs PreProd — side-by-side comparison with screenshots from real Hotjar sessions
PostHog
What it does: Session recordings with canvas capture, event tracking, funnels, A/B testing, and surveys — installed via GTM.
What I use it for:
- Recording the Infigo designer (the one place Hotjar can't see), so I can finally watch what users do inside the editor
- Native ecommerce events alongside GA4 for cross-checking
- A/B test infrastructure for upcoming experiments
- The
/web-vitalsreal-user speed dashboard
Sampling: 15% of sessions on the free tier (~180/day). Can be lifted if a specific question needs more coverage.
Live reports built off PostHog data:
- Real-User Speed Analysis — Core Web Vitals (LCP, INP, FCP, CLS) from PostHog, 14-day trend, p90 slow-tail, why pages feel broken
- Sales Coverage — day-by-day comparison of revenue tracker vs GA4 vs PostHog
- Third-Party Services Progression — script inventory tied to PostHog Web Vitals impact
- Web Vitals — Daily p75 Chart (PostHog) ↗
- Web Vitals — Slow-Tail Dashboard (PostHog) ↗
GA4
What it does: Google Analytics 4 — pageviews, sessions, ecommerce events, channel attribution, and the standard reports John already looks at.
What I use it for:
- Day-to-day revenue, orders, sessions, and conversion rate trends
- Channel and source/medium breakdowns (paid vs organic vs direct)
- The 23 enhanced ecommerce events already wired up (add_to_cart, begin_checkout, purchase, view_item, start_design, complete_registration, etc.)
- Cross-referencing against the revenue tracker sheet to spot tracking gaps
Limitation worth knowing: The GA4 UI applies sampling and thresholding on larger queries, and the purchase event currently undercounts by 9–24% because the GTM trigger is DOM-based. BigQuery (below) gets around the sampling; the trigger fix needs Infigo dev work.
Live reports built off GA4 data:
- Sales Coverage — day-by-day comparison of revenue tracker vs GA4 vs PostHog
- Decomposition — drop-off hunter — every GA4 cell (channel × device × user type) across 5 periods
- Sales Drop Investigation — March 2026 revenue analysis built on GA4 + sheet data
BigQuery (GA4 raw export)
What it does: GA4 streams every raw event (pageview, add_to_cart, purchase, etc.) into BigQuery, so I can query the unsampled event log directly with SQL instead of going through the GA4 UI.
What I use it for:
- Cross-checking GA4 UI numbers — the UI applies sampling and thresholding once volumes get large, BigQuery does not
- Reconciling GA4 vs the revenue sheet vs PostHog at the individual transaction level (which order IDs each tool actually saw)
- Custom queries the GA4 UI can't answer — for example "of the sessions that opened the designer, what % opened it from a paid-search visit, by device, by week"
- Pulling raw funnel data that doesn't fit any GA4 standard report
Status: GA4 → BigQuery export is enabled. Daily tables are landing.
Where they overlap
Hotjar vs PostHog. Both record sessions and run surveys. The case for keeping both is the existing Hotjar history and the survey widget. The case for consolidating on PostHog is that it records the designer (where most of our open questions sit), and removing Hotjar saves ~217 ms of CPU and ~63 KB of transfer per pageview. Some thoughts on which way to go would be useful before I invest more setup time in Hotjar.
GA4 vs BigQuery. Same data — GA4 is the friendly UI, BigQuery is the raw export. I use GA4 for day-to-day reporting and BigQuery whenever the UI sampling, thresholding, or report shape gets in the way of the question I'm trying to answer.
GA4/BigQuery vs PostHog (ecommerce). Both track purchases. They disagree, and neither matches the revenue sheet exactly — which is why Sales Coverage exists. The plan is to lean on the revenue sheet as ground truth, use GA4/BigQuery for paid-channel attribution, and use PostHog for funnel + designer behavior.