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
| AnyReplay | OpenReplay | |
|---|---|---|
| Web recording | Yes, rrweb-based; SDK 34.8 KB gzip | Yes, with developer tools |
| React Native recording | Yes, semantic element tree; no native module | Mobile SDKs generally known; 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 | Yes, open source and self-hostable; check their docs for requirements |
| Free tier | Free plan: 1 project, 500 sessions per month | Open-source self-hosting is generally known to be available; check their site for hosted plans |
| Dashboard languages | English, Turkish, German, Spanish, French | Check 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.