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