One number. That's it.
Dot is a daily budget tracker that shows you what you have spent today and nothing else. Turn on a target and it counts down instead. It does not connect to your bank, does not ask you to make an account, and does not draw you a chart — six omissions, each of them a decision rather than a gap in the roadmap.
- Consumer iOS
- Personal finance
- Local-first
- Designer and developer
- Role
- Design and build — solo
- Platform
- iPhone, iOS 16 and later
- Stack
- React Native · Expo · on-device storage
- Status
- Live on the App Store
Four minutes end to end. In a hurry? The three findings are the argument — everything else is captures.
Capture A — the product, as it presents itself

A budget app whose design argument is entirely subtraction — six things it refuses to do, each one the reason a previous budget app got deleted in week two.
- Number on the screen
1
Number on the screen
Today's total, or what's left if you turned a target on
- Actions in a day
3
Actions in a day
Log an expense, glance at the number, close the day
- Things it refuses to do
6
Things it refuses to do
Bank sync, day-one budgets, charts, streaks, accounts, subscriptions
- Bytes that leave the phone
0
Bytes that leave the phone
No account, no sync server, nothing to breach
The decision happens at the till, not in a monthly review.
The use case
Someone at the till, not someone at a spreadsheet.
The moment that decides whether a budget holds is the moment before you spend, standing in a shop with a phone in one hand. A pie chart of last month cannot help you there. One number can.
The design problem
Budget apps fail on day one, not in month three.
They open by asking for bank credentials, category budgets and a monthly plan — a form you fill in before the app has done anything for you. Every one of those questions is a place to give up, and most people give up at the first.
The business problem
There isn't one, and that's the position.
No trial, no tier, no ads, no data to sell — Dot never receives any. A small app that does one thing and is finished does not need a subscription attached to it, and attaching one would have changed what got built.
Three findings
The budget is switched off until you ask for it.
Why I flagged this
What I did
The consequence
What it cost
Not connecting to your bank is the feature, not the backlog.
Why I flagged this
What I did
The consequence
What it cost
Colour carries the warning, so nothing has to buzz.
Why I flagged this
What I did
What it cost
Captures B — D · the app itself
Capture B — today

Capture C — logging an expense

Capture D — Lookback

What I'd flag if this were someone else's project.
Local-only means losing the phone loses the history.
Nothing leaves the device, which is the privacy claim and also the backup story: there isn't one. That is the honest cost of refusing a sync server, and it is the omission most likely to hurt a real user rather than merely inconvenience them.
Manual entry only works while you keep entering.
Refusing the bank connection means the app is exactly as accurate as the user's habit. Bank sync is the feature people ask for precisely because it survives their forgetting. Dot bets on a two-tap log being fast enough to stay a habit — and that is a bet, not a finding.
Free forever has no maintenance budget behind it.
No revenue is a design position, not a plan. It holds as long as the app stays finished. The first time iOS forces real work, the thing paying for that work is my own time.