Rachel Bloom
Behavioural analytics · Admin access only
Email
Password
🔒 Restricted to saul@rachelbloom.com
Lens
Overview
Live behavioural data from rachelbloom.com
Total Sessions
unique visits
Total Events
clicks, scrolls, exits
Mobile Split
of all sessions
Avg Scroll Depth
across all pages
Top Pages
Loading…
Scroll Depth by Page
Loading…
Device Breakdown
Loading…
Top Exit Points
Loading…
Rage Clicks
Loading…
Heatmaps
Click and scroll density across your pages
Clicks
Scroll
Rage
Click Heatmap
Low
High
Most Clicked Elements
Loading…
Scroll Depth Distribution
Loading…
Sessions
Every visitor session recorded on rachelbloom.com
Session
Device
Browser
Pages
Entry Page
Time
Loading…
Funnels
Conversion paths and drop-off analysis
Loading…
Surveys
On-site feedback and NPS
Loading…
Playbook
How Lens works — reference guide for everything in this dashboard
How data gets here

A lightweight tracking script runs on every page of rachelbloom.com (injected into theme.liquid). It captures visitor behaviour silently in the background and sends batches of events to Supabase every 5 seconds. No cookies. No personal data. Checkout pages are never recorded.

Your own IP address (184.58.10.20) is blocked server-side so your own browsing never pollutes the data.

📊 Overview

Your top-level dashboard. Shows sessions, events, mobile/desktop split and average scroll depth across all pages. Use the date filter to compare periods. Top Pages ranks by pageviews. Top Exit Points shows where people leave — high exits on a product page is a red flag. Rage Clicks means someone clicked the same spot 3+ times in under 600ms — usually a broken element.

🔥 Heatmaps

Shows where visitors click on each page. Search for a page using the search box — it lists all pages ranked by traffic. Select Clicks to see a heat overlay of where people tap/click. Scroll type shows scroll depth distribution as a bar chart. Rage highlights frustration points. Most Clicked Elements ranks what got clicked most.

Note: heatmap dots appear once there is click data. Scroll data populates the Scroll Depth Distribution panel regardless.

👁 Sessions

Every visitor session recorded on rachelbloom.com. Each row is one visit — click any row to expand the full event timeline: every click, scroll milestone, form interaction and exit in chronological order. Filter by device type or date. Sessions expire after 30 minutes of inactivity.

▽ Funnels

Tracks how visitors move through your conversion paths. Two funnels are pre-built: Main Conversion (Homepage → Collection → Product → Cart → Checkout) and Email Capture (Visit → Exit intent shown → Survey response). Each step shows how many sessions made it through and the drop-off percentage. High drop between Product and Cart = your PDP needs work.

💬 Surveys

Create on-site micro surveys that appear to real visitors as a small overlay in the bottom-right corner. Four trigger types:

  • Exit intent — fires when mouse moves to close the tab
  • Time delay — fires after N seconds on page
  • Scroll depth — fires when visitor reaches N% scroll
  • Page match — fires on specific pages only

Three response types: open text, multiple choice, NPS (0-10). Email responses are automatically pushed to Klaviyo. NPS responses show a score breakdown with detractor/passive/promoter split.

⚙ Technical notes

Data freshness: Events appear in Sessions and Overview within seconds. Heatmap aggregates are rebuilt nightly at 1am UTC by the lens-aggregate cron. Raw events always populate click elements and scroll distribution immediately.

Data retention: Raw events and sessions are automatically deleted after 90 days by the same nightly cron. Heatmap aggregates are kept indefinitely.

Session recordings: Mouse movements, clicks and scrolls are stored as JSON chunks in the lens-recordings Supabase storage bucket. Replay UI coming in a future sprint.

Edge functions powering Lens
FunctionWhat it doesWhen it runs
lens-collectReceives batched events from the tracking script, writes to lens_sessions + lens_events, matches funnel stepsEvery 5 seconds per active visitor
lens-recordReceives mouse/click/scroll replay chunks, stores to lens-recordings bucketEvery 4 seconds per active visitor
lens-aggregateRolls up raw click events into heatmap buckets, cleans up 90-day-old dataNightly 1am UTC
lens-survey-responseSaves survey responses, pushes email responses to Klaviyo, logs funnel stepOn survey submission