I’ve written before about why TrackMyRupee doesn’t read your SMS or link to your bank account. That post was about why it matters to the user. This one is about the engineering side of the same decision: what it actually removes from the system, and what it costs me as the person building it.
When I started building TrackMyRupee in December 2025, the first real design decision I made had nothing to do with expenses, categories, or dashboards. It was about how the app gets its data in the first place.
Every popular personal finance app in India solves this the same way. They read your SMS inbox, or connect to your bank account directly, and parse your transactions automatically. It’s an easy pitch: the user does nothing, and their expenses just show up.
To do that automatically, you need one of these:
I decided against all three. No SMS reading, no bank linking, no email parsing. Everything in TrackMyRupee is typed in by hand.
Once you actually look at what supporting any of the above requires, the “convenience” starts looking expensive from an engineering point of view, not just a privacy one.
I work in security for a living, so this one wasn’t a hard call for me. Every credential you don’t store is a system you don’t have to defend.
Here’s roughly how the two approaches differ in what data actually flows where:
Aggregator model:
User's Bank / SMS inbox --> Third-party servers --> Parsed --> Categorized --> Dashboard
(bank credentials or SMS read access shared with the app)
TrackMyRupee's model:
User types "tea at tapri 50" --> Parsed instantly in-browser --> Stored under the user's account
(no bank credentials, no SMS access, no external data source at all)
None of this is free. Manual entry means the app lives or dies on how little friction it adds to logging a transaction. If typing an expense takes even a few seconds too long, people stop doing it within a week, and a tracker with gaps in it is worse than no tracker at all.
This is why so much of the early product work wasn’t about budgets or dashboards. It was about making the natural language entry box, where you type “swiggy dinner 450” and get amount, category, and description parsed on its own, fast enough that logging an expense stopped feeling like a chore.
If you’re building something that touches financial data and you’re tempted to add an integration for convenience, it’s worth asking first what you’re actually signing up to defend, not just what you’re saving the user from typing.
All content is licensed under the CC BY-SA 4.0 License unless otherwise specified