Stop saying "I can't replicate it."

Save any app state.
Restore it instantly.

Stop wasting hours reproducing bugs. Save your exact iOS Simulator state — auth, data, network — and share it with one file. Any teammate restores it in seconds. No setup required

Watch how it works
Replicate
Cart · 3 items
Saved 2 min ago · v2.4.1 · iPhone 15 Pro · iOS 17.2
Device state
Container + network tape
Recorded requests
12 responses saved
Bundle ID
com.acme.shopapp
Snapshot size
3.2 MB
Network tape · request rules
GET /api/v2/cart/items inject
GET /api/v2/user/profile pass
POST /api/v2/cart/promo inject
GET /api/v2/products/recommendations inject
The most expensive sentence in software
"I can't
replicate it."
QA finds a bug, sends a Loom, writes a doc. The developer still cannot see it. Replicate fixes that.
How teams use it
Replicate becomes
part of the workfow.
QA records the exact moment — app state, network, login, and drops a .replica in Slack. The developer restores it in one click.
Full session recording
See exactly what
happened.
Every network call from that session is recorded. See the exact request that caused the 500. No guessing, no back-and-forth. Play with the network tape to see how Replicate handles different scenarios. See the details and edit request/response.
Portable by design
One file.
The whole picture.
Drop it in Slack. Commit it to the repo. No more "works on my machine."
01 — QA captures the bug
02 — Developer restores instantly
03 — See what happened
04 — Share the .replica
01 — QA captures the bug
QA
Sarah · QA
Checkout fails after adding a promo code when cart already has 3 items.
D
Dev
Can't reproduce it. Which device? Which user? Which promo?
QA
Sarah · QA
Replicated it for you. Check Slack.
checkout-bug-promo.replica · 3.1 MB
02 — Developer restores instantly
checkout-bug-promo
from Sarah · iPhone 15 Pro · iOS 17.4
cart bug promo
post-onboarding · new user
Yesterday
auth
empty state
3 days ago
03 — Network tape · request rules
GET /v4/cart/items inject
POST /v4/cart/promo inject
POST /v2/checkout/confirm 500
GET /v3/auth/check-session pass
📦
checkout-bug-promo.replica
3.1 MB · shared via Slack
shared
App state
container.zip
Network tape
9 requests
Login state
keystore.json
Device
iPhone 15 Pro
The most expensive sentence in software
"I can't replicate it."
QA finds a bug, sends a Loom, writes a doc. The developer still cannot see it. Replicate fixes that.
How teams use it
Replicate becomes a team verb.
QA records the exact moment — app state, network, login, and drops a .replica in Slack.
Full session recording
See exactly what happened.
Every network call is recorded. See the exact request that caused the 500. No guessing.
Portable by design
One file. The whole picture.
Drop it in Slack. Commit it to the repo. No more "works on my machine."
01 — QA captures the bug
QA
Sarah · QA
Checkout fails after adding a promo code when cart already has 3 items.
D
Dev
Can't reproduce it. Which device? Which user?
QA
Sarah · QA
Replicated it for you. Check Slack.
checkout-bug-promo.replica · 3.1 MB
02 — Developer restores instantly
checkout-bug-promo
from Sarah · iPhone 15 Pro
cart bug promo
post-onboarding · new user
Yesterday
auth
empty state
3 days ago
03 — Network tape · request rules
GET /v4/cart/items inject
POST /v4/cart/promo inject
POST /v2/checkout/confirm 500
GET /v3/auth/check-session pass
📦
checkout-bug-promo.replica
3.1 MB · shared
shared
App state
container.zip
Network tape
9 requests
Login state
keystore.json
Device
iPhone 15 Pro

Built for iOS developers
who test the same
flows fifty times a day.

🔀

Selective data injection

Not all-or-nothing. Set rules per request: inject saved data for some endpoints, pass through to the real server for others. Auth requests hit the real server. Cart data comes from your snapshot. Your call.

# request rules in your snapshot

GET /api/cart/items → inject # saved 3-item cart
GET /api/user/profile → pass # real server
POST /api/auth/login → pass # real server
POST /api/orders/create → block # no real orders
GET /api/products/recs → inject # saved recs
📦

Portable .replica files

Every snapshot exports as a single .replica file. Drop it in Slack. Commit it to your repo. Anyone with Replicate can restore it in seconds.

No app changes needed

Replicate works entirely at the network and filesystem level. No SDK to install, no code to modify. Works with any iOS app, any framework.

Four moments where
Replicate saves the day.

Every team has these moments. Replicate fixes them.

Bug reproduction

The bug QA can see but you can't

QA finds a crash in a logged-in state with specific cart contents after a promo code. Your 10-step repro guide never works on the developer's machine. With Replicate, QA drops a .replica in Slack. Developer restores it in one click and is looking at the exact same screen.

Before: "Which device? Which user? Which promo?"

After: checkout-bug-promo.replica dropped in #bugs · restored in 4 seconds
Edge case testing

States that are painful to set up

The payment error screen. The empty state for a brand new user. The onboarding flow right after step 3. Setting these up manually every time costs minutes you don't have. Snapshot them once and restore in seconds, every time.

Saved states:
· empty-state-new-user.replica
· payment-error-declined.replica
· onboarding-step-3.replica
· cart-3-items-promo.replica
Design review

Show design the real thing, not a screenshot

Designer wants to review a component in a specific data state — full cart, empty feed, error banner. Instead of a static screenshot, share a .replica. Designer restores it, taps around, sees the real thing on the real simulator.

Designer opens Slack:

"premium-user-dashboard.replica — can you check the header spacing when the name is long?"
Zero-setup sharing

Anyone can open the app — no environment needed

Send a .replica alongside your app bundle to someone who has never set up Flutter, React Native, or any dev tooling. They open it in iOS Simulator and the app is running — already logged in, already in the exact state you wanted to show. PMs, designers, clients. No Xcode knowledge required beyond running a simulator.

What they need: a Mac with Xcode installed

What they don't need: Flutter, React Native, Node, CocoaPods, a test account, or staging credentials

Works with your stack.

Flutter and React Native are fully supported today. Swift and web support are coming.

Available

Flutter

Full support — container snapshots, network tape, and keychain capture via Dart HTTP override.

via replicate_interceptor
View on pub.dev
Available

React Native

Full support — XHR-level interception covers fetch, axios, and all XHR-based libraries automatically.

via replicate-interceptor-rn
View on npm
Coming soon

Swift / UIKit / SwiftUI

Native Swift support coming. A lightweight Swift package will handle URLSession interception — no proxy, no certificate installation.

via replicate-interceptor-swift
Coming soon

Web

Browser-based app support coming. Intercept and record network calls from web apps running in the iOS Simulator.

browser interception

Start free. Upgrade when ready.
Save 45% with annual billing.

No credit card required to get started.

Free
Free
No credit card required
  • Container snapshots
  • .replica export & import
  • Up to 3 snapshots
  • Network tape recording
  • Per-request inject / block
  • Secure storage capture
Monthly
$ 14 .99
per month
 
  • Container snapshots
  • .replica export & import
  • Unlimited snapshots
  • Network tape recording
  • Per-request inject / block
  • Secure storage capture
  • All future updates

7-day free trial · Cancel anytime

Replicate — Demo