Here's a scenario most freelance designers have encountered: you're working on a train, or in a hotel lobby, or at a client's office where the guest Wi-Fi requires a daily login. You start a timer. The connection drops. You finish the session and hit Stop — but the tracker was trying to sync to a server that wasn't there, and when you reload the page, the session is gone.

Or a softer version: you want to log time on your phone mid-project, but the tracker's mobile web app won't load without data. So you make a mental note, forget it by the time you're at a desk, and the hour disappears into the margin of your day.

Both scenarios are caused by the same design choice: the tracker stores your data on a server first, not locally. When the server is unreachable, the tracker is broken.

The offline-first alternative

An offline-first tracker inverts this: data goes to your device first, server second. Sessions are written to local storage the moment you hit Stop. If there's a network connection, they sync. If there isn't, they sit in local storage until there is. Either way, they're on your device and they're not going anywhere.

This isn't a new idea — native apps have worked this way since the beginning — but it's been slow to arrive in web-based tools because building a proper offline-first web app requires more architecture than a simple REST API. The technology for doing it well (service workers, the Cache API, localStorage, IndexedDB) has been standardized and widely available since about 2018, but adoption has lagged.

What PWA means for a time tracker

A Progressive Web App (PWA) is a website that:

  • Can be installed to your home screen or desktop like a native app
  • Opens in a standalone window (no browser address bar)
  • Caches its own assets so it loads from the device, not the network
  • Can store data locally and continue working when offline

For a time tracker, PWA means you get a native-app experience — home-screen icon, full-screen view, instant launch — without going through an App Store. It works on iOS (Safari), Android (Chrome), macOS (Chrome or Edge), and Windows. You install it once from your browser; it updates itself in the background when you're connected.

// How ClockSplit handles offline

After your first visit to clocksplit.gobvantage.com/app.html, the service worker caches the full app shell. Sessions are stored in localStorage. You can track time, generate invoice lines, and export your full session history as JSON with no internet connection, indefinitely.

How to set up ClockSplit for offline use

Three steps, and it takes about thirty seconds:

On iOS (iPhone / iPad):

  1. Open clocksplit.gobvantage.com/app.html in Safari (must be Safari on iOS — other browsers on iOS don't support PWA install).
  2. Tap the Share button (the box with an upward arrow).
  3. Tap Add to Home Screen. Name it "ClockSplit."
  4. Open it once from the home screen while you're online — this triggers the service worker to cache the app.
  5. From this point, it works offline. The next time you open it with no connection, it loads from the device cache.

On Android (Chrome):

  1. Open clocksplit.gobvantage.com/app.html in Chrome.
  2. Tap the three-dot menu → Add to Home screen (or look for the install icon in the address bar).
  3. Open it once while online. Done — it's offline-capable from here.

On desktop (Chrome or Edge, Mac or Windows):

  1. Open clocksplit.gobvantage.com/app.html.
  2. Look for the install icon in the address bar (a circle with a plus sign, or a monitor icon). Click it.
  3. Click Install. ClockSplit opens in its own window and appears in your app launcher.
// THE TRACKER

Works offline — always

Open it once, add to home screen, and ClockSplit is available anywhere — no connection needed. Free forever, no card.

Open the tracker

What offline mode covers (and what it doesn't)

What works offline:

  • Timer — start, stop, and save sessions
  • Manual entry of past sessions
  • Generate clipboard invoice output from any sessions
  • View all sessions, weekly totals, lifetime totals
  • Export all sessions as JSON
  • Edit your hourly rate and display name

What requires a connection:

  • Signing in or creating a Gobvantage account (authentication requires the Supabase backend)
  • Cross-device sync — your local sessions will sync to the cloud when you reconnect, but the sync itself needs a network
  • PDF invoice export (requires jsPDF to load from CDN if it hasn't been cached yet)

The guest (no-account) experience is entirely offline-capable. If you're signed in, your existing sessions sync to the cloud in the background when a connection is restored — you won't lose anything logged offline.

The broader principle

A time tracker that loses sessions when the network is unreliable isn't a reliable time tracker. For freelance designers who work in varied environments — client offices, co-working spaces, transit, home — offline capability isn't a nice-to-have. It's a prerequisite for trusting your own records.

If your current tracker has ever silently dropped a session, it's worth switching to something that stores locally first. Your invoices — and your sanity — will reflect the difference.