Case studies

Same-day paywall changes on iOS and Android

How Exodus 90 runs subscriptions across iOS and Android with a Rails-powered paywall, so the growth team ships pricing experiments without ever opening Xcode.

Schedule a call For Rails businesses building mobile apps.
Engagement
3 repeat engagements
Platforms
iOS and Android
Stack
Hotwire Native on Rails

01 / Challenge

Every pricing change meant another App Store release

Exodus 90 is a Catholic men's app built around a 90-day program of prayer, fasting, and fraternity, and subscriptions are how it pays the bills. The growth team needs to move on them constantly: new offers for Lent, annual versus monthly tests, price changes by region, and free trials of different lengths.

In a typical mobile app, every one of those changes is a new build, a new App Store review, and up to a week of waiting before anyone sees the result. The mobile team becomes the bottleneck for revenue work, and the marketing team learns not to ask.

Exodus 90 needed the iteration speed of a web app without giving up the trust, distribution, and in-app purchase plumbing of the app stores.

02 / Approach

I moved the paywall into Rails

I moved the paywall into Rails and rebuilt the iOS and Android apps on Hotwire Native around it. The growth team ships price changes, new offers, and A/B test arms the same day they write them, with no App Store release in the middle.

The native layer keeps the parts users notice: smooth transitions, push notifications, audio playback, biometric unlock, and the platform purchase sheets they trust. Everything else lives in Rails, served from the same admin the marketing team already uses.

  • Rails-powered paywall iterated without an App Store release.
  • StoreKit 2 on iOS, Play Billing on Android, with server-side receipt validation.
  • Native screens where users would notice the difference: audio, push, and onboarding polish.
  • Codebases Exodus 90's team owns, ships releases against, and extends without me.

03 / Result

Pricing experiments ship without app store releases

The marketing team runs paywall experiments without opening Xcode or filing an App Store release. The mobile team stopped being the bottleneck for revenue work, and the marketing team stopped learning not to ask.

Exodus 90 brought me back for a second engagement, and then a third, because the architecture kept paying off. Each one built on the same Rails paywall instead of replacing it.

Want a build like this?

Tell me about your Rails app and the mobile experience you're trying to ship. I'll let you know if it's a fit.

Book a call

More case studies