For Chrome, Edge, Brave, and Arc — today
The same idea, in your browser.
The iPhone app is being built. This is not a preview of it — it is Grove, whole, for the place most of the scrolling actually happens.
No account. No server. No network requests of any kind.
You set this aside
instagram.com
You crossed here twice already today.
Breathe in
Breath 1 of 3
Not now
Close this and go back
Cross anyway
Finish the moment first
Why an extension
A website cannot block a website.
No page at one address can stop another from loading. Only something sitting in the browser's request path can. So the web version of Grove is an extension — and that constraint turns out to be the best thing about it.
Grove hands Chrome a list of patterns and Chrome does the matching. The extension is never told which addresses you visited. It could not build a browsing history if it wanted to.
The part everyone gets wrong
The site is not the problem.
Blocking youtube.com also blocks the tutorial you actually needed, so within a week the whole thing gets switched off. Grove works at the resolution that matters.
instagram.com The whole site, subdomains included.
youtube.com/shorts That path and everything under it. Search and subscriptions untouched.
reddit.com/$ The front page exactly. Subreddits you go to on purpose still open.
Which makes the pack Grove suggests first possible: the Shorts, the Reels, the For You feeds, and the front pages go. Search, messages, subscriptions, and anything a person sent you keep working.
The moment
One small, honest act of intent.
Not a punishment and not a puzzle. A few seconds of being present, which is exactly the thing the reflex skips. Seven of them, picked at random.
Three breaths
Four seconds in, six out, three times.
Breathe in — and out
Say it plainly
Type a sentence, exactly. The sentences are unflattering and true.
“I am not bored. I am under-stimulated.”
The wait
A bar fills while nothing happens. It pauses if you leave the tab.
The bar is not loading anything. It is just a bar.
Your own reason
Type back what you wrote when you were calm.
“I want my evenings back.”
Hold the door
Press and hold, longer than feels reasonable.
Let go and it starts again.
Name the errand
Say what you came for. Two of the answers are honest ones.
“My hand did it on its own.”
Reloading the page gives the same task back rather than rolling for an easier one. Leaving is the only filled button on the screen. Crossing is always available and never hidden — it just asks first.
The fourth visit
That is where the afternoon goes.
Not the first one. Three things in Grove exist for this specifically.
It asks a little more each time
Each crossing of the same site today is longer than the last, levelling off at three times. Beyond that it stops being a pause and starts being a punishment.
The pass actually ends
Crossing opens the site for the minutes you chose. When they run out the tab comes back to the threshold, so ten minutes means ten minutes rather than until you notice.
Quiet feeds
For the sites you cannot set aside because you need them. Grove empties the endless column and leaves messages, search, and profiles working.
How firm
Easy to plan. Hard to undo.
Gentle
One short task, then the door opens. A good default.
Committed
A longer task, and one more after it.
Locked
For a window you set while calm: no task and no door.
What Grove will not pretend
This is a browser extension. Anyone determined can disable it from the extensions page in about four clicks, and no amount of engineering changes that. What Grove can honestly offer is that switching it off takes more deliberation than opening a tab does. That gap is the entire product.
Privacy
Nothing to log in to. Nothing to leak.
Grove makes no network requests at all — you can watch its service worker and see an empty network tab. Everything you set lives in your browser's own storage on this machine.
It keeps a per-day count of how many pauses happened and which way you went. Never a page, never a time finer than the day. Sixty days are kept and older ones are dropped.
No account also means no recovery, so your settings export as a plain JSON file you keep yourself.
Install
Three steps, about a minute.
Not on the Chrome Web Store yet. Until it is, it loads unpacked — which also means you can read every line before you run it.
- 01 Clone the repository, or download it as a zip and unpack it.
- 02 Open chrome://extensions and turn on Developer mode.
- 03 Load unpacked, and choose the extension folder.
Chrome 116 or newer. Works unchanged in Edge, Brave, Arc, Opera, and Vivaldi. Firefox and Safari are coming; the iPhone app is still being built.