Skip to main content

Feature

Heatmaps Built From Real Sessions

Click density, scroll depth, frustration density. Every cell is a session you can replay. No approximations, no statistical hand-waving.

Why teams pick this

Click density

Where users actually click, scoped to the live DOM — not pixel coordinates that go stale the moment your layout changes.

Frustration overlay

Rage clicks, dead clicks, hesitation pauses, and rapid scroll-back are aggregated into a frustration heatmap. Click any hot zone to replay the worst session.

Segment filters

Slice heatmaps by browser, device, plan tier, A/B variant, or any custom property you've set on the user. Compare segments side-by-side.

Click-through to replay

Every hot zone is a list of the underlying sessions. Click to open the replay at the exact frame where the click happened.

How it works

  1. 1

    Sessions accumulate

    No additional setup beyond installing Relyv. Heatmaps populate as soon as enough sessions exist (default minimum: 50 per page).

  2. 2

    Aggregator builds the heatmap

    A nightly batch (or real-time on Pro+) aggregates clicks, scrolls, and frustration signals against the page's current DOM. Layouts change → heatmaps refresh.

  3. 3

    Filter by segment

    Pick the cohort you care about — Chrome users on mobile, Pro-tier customers, A/B variant B. The heatmap rerenders in under a second.

  4. 4

    Click any cell to replay

    Every hot cell links to the underlying sessions. Pick one, watch what happened, fix the bug — in 30 seconds, not 30 minutes.

Under the hood

How aggregation works

We don't aggregate against pixel coordinates — those break the moment a designer adds a sidebar. Instead, every click is bound to the nearest stable DOM ancestor (with a stable selector chosen the same way our test-generator picks them). Heatmaps redraw against the current DOM, so they survive design changes.

Frustration scoring

A click is "frustrated" when it's followed by another click on the same target within 800 ms (rage), or when no measurable side effect happens within 2 s (dead). Hesitation pauses (>4 s without movement after a hover) and rapid scroll-back also feed into a per-element frustration score.

Privacy and minimum-cohort

Heatmaps require a minimum cohort size (default 5, configurable) before any cell is rendered. Below that, the cell is omitted to prevent re-identification of single users. The minimum-cohort policy is enforced server-side and audit-logged.

Frequently asked

How is this different from "traditional" heatmap tools?

Traditional tools (Hotjar, FullStory) use pixel-coordinate aggregation, which breaks when layouts change. Relyv binds every click to the DOM, so heatmaps survive a redesign without losing data. Plus every cell is a portal back to the underlying replay.

How many sessions do I need before heatmaps are useful?

Default minimum cohort: 50 sessions per page. You can lower it to 5 (still privacy-safe) for low-traffic pages, but the heatmap signal gets noisier below 50.

Do heatmaps work on dynamic / SPA pages?

Yes. Each route inside your SPA gets its own heatmap. Server-side rendered pages, client-side rendered pages, and hydrated pages are all supported. Modal interiors are heatmapped separately from their parent page.

How does this work on mobile?

Mobile heatmaps capture taps (mapped to clicks), pinch-zoom regions, and scroll velocity. Frustration signals on mobile include rage taps, bounce-back scrolls, and unintentional pull-to-refresh triggers.

Can I generate heatmaps retroactively for old sessions?

Yes. Up to your tier's retention window (Free 7d, Starter 30d, Pro 90d, Business 1y). Older sessions can be retained on Enterprise with a custom retention agreement.

How does mobile heatmap capture handle pen / stylus input?

The Wave-7 capture stack includes a PointerEvent recorder that captures pen pressure + tiltX + tiltY for stylus input. Stylus taps render as a distinct heatmap layer from touch taps, with pressure as a visual weight — useful for drawing apps, signature flows, and tablet-first products.

Are heatmaps queryable by AI agents?

Yes. Relyv is MCP-native — Claude, Cursor, and Continue call get_session_intelligence as a tool, query frustration scores + workspace heatmap aggregates by page or selector, and receive structured data back. Useful for agents that triage "which feature has the most user frustration this week".

Ready to try it?

Click density, scroll depth, frustration density. Every cell is a session you can replay. No approximations, no statistical hand-waving.