DEV Community

Ahsan Ali
Ahsan Ali

Posted on

EAS Update pricing: why shipping less often won't save you money

Ship once a month or thirty times — two million users cost you the same $9,750 either way.
I had the EAS Update pricing model backwards, and I think most people do.

The actual billing rule

From Expo's own docs: "A monthly active user counts only once per billing period, regardless of how many updates this user downloads."
So the user charge is a flat line. $0.005 per updated user past your allowance, Production includes 50,000, and at two million installs that's 1,950,000 × $0.005 = $9,750. Your release cadence does not appear in that sum anywhere.

What does scale: bandwidth

Bandwidth is billed separately at $0.10 per GiB.
Fifteen releases a month, 5 MB bundle, two million installs. If each install pulls roughly a third of those releases (most people don't open your app daily), that's about 48,000 GiB, so another ~$4,800. If your users are genuinely daily-active and pull most releases, it's closer to $14,500.
Call it $15,000 to $24,000 a month, all in. The $10k is the floor, not the ceiling.
"Let's ship less often to save money" doesn't touch your biggest line at all. Shipping smaller bundles does, and so does not pushing an update that only changes one screen to your entire install base.

Self-hosting

Self-hosted on Cloudflare R2 the same thing runs $50 to $100 a month, for one reason: zero egress fees. The bandwidth line that costs you five figures is simply free there.
But that $50 is infrastructure. It is not the cost. What you're also taking on:

  • Fingerprinting: deciding whether a JS bundle is safe to serve to a given native binary. Get it wrong and you push a bundle importing a native module the installed app doesn't have. Crash on launch, on devices you cannot reach, with no kill switch.- Rollback, measured in minutes from "we broke it" to "it's reverted".- Staged rollout by percentage, because an OTA that hits 100% at once is just an outage with better timing.None of that is hard. All of it is yours now, forever, including at 2am. ## The takeaway Expo is genuinely the right default, and I'd still start every new app there. But the economics invert somewhere around a million installs. Do the sum with your own install count and bundle size. Then decide.

Top comments (0)