Your app is losing sales.
Find out why.

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.

Riveora · Users · Anonymous #hzptrt
HZ

Anonymous #hzptrt

Google Pixel 8 · Android 14 · German · Berlin · 9 visits · 22m in app

Finished onboardingRage taps
Journey
Dead tap spotted

The free-shipping banner looks like a button, but nothing happens. 64% of people on Home tap it.

Click any step to explore

Built for the React Native ecosystem

React Native Expo Expo Router React Navigation iOS & Android
Not another analytics tool

Analytics shows you charts.
Riveora tells you what to fix.

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.

Typical analytics

  • Plan and code every event before you see a thing
  • Charts of what happened, never why
  • You work out what matters, and what it’s worth
  • No way to tell whether your fix made a difference

Riveora

  • Every screen and tap captured from the first launch
  • Each problem tied to its screen, the people and their visits
  • Ranked by the sales it costs you, in dollars
  • Every release checked: fixed, better, or still broken
1 · Why people leave

A fix list, ranked by lost sales

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.

  • Know what to fix first, in dollars, not hunches
  • See the screens where most visits end, and what those people did last
  • Open the visit of anyone who hit the problem
2 · Did my fix work?

Ship the fix. Watch the problem disappear.

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.

  • Nothing to set up, versions are tracked automatically
  • Show your team the work paid off
  • Catch a fix that didn’t stick before your reviews do
3 · What makes people buy

Learn what your buyers do differently

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.

  • Find the screen that turns visitors into buyers
  • Show your paywall at the right moment, not the first one
  • Real revenue with RevenueCat, or set your own sale value
The evidence

Every number comes with proof

Riveora captures every interaction on its own, so behind each problem there are real visits you can open and screens you can inspect.

Zero tracking code

Every tap, already named for you

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.

  • Screens, taps, rage taps and crashes with zero tracking code
  • Works in any language your app speaks
  • Device, OS, language and first open recorded for every user
Live eventsReceiving
Tapped “Add to cart”element_tapped · Product › Detail
now
Tapped “Shade: Rose”element_tapped · ShadePicker
2s
Opened the app for the first timeapp_first_opened · Pixel 8 · de-DE
4s
Paywall closed after 1.4spaywall_closed · glow_plus
6s
Tapped “Checkout”element_tapped · CartFooter
8s
Rage-tapped “Apply coupon” 4×rage_tap · Cart
10s
User journeys

Replay any visit, step by step

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.

  • See exactly what happened before someone gave up
  • Answer support tickets with facts, not guesses
  • Link visits to your own user IDs after login
Journey
Anonymous #k2vq81 · Oct 19 · 3m 02s
Onboarding › Skin typeat 0:00 · stayed 18s · first visit
0:06Tapped “Combination”
0:07Tapped “Combination” again, no visible feedback
0:15Finished onboarding
Product › Detailat 0:19 · stayed 52s
0:31Saw the paywall “glow_plus”
0:32Closed the paywall after 1.4s
0:58Tapped “Add to cart”
Checkoutat 1:11 · stayed 1m 51s
1:20Tapped “Card”
3:02The app crashed: “Cannot read property ‘total’”
Screen insights

See how each screen is really used

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.

  • Spot the banner everyone taps that does nothing
  • Find buttons nobody notices
  • Know which screen people leave the app from
Home · what people tap67 people
Matte Lipstick48%
Search products42%
Free shipping over $50Not tappable64%
Shop the new collection27%
Cart28%
Caught automatically

Find the problems users never report

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.

Rage taps

Three or more fast taps on the same spot. A button that’s slow, broken or silent.

212 people rage-tapped “Apply coupon” in Cart. ≈ $340 a month.

Taps that do nothing

People tapping images, labels or banners they expect to work. Free design feedback.

64% of visitors tapped “Free shipping over $50” on Home.

Crashes

JavaScript errors caught automatically, with the screen and the visit that led there.

38 people crashed on Checkout, all on Android, app v2.2.1.

Onboarding funnels

See how many new users finish onboarding and the step where the rest give up.

Paywall analytics

Learn whether people read your offer or close it in two seconds, per paywall.

Where people give up

Slow screens, failed requests, people going in circles and forms they never finish.

Setup

One wrapper. No tracking code to write.

Install one package and wrap your app. Every screen, tap and crash is tracked from there.

1

Install the package

Plain JavaScript, so it works in Expo Go. One rebuild of your development build turns on screen pictures.

2

Wrap your app

Add the provider and the tracker for Expo Router or React Navigation.

3

Open your dashboard

Use your app and watch screens, taps and journeys arrive within seconds.

app/_layout.tsx
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>
  );
}
Pricing

Simple pricing that grows with your app

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.

Starter

For new apps getting their first users.

$7/ month

$84 billed yearly + VAT may apply

Start free trial

About 250–1,400 monthly users

  • 50,000 monthly events
  • 1 app
  • Records every tap, screen and crash for you
  • Shows what’s broken and what it costs you
  • Replays each person’s visit, screen by screen
  • Shows where people quit your onboarding
  • Shows what makes people buy
Most popular

Pro

For growing apps, or more than one app.

$15/ month

$180 billed yearly + VAT may apply

+2 months free, every year14 months of Pro for $180
Start free trial

About 5,000–29,000 monthly users

  • 1M monthly events
  • 5 apps
  • Records every tap, screen and crash for you
  • Shows what’s broken and what it costs you
  • Replays each person’s visit, screen by screen
  • Shows where people quit your onboarding
  • Shows what makes people buy

More than 1M events a month, single sign-on or your own servers? Talk to us

Estimate your price

How many events does your app send each month?

50K events

About 250–1,400 monthly users

10K100K1M10M
Starter plan
$7/ month

Includes up to 50K events a month, $84 billed yearly + VAT may apply. Free for the first 14 days.

Start free trial

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

FAQ

Questions, answered

How does Riveora know what a problem costs?

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.

Do I need RevenueCat?

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.

Do I have to define events or write tracking code?

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.

Does Riveora record the screen or what users type?

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.

Which navigation libraries are supported?

Expo Router and React Navigation are supported out of the box. For anything else, call Riveora.screen() when a screen appears.

Will it slow down my app?

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.

Can I keep parts of my app out of tracking?

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.

What counts as an event?

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.

What happens if I go over my plan?

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.

How do I handle user consent?

The SDK has a built-in consent switch. Until you grant it, nothing is sent and events are dropped on the device.

Get started

Find out what your app is losing

Add one package today. Your fix list starts filling as soon as people use your app.

Riveora · React Native analytics that finds lost sales