Built with Ruby Native
Ender Ahmet Yurt is a Rails developer in Turkey. Foxance is the personal finance tracker he built for himself, and it was the first customer-built Ruby Native app to reach 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
His path there started with Spendee, the finance app he used for years. When it stopped fitting the way he wanted to track his money, he moved everything into a spreadsheet. That worked for a while, but a spreadsheet is not an app.
So he built Foxance in Rails. Then he made it responsive. Then he added a PWA mode so it would feel app-like on his phone. Each step got closer, and none of them got him into the App Store.
Before Foxance, Ender had tried Ruby Native on a smaller project. It felt buggy, the documentation was thin, and he put it down. That is worth saying plainly: the first attempt did not win him over.
He came back for Foxance because the alternatives were worse. Hotwire Native still meant Swift and an Xcode setup he did not want to own. A native app over a JSON API meant rebuilding every screen and maintaining two codebases forever.
Both took too long. Ruby Native got me from zero to TestFlight in a day.
The app was in the App Store two days later.
A two-day path to the store has a price, and Ender is direct about it.
The app isn't 100% native and I know it. Some people pointed out the design on social media. They're right.
The gap is real, and it is what shipping in two days instead of two months costs. Ruby Native is closing it incrementally, native page transitions first, with richer interactions after that.
His other two notes are fair and only one of them is mine to fix. App Store fees are Apple's. The product is still maturing, which is true, and the reason a case study like this one is worth reading with your own project in mind rather than as a promise.
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.
What 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.
Your turn
Ender shipped Foxance in two days. Ship your app next.