Skip to content

AnyReplay vs OpenReplay

AnyReplay vs OpenReplay

AnyReplay and OpenReplay compared: two self-hostable replay tools, one built around developer tools, the other around translation and React Native recording.

Updated · 5 min read

OpenReplay is generally known as an open-source session replay tool you run on your own infrastructure, with a developer-tools flavour: network, console and state alongside the recording. AnyReplay shares the belief that recordings should live on a server you control, and adds things OpenReplay is not known for: on-demand translation of the recorded interface and React Native recording as an element tree.

Both are honest choices for a team that will not send recordings to a third party. The difference is what you want from the recording once it is on your disk: a debugger, or a session any reviewer can read.

What OpenReplay is known for

OpenReplay is generally known for being open source and self-hostable, for developer-oriented debugging that puts network requests, console output and application state next to the replay, and for a community around the project. A hosted option is also generally known to exist. For deployment requirements, licence terms, plans and limits, check their site for current pricing and limits.

Where AnyReplay is different

A deployment you can describe in one paragraph

AnyReplay's self-hosting guide targets one Ubuntu 24.04 host: PostgreSQL, the API (NestJS), ingest (Fastify) and the dashboard (Next.js) as three systemd services behind nginx, with Cloudflare in front and recordings on disk under /var/lib/anyreplay/storage. Self-hosted session replay explains the layout; check OpenReplay's docs for their own requirements.

Backups that are verified, not assumed

deploy/backup.sh dumps the database and the chunk store, encrypts with gpg on the host before anything is uploaded, and ships to a bucket via rclone. A daily timer runs at 03:20 UTC and a weekly timer on Sundays at 04:10 UTC restores the newest backup into a throwaway database and counts rows. Storage and the database are the only things that cannot be rebuilt from the repository, so those are what the script protects.

Translation instead of dev tools

AnyReplay does not capture network bodies or console output. Instead it translates the rrweb event stream before replay, so headings, buttons, labels, placeholders and aria attributes are rendered in the reviewer's language and stay that way through seeks and mutations. A per-organisation translation memory means repeated interface strings are translated once, up to 200 glossary terms override the model, and human corrections are never resent.

React Native as semantic elements

The React Native SDK records the committed element tree rather than screenshots, with no native module or rebuild, and works in Expo Go on SDK 52+. Each host element is recorded as what it is, what it says and where it was measured; anything with secureTextEntry or an ar-mask testID is masked on the device; every TextInput is masked unless you set maskAllInputs: false. Videos are boxes, FlatList records only rendered rows, custom native components are unknown boxes.

The player cannot execute the page

rrweb replaces script bodies with a placeholder at record time; on replay scripts are rebuilt as <noscript> and the player iframe is sandboxed without allow-scripts, verified in a real browser as sandbox="allow-same-origin". A test fails the build if that changes. The sandbox iframe and content security policy entries cover how this fits a strict CSP.

The privacy model

Typing is masked unless you set maskAllInputs: false, and maskAllTyping: true masks rich-text editors too; masked values become asterisks and never leave the page. Passwords, payment fields and card-number-shaped values are never recorded; email and tel inputs follow maskAllInputs. The project key is public by design and the server-side Origin allow-list is the real access control. Consent gating, a 14-day default retention, an append-only audit trail and a tested role matrix are described on the privacy page.

Side by side

AnyReplayOpenReplay
Web recordingYes, rrweb-based; SDK 34.8 KB gzipYes, with developer tools
React Native recordingYes, semantic element tree; no native moduleMobile SDKs generally known; 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 backupsYes, open source and self-hostable; check their docs for requirements
Free tierFree plan: 1 project, 500 sessions per monthOpen-source self-hosting is generally known to be available; check their site for hosted plans
Dashboard languagesEnglish, Turkish, German, Spanish, FrenchCheck their docs

When OpenReplay is the better fit

  • You want network, console and state alongside the replay, and the recording is primarily a debugging artefact.
  • An open-source licence and a community around the project are requirements, not preferences.
  • You are comfortable running a larger self-hosted stack and want the feature set that comes with it.
  • You need native iOS or Android SDKs. AnyReplay has none yet; it records web and React Native.

When AnyReplay is the better fit

  • Reviewers and users do not share a language and you need the session readable.
  • You want a self-hosted deployment that fits on one host, with backups that are encrypted before upload and verified every week.
  • You ship a React Native app and want small, semantic, masked frames without a native module.
  • Compliance asks what is never recorded in any configuration, whether the player can run page scripts, and who changed which permission when. See the fintech compliance use case.

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

Frequently asked questions

Does AnyReplay capture network requests and console logs like OpenReplay?

No. AnyReplay records the DOM and interactions and flags each chunk with hasError, hasRageClick and pageCount. It does not provide a network or console timeline.

How much infrastructure does AnyReplay self-hosting need?

One host running PostgreSQL and three Node services (API, ingest, dashboard) behind nginx, plus a bucket for encrypted backups via rclone. Node 20.19 or later and pnpm 10 are required.

How do I know the backups work?

A weekly timer restores the newest backup into a throwaway database and counts rows. If the count is wrong you find out on Sunday, not on the day you need the backup.

Is there a free tier?

AnyReplay has a Free plan with 1 project and 500 sessions per month. For OpenReplay's hosted plans and limits, check their site.

For the wider field, open-source and self-hosted session replay tools sets OpenReplay next to rrweb, PostHog, Sentry and Matomo, and is explicit that AnyReplay's SDKs are open source while its platform is not.

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