Time tracking apps that work with no internet

· 6 min read

A time tracker that works with no internet is one that records, reports and stores everything on the Mac, and does not stop, nag, or lock you out when the connection is gone. Many trackers claim offline support but mean “we queue your data until we can upload it”, which is a different thing: the record still ends up on a server, and the app still needs to reach one eventually for login, sync or license checks. The simplest way to be certain is an app that has no networking code at all, because it cannot depend on a connection it is unable to open. This post explains what “offline” should mean for a tracker, how to test a candidate, and what you give up.

Three things “works offline” can mean

Trackers use the phrase loosely. When you see it, work out which of these the app means.

Offline recording. The app keeps counting while the connection is down, then uploads when it returns. Common. Your data still lives on a server; you just do not lose it on a train.

Offline recording and reporting. You can see your reports without a connection, usually because the app caches them. Less common. The server is still the source of truth, and some features (history beyond a few weeks, team views, exports) may need it.

Offline everything. Recording, reports, history, export and deletion all happen on the Mac, and the app has no server to talk to. There is no login, so there is nothing to expire. Rare, because most trackers are built as a client for a web service rather than as a Mac app that keeps its own data.

Only the third one is offline in the sense of “the internet is not involved”. If you need that, the rest of this post is about finding it.

Why it matters even if you are usually online

The obvious case is travel: a flight, a train, a cabin, a client site with guest Wi-Fi that blocks everything. A tracker that queues uploads handles that fine. The cases that matter more are the ones where the connection is there but you would rather the tracker did not use it.

A tracker that phones home has a server, and the server has your record. That raises every question in time tracker data: where it lives and who can read it: which jurisdiction, which retention policy, what happens when the company is acquired or closes. A tracker that cannot phone home answers all of them with “the file is on your Mac”.

There is also the license. Many trackers check their subscription on launch or on a schedule, and a failed check can mean a locked app, a read-only mode, or a banner. Time tracking that needs no account: why that matters covers what you avoid by not having one.

How to test whether a tracker really works offline

Ten minutes, before you rely on it.

  1. Install the tracker and use it normally for a day, online, so it has some history.
  2. Turn Wi-Fi off. On a Mac with Ethernet, unplug it too. Do not use a firewall rule for this test; a real disconnection is simpler to reason about.
  3. Quit the tracker and open it again. Does it open without complaint, or does it ask you to sign in?
  4. Work for an hour. Then open its report for today. Is the hour there?
  5. Open its history for last week. Is it there, or is there a spinner?
  6. Try the export. Does it produce a file?
  7. Leave the connection off overnight. In the morning, check whether the app is still tracking, still showing reports, and not showing a warning about the license or sync.
  8. Turn the connection back on and watch what the app does. How to check what an app sends over the network on a Mac shows how to see the connections it makes; an upload the moment the network returns tells you where the data was headed all along.

A tracker that passes steps 3 through 7 is usable offline. A tracker that passes step 8 without opening any connection is offline in the strict sense.

The strict version: no networking code at all

An app can promise not to use the network. A stronger property is not being able to. On a Mac you can check this: an app that contains no networking frameworks or symbols has nothing to open a connection with, and an app with no networking code: what that means and how to check walks through looking inside an app bundle for them.

Punchcard is built that way. It contains no networking code; the release build fails if a networking symbol appears, so the property is enforced at build time rather than promised in a policy. There is no account and no login, so there is nothing to expire or re-authenticate. The record is one SQLite file at ~/Library/Application Support/Punchcard/punchcard.sqlite. Reports are receipts printed on the Mac at the closing time you set, one line per app with its time, and the week and month rolls are built from the same file. Export to CSV and “Burn the roll” both work with the cable out, because nothing in the app has ever needed a cable.

The license fits the same model. Tracking is free and never expires; the first seven receipts are free; after that it is $9 once, and the key arrives by email from the store. The app itself never checks anything online, which is the only way a license can be honest about offline use.

What you give up

An app that cannot use the network cannot do the things that need one, and it is worth being plain about them.

  • No sync between Macs. A Punchcard license covers two Macs, but each keeps its own roll. If you work on two machines, you get two receipts. How to track time across two Macs is about living with that.
  • No phone app. There is nothing to sync to.
  • No team features, no integrations. Nothing is sent anywhere. Sharing a receipt means exporting the PNG or copying the text and posting it yourself.
  • No backup you did not make. The file is on your Mac and nowhere else. Time Machine or any ordinary backup covers it, but the app will not do it for you.

If any of those is essential, you need a tracker from the first or second category above, with a server and the trade-offs that come with it. If none of them is, an app with no networking is the simplest possible answer to “does it work offline”, because the question does not apply.

Questions

Does Punchcard need a connection even once, to activate?

No. The app has no networking code, so it cannot contact anything. The license key arrives by email from the store, and the app never goes online to check it, because it has no way to. How to track time offline on a Mac covers the day-to-day.

My current tracker says “offline mode”. Is that enough?

It depends which of the three meanings above it uses. Run the eight-step test. If reports and history work overnight with the connection off and nothing uploads when it returns, it is enough. If it queues and uploads, your data is still going to a server, which may or may not be fine for you.

Can I move my Punchcard data to a new Mac without a sync feature?

Yes, by copying the SQLite file to the same path on the new Mac, or by exporting CSV and keeping that. Neither involves the network, and both are things you do by hand, which is the point.

Is an app with no networking code also safe from license-check outages?

Yes, by construction. There is no check to fail. The app behaves the same on a plane, in a cabin, and on a desk with a fast connection it has no way to notice.