Introduction to focus tracking

May 12, 2024

I am a big believer in using personal data to drive my own performance. I like podometers, smartwatches, fitness rings. I’ve always felt that screen time applications (which is most of the productivity tracking market as far as I know) were not pushing the boundary far enough. What if you could apply the same rigor as sports science to not only get more stuff done but also free some time to do other things. My new app HotKey is a first attempt at that.

Naive screen time tracking does not work for me. Time is just a proxy for productivity, and as someone who struggles a lot with focus at time (borderline ADHD), I’ve noticed that first hand. Obviously in an age where everyone has at least 2-3 devices at all time, you can end up with huge VSCode screen time numbers while having spent most of that time scrolling TikTok. Even when disciplined enough to stay off social media, on bad days I may have spent those 8 hours on VSCode daydreaming.

But also I feel like time tracking apps don’t push the boundary far enough, in at least two ways. One, productivity is a spectrum, there must be ways to detect how focused one is beyond simply having an app opened. What if an app could detect the quality and efficiency of your work. Second, What if you could then correlate that data with your sleep data, nutritional intake, sport activity, location, room temp, etc.. As someone who’s dabbled in nootropics, I’ve always felt like we should rely on self experimentation to assess which ones actually work on oneself, beyond the anecdotal evidence, and that a big barrier to that is lack of tooling to measure, cross reference and visualize productivity data.

Today I am soft rolling out my new app, HotKey, which is a first experiment in achieving those goals by measuring typing and outputting various metrics, including active time and typing speed.

When I first started to ponder the question of how to improve time tracking, the first idea was to detect where on the screen the user is looking. My intuition is that eyes would be one of the greatest indicators of focus, because when not focused, I personally tend to look blankly in the same spot (instead of moving around), or even out of the screen, whether it’s outside the window. Obviously, this is not only resource intensive (webcam always on), but it’s a very hard unsolved challenge. Another proxy for focus then is typing. It does not account for activities like reading, scrolling, etc. but is a pretty good indicator as well, including for focus, because I am pretty sure it should be possible to assess someone’s alertness levels with typing signatures (typing speed, fluidity, number of errors).

With the current version of the app, you get a comprehensive view of your day so far, with typing speed, output, errors, as well as the active time (time spent writing without interruptions longer than 3 minutes). I personally like to use them for two things:

  1. If I have a goal in mind, for example work 3 hours on this essay, I can see when I have truly achieved that goal
  2. If I feel my focus is shifting, I can look at the graphs to see when it first started happening

You also get (recent) historical data on the output by hour of the day, day of the week, and a heatmap à la GitHub of your active time by day of the week during the 3 previous months.

Active time/focus tracker

If you are interested, please checkout the Chrome extension.

The end goal is for it to be a native app, but it’s easier to implement and ship a browser extension, and as I do a lot of my work on the browser anyway, this feels like a good first step to experiment. So if like me you do quite a lot of writing/coding on the browser (Chrome), please test the app and let me know what you think.

Next on the roadmap:

  • Support on desktop (MacOS first)
  • Better, faster and more transparent analytics
  • Dashboard and email reports
  • Assessing focus and providing active feedback to users to make productivity
    • For example, a notification reminding the user to take a five minute break if the focus slips
    • Or telling the user when is the best time to work, for how long, etc.
  • Tagged timer so that you can yourself assess the effects of anything (for example set a timer 2 hours every time you drink coffee)
  • Importing of third party personal data, for example Apple Health, and ability to cross reference many personal analytics to find relationships between actions and productivity.
  • Long term, some other products, including eye tracking

Written by Frédéric Gessler Deep learning, hardware accelerators and compilers enthusiast. Hacker. Builder. EPFL and Amazon alumni