DEV Community

Cover image for Why I Built a Local-First Time Tracker in Chrome Manifest V3 (And How It Works)
Taranaz
Taranaz

Posted on

Why I Built a Local-First Time Tracker in Chrome Manifest V3 (And How It Works)

Most time-tracking apps for knowledge workers suffer from two primary issues:

  1. Corporate surveillance: Keystroke loggers or invasive cloud telemetry sending your browsing habits to external servers.
  2. Manual overhead: Needing to click "Start" and "Stop" every single time you switch tasks, which breaks developer flow state.

I wanted an automated, distraction-free tracker that lives entirely inside Chrome and respects developer privacy. That led me to engineer ProductivityPulse.

Here is a quick look under the hood at how Manifest V3 handles automatic time tracking and focus controls:

1. Distinguishing Active Work from Open Tabs
Leaving a documentation tab open for 4 hours does not equal 4 hours of reading. To measure genuine engagement, ProductivityPulse pairs Chrome’s idle API with a lightweight content script that detects interaction: keypresses, mouse movements, and scrolls. Storage writes are strictly debounced to keep the browser responsive and eliminate CPU overhead.

2. Intercepting Distractions at document_start
Standard site blockers often suffer from a noticeable delay where the target website loads before the redirect triggers. ProductivityPulse intercepts distracting domains at document_start before network resources fully resolve, seamlessly replacing the destination with a dark-mode focus timer.

3. Visualizing Rhythm with GitHub-Style Heatmaps
Instead of confusing data tables, the dashboard compiles daily sessions into a 30-day GitHub-style intensity heatmap, letting you visually spot peak cognitive hours and streak consistency.

4. 100% Local-First Storage
The entire session engine, domain breakdown, and Pomodoro logs reside locally on your device via chrome.storage.local. There is zero tracking telemetry. Optional cloud sync exists via Firebase only if you choose to back up data across machines.

Try It Free & Unlock Lifetime Pro:
I recently published ProductivityPulse on the Chrome Web Store.

  1. If you want to test it during your next coding sprint:
  2. Install from the Chrome Web Store
  3. Open Settings → Subscription
  4. Enter promo code PPLIFETIME to unlock all Pro features permanently

Note:
When signing in for Cloud Sync, you may see a Google warning screen. This is because our app is pending Google's verification review. Click 'Advanced' → 'Go to ProductivityPulse (unsafe)' to proceed — this is safe, it's a standard step for new apps awaiting verification.

Drop your thoughts, edge-case bugs, or feedback in the comments below!

Top comments (0)