Inspiration

I was travelling overseas on holiday with family and friends recently, and I got sick of trying to work out conversion rates every time we went shopping, went to a restaurant, or booked a tour. And when it came time to split the bill between three families and one couple... what a drama! It always ends up stressful and awkward.

So one day I'd had enough. I went back to our accommodation and started roughing out the basic architecture of the app. I had a working model the same day, and because we were away for a couple of weeks, I had the time to test it, refine it and polish it along the way.

What it does

DoshDoshGo is designed to take the hassle out of money when you're travelling. No one wants to open a currency converter, select countries and type in numbers like an accountant every time they want to check the price of something. So the app opens straight to the camera. It knows where you are and sets the currency to suit. Converting is as simple as pointing the viewfinder at a price, and it instantly converts to your home currency.

Likewise, no one wants a difficult bill-splitting app that takes forever to allocate. With DoshDoshGo, you simply use the camera, or pick a saved receipt, and let the app itemise the bill for you. If the bill is tricky, or in a language you don't understand, Smart Fix does the hard work for you. The app then presents everything quickly and cleanly for you to adjust or approve, and you assign each item to the diners, so everybody can see who owes what.

Converting prices is free and unlimited, and you can split a bill between up to three people for free. Plus (monthly or yearly) unlocks Smart Fix, unlimited people and local money tips. For people who only travel once or twice a year, a Trip Pass (7, 14 or 28 days) gives you Plus for your trip with no subscription. Business adds work expense tracking and trip exports. All purchases run through RevenueCat.

How we built it

DoshDoshGo is a fully native iPhone app, written in Swift and SwiftUI. I'm still new to coding, so I built it with AI coding tools in Cursor, while I focused on the product, the design and testing it in the real world on our trip.

  • Camera and text recognition: Apple's VisionKit and Vision frameworks read prices and receipts on the device, so conversion is fast and works without sending your photos anywhere.
  • Exchange rates: rates are cached on the phone, so conversion works offline and stays fast, and the app always shows when the rates were last updated. It never invents a rate.
  • Smart Fix: for messy or foreign-language receipts, Google Gemini reads the receipt text and tidies up the line items. You always get to check the results.
  • How money works here: local money tips (tipping, cash or card, and so on) come from a small Cloudflare service, and I review every tip before it goes live.
  • Purchases: subscriptions and Trip Passes run through the RevenueCat SDK, with Apple's StoreKit 2 as a safety net, so paying customers never lose access.
  • Design: a custom design system with its own colours, original illustrated travel art, haptics and sounds, plus support for Dynamic Type, VoiceOver and Reduce Motion.

Challenges we ran into

The challenges for this app weren't too bad. Getting the viewfinder to be reliable and easy to manage one-handed was one of the trickiest parts, but in the end it's so quick and easy that you hardly think about it. The only other challenge was getting it approved by Apple. The fixes were simple, but review times were slow.

Accomplishments that we're proud of

I love the design: it's both simple and beautiful. It's quick, and it does exactly what it's supposed to. We also built it far quicker than my first app and got it onto the App Store quickly.

What we learned

Coming off a far more complex first-ever app, my biggest takeaway is that a simple app idea isn't a bad idea. The key is to make it the best-looking and easiest version you can.

What's next for DoshDoshGo

Make it even more attractive, add extra delight, and get it in front of more travellers.

Built With

Share this project:

Updates

Submission history