manydoro
manydoro is a pomodoro timer for people who are paid by the hour. You run a pomodoro against a project, finish it, and the app records what you actually worked — overtime included.
How it works
A project is described by two numbers, and they decide everything. Give it an hourly rate and a total cost, and the app derives an hours budget and a daily pomodoro quota that follows your deadline and your working days. Give it only a rate, and you get plain hourly tracking with earnings. Give it neither, and it counts the time and nothing else — no quota, no plan, for the projects you do for yourself.
The two phases end differently, on purpose. A pomodoro never stops on its own: if you are in flow it runs into overtime and records everything. A break ends exactly at its nominal, so the next pomodoro is something you start deliberately rather than discover already running.
One timer across devices
Start on the Mac, carry on from the iPhone. The running phase travels as an append-only journal of events over iCloud: on the phone it sits on the Lock Screen as a Live Activity, on the Mac it lives in the menu bar with the time left and a progress ring.
The journal is the interesting part. State replication with last-writer-wins kept producing incidents — a fresh idle broadcast killing a live pomodoro, the same phase recorded twice, a ghost phase on a sleeping Mac. Events fixed the class of problem rather than the instances: they are immutable and idempotent, and the current state is a pure fold over them, so any arrival order and any number of duplicates land on the same answer on every device.
Motivation
I bill by the hour and I work in pomodoros, and no app did both. Time trackers know about rates but not about focus; pomodoro apps know about focus but think money is somebody else’s problem. manydoro is the one I wanted: the timer tells me not only how long I have been working, but how much of the budget is left and what today is worth.