If you look at the cross-platform charts at the end of the State of Subscription Apps report 2026 (SOSA) you will notice a peculiarity: React Native apps seem to be making more money in almost every possible way. 

Since RevenueCat has access to all the subscription-related information, e.g. how much was the subscription price, did it have free trial, was this a returning customer, what technology was the app built with (determined by checking which RevenueCat SDK is sending the data); our dataset is possibly the most comprehensive when it comes to in-app purchases. At least for as long as Apple and Google’s data remains private.  

So React Native apps make more money, but why, and how?

Read on for what our subscription apps benchmarks report tells us about monetization on cross-platform frameworks, and my exploration into what framework characteristics can explain about the data we’re seeing.  

Prefer a video to reading?

Watch my session from React Conf, where I cover this topic and dive into why React Native apps seem to be making all the money.

Where does this data come from

Data collected by RevenueCat comes from the SDK installed on apps by developers themselves. RevenueCat only measures in-app purchase revenue, some types of monetization (paid apps, web-only subscriptions, physical goods, or custom billing systems) fall outside this dataset. Despite that limitation, the sample is broad: it spans solo developers, venture-funded companies, and apps across every major category on iOS and Android.

Evan Bacon’s Who’s using Expo in 2025 adds important context to the amount of React Native apps, showing 2,200 apps in the App Store using Expo SDK or React Navigation, both very often used with React Native, in production. Since the list is collected from trending and top downloaded charts, it provides a look at apps that people are actually using, and many of those happen to be React Native apps.  

Despite all of this, the data collected by RevenueCat is extensive as it includes all major platforms, all major development frameworks, and apps made by both solo developers and large VC funded companies. 

Understanding the data and visualizations

Before diving into what the numbers tell us about React Native, Flutter, and native apps, it’s important to understand the structure of the SOSA dataset and how its visualizations work. The report uses box-and-whisker (candlestick) charts throughout.

Each chart breaks the distribution into four key points:

  • Bottom quartile (Q1 / lower whisker) – The lowest-performing 25% of apps
  • Median (Q2 / lower edge of the box) – The “middle” app in the dataset
  • Upper quartile (Q3 / upper edge of the box) – The top 25% of apps
  • P90 (upper whisker) – The threshold the top 10% of apps exceed

This structure gives a more realistic picture of how apps perform in the real world. The “box” shows where most apps cluster, while the whiskers show the spread between weaker and exceptional performers. When we talk about React Native outperforming other frameworks, we’re referring to these distribution points — not isolated outliers.

React Native converts better than Flutter and native

When we look at download-to-paid performance in the SOSA dataset, one pattern stands out immediately: React Native apps convert a higher share of their users into paying subscribers than apps built with Flutter or fully native technologies such as Swift and Kotlin.

The box-plot above shows React Native’s median conversion rate at 2.2%, compared to 1.8% in Flutter and 1.9% in native apps. But where React Native really pulls away is at the high end: the 90th percentile hits 11.2%, while Flutter reaches 8.8%, and native apps peak at 7.7%. In practise, this means that when comparing two apps with similar audiences, similar categories, and similar subscription models:

  • The average React Native app turns more of its downloaders into paying customers.
  • The best React Native apps outperform the best apps built natively.

Put another way: if you took two teams of equal skill and resources, one building an app in Swift/Kotlin, the other building it in React Native, the React Native team is more likely to produce an app that successfully converts users. React Native apps are more likely to reach the conversion rates that turn a good idea into a sustainable business.

First key learning: deliver as fast as possible

One of the main benefits of React Native is that you can share much of the code between multiple platforms, most commonly those being Android and iOS. A capable developer, or a team of developers, can realize a complex React Native app in 3-6 months (with exceptions, but higher than that and you lose the benefits), and release it to both app stores around the same time. 

Shopify went all-in on React Native in 2002, 

   Shopify went all-in on React Native five years ago. Just this week, the company reflected on how it went, sharing:

– More productivity: thanks to one codebase powering iOS and Android, and working across both apps

– Performance and reliability: all pages have sub-500ms loads and crash-free rates are above 99.9%. Both are impressive numbers!

– TypeScript for the win: using TypeScript makes it easy for devs to transfer between React and React Native.

– There are downsides: debugging is worse than for native apps, and updating to new React Native versions can be painful.   

In mobile apps the market is divided between iOS and Android. Any serious app business will eventually have to target both. React Native allows you to technically do that from day one. This gives competitive advantage by allowing developers to experiment with pricing and monetization methods earlier on both platforms. This is particularly important on Android where users are more price sensitive, due to having cheaper devices and lower standards of living. 

Don’t Flutter apps have a smaller time to market as well?

The multi-platform aspect is being solved by other technologies as well. Kotlin multiplatform is trying to get Android developers to ship their apps to iOS, and there are some solutions for Swift to do the opposite. What comes closest to React Native is Flutter, which also targets multiple platforms. It’s loved by developers due to the comfortable syntax of Dart, but businesses show less love towards Flutter, mainly because Dart as a language is not as common, as is mainly just used in Flutter apps. React Native instead makes use of JavaScript, a language that most businesses already hire because of the existing web app based products as well.

React Native apps generate more revenue per install

In the revenue per install (RPI) chart, Native and Flutter apps look similar at the median (around $0.18–$0.19), with Flutter pulling slightly ahead at the top end ($1.55 vs. $1.11 for native).

