The product
One platform for every signal a visitor leaves behind
Sessions, replay, lead recovery, heatmaps and funnels — pulled from a single capture pipeline so every module agrees on what happened.
01 · The tracker
10 KB. Async. Fail-silent.
A vanilla TS snippet with zero deps. Loaded async, designed not to block render, and wrapped in try/catch so host pages stay protected. CDN-cached forever — the site key lives in the URL, so the body is identical for every customer.
- Passive scroll listeners plus guarded click, form, and viewport listeners
- Throttled scroll (250 ms), debounced form input (1.2 s)
- Batched events, beacon on pagehide
- Strips sensitive query params (token, auth, sig, code) before send
Bundle
< 10 KB
Deps
0
Blocks
never
02 · Sessions
Each tracked visit, as a story
Each tracked visitor turns into a session row with landing page, event timeline, device context, and a one-click jump into replay. Filter by intent, segment, or any UTM combo.
- Country and city when proxy geo headers are available
- Form interaction + submission flags surface intent
- Real-time live counter — see who is on the site right now
- Saved segments and shareable filter URLs
03 · Session replay
Watch the visit, not just the event log
Powered by rrweb, lazy-loaded after first idle so the customer page stays out of the critical path. Replays show cursor movement, scroll, and workspace-configured form input capture — including where the visitor bailed.
- rrweb-based, lazy-loaded (~25 KB gzipped)
- New self-serve accounts start with all inputs masked by default
- Skips inactive periods automatically
- Direct links from any session row
Visitor
Country
🇮🇳 Mumbai, IN
Device
Chrome · macOS
Status
typed04 · Lead recovery
Catch the half-typed lead
Form drafts are captured as they happen — name, email, phone, company, message — and assembled into a single recovery dashboard. Reach out before the visitor cools off.
- Status precedence: draft → submit_attempted → submitted
- Drafts merge across sessions, never lost on refresh
- Per-field metrics: time on field, deletes, abandonment
- Actionable recovery queue tied back to replay
- S
Sarah K.
sarah@brightlab.io
stuck on message
2m ago
- M
Mike R.
mike@northforge.co
stuck on budget
14m ago
- A
Anna S.
anna@kelvinco.de
stuck on phone
38m ago
- D
Diego T.
diego@vertice.mx
stuck on company
1h ago
- Y
Yuki M.
yuki@harbour.jp
stuck on message
2h ago
05 · Heatmaps
See where the eyes go
Click and scroll heatmaps per page, normalized by viewport so mobile and desktop heatmaps are comparable. No screenshots — overlaid live on the page snapshot we already capture.
- Click density per normalized URL
- Scroll depth distribution
- Mobile + desktop comparable
- Auto-aggregated, no setup
06 · Funnels
Define the journey, watch it light up
Define a 3-to-7-step funnel using URL or event matching. Funnel runs are computed from existing session data — no events to instrument, no deploy to wait for.
- Template-driven or custom step builder, no SDK changes
- Backfilled from your existing sessions
- Drop-off at every step, with replay links
- Edit, rerun, and compare funnel definitions over time
Biggest leak: Signup started → Activated. 62% drop. Watch 17 replays of this step.
07 · Teams
One install, many sites, many teams
A super admin creates orgs. Each org gets its own admins and members, with role-scoped access to sites, sessions, and recovery. Perfect for agencies and multi-brand marketing teams.
- super_admin / admin / member roles
- Per-org sites with isolated public keys
- Origin-checked collector — site A traffic stays in site A
- Audit-friendly multi-tenant DB schema
Workspaces
Acme Co.
3 sites · 5 members
Beta Inc.
1 sites · 2 members
Gamma LLC
5 sites · 8 members
Acme Co. members
5 total- AAmitsuper_adminnow
- PPriyaadmin4m
- RRohanadmin1h
- MMayamember1d
- KKunalmember3d
Want to see it on real traffic?
Drop the snippet in, run a session, watch it replay.