Skip to content

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

AnyReplayHotjar
Web recordingYes, rrweb-based; SDK 34.8 KB gzipYes, session recordings
React Native recordingYes, semantic element tree; no native moduleCheck their docs
Session translationOn demand, with an organisation translation memoryCheck their docs
Input maskingEvery field masked by default; passwords and payment fields never recordedCheck their docs
Replay sandboxIframe without allow-scripts; script bodies never recordedCheck their docs
Self-hostingDocumented single-host deployment; encrypted, verified backupsHosted service; check their docs
Free tierFree plan: 1 project, 500 sessions per monthFree plan generally known; check their site for limits
Dashboard languagesEnglish, Turkish, German, Spanish, FrenchCheck 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.

Start free — 1 project, 500 sessions a month

Install the snippet, record a session, and watch it back in your own language.