How Limiter Tracks Time: URL Normalisation & SPA Counting
Why Limiter's timer can't be dodged: URL normalisation across subpaths, single-page-app tracking, and fully local counting explained.
On this page
Most of Limiter's engineering goes into the ways a naive website timer gets accidentally dodged. Two mechanisms do the heavy lifting: URL normalisation, which makes a limit on a site mean the whole site, and asynchronous execution lockdown, which keeps the clock running on modern feeds that never trigger a real page load. Understanding both explains why the countdown you see matches the time you actually spent.
URL normalisation: one site, one budget
A limit set on one exact address is trivially bypassed without anyone even intending to: a different subpath, a search result on the same site, or a shared link with tracking parameters attached would all read as somewhere new and start a fresh timer.
Limiter sanitises URLs before matching them. Query strings and tracking parameters are stripped, subpaths are treated as part of the same domain, and address variants collapse into one identity — so every page of a site draws from the same daily budget. When you add a domain in the dashboard, you add the site once, and the whole site is covered. Sites you did not add are untouched; Limiter only tracks the domains you explicitly listed.
SPA counting: the hour of scrolling counts as an hour
The larger loophole in naive timers is structural. Modern sites are single-page apps: clicking through a feed, opening the next video, or switching threads swaps content without a real page load. A timer that only counts on page loads therefore stops counting the moment you settle in — which is precisely when it matters most.
Limiter's asynchronous execution lockdown keeps the clock running through in-app navigation. An hour of feed scrolling counts as an hour, not as one page view, and the overlay's countdown reflects it in real time. The limit is enforced at the navigation layer, so when the allowance is spent, the browser redirects to the block screen rather than loading the page — the stop is not a banner you can scroll past.
Everything counts locally
All of this measurement happens entirely on your device. The domain list, the running counters, and the daily resets live in local storage; there is no account, no external data transmission, and no server that receives which sites you visit or how long you stay. The developer declares that data is not sold to third parties and is not used for purposes unrelated to the extension's core functionality.
This is worth stating plainly because a time-limit tool necessarily watches your browsing all day — which is exactly why it should be the one tool that never phones home.
The daily reset
Counters reset each day, and every site starts the new day with its full allowance. There is no weekly rollover to bank or borrow against, deliberately: a fresh daily budget is a rule you can rebuild a habit on, while a carry-over system rewards exactly the binge-and-abstain pattern the extension exists to break.
Next steps
Limiter
Give each distracting site a daily time budget and get a countdown overlay before it quietly eats your afternoon.
See also
Related documentation
- Getting Started With LimiterInstall Limiter in Chrome and give any website a daily time budget — with a live countdown overlay and a block screen at zero.
- Setting Daily Website Time Limits That Actually HoldHow to set per-site daily minute budgets in Limiter, pick numbers you can keep, and manage your rules from the dashboard.