The Mac is a fantastic work machine and a fantastic distraction machine, often within the same window. Most focus advice is generic; this guide is specific to the things that actually pull your attention on macOS and what to do about each one.
1. Kill notifications at the source
Every banner is an interruption that costs more than the few seconds it's on screen — it costs the re-immersion time afterward. Turn on a Focus mode (System Settings → Focus) for work hours and be ruthless about which apps may break through. For most people the honest answer is "almost none."
- Set a "Work" Focus that silences everything except a tiny allowlist (maybe calendar alerts).
- Turn off badge counts on Mail and Slack in the Dock — the red dot is a pull even when you're not clicking it.
- Disable "Allow notifications when mirroring or sharing the display" so demos don't leak, and so you're not tempted to peek.
2. Design the environment, not your willpower
Willpower is a finite, terrible foundation for focus. Environment beats it every time. The aim is to make the on-task path the path of least resistance.
- Quit, don't just hide. An app in the background is one Cmd-Tab away. Quit Slack, Messages, and your personal browser profile during deep work.
- Use a separate browser profile (or browser) for work, with only work tabs and bookmarks. Your personal feeds simply aren't there.
- Full-screen the one app you're working in and use it as a single Space. Cmd-Tab to nowhere is harder when there's nowhere to go.
- Hide the menu bar and Dock (System Settings → Desktop & Dock → Automatically hide). Out of sight genuinely helps.
3. Beat the tab-switch reflex
The real enemy isn't a website — it's the unconscious Cmd-T → type "you" → autocomplete to YouTube that happens in under a second while your code compiles. You didn't decide to do that; your hands did. Two things help: add friction to the reflex, and add awareness to the moment.
- Clear your browser's autocomplete for the sites that hijack you, so muscle memory stops landing on them.
- Put a deliberate pause between impulse and action — even a blank new-tab page with your current task written on it is enough to wake you up.
- When your build/render/test is running, have a designated "waiting" activity (stand up, read the next ticket) instead of defaulting to the feed.
4. Work in honest blocks
Time-boxing works because it converts a vague "be productive" into a concrete, finite ask. Pick a length you can actually sustain (25–50 minutes), name the single task, and protect it. The naming matters more than the timer: "drift" only exists relative to a stated intention.
5. Use a nudge, not a wall
Blunt blockers fail on a Mac for the same reason they fail everywhere: the same site is work in one moment and a rabbit hole in the next, so you end up disabling the blocker the first time it gets in your way. A better pattern is something that watches your context and nudges you when you've genuinely drifted — keeping your judgment in the loop instead of removing it.
This is the approach AccountyCat takes. It lives in your menu bar, reads the active app and window title (and only grabs a screenshot when text alone is ambiguous), and gives you a short nudge when you've wandered off the task you named — then gets out of the way. If you keep drifting it follows up with a gentle check-in you can wave off, never a hard lockout; it learns from your corrections, and it runs on-device or via your own private cloud key. It's free and open source, so if the checklist above isn't enough on its own, it's a low-risk thing to add.
The short version
- Silence notifications with a Work Focus and kill Dock badges.
- Quit distracting apps and use a work-only browser profile.
- Add friction to the tab-switch reflex and awareness to the moment.
- Work in named, finite blocks.
- Prefer a context-aware nudge over a blunt blocklist you'll just disable.