The three ways to block a site, and what each costs

Edit /etc/hosts. Free, and it breaks the site everywhere including the places you needed it to work. It also takes about four seconds to undo, which is roughly how long your resolve lasts.

A browser extension. Works well inside the browser it is installed in, and does nothing at all about the desktop chat client, the game, or the second browser you will open instead.

A native app that watches the frontmost window. It sees the browser tab and the application, so both routes go through the same list. This is what NoMore does, and everything below is in the shipping version.

How the detection works

NoMore watches two things: which application is frontmost, and - when that application is a browser - what its current tab is. It asks the browser directly, through the same scripting interface Safari, Chrome and the Chromium family expose to macOS, and compares the answer against your list on your own machine.

There is no proxy, no DNS service and no VPN profile. Your browsing is not routed anywhere, and the app has no server-side record of what you open, because the comparison happens locally and the result never leaves.

macOS gates that scripting access behind an Automation permission, which is why setup asks for one per browser. That prompt is the price of seeing the tab at all; there is no way to read a browser's current URL on a modern Mac without it.

What you actually put on the list

The unit is not "a blocked site". It is a streak - a thing you are trying to stop doing, which has a name, a start date, and a set of domains or applications that count as breaking it.

The NoMore menu bar popover on macOS listing three streaks, each with its day count and strictness, above a New streak button
Each entry is a named streak with its own domains, apps and strictness, not just a line in a block list.

One streak might be a single domain. Another might be four news sites. A third might be an application with no website involved at all. Each carries its own strictness - gentle, firm or brutal - and its own day count, and milestone notifications fire at 7, 14, 30, 60, 90, 180 and 365 days.

Framing it as a streak rather than a filter is the design decision the rest of the app follows from. A filter has a binary state. A streak has a length, and a length is a thing you do not want to lose.

What happens when you open one anyway

This is the interesting part, because the answer is not "you can't".

The NoMore friction panel reading 8 days without Reddit, with Step back as the primary button and Open anyway as a small link below it
The day count, then a lopsided choice: a large Step back, and a small link that spells out what opening costs.

A blurred panel takes over in front of what you opened. It shows how many days the streak is at, and offers a deliberately lopsided choice: Step back is the large primary button, and open anyway is a small link that spells out what it will cost. Every other escape hatch - pause for an hour, the daily free pass, the external-link exception - sits behind a More options disclosure, so the main screen stays a calm two-way decision rather than a menu.

The strictness setting changes what "open anyway" costs:

  • Gentle takes the click. The panel was the friction.
  • Firm starts a countdown you have to sit through, with a text field asking what you are going to do there. The countdown escalates within the same day - 30 seconds the first time, 60 the second, 120 from the third on - so a bad afternoon gets progressively more expensive rather than costing the same every time.
  • Brutal asks you to type out a confession of a minimum length before the button unlocks at all.

Stepping back does something real: NoMore asks the browser to go back and then re-checks the URL to confirm the tab actually left. For an application it hides the app rather than closing it, which is the honest limit of what a sandboxed app is allowed to do to a process it did not launch.

Bypasses, on purpose

Three exist, and they are all counted. Pause for an hour suspends a streak temporarily. A daily free pass allows one deliberate visit. An external-link exception covers the case where a link someone sent you happens to land on a blocked domain.

None of these are oversights. NoMore is friction, not a lock - and software that traps you out of your own machine gets uninstalled the first time it is inconvenient at the wrong moment, after which it protects nothing at all. A bypass you spend on purpose, that gets recorded, is a better outcome than a workaround you find in a rage.

What it records, and where it stays

Every trigger, every outcome and every "what are you going to do there" answer is written to a local store, and the stats screen turns that into which streaks are holding, what time of day you drift, and how the bypasses got spent.

The NoMore stats view with total clean days, longest streak, active streaks and a trigger-hours chart
Clean days, the longest streak, and the hour of day the triggers cluster in - computed locally, uploaded nowhere.

All of it is on your Mac. The only network traffic the app makes is licence validation and update checks.

What it costs, and what else to look at

NoMore runs on macOS 14 or later, on Apple Silicon and Intel, and takes about 25 MB. It is a one-time $6 purchase rather than a subscription, with a 14-day trial that needs no card and no email. The full specification is on the NoMore page.

Blocking solves drifting. It does not solve starting, and it does not solve choosing. If the problem is that the work never begins, a fixed interval is the lever - Pawodoro. If it is that you have four things and no decision, Anchored puts one of them in the menu bar for the day. There is a comparison of the whole category in the best focus apps for Mac.