22 Oct 2024
Josh

Announcing Foreground 1.0

Ever since we started working on Exist, I've been tracking my productive time on my Windows PC. For the vast majority of this time I was using RescueTime, together with Exist's RescueTime integration, so that I could automatically see my productive and distracting time totals in Exist and correlate that with everything else. RescueTime is a great product that, until recently, had a very generous free plan that perfectly suited how I was using it. But I was always uneasy with the idea that all of the data on what I do on my computer every day—every app I use and URL I visit—was being sent to a third-party. To me, this is much more sensitive data than how much I weigh or how many steps I took in a day. It would be nice if that data never left my computer.

So please welcome Foreground to the Hello Code family of apps that track things!

Screenshot

Foreground is an app to automatically track your time in apps and websites on Windows. It’s efficient, offline, and private, and all your activity data stays on your computer. It lets you categorise and rank all those apps and sites so you can track your productivity over time, see where you spend most of your time, and keep tabs on distractions. It also has a dark theme and browser add-ons for all major browsers. Foreground is written in Rust and uses very little memory and processing power.

Foreground can optionally send productive, distracting, and time gaming totals to Exist. Of course, if you enable this, it's not operating totally offline, but it only sends numeric totals, keeping the rest of your details locally.

I'm also quietly proud of some of the insightful measures I've implemented in Foreground: "focus score" and "activity spread". Because we're tracking which app or website is in the foreground every second (hence the name), we can see how often you switch between windows and tabs, and the average time between switches is your focus score. Mine for today is 25 seconds, which is pretty good for me. I'm often jumping around between writing code and looking at the output, but when I'm writing a blog post, I don't need to switch so much. On a more code-focused day, it's more like 10-15 seconds. The other measure, activity spread, is the number of unique apps and sites you interact with, and here a higher score indicates you're less focused and needing to access a lot of disparate information or tools for whatever task you're doing. Or you're extremely distracted! My activity spread today is 16 apps/hr, which is a bit higher than my average of 12 apps/hr. This is probably because I was doing a lot of disparate tasks earlier in the day, like support emails and updating Exist's knowledge base, where each of those also involved looking up some further information. So from these two numbers I can see I'm more focused on larger chunks of time in the one app, but I've also been spending that time across more apps and sites than I visit normally. I find these numbers a really nice metric of what type of day I'm having, not just how productive I'm being.

Foreground is a perfect fit for my single-PC use case, but I recognise not everyone works this way, and I'm looking into ways to sync data across computers (and those on Linux, and MacOS) without needing to entrust it all to our servers. This isn't an easy problem to solve though, so for now, consider Foreground a purely offline solution. Run it on as many PCs as you like, but the data will be specific to that PC.

Foreground is free to download, and you’ll need to buy a licence to keep using it after the 30-day trial ends. Foreground licences are valid for as many PCs as you like, and Foreground doesn't "call home" to verify your licence, meaning it'll keep working without an internet connection and also in the far future when Hello Code no longer exists.

Please consider supporting our efforts to make privacy-respecting software that doesn't rely on surveillance capitalism, advertising, or other detrimental aspects of late capitalism in order to make money. And hey: no "AI"!