
The problem
Almost every budgeting app wants the same thing: your bank logins, a monthly subscription, and a copy of your transactions on their servers. For an app whose entire job is handling your most sensitive data, that is the wrong trade. People end up choosing between convenience and privacy, and most quietly give up on budgeting altogether.
I wanted to prove you do not have to choose. A budgeting app can be genuinely smart and still keep every byte of financial data on your own device.
What I built
Tipid (Tagalog for frugal, thrifty) is a privacy-first budgeting app for iOS. It is 100% offline: no cloud, no bank sync, no accounts. The intelligence runs on-device using Apple Foundation Models, so categorization, insights, and natural-language input all happen locally. It is free to use with a single $9.99 one-time purchase to unlock everything. No subscriptions.

Quick add in plain language
Type "coffee 150 starbucks" and Tipid parses the amount, merchant, and category on-device. No forms, no dropdowns, no network round-trip.
AI insights, computed locally
Spending patterns, category breakdowns, and forecasts are generated by Foundation Models running on the device. The insight engine never sees a server.

Goals and budgets
Savings goals with visual progress, category budgets, debt and money-owed tracking, installment plans, recurring transactions, and cashflow forecasting.

Tech stack
| Layer | Technology | Why |
|---|---|---|
| UI | SwiftUI (iOS 26) | Liquid Glass, native performance |
| Storage | SwiftData | Local-first persistence, zero server |
| AI | Apple Foundation Models | On-device categorization, insights, NL parsing |
| Charts | Swift Charts | Native spending and forecast visualizations |
Beyond the basics it also handles multi-currency, OCR receipt scanning, CSV/JSON export and PDF statements, a privacy mode that hides balances, Face ID unlock, and widgets, Siri, and Apple Watch support.
What building this taught me
On-device AI changes the privacy conversation
The usual argument is "smart features require the cloud." Foundation Models break that assumption. Once categorization and insights run locally, "we never see your data" stops being a marketing line and becomes literally true, because there is no server in the loop to see anything.
One-time pricing is a product decision, not just a price
Choosing a single unlock over a subscription shaped the whole roadmap. There is no recurring revenue to protect, so there is no incentive to lock features behind a treadmill or to retain data for leverage. The app has to be worth buying once and then just working, quietly, for years.
Offline-first is a constraint that simplifies
No sync means no merge conflicts, no auth, no backend, no outage. The hardest part of most finance apps (keeping a server copy correct and secure) simply does not exist. The constraint removed an entire category of bugs.
Links
- Live: tipid.pastelero.ph
