TalknTrack · money tracker · TypeScript · voice
Say what you spent. It writes the entries.
TalknTrack is a money tracker you talk to. Say a sentence in English, Hindi or both, and it becomes clean entries: expenses, income, money lent and borrowed, each with a category and a date. On top sit budgets, investments, shared groups and insights that tell you what to do next.
Everything about your money, by voice
Most expense trackers die in the first week, because every coffee means opening a form. TalknTrack replaces the form with a sentence. The rest of the app is what you need once the entries actually exist.
Adding
Feature
What it does
Speak or type
Hold the mic and talk, or type a rough line. English, Hindi, Hinglish, slang and shorthand like 2k all work.
Many entries in one line
“Gave Rahul 500, spent 200 on food and got salary 50k” becomes three entries in one go.
Dates from words
Yesterday, kal, last Monday or two days ago are turned into the right date.
Debts by name
Lending or borrowing is spotted from the sentence and filed under the person, ready to settle later.
Receipts
Attach a photo of the bill to any entry.
Tracking
Feature
What it does
Dashboard by month
Income, spending and categories for any month, with charts, and a month picker to look back.
Budgets
A budget per category per month, with a one-tap copy of last month's budgets.
Debts
Who owes you and whom you owe, with dates and reasons, marked settled when paid.
Investments
Your holdings in one list next to everything else.
Export
Download transactions, debts and investments as CSV whenever you want them.
Insights and groups
Feature
What it does
Insight cards
Warnings, tips and wins about your month, each with a button that does something: set a budget, remind someone, open the right page.
Shared groups
Trips, flats, dinners. Invite people with a link, add shared expenses by voice, and see who owes whom.
Settle up
The fewest transfers that square everyone, and a record when they are paid.
Sign in with Google
Your data follows you to every device.
Installs like an app
A PWA with light and dark themes, made for a phone.
The form is why people stop
Logging money is easy to start and hard to keep up. Each entry is an amount, a type, a category, a date and a note, typed into a form, every time. Nobody does that for a ₹20 chai, and once the small things stop getting logged, the numbers stop meaning anything.
People already describe their spending out loud, just not in a way a form accepts. “Zomato 450.” “Kal Rahul ko 500 diye.” “Salary aayi 50k.” The job was to accept exactly that.
How I got there
Three passes, in the order they happened.
Explore
A better form, and an AI that gives advice
Realise
Still a chore, and the advice made numbers up
Insight
Talk in, rows out, maths in code
Let the model read. Never let it count.
From a sentence to saved entries
Two models, each doing the one thing it is good at, one after the other.
Record, or type
The browser records audio and posts it to the server, or the typed line goes straight to the next step.
src/components/AddTransaction.tsx
Whisper writes it down
Whisper large v3 turbo on Groq turns the audio into text, fast enough that the entry appears while you are still looking at the screen.
src/services/aiService.ts
Llama turns words into rows
Llama 3.3 70B reads the line with a prompt full of real examples, chai pe 200 kharch and emi pay ki 8500 among them, and returns JSON: one object per entry, with type, category, amount, person and date.
Many at once
One sentence can hold several entries, so the answer is always a list, even for one. Relative dates are resolved against today.
Saved where they belong
Transactions go to the ledger and debts to the person's page, behind Google sign-in, in MongoDB.
The examples do most of the work
The prompt teaches by example. Ten real ways people say money things, then the rules for the cases examples do not cover.
Examples of inputs you must handle:
- "chai pe 200 kharch" → Expense, Food, ₹200
- "kal 500 diye the rahul ko" → Lent to Rahul, ₹500
- "salary aayi 50k" → Income, Salary, ₹50000
- "borrowed 2k from amit" → Borrowed from Amit, ₹2000
- "emi pay ki 8500" → Expense, EMI, ₹8500
The input may contain MULTIPLE transactions in one sentence
(e.g., "gave Rahul 500 and spent 200 on food and got salary 50k").
Parse ALL of them.Numbers from code, words from the model
The first version asked a model for three insights about the month. They read well, but nothing guaranteed the numbers in them were right, and advice about money cannot be confidently wrong.
So the insights were split in two. Plain code looks at the month and finds the signals, with every number and every suggested action computed there. The model only puts them in order and says them better. It never invents a figure or an action, and with no AI key at all, each signal still ships with its own default wording.
What the code looks for
Signal
What the card says
Over budget, or close
Which category, how much is spent and how much is left or over, and a button to review budgets.
No budget yet
Your top spending category with no budget gets a suggested amount, set in one tap.
A spike
A category well above last month, with both numbers.
Overdue debts
Who, how much and how long, with a reminder button.
Groups
What you are owed and what you owe across shared groups.
Wins
Spending down on last month, or a good savings rate. Good news gets a card too.
Splitting without the spreadsheet
A group expense is said the same way as a personal one: “dinner 1200, I paid, split between all” or “Amit ne 900 diye hotel ke.” A second prompt knows the group's members, maps “I” and “maine” to you, and only ever returns names that are in the group.
Balances are worked out in code: whoever paid is owed the full amount, everyone in the split owes their share, and recorded settlements move both sides. To settle up, a greedy pass keeps matching the person who owes the most with the person owed the most, which gives a short list of who pays whom.
What TalknTrack came down to:
01
Talk is the interface
One spoken line in any mix of English and Hindi becomes as many clean entries as it holds.
02
Models read, code counts
Whisper and Llama turn speech into rows. Every number in an insight comes from code.
03
Built for real life
Debts by name, shared groups that settle in the fewest transfers, and budgets that copy forward.