A Multi-Timer Kitchen App That Doesn't Drift When the Tab Is Backgrounded Most browser timers use setInterval(..., 1000) and a counter. This breaks: browsers throttle backgrounded tabs to 1 callback/minute, so a 10-minute timer comes back reading "9 minutes left" when you tab-switch. The fix is to store the start timestamp and derive remaining time from Date.now() - startedAt at render time. W