A minute-by-minute log of your workday is one of the more revealing datasets about you that exists. It shows what you work on, when you start, when you stop, how long you stare at a spreadsheet before closing it, and which days you were barely there.
Most tools that produce that log are cloud services. You sign in, and the record lives on somebody else's servers. That is a normal engineering decision with a real cost, and the cost is worth naming before you agree to it.
Why the category defaults to the cloud
This is not carelessness. There are good reasons a time tracker becomes a web service:
- Teams: a manager's dashboard needs everyone's data in one place. That is the product for most buyers in this category.
- Multiple devices: a laptop, a desktop, and a phone have to agree on one timeline, and a server is the simplest way to make them agree.
- Billing across a firm: invoicing pulls from everyone's hours at once, which is a server-side job.
- The business model: a subscription needs a login, and a login needs an account, and an account tends to pull the data along with it.
If you need those things, a cloud tracker is the right answer and the rest of this post is not for you. The question is what happens when you do not need any of them and you get the architecture anyway.
What the cloud costs in practice
The cost is not a headline event. It is a set of quiet conditions you now live with.
A third party holds a detailed record of your working life. That record outlives your interest in it. It persists after you cancel, subject to whatever the retention policy says this year. It is reachable by that company's staff under whatever access rules they maintain, by an acquirer if the company is bought, and by a legal process aimed at them rather than at you.
Window titles make this sharper than people expect. App names are mild. "Chrome, 40 minutes" says little. Window titles say what you were reading, which document you had open, and which client's name was in the tab. That is the part worth thinking about before it leaves your machine.
None of this requires anyone to behave badly. It only requires the data to exist somewhere you do not control.
What local-only changes
The alternative is straightforward: the record is written to your disk and stays there. That is how we built Activity, a standalone Mac app. Your activity history and daily reports stay on your computer, and the app does not upload your activity history.
A few consequences follow from that design:
- Deletion is real deletion. You can delete your history and saved reports, and there is no second copy elsewhere to worry about. History is retained locally for 30 days.
- The reports are self-contained. Each daily HTML report embeds its app icons, so opening a report does not fetch images from the internet. Reading yesterday's report is not a network event.
- Your controls are local too. Pause tracking, exclude an app, or export a day as CSV. A visible menu-bar indicator shows when tracking is on.
- The capture is narrow on purpose. It records foreground app usage and counts of clicks, key presses, and scroll events. It does not capture screenshots, typed text, or page contents. Window and browser page titles are optional.
That last point deserves emphasis because it is the one that gets blurred elsewhere. Counting that a key was pressed and recording which key was pressed are enormously different things. One produces a measure of activity. The other produces a keylogger.
The honest tradeoffs
Local-only is a choice, not a free upgrade. Here is what you give up.
There are no team dashboards. If you want to see your team's hours in one view, this architecture cannot give it to you, and that is not a roadmap item, it is the point of the design.
There is no cross-device rollup. Activity observes the Mac it is running on. Work you did on another machine is simply not in the report, and you have to hold that in your head when you read it.
Backup is your problem. A cloud service's one genuine advantage is that a dead laptop does not take the history with it. With local storage, it does. CSV export is the escape hatch if a day matters enough to keep elsewhere.
And there are platform limits. Activity requires macOS 14 or later on Apple Silicon and is currently a Mac preview in active development. App timing works without extra permissions, but window titles and global key counts need Accessibility access, and protected input is not observed.
What to check before you believe the word "local"
"Local" appears on a lot of marketing pages with varying levels of truth behind it. A few questions separate the claim from the architecture:
- Does it work with the network off? If the app stops being useful offline, something is going somewhere.
- Is there an account? A required login usually implies a server that knows something about you, even if the detailed data stays put.
- What exactly is captured? Ask for the list in nouns. Screenshots, typed text, page contents, window titles. Vague answers are answers.
- Can you delete it, and what remains? If deletion removes the local copy but not a backup you never agreed to, it is not deletion.
- Can you get your data out? A plain export like CSV means you are not trapped, whichever direction you decide to move later.
The takeaway
Match the architecture to the job. If you are running a team and billing clients across a firm, you need a server, and you should pick one carefully and accept what it holds. If you are one person trying to understand your own week, a service holding a minute-by-minute record of your work is a cost you are paying for features you are not using.
Most people in the second group ended up with the first group's tool because that is what the category sells. It is worth checking which group you are actually in. If you want to talk it through, get in touch.
Filed Under
Written by
Isaac Juracich
Full-stack engineer building production software for businesses that need it done right. Based in La Crosse, WI.
More about Isaac