Skip to content

AnyReplay vs Smartlook

AnyReplay vs Smartlook

AnyReplay and Smartlook compared: web and native mobile recording versus React Native element-tree recording, translated replay and a documented self-host path.

Updated · 5 min read

Smartlook is generally known for recording both websites and native mobile apps, and for pairing those recordings with events and funnels so a team can see what happened and how often. AnyReplay covers web and React Native, and puts its effort into things Smartlook is not known for: translated replay, an element-tree recorder for React Native that never takes a screenshot, masking applied before anything leaves, and a documented self-hosting path.

If your mobile app is written in Swift or Kotlin, this comparison is short: AnyReplay does not record it yet. If it is React Native or Flutter, or you have web users in more languages than your team reads, read on.

What Smartlook is known for

Smartlook is generally known for session recordings across web and native mobile platforms, with heatmaps, event tracking and funnels layered on top so that recordings can be found by the behaviour they contain. It is a hosted service aimed at product and marketing teams. For the platforms currently supported, plan structure and limits, check their site for current pricing and limits.

Where AnyReplay is different

Mobile recording as an element tree, not pixels

Screenshot-based mobile recording captures whatever was on screen, which is faithful but heavy and opaque: the text in the frame is just pixels. AnyReplay's React Native SDK instead reads the tree React has committed and notes, for each host element, what it is and what it says, then measures where it sits on screen. The React Native element tree entry describes the format. A first frame of a screen is a few kilobytes, later frames carry only what changed, and an idle screen sends nothing.

What that makes possible

Because frames are text, they can be translated the same way web sessions are, and masking can be exact: anything with secureTextEntry or an ar-mask testID is masked on the device before it leaves, and every TextInput is masked by default, each keeping its box and losing its words. No native module or rebuild; the SDK works in Expo Go on SDK 52+. Costs: videos are boxes, FlatList records only rendered rows, and custom native components are unknown boxes. Session replay for React Native walks through the trade-offs.

Translation with an organisation-wide memory

AnyReplay translates the rrweb event stream, and the equivalent React Native frames, before replay. Strings are extracted with their role and cached in a translation memory keyed on organisation, target language and source hash; after a handful of sessions nearly every interface string is already known. Glossary terms, up to 200, override the model, and human corrections are never sent to a model again.

Masking before anything leaves, on both platforms

The web SDK masks typing by default; maskAllInputs: false records it, maskAllTyping: true masks rich-text editors too, ar-mask masks an element's text or a field's value, ar-block leaves an element out, and requireConsent: true records nothing until the page grants consent. Passwords, payment card fields and card-number-shaped values are never recorded; email and tel inputs follow maskAllInputs. The mobile SDK behaves the same way: maskAllInputs is on by default there too, and the same credential and payment floor applies. Masked values replay as asterisks and the originals never leave the device or the page. The privacy page and the guide to masking sensitive data cover the details.

Self-hosting and a script-free player

The documented single-host deployment runs PostgreSQL, the API, ingest and the dashboard behind nginx on Ubuntu 24.04, with gpg-encrypted backups and a weekly restore-and-count check. The player iframe is sandboxed without allow-scripts, script bodies are replaced with a placeholder at record time, and a test keeps it that way.

Side by side

AnyReplaySmartlook
Web recordingYes, rrweb-based; SDK 34.8 KB gzipYes
React Native recordingYes, semantic element tree; no native moduleNative and cross-platform mobile SDKs are generally known to exist; check 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 monthCheck their site for current plans
Dashboard languagesEnglish, Turkish, German, Spanish, FrenchCheck their docs

When Smartlook is the better fit

  • Your mobile app is native iOS or Android, or built with .NET MAUI. AnyReplay has no SDK for those yet.
  • You want events, funnels and heatmaps alongside recordings in one hosted product.
  • Pixel-accurate mobile recordings matter more than small, translatable frames; a wireframe with real text is not a screenshot.
  • You do not need self-hosting or translation and want the broader analytics feature set.

When AnyReplay is the better fit

  • Your app is React Native and you want a recorder with no native module that runs in Expo Go (SDK 52+) and masks on the device.
  • Your support or QA team reviews sessions from users who write in languages the team does not read.
  • You need the data on infrastructure you control, with an audit trail and configurable retention.
  • Your dashboard users prefer Turkish, German, Spanish or French. See the mobile app teams use case.

Free plan: one project and 500 sessions a month; see the pricing page.

Frequently asked questions

Does AnyReplay record native iOS or Android apps?

Not yet. AnyReplay records websites and React Native, Flutter, Ionic, Cordova and Electron apps, with a Tauri package in preview. For a Swift or Kotlin app today, Smartlook or another tool with those SDKs is the right choice.

Do React Native recordings look like the real app?

They are a wireframe with real text and layout, not a screenshot: maps and videos are labelled boxes, custom native components are unknown boxes, and FlatList records only rendered rows. In return, frames are small, masked on the device and translatable.

How does the React Native SDK handle navigation?

It exposes screen(name) to name the current screen and trackNavigation(ref) for react-navigation, plus identify, consent, flush and getSessionId. Pass it AsyncStorage as the storage option to recognise a returning visitor.

Is there a free tier?

AnyReplay has a Free plan with 1 project and 500 sessions per month. Smartlook's current plans are on their site.

Choosing for a React Native app? React Native session replay tools compares screenshot-based and element-tree recording across the tools mobile teams usually consider.

Smartlook 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.