Mobile apps, the Rails way
Reuse your existing HTML, CSS, and business logic to go from web to the app stores faster than ever.
Ruby on Rails makes building, iterating, and shipping products a joy.
We can build complex UX interactions with Hotwire and Turbo.js. Our feedback loops are lightning fast - sometimes just minutes from deploy to production. And we can ship whatever we dream up. No gatekeepers, no permission needed.
But the world is shifting. Users now live in apps. And we can’t avoid them anymore.
“Nearly all mobile time (92%) is spent in apps.”
- Comscore Mobile Metrix / eMarketer, 2025
Mobile apps aren’t a “nice to have” anymore. For many products, it’s the expectation.
But when building mobile apps we are suddenly playing by different rules.
We have new languages to learn, new toolkits to master, and App Store review processes to follow. What felt effortless on the web suddenly feels impossible on mobile.
Mobile apps feel impossible
On the web, Rails keeps things simple. Your model passes data to a controller, which renders a view, and you get HTML to render in the browser.
But the moment you go native, your Rails codebase grows in complexity. Now you’re not only rendering HTML, you also have to maintain API controllers and JSON serializers. And then entirely separate UI layers for iOS and Android.
Each new feature means building it three times: once for the web, again for iOS, and again for Android. Debugging becomes three times as long if something breaks.
What’s a Rails developer to do?
Enter Hotwire Native
Hotwire Native lets you build mobile apps the Rails way. You reuse your existing HTML, CSS, and business logic. Then add native “sprinkles” where they matter most.
That means you can:
Deploy changes once and have them go live instantly, across all three platforms.
Own your release cycle and not be delayed by app store reviews.
Continue building with the tools you already know and love, Ruby and Rails.
You get to keep shipping at Rails speed across web, iOS, and Android.
How it works
At its core, Hotwire Native is just a web view with some magic around the edges.
Your Rails app renders the same HTML it does for mobile web, wrapped in native navigation and UI. Meaning the navigation bars, tab bars, and transitions all feel at home on both iOS and Android.
By reusing your Rails views you don’t need to maintain three separate frontends. Your app is driven by the server so you can ship fixes and features instantly, no app store review required.
Here’s what that looks like in practice using my Ruby Friends app as an example.
Hotwire Native keeps your codebase simple - one set of views, one set of controllers, and one release process. No extra API layer, no duplicated business logic, no triple-the-work every time you add a feature.
And this isn’t just theory. Real teams are using it to ship production apps today.
Real apps, real people
Hotwire Native isn’t a pet project - it’s powering real products used by millions.
37signals runs their flagship apps – Basecamp, HEY Email, and HEY Calendar – on Hotwire Native serving millions of paying customers.
SleepHQ uses Hotwire Native to power an iOS app that connects with Bluetooth devices and Apple Watch, unlocking features only possible with a mobile app.
The StoryGraph uses Hotwire Native to serve more than 4 million registered users, all built and maintained by a one-woman dev team.
I built Ruby Friends, a networking app that went from idea to the App Store in just three weeks with push notifications, QR code scanning, and NFC reading.
These aren’t prototypes. They’re production apps shipping features daily, thanks to the speed of Rails and the flexibility of Hotwire Native.
Where to go next
Now that you know a bit about Hotwire Native, you might be wondering what it feels like in practice. The best next step is to try it yourself, even if it’s just pointing a demo app at your local Rails server to see your views running in the simulator.
The official getting started guides walk you through this step-by-step for both iOS and Android. Follow along, and by the end you’ll have your own Rails app running inside a real native shell.
Want more examples and guidance? Subscribe to my newsletter for weekly tips, tutorials, and lessons from teams building with Hotwire Native.