Broken buttons, crashes and slow screens quietly cost you customers. Riveora finds each one, puts a price on it, and confirms when your fix has worked.
Google Pixel 8 · Android 14 · German · Berlin · 9 visits · 22m in app
The free-shipping banner looks like a button, but nothing happens. 64% of people on Home tap it.
Built for the React Native ecosystem
Most people who hit a broken button don’t complain. They close the app and never come back. Dashboards count them. Riveora tells you why they left and what it cost.
Crashes, failed requests, rage taps, buttons that do nothing, slow screens, forms people give up on. Riveora finds them, compares visits that hit each problem with visits that didn’t, and puts a price on the difference.
Every event carries your app version, so each problem shows how many people hit it on every release. Riveora tells you whether the newest version fixed it, improved it, or still has it.
Riveora compares the first visit of people who bought with everyone else’s: the screens they opened and the buttons they tapped. Then it shows when your paywall converts best.
Riveora captures every interaction on its own, so behind each problem there are real visits you can open and screens you can inspect.
Install once and every interaction arrives labeled: “Add to cart”, “Checkout”, “Save to favourites”. Riveora reads the name from your own UI, so there’s no event list to plan, write or keep up to date.
Open any user and see exactly what happened: every screen in order, how long they stayed, every button they tapped, and the moment something went wrong.
For every screen: a map of where fingers land, which buttons people use and which they ignore, how long they stay, where they came from and where they go next.
When something feels broken, people don’t file a bug report. They leave. Riveora picks up the signals for you, on the exact screen, with the people affected and what it costs.
Three or more fast taps on the same spot. A button that’s slow, broken or silent.
People tapping images, labels or banners they expect to work. Free design feedback.
JavaScript errors caught automatically, with the screen and the visit that led there.
See how many new users finish onboarding and the step where the rest give up.
Learn whether people read your offer or close it in two seconds, per paywall.
Slow screens, failed requests, people going in circles and forms they never finish.
Install one package and wrap your app. Every screen, tap and crash is tracked from there.
Plain JavaScript, so it works in Expo Go. One rebuild of your development build turns on screen pictures.
Add the provider and the tracker for Expo Router or React Navigation.
Use your app and watch screens, taps and journeys arrive within seconds.
import { RiveoraProvider } from '@riveora/react-native'; import { ExpoRouterTracker } from '@riveora/react-native/expo-router'; export default function RootLayout() { return ( <RiveoraProvider projectKey="pk_your_key" consent="granted"> {/* every screen, tap and crash: tracked */} <ExpoRouterTracker /> <Stack /> </RiveoraProvider> ); }
Pay for what your app sends, with no limit on users or team members. Every plan starts with a 14-day free trial, and the trial doesn’t start until real people use your app.
For new apps getting their first users.
$84 billed yearly + VAT may apply
Start free trialAbout 250–1,400 monthly users
For growing apps, or more than one app.
$180 billed yearly + VAT may apply
About 5,000–29,000 monthly users
More than 1M events a month, single sign-on or your own servers? Talk to us
How many events does your app send each month?
About 250–1,400 monthly users
Includes up to 50K events a month, $84 billed yearly + VAT may apply. Free for the first 14 days.
Start free trialThe 14-day trial starts when your app’s first real users arrive, so a quick setup and test on your own phone doesn’t use it up. No credit card needed to start. An event is one thing your app records, such as a screen view, a tap, a crash or a failed request; most users send 35–200 a month. If you go over, we keep collecting up to twice your plan and let you know; after that, collection pauses until the next month or until you upgrade. Prices in USD, excluding tax.
It compares visits to a screen that hit the problem with visits to the same screen that didn’t, and counts the extra people who left. Each extra exit is multiplied by how often people who carried on went on to buy, then by your average revenue per paying customer, taken from RevenueCat or a value you set. Without a value, it shows lost sales instead of dollars.
No. Report purchases from your paywall with one line, or set the value of a sale in Settings. Connecting RevenueCat swaps the estimate for your real revenue, including renewals and refunds.
No. Once the provider wraps your app, every screen, tap, rage tap and crash is recorded automatically. Taps arrive already labeled with the button’s text or accessibility label. You can still send your own events, plus onboarding and paywall events, with one line each.
No. There’s no video, no screenshots of your users’ screens and no keystrokes. Text typed into fields is never read. Tap labels come from the button itself, long numbers are masked and anything that looks like an email is dropped. The screen pictures in your dashboard are taken only in your own development builds.
Expo Router and React Navigation are supported out of the box. For anything else, call Riveora.screen() when a screen appears.
Events are queued on the device and sent in small batches, about every 10 seconds or every 20 events. The SDK itself is plain JavaScript. The one native piece is optional and only used in development builds, for pictures of your screens.
Yes. Wrap any part of your UI in <RiveoraIgnore> and taps inside it are never recorded. You can also turn off text labels, or switch automatic tracking off entirely.
One thing your app records: a screen view, a tap, a crash or a failed request. Plans include a number of events a month, counted across all your apps. Most users send 35 to 200 a month, so Starter’s 50,000 events cover roughly 250 to 1,400 monthly users. Testing in development builds is always free.
Nothing breaks and you’re never charged extra. We let you know and keep collecting up to twice your plan’s events. After that, collection pauses until the next month or until you move to a bigger plan, which you can do whenever it suits you.
The SDK has a built-in consent switch. Until you grant it, nothing is sent and events are dropped on the device.
Add one package today. Your fix list starts filling as soon as people use your app.