Hotjar
A weekend of work, and real gaps remain.
Watches what visitors do on a page: records sessions, draws heatmaps of clicks and scroll depth, and asks them a question in a pop-up survey.
Build me click and scroll heatmaps for my own site, plus a small on-page survey. Skip session replay. STACK - A vanilla JS collector under 4KB gzipped, no dependencies - Node with Fastify, Postgres for storage - Server-rendered dashboard THE COLLECTOR - Record: click coordinates relative to the nearest element with a stable selector, not to the page - Record: maximum scroll depth as a percentage, sampled on unload - Batch and send with sendBeacon; never block navigation - Honour Do Not Track and a cookie-free first-party id that expires with the tab WHY RELATIVE COORDINATES MATTER - A page at 1440px and the same page at 375px are different layouts; absolute x,y averaged across both is noise - Store selector plus offset within the element, then reconstruct per breakpoint bucket THE HEATMAP - Render on top of a screenshot the server takes itself with Playwright, at three widths - Draw clicks as a density canvas, scroll depth as a horizontal band chart - Say how many sessions the map is built from, and refuse to draw one under fifty THE SURVEY - One question, shown after a rule: time on page, scroll depth, or exit intent - Answers stored append-only with the page and the breakpoint - Never show it twice to the same visitor PRIVACY, WHICH IS THE WHOLE RISK HERE - No text content is ever captured, only geometry - No IP stored; a country derived from it at most Include a README on the storage cost per million clicks and how to regenerate the screenshots when the design changes.
What you lose
- Session replay that survives single-page apps, shadow DOM and lazy-loaded content
- Automatic masking of inputs, so recordings do not quietly become a database of typed passwords
- Heatmaps aggregated across viewport sizes rather than one screenshot with dots on it
- Storage and playback of thousands of sessions without you paying for the bandwidth
- On-page surveys with targeting rules and a response dashboard
If you would rather not build
- Microsoft Clarity — free, closest paid-feature parity, with its own tracking
- FullStory — paid, replay and analytics for larger teams
The escape hatch
open source · no votes, no paid placement
OpenReplay
$0Session replay and DOM recording, self-hosted so the video never leaves your servers.
openreplay/openreplayfree · open source
PostHog
$0Product analytics, session replay and flags in one self-hostable stack.
PostHog/posthogfree · open source
Why this verdict
our own opinion · changed only by a person
52/100
Verdict kinda at 52: heatmaps and a one-question survey are a genuine weekend, and the relative-coordinate trick is the only hard idea in it. Session replay is the other half of the product and is a much larger build with a much larger privacy surface — the prompt deliberately leaves it out.
History
tracked since 9 Aug 2026 · nothing is ever overwritten
Questions about Hotjar
answered from the record above
Is Hotjar free?
No — the plan we track is $39 a month. Observe Plus around $39/month billed annually for 100 daily sessions; recordings and heatmaps are priced separately by volume.
Can you replace Hotjar by building your own?
ALMOST. A weekend of work, and real gaps remain. Replacement score 52 out of 100, build time a weekend. Read what you lose before you decide.
How much does Hotjar cost?
$39 a month on Observe Plus — $468 a year. Recorded 9 Aug 2026.
What do you lose by replacing Hotjar?
Session replay that survives single-page apps, shadow DOM and lazy-loaded content; Automatic masking of inputs, so recordings do not quietly become a database of typed passwords; Heatmaps aggregated across viewport sizes rather than one screenshot with dots on it; Storage and playback of thousands of sessions without you paying for the bandwidth; On-page surveys with targeting rules and a response dashboard. If any of those carry weight for you, keep paying.
Is there an open-source alternative to Hotjar?
Yes: OpenReplay, PostHog. The prompt on this page is for when you want it your way instead.
Related entries
same category first, most replaced first
Every week, something stops being worth paying for.
New verdicts, prices that moved, entries added. One email a week. Unsubscribe in one click.
free forever · no tracking pixel · every prompt stays free on the site