Once again React Native seems to be operating on a different curve entirely:

  • Median RPI: $0.30 (roughly 50% higher than native/Flutter)
  • 90th percentile: $2.48 (more than double native’s top performers)

In plain words, the best React Native apps seem to generate significantly more money per install. Coming back to the example of two equally skilled teams, if each acquired 100,000 users, the strong React Native app could earn $248k, versus $111k for a strong native app.

Feedback loop of faster time to market

Building great products is all about getting the products in the hands of your customers as fast as possible. The main reason for aiming for this is to learn from the customers: what they want, what features they are willing to pay for, and how much they are willing to pay for them, etc. The faster you’re at the market doing this, the more likely you are to beat your competition by having the things customers want. 

The pattern matches what we see in conversion data: React Native teams tend to optimize harder and iterate faster

React Native pulls further ahead by day 60

Link

By Day 60, the revenue patterns sharpen: React Native not only starts ahead — it keeps widening the gap. This chart isn’t just about how much money apps make early; it shows how well they monetize over time.

Here’s what the data really tells us:

React Native apps keep compounding revenue better than any other framework

A median RPI of $0.44 and a 90th percentile of $3.54 means RN apps don’t just convert early — they continue generating value from users weeks after install. Whatever advantages RN teams have (iteration speed, better testing velocity, product-focus), they keep paying off long after launch.

Flutter apps outperform native at the high end

The median is similar ($0.26 vs $0.27), but Flutter’s 90th percentile ($2.29) and upper quartile both exceed native. This suggests that while the average Flutter app behaves like a native app, the best Flutter teams drive significantly higher long-term revenue.

Native apps stay steady but fall behind

Native tops out at $1.53 for the 90th percentile — solid, but noticeably behind both Flutter and React Native. At D60, this makes native apps look like the “safe baseline”: consistent median performance, but fewer breakout successes.

Other frameworks are extremely uneven

The median ($0.29) is low, but the 90th percentile hits $2.94, nearly matching Flutter. This means some “Other” apps (Unity, Cordova, etc.) can monetize extremely well — but the outcomes are far more unpredictable.

What Day 60 Really Means

D60 revenue is a proxy for retention, pricing power, upsell behavior, and the maturity of the monetization model. The fact that React Native continues to outperform tells us:

  • Users acquired by RN apps stick around longer
  • Those users keep buying (renewals, upgrades, add-ons)
  • RN teams iterate faster, pushing improvements before revenue decay sets in
  • RN apps likely adopt monetization best practices more aggressively

Year-1 Retention by Plan Type Shows Only Modest Differences Across Frameworks

Here’s the real story of this chart:

Retention at one year barely differs between Native, Flutter, React Native, or any other framework.

That means React Native’s massive lead in conversion and revenue cannot be explained by better long-term retention. Users don’t stay subscribed longer in RN apps. They stay about the same.

And that is the interesting part — because it tells us exactly where the advantage must be coming from:

  • React Native apps convert more users earlier
  • React Native apps extract more revenue per install
  • But when it comes to keeping customers for a year, all frameworks perform similarly

In other words: React Native wins by front-loading value, not by keeping users longer.

Now the quick breakdown by plan type (supporting, not leading):

Weekly plans:

All frameworks are nearly identical (median ~2–4%). No technology advantage.

Monthly plans:

Native and “Other” frameworks retain a few percentage points higher at the median (≈9–10% vs. ≈7–8% for Flutter/RN).

The gap is small — not enough to matter strategically.

Annual plans:

All frameworks cluster tightly in the high 20s to low 30s at the median.

Even the top performers are scattered evenly across frameworks.

The native feel dilemma

One of the early arguments against React Native, that still persists today, is that it is not “native enough”. Non-native feel has meant:

  • Slower apps, with RN apps both taking longer to start up, but also navigating and other interactions having more jank than native apps
  • Wrong feeling animations, with noticeable framerate drops, wrong easings
  • UI not following the platform specifications

Every year since its launch, React Native has been working towards making this statement less and less true. To understand those efforts

What Year-1 Retention Really Means

Retention is a downstream outcome of value — if an app reliably solves a recurring problem, users stay subscribed. In that sense, this chart reinforces an important point:

React Native’s monetization advantage does not come from retaining customers better, but from converting more customers and monetizing them more effectively.

Retention stabilizes across frameworks

React Native delivers the highest LTV per paying user — by a wide margin

Link

If you want to know which apps make the most money from each paying subscriber over their first year, this chart answers it clearly: React Native is in its own tier.

React Native apps show:

  • Median LTV: $22.80 (higher than all other frameworks)
  • P90 LTV: $85.26 (dramatically higher than native, Flutter, or “Other”)

That means React Native apps don’t just convert better and earn more per install — their paying users are also worth more over time. The framework draws a straight line through the whole monetization funnel.

Flutter vs. Native
Flutter sits below native at the median ($13.81 vs. $16.15), but once you move into the upper quartile and top performers, Flutter pulls ahead.

This suggests Flutter has a longer tail of “misses,” but when a Flutter app hits, it hits hard.

“Other” frameworks
While inconsistent at the median ($16.38), the 90th percentile reaches $70.90, meaning some apps built with alternative stacks monetize extremely well — but the distribution is much more volatile.

Conclusion

Product is the key, not the technology

React Native doesn’t just produce more payers — it produces payers who stick around and spend more.

This is the final reinforcement of the monetization pattern visible across every chart:

React Native teams iterate faster, test pricing more aggressively, ship more improvements, and ultimately capture more lifetime value from their best users.