Built with Ruby Native
Foxance, built in Rails and live in the App Store.
“I didn't open Xcode once. I didn't write a single line of Swift. Just some YAML files and a bit of HTML and CSS.”
Ender Ahmet Yurt
Ruby Native Customer
Ruby Native turns Rails businesses into iOS and Android apps.
Ender Ahmet Yurt is a Rails developer in Turkey, and Foxance is the personal finance tracker he built for himself. It's also the first customer-built Ruby Native app to ship to the App Store.
His path there started with Spendee, the finance app he used for years. When that stopped fitting how he wanted to track his money, he moved everything to an Excel spreadsheet. That worked for a while, but a spreadsheet is not an app.
He built Foxance as a Rails app first, then made it responsive and added a PWA mode so it could feel app-like on his phone. When that still wasn't enough, he tried Hotwire Native and then plain Swift. As he put it: "Both took too long. Ruby Native got me from zero to TestFlight in a day."
Ender had tried Ruby Native once before on a smaller project, but it felt buggy and the documentation was thin, so he dropped it. He came back for Foxance, and the app was in the store within two days.
Why Ruby Native
Ender weighed five ways to get Foxance onto a phone. Here's how they stacked up, in his framing.
| Approach | Pros | Cons |
|---|---|---|
|
Responsive web |
|
|
|
PWA |
|
|
|
Hotwire Native |
|
|
|
Native Swift + JSON API |
|
|
|
Ruby Native Chosen |
|
|
From Ender's blog post: How I built a Rails app for the App Store without writing Swift.
Convinced? You can start without paying anything.
Start for freeWhat Ruby Native made possible
Foxance keeps the native side simple. The whole iOS experience comes from one YAML file.
The four tabs at the bottom of Foxance are a real UITabBar, configured in YAML and rendered with SF Symbols. Each tab points at a Rails route, and the transactions tab uses eager loading so it's already rendered when Ender taps it.
# config/ruby_native.yml
tabs:
- path: /dashboard
icon: house
- path: /transactions
icon: list.bullet
eager: true
- path: /reports
icon: chart.bar
- path: /settings
icon: gearshape
Ruby Native runs the iOS build on hosted infrastructure. One click in the Ruby Native dashboard produces a signed binary, ready for TestFlight without certificates to manage or Apple Developer portal clicks.
The screenshots in Foxance's App Store listing are rendered automatically from the Rails routes Ender configured, with no Simulator dance or manual capture.
Honest tradeoffs
In Ender's own words.
“Publishing to the App Store costs money. Doesn't fully deliver the native feel. Still maturing as a tool.”
Joe's response
App Store fees are Apple's, not mine to remove. Native feel is exactly where I'm focused right now. Native page transitions are coming to Normal Mode this year, which closes most of the gap Ender is pointing at.
“The app isn't 100% native and I know it. Some people pointed out the design on social media. They're right.”
Joe's response
The gap is real, and it's the price of shipping in two days instead of two months. Ruby Native is closing it incrementally, native transitions first, with richer interactions coming over time.
Your turn
Ender shipped Foxance in two days. Ship your app next.
Ender Ahmet Yurt
Ruby Native Customer