Focus Valley

How it works

Focus Valley is a Pomodoro timer that tries to count only the minutes you really worked. Here is every part of it, and which version each part lives in.

Where the free timer stops

The timer in your browser is free, needs no account, and is not a trial of anything. The desktop app costs money and does one thing a browser tab is not permitted to do: watch whether you are still at the computer.

This is worth being blunt about, because it is the whole commercial argument and it is also a plain technical fact. A web page can be told that its tab lost focus. It cannot be told whether you then went to your editor, to a video, or to lunch: those all look identical from inside the tab. It cannot draw anything outside its own window either, so a web timer can never put an alert over the thing that distracted you. No amount of clever code changes either limit, ours included. If you already know which side of that line you are on, the download page has the builds, and the comparisons put the same limits next to what other timers do about them.

Everything below is marked with where it actually exists. Most of it is in both.

Every part, in order

It notices when you stop working

Desktop app

The desktop app asks the operating system a single number: how many seconds since your last keypress or mouse movement. Past sixty seconds it decides you have walked away and pauses the timer by itself, so a finished session is the time you were actually there rather than the time that elapsed.

You can switch activity detection off in Preferences, and then the timer simply runs to the end like any other. If the reading ever fails, the app carries on from the last value it knew instead of pretending you are active.

Alerts that cover the whole screen

Desktop app

When a session ends, the break alert fills the entire screen, above every other window, instead of becoming one more notification you dismiss without reading. The idle alert works the same way when you have been gone a while.

Both can be switched off independently in Preferences, and there is a Reduce motion setting that quiets the animated background.

Four built-in presets, plus your own

Both

Short is 15 minutes of work and 3 of break, Classic is 25 and 5, Long is 50 and 10, Ultra is 90 and 20. A long break arrives every four cycles, or every two on Ultra, because ninety-minute blocks are heavy enough as it is.

Create a Custom preset with any focus duration from 1 to 180 minutes and any break from 1 to 60 minutes. You can also adjust the built-in rhythms: the Pomodoro literature is clearer about the shape of the cycle than about one sacred number of minutes.

Sparks: one per minute you actually worked

Both

A minute of focus is a spark, and finishing a break adds five more, because the break is part of the method, so skipping it is not rewarded. Sparks are earned Monday to Friday; at the weekend the timer behaves exactly the same, and the scoring stops.

There is no daily ceiling today. A limit of 600 sparks a day sits in the configuration and is not applied anywhere in the code, so as things stand a spark is a spark however many you collect.

Day streaks

Both

Focus on consecutive days and the streak grows, with the current run and your longest one kept side by side. It is the one number that rewards turning up rather than turning up hard, which is why it survives a bad day better than a total does.

A weekly world leaderboard

Both

Sparks put you on a world board that resets every Monday at 00:00 UTC, so nobody builds a lead nobody else can climb, and a week you missed is over rather than permanent. When scoring closes after Friday, first place earns 10 Gems, second earns 6, and third earns 3. Gems stay in your account and never reset.

There is one board, not one per version. The free web timer and the desktop app write to the same row, so if you use both your sparks add up instead of splitting in half, and neither can lower the other's total. What they do not share is how strictly a spark is earned: only the desktop app can tell whether you were really at the keyboard, so a web spark is a minute the timer was running. The guide below says so at more length rather than less.

Competing is optional. Without an account, or with leaderboard visibility switched off, the timer, presets, streak and personal spark tracking still work without putting you on the public board.

How the leaderboard works, in detail

Your history, week by week

Both

The Profile screen keeps a chart of your sparks day by day, alongside your streak and your rank. In the desktop app the history is tied to your account, so signing in on another computer brings it with you.

In the browser it lives in that browser. Clear the site data and it is gone. There is nothing on our side to restore it from unless you signed in.

It never looks at what you are doing

Both

The only thing read from your system is that one number: seconds since your last input. Not keystrokes, not the contents of the screen, not a list of which applications are open. The check runs on your own device, and what leaves it is your spark total, and only if you signed in.

Read the privacy policy

Start with the free one

Open the web timer. Nothing to install, nothing to sign. If you find yourself losing the hour anyway, that is what the Windows and Linux app is for; both builds are on the download page. You can also read the guides, or see how it compares to other focus apps.

Downloads are currently unavailable while we work on improving the experience. The free web timer is unaffected and available to use now.