How to use Untimer
A session from the first hold to the break, and the 4 screens around it. This guide covers each control and what it does.
Read the articleArticle
Most browser timers forget the session when you refresh the page. Untimer stores each session on the server as an end time. A refresh or a sleeping laptop leaves the session running. Your other devices show the same session.

Untimer replaces a timer that ran in a browser tab. It worked well until you touched it. A refresh lost the session. Leaving the page and coming back lost it too. On a phone the browser put the tab to sleep and the countdown stopped. The founder used that timer daily for years and lived with all 3 problems.
The cause was where that timer kept the time. It held the seconds left in the page’s memory and counted them down in a loop. That is the obvious way to build a timer, and it breaks easily. Page memory is wiped on a refresh. Browsers slow down loops in background tabs. The computer’s clock moves too. It moves when you change it or when the system syncs it. A laptop lid closed for an hour moves it as well.
Untimer is built the other way round. A session keeps running when you refresh the page or close the tab. It keeps running while the laptop sleeps. The server stores the session as an end time. Each screen works out the time left from that end time.
When you let go of the hourglass, the server writes down one fact. This session ends at a set instant, such as 10:25:00 in the server’s own time. It also writes when the session started and how long it was planned to be. If you named a task, it writes that too. The server holds that moment and does no counting.
Each screen that shows the countdown does one small sum. It subtracts the time now from the end time and shows the answer in minutes and seconds. It repeats the sum on each repaint. After a refresh the page asks the server for the end time and draws the time left. That is why a refresh leaves the session where it was.
Your computer’s clock can be wrong. A clock that runs 1 minute fast would show a session 1 minute short. A clock that jumps during a sync would make the sand jump with it.
So each answer from the server carries the server’s own time. The app anchors to it. It notes the server’s time and the browser’s elapsed time counter at the moment the answer arrives. From then on it measures time with that counter, which your machine leaves alone. The wall clock can be wrong by an hour and the sand still shows the right time.
When a laptop wakes from sleep the app asks again. It also asks when the tab comes back into view or the network returns. Each check is one small request that sets the clock again.
Only one session can run per account. A unique rule on the database table enforces it. Say a phone and a laptop start a session at the same moment. Exactly one wins. The other device is told what is already running and shows that session. The database has room for one answer, so your devices agree on which session is live. A session you start on one device appears on your other devices within a few seconds.
Each change you make also carries a small random ticket. Say your connection drops while you press Reset and the request goes out again. The server recognises the ticket and applies the reset once. Sending the same request twice is safe.
A session can reach zero while no screen is open. Say the tab is closed and the laptop is shut. Your phone is in a bag. The end time is already written down, so the session finishes on its own.
The next time a device asks the server anything, the server first looks for sessions whose end time has passed. It records them as complete at the moment they were due. Say a session is due at 10:25 while you sit in a meeting. You open Untimer at 14:00 and the record says it finished at 10:25.
The server writes the completion. When the sand runs out on screen, the app asks the server to confirm. The server hands back the record it just wrote. The message box at the end of a session reads from that record.
Most timers also count to ring the bell. They check each second whether it is time to ring. In a hidden tab browsers slow those checks to once a second. After a few minutes they slow them to once a minute. A bell that rings a minute late cannot be trusted. For people who do not feel time passing, the bell has to ring on time.
So Untimer schedules the bell in advance. The browser’s audio system keeps its own clock. That clock keeps going in a hidden tab. When a session starts, Untimer places the bell on that clock at the exact end time. Stop takes it back. Reset places it again for the new end time. When the moment arrives the bell sounds, whatever the tab is doing.
A browser allows sound only after you touch the page. After a refresh in the middle of a session, the bell is placed once you click or press a key. From then on it is exact. Settings has a switch for a browser notification when the session ends. It covers a page you have not touched since the refresh.
While a session runs, the tab title shows the minutes left. It reads 24 min, for example. You can read the time from another tab.
Untimer stays quick after 10 years of sessions. The days list in Insights loads one page at a time. The other panels read daily totals. The server updates those totals when a session ends. It checks milestones at the same moment. The timer Untimer replaced read its whole history and got slower each month.
Start a session at your desk and open Untimer on your phone. The phone shows the same sand at the same place. Refresh the page 100 times and the session carries on. Close the tab for an hour and the session is recorded at the minute it was due.
All of this happens out of sight. You can stop thinking about the timer and think about your work.

A session from the first hold to the break, and the 4 screens around it. This guide covers each control and what it does.
Read the article
Untimer counts a day in 25 minute sessions of the same size. Here is what a session records and how the day is drawn. It also shows what changes when you count in sessions and stop guessing in hours.
Read the article