AnyReplay vs Hotjar
AnyReplay vs Hotjar
How AnyReplay compares with Hotjar: heatmaps and surveys on one side, translated session replay, React Native recording and self-hosting on the other.
Updated · 5 min read
Hotjar is the tool many teams reach for first to see how people use a website: heatmaps, recordings and on-page surveys under one script. AnyReplay is narrower and goes deeper on the replay itself. It records web and React Native sessions, lets a reviewer watch any of them in their own language, and masks in the browser, never recording passwords or payment fields.
If your question is "where do visitors click on the landing page", Hotjar answers it directly. If your question is "what did this Portuguese-speaking user do in the checkout, and can the support agent in Istanbul watch it", that is the problem AnyReplay was built around.
What Hotjar is known for
Hotjar is generally known for click, move and scroll heatmaps, session recordings, feedback widgets and surveys aimed at marketers, designers and product teams. Its strength is breadth: one install gives you a visual summary of a page alongside individual recordings and on-page questions. It is a hosted service with a long track record and a large ecosystem of guides and integrations. For plans and the exact feature list, check their site for current pricing and limits.
Where AnyReplay is different
Any session, any language
Replay shows the interface exactly as the user saw it, which is a problem when users and reviewers do not share a language. AnyReplay translates the recorded event stream on demand, before the player rebuilds the DOM, so seeking, restarting and every later mutation stay translated. Strings are cached per organisation in a translation memory, so the same interface strings are translated once and reused across every session.
React Native as an element tree, not pixels
The React Native SDK records the committed React element tree as semantic elements: what each element is, what it says, and where it ended up on screen. No native module, no rebuild, and it works in Expo Go on SDK 52+. Because the recording is text rather than a screenshot, it is small, it is translatable, and a masked field keeps its box but loses its words. Session replay for React Native covers the limits: videos are boxes and FlatList records only rendered rows.
Masking that runs in the browser
The web SDK masks what visitors type by default; maskAllInputs: false records field values and maskAllTyping: true masks rich-text editors too. Masked values replay as asterisks; the original never leaves the page. Under both sits a floor no option turns off: passwords, payment card fields and card-number-shaped values. type="email" and type="tel" inputs are not on it. ar-mask masks an element's text or a field's value, ar-block keeps it out entirely, and requireConsent: true records nothing until the page grants consent. The full model is on the privacy page.
Replay that cannot run your page's scripts
At record time rrweb replaces script bodies with a placeholder, so your JavaScript never enters the recording. On replay, scripts are rebuilt as <noscript> and the player iframe is sandboxed without allow-scripts. A test fails the build if anyone turns on the one rrweb option that would add it back. This is the sandbox iframe model: a support agent can watch a recording without executing anything the page contained.
A self-hosting path you can actually follow
AnyReplay documents a single-host deployment on Ubuntu 24.04: PostgreSQL, the API, the ingest service and the dashboard as three systemd services behind nginx. The backup script encrypts with gpg on the host before anything is uploaded, runs daily, and a weekly verify timer restores the newest backup into a throwaway database and counts rows. See self-hosted session replay for the reasoning.
Side by side
| AnyReplay | Hotjar | |
|---|---|---|
| Web recording | Yes, rrweb-based; SDK 34.8 KB gzip | Yes, session recordings |
| React Native recording | Yes, semantic element tree; no native module | Check their docs |
| Session translation | On demand, with an organisation translation memory | Check their docs |
| Input masking | Every field masked by default; passwords and payment fields never recorded | Check their docs |
| Replay sandbox | Iframe without allow-scripts; script bodies never recorded | Check their docs |
| Self-hosting | Documented single-host deployment; encrypted, verified backups | Hosted service; check their docs |
| Free tier | Free plan: 1 project, 500 sessions per month | Free plan generally known; check their site for limits |
| Dashboard languages | English, Turkish, German, Spanish, French | Check their docs |
When Hotjar is the better fit
- You want heatmaps. AnyReplay does not build click, move or scroll heatmaps; the heatmap entry explains what they show and what they hide.
- You run on-page surveys or feedback widgets and want them in the same tool as recordings.
- Your users are web-only and your reviewers all read the language the product is written in.
- You want a hosted product with a large integration ecosystem and do not need self-hosting.
When AnyReplay is the better fit
- Your product is used in more languages than your support or product team reads.
- You ship a React Native app and want mobile sessions recorded without a native module, with masking applied on the device.
- Your privacy review asks what is never recorded in any configuration, whether the player can execute page scripts, and whether the data can stay on a server you control.
- Your dashboard users work in Turkish, German, Spanish or French as well as English.
Free plan: one project and 500 sessions a month; see the pricing page.
Frequently asked questions
Does AnyReplay have heatmaps?
No. AnyReplay records and replays individual sessions, flags rage clicks and errors on each chunk, and translates sessions on demand. It does not aggregate clicks into heatmaps. If heatmaps are the main thing you need, Hotjar or Microsoft Clarity are better matches.
Can I run Hotjar and AnyReplay at the same time?
Yes. Both SDKs record independently, so you can keep Hotjar for heatmaps and surveys while using AnyReplay for translated replay. The AnyReplay browser SDK is 34.8 KB gzipped and CI enforces a 45 KB budget.
Is there a free tier?
AnyReplay has a Free plan with 1 project and 500 sessions per month; see the pricing page for anything beyond that. Hotjar is generally known to offer a free plan; check their site for current limits.
Does AnyReplay record native iOS or Android apps?
Not yet. AnyReplay records web sessions and React Native apps. A fully native Swift or Kotlin app needs a different tool.
Comparing more than two tools? Hotjar alternatives sets Hotjar next to Microsoft Clarity, Mouseflow, FullStory, PostHog and Smartlook, including what each does better than AnyReplay.
Hotjar is a trademark of its owner. AnyReplay is not affiliated with or endorsed by it. Feature descriptions are general and may be out of date; check their site for current details.