DEV Community

Cover image for I hated manual timesheets, so I built a silent, multi-IDE automatic tracker
Raaf11
Raaf11

Posted on Edited on

I hated manual timesheets, so I built a silent, multi-IDE automatic tracker

Let’s be honest: manual time tracking is a productivity killer.

As developers, our brain works best when we are in "the zone" (the flow state). But the moment you have to remember to click "Start" on a web-based stopwatch, or manually log your hours into a timesheet at the end of the day, that focus breaks.

Even worse? Many of us don't just use one editor. Depending on the stack or the task, we switch. You might be debugging a heavy backend in IntelliJ IDEA, refactoring a frontend in VS Code, and experimenting with AI coding agents in Cursor or Devin.

Every time-tracking tool I tried was either tied to a single IDE ecosystem, forcing me to stitch together disparate, broken logs at the end of the month, or they were bloated spyware that logged my keystrokes.

So, I built a silent, lightweight solution that follows you everywhere: JustClock.


🛠️ The Core Challenge: The Multi-IDE Mess

When you switch between different developer tools, your time tracking fragmentizes.

Different IDEs often give the same project completely different folder structures or internal names. For example, a repository opened in PhpStorm might be recognized differently than when it's opened as a workspace folder in VS Code. If you use specialized editors like Cursor, Trae, or enterprise-level Visual Studio 2022, your timeline fractures even more.

To fix this, I designed JustClock to work silently across 20+ supported IDEs, including:

  • The JetBrains Family: IntelliJ IDEA, PyCharm, WebStorm, PhpStorm, GoLand, CLion, Rider, Android Studio, RubyMine, DataGrip, RustRover.
  • VS Code & Forks: Visual Studio Code, Cursor, Devin, Trae (using the same unified extension layer).
  • Full IDEs: Visual Studio 2022, Visual Studio 2026.

Solving the Naming Conflict: Project Aliases

We recently introduced a feature called Project Aliases. It solves a massive architectural headache: merging reports when different IDEs name the same project differently. JustClock merges those timelines without touching what your IDE actually reports under the hood, presenting a unified dashboard.


🧠 How it Works Under the Hood (Architecture & Logic)

The primary goal of JustClock was to be non-intrusive by default. It doesn't run a heavy desktop app in the background. Instead, it relies on ultra-lightweight plugins native to each IDE marketplace.

  1. Foreground Activity Detection: The plugin hooks into the IDE's window state. It detects whether the editor is the active window on your OS and monitors if you are actively working in a specific workspace.
  2. The Idle Problem (Smart Pausing): One of the biggest challenges was defining "idle time." If you leave your desk to grab coffee or get pulled into an unexpected meeting, a standard timer keeps running, skewing your metrics. JustClock monitors workspace activity and automatically pauses the timer during inactivity, ensuring minute-level accuracy.
  3. 120-Second Sync Loop: The plugin batches your active coding time locally and syncs it securely to your dashboard roughly every 2 minutes. No lag, no CPU spikes, no memory leaks.

🔒 Security & Data Focus: 0 Lines of Code Read

As developers, we are naturally skeptical about plugins running inside our development environments. We handle proprietary code, API keys, and sensitive business logic.

From day one, JustClock was built with a strict security-first philosophy.

  • 0 Lines of Code Read: The plugin has absolutely zero access to your code repository, file contents, or directory structures.
  • No Keystroke Logging: We do not record what you type, what variables you name, or what commands you execute.
  • Minimal Data Payload: The only data transmitted to our secure servers consists of:
    • A basic project name / identifier
    • Active time spent inside the IDE (time delta)
    • Your anonymized user account identifier

🚀 Setting It Up in 4 Steps

I wanted the onboarding to be as seamless as your git workflow. No matter which editor you use, the setup follows the exact same logical path:

  1. Install the extension from your editor's official marketplace (JetBrains Marketplace, VS Code Marketplace, Open VSX Registry, or Visual Studio Marketplace).
  2. Open your IDE settings (Ctrl/Cmd + , or Tools > Options).
  3. Grab your private API key from the JustClock.dev dashboard.
  4. Paste the key, hit save, and close the window.

The plugin vanishes into the background, and your dashboard begins turning your chaotic coding sessions into beautiful, structured visual charts, timelines, and activity heatmaps.


🎁 Built for the Community (Feedback Wanted!)

JustClock is a paid product designed for consultants, freelancers, and dev teams who need precise billing data without administrative overhead. However, we want to support the next generation of engineers, which is why JustClock is completely free for verified students for a full year (renewable as long as you're enrolled).

For everyone else, we offer a fully featured 60-day free trial, absolutely no credit card required.

Screenshot

I am genuinely looking for brutal engineering feedback from the DEV community:

  • How do you currently handle time tracking when switching between backend and frontend IDEs?
  • Would a local-only mode (saving all metrics entirely to a local JSON/SQLite database with zero cloud sync) be a feature you'd heavily prioritize?

Check it out at justclock.dev, install it in your favorite IDE, and let me know your thoughts in the comments below!

Top comments (0)