Hello, Habr!
For many IT professionals, the ultimate personal finance setup involves a massive Google Sheet or a complex Notion database. I completely understand this approach: when you spend your entire day sitting in front of a monitor, entering data into a cell takes two seconds.But 7 years ago, my reality was entirely different. I was an entrepreneur, and my workday meant constant movement. I was driving, visiting warehouses, meeting partners, or checking production floors. I was 100% mobile, and the only tool I always had on hand was my iPhone.
In that fast-paced rhythm, traditional finance trackers and spreadsheets simply fall apart. Here are typical scenarios from my life back then:
Scenario 1: I’m driving, and a partner calls: "Hey, can you transfer $X to my card until Thursday?" I quickly send the money via my banking app. But I need to log this debt instantly, otherwise, I will completely forget about it in 5 minutes.
Scenario 2: I bump into someone on the go, and they hand me cash: "Here is the money I owed you for last month, thanks!" I put the cash in my pocket, we shake hands, and part ways.
I needed a personal finance app that would allow me to log a debt or a repayment in just one tap, while standing at a traffic light or leaving a warehouse with a bad cellular connection.
At that time, the App Store had several debt trackers, but they all shared a critical flaw: the complete lack of cloud synchronization. If I lost my phone or smashed it at the warehouse, I would lose my entire financial database. Out of the pure necessity to protect my own money, I decided to build my own simple iOS app, [Where's Money], relying heavily on iCloud.
The Architecture: Offline-First & Apple Magic
The Architecture: Offline-First & Apple MagicA crucial requirement for me was that the app had to work anywhere, even in a concrete warehouse with zero internet connection.
Therefore, the app doesn't have a traditional backend. It is built entirely on an offline-first architecture. All data is stored locally on the device, meaning the app is lightning-fast and doesn't require a connection to log an entry. Internet is only needed for background iCloud synchronization and fetching stock prices/currency rates. If you are offline, you simply see the latest cached rates—no crashes, no loading screens.
The iCloud sync acts as "Apple magic". If you lose your phone, you simply log into your Apple ID on a new device, download the app, and your database is fully restored.
To use the production iCloud environment instead of the developer sandbox, I had to release the very first raw version directly to the App Store, download it, and start using it in the real world immediately.
I designed the UI to minimize clicks. You tap the plus button, swipe the "give/take" picker, and the numbers automatically turn red or green. If you need to transfer funds—for example, taking money from one person and moving it to another—you can shift balances directly between records, and the app automatically leaves a comment tracking the money's origin.
Letting Users Drive the Backlog
The design was minimalist and straightforward, but this format resonated with many people. Soon, I started receiving feedback from early adopters who asked for features I hadn't even considered:
"I accidentally deleted a debt record, how do I get it back?" — This led to the creation of the Trash Bin. Deleted records now stay there for 30 days before auto-erasing, just like the iOS Photos app.
"I have 50 debtors, it’s getting messy." — To fix this, I introduced a Group System, allowing users to categorize records into folders like "Tenants," "Family," or "Business."
Recurring Debts. Users heavily requested automation for routines like monthly rent. I implemented a two-way recurring debt tracker, which is equally convenient for both landlords and tenants.
Stocks, Multi-Currency, and Taxes
A couple of years later, I started investing in the stock market. Logging stock investments manually was impossible due to price volatility, and I didn't want to download a separate bloated investment app. I wanted to see my total net worth in one place.
So, I integrated the Yahoo Finance API. Now, the app fetches live stock prices, calculates total invested capital, and tracks dividend payouts.
This introduced a couple of interesting technical challenges:
Multi-Currency Cross-Rates: The app allows you to set a single base currency for your overall balance, but individual records can be in any currency. The problem? You can't always find a direct exchange rate from, say, UAE Dirhams to Indian Rupees via standard APIs. I had to write a logic that bridges all exotic currency pairs through the US Dollar.
FIFO Investment Taxes: For stock trading, I needed to generate tax reports on capital gains and dividends using the FIFO (First In, First Out) method. Honestly, while I wrote 99% of the app's code myself over 7 years, I was too lazy to manually write out this specific, tedious mathematical algorithm. So, I delegated this routine to AI. It generated the code, I verified the math with a physical calculator, confirmed it was accurate down to the cent, and shipped it to production.
Summary
Over the past 7 years, I’ve been constantly squashing bugs, adding features, and polishing this pet project. My lifestyle has changed, but I still use the app daily simply because I am so used to its frictionless UX.
I’ll be honest: after 7 years of constant polishing, the app feels perfect to me. For my daily use, I honestly don't see any flaws anymore. But I also know that a developer's perspective can be biased, and things are always clearer from the outside. The personal finance market is highly competitive, and my goal isn't to claim I've built the ultimate app for everyone, but rather to share a tool born out of genuine personal frustration and see how it holds up to real-world scrutiny from the community.
A quick note on monetization:
The app itself is completely free to download. Out of the box, it allows you to create and manage up to 10 active records at no cost, which is more than enough to thoroughly test all the core features. I've also included built-in demo data so you can play around with the charts and analytics right away without manual data entry.
You can check out Where's Money on the App Store.
I would be thrilled if you download it, try to break my accounting logic, or suggest what features are missing. Constructive criticism is the best gift for an indie developer.
Thanks for reading!