
A fire alarm and a doorbell both claim something is happening and demand attention, but only one of them should spike your pulse. For years, Slack didn't know the difference on my behalf, and neither did I, which is a rough setup when your entire developer workflow runs through one chat app. Getting Slack under control in remote work was never a willpower problem for me. It was a filtering problem: which pings get through the door, and which ones wait outside. What follows is the actual system I run now, not a philosophy about digital minimalism, and it's built to protect deep work blocks without turning you into someone your clients can't reach.
Every unfiltered notification costs more than the couple of seconds it takes to glance at it. There's a whole separate piece where I break down the real math behind that context switching cost, so I won't re-run the numbers here. The short version is that a "quick check" rarely stays quick once your train of thought derails. Diagnosing why focus keeps breaking is a lot like debugging a flaky test: the failure almost never shows up where the stack trace points, so chasing the last notification you answered is rarely the actual fix. What matters for a freelancer's inbox is triage, not willpower. Deciding in advance what deserves your attention instead of re-deciding it fresh every time a badge lights up makes the difference.
That derailment adds up fast. I spent the back half of one especially bad stretch treating every message like it might be urgent, which left me with the kind of brain fatigue symptoms that don't show up on a calendar but absolutely show up in your commit history: sloppier code, slower reviews, more time spent staring at a screen without producing anything worth shipping.
Two Kinds of Pings, One Inbox
Not every red dot deserves the same reaction, and the fix starts with admitting that. A client mentioned once, almost as a throwaway line during a kickoff call, that anything with the word "staging" in it needed same-day eyes — I didn't think much of it in the moment, but I caught myself replaying that exact line the next time their channel lit up, and it's the reason keyword alerts work at all: you're not guessing what matters, someone already told you and you paid attention. Stack four back-to-back client calls before lunch and the pings hit differently too — that particular flavor of exhaustion is its own topic I've covered under Zoom fatigue, and it compounds with notification overload instead of canceling it out.
Here's how the filtering actually gets built, step by step.
Setting Up Keyword Alerts That Actually Filter
Slack caps you at twenty highlighted words and phrases in your notification preferences, and most people never use half of them. I use every single slot: the project IDs I'm actively billing against, the names of the two or three people who actually sign off on invoices, and blunt trigger words like "urgent" and "broken." Everything else (every #general debate, every meme thread, every congratulatory GIF) gets muted at the channel level, not the notification level, which matters because a muted channel can still sit there quietly racking up an unread count if you let it.
The result is closer to a fire alarm and a doorbell sharing one wire but ringing differently depending on the source. A mention of the actual repo or the actual client name gets a sound. A comment about the weather in a general channel doesn't, which is about the right amount of respect to give small talk in a company chat. That distinction alone removed most of the anxiety, because I stopped needing to check every ping just to find out which kind it was.
Sorting Channels Into Profit and Noise
Sidebar sections handle everything the keyword list can't. I group active client channels into one labeled section and collapse everything else into another — I don't even keep the second one expanded, since the channel names alone used to trigger the urge to check. A reader named Tarkan, who first wrote in after a post about tracking caffeine crashes, once asked whether the same trick holds up in a fifty-person shared team channel where half the pings clearly aren't meant for you. It does, but only if you're honest about which channels actually need your eyes: anything with an @channel warning threshold that size is a broadcast, not a conversation, and I set those to mentions-only without exception.
That's basically the same principle that cuts cognitive load in a browser window with forty tabs open — fewer visible things sitting there means fewer background decisions your brain has to keep re-making, though that's its own rabbit hole I've written up separately. Slack is no different. A sidebar with two sections beats a sidebar with forty unread channels every time, even when the total message volume hasn't changed at all.
Does Going Fully Dark Ever Work?
Quitting the app entirely and promising clients you'll only check email sounds disciplined, and it fails for a predictable reason: silence reads as absence, not focus, to someone waiting on a deploy. Clients don't read a vanished freelancer as "deep in flow". They read it as "possibly dead," and only one of those gets you paid on time. Total silence tends to increase client anxiety rather than reduce it, which means more tagging once you resurface, which means more notifications later. That's a worse trade than the one you were trying to avoid in the first place. Gadgets don't fix this either. I once ran a standing desk converter for exactly eleven days before quietly reverting to sitting, and it did nothing for the actual problem, because the problem was never posture. It was which messages I let interrupt me and which ones I decided could wait.
Look, none of this is medical advice, and if you're dealing with something that feels like real cognitive fog rather than a bad habit, a doctor is a better resource than a blog post. There's a real difference between brain fog and simply not trying hard enough, and it's worth figuring out which one you're actually dealing with before blaming your notification settings for everything. Timing supplements around an actual meeting schedule is its own project too, one I've mapped out elsewhere, and no capsule fixes a notification setup that's fundamentally broken. If you're curious what's supposedly happening inside those capsules in the first place, I keep a separate rundown of the ingredient mechanisms — this piece isn't that one.
Check-In Windows Protect Deep Work
Instead of staying always-on, I tell clients upfront that Slack gets checked at the top of the hour, full stop. It sounds like a small policy, but it flips the actual power dynamic. You're responding on a schedule instead of reacting to whoever pinged last, and it helps reduce decision fatigue because you're no longer deciding whether to answer right now every single time a message lands. The answer is already fixed: wait for the window. None of this works without an actual deep-work zone to protect in the first place. The settings are just the perimeter fence, not the yard.
My phone spends deep work blocks on the kitchen counter, not face-down on the desk. The desk itself is a standing setup wedged in under a bay window, monitors doing the heavy lifting while the laptop stays closed off to one side, and the counter is far enough away that walking over there costs something. If getting back into a working rhythm after an interruption is the hard part, rebuilding my coding flow has its own set of triggers worth knowing, but avoiding the interruption in the first place is cheaper than any trick for climbing back into it afterward.
If you want proof a change like this is actually working rather than just feeling better, track some kind of baseline before you touch anything. It's the same discipline behind any longer self-experiment worth trusting.
The 90-Day Limit Nobody Reads the Fine Print On
Slack's free plan hides messages older than ninety days behind a paywall, and I found out the expensive way when a client referenced a spec from months back, and because I'd been trying to save money on the subscription, the message was simply gone from view. I spent an uncomfortable stretch trying to reconstruct a requirement from memory that should have just been sitting there, indexed and searchable.
That gap taught me to stop treating Slack as an archive. Anything a client sends as an actual requirement gets copied straight into Notion or a GitHub issue the same day — Slack is for the "right now," not the "forever," and once I stopped expecting it to hold onto things permanently, the pressure to leave every channel marked unread just evaporated.
What Changed Once the Filter Was Right
Nothing here eliminates notifications. It just makes sure the ones that get through are worth interrupting you for. A ping that clears the twenty-keyword filter, lives in a "Profit" section instead of "Noise," and lands inside a check-in window is a ping actually worth answering right away; everything else can wait for the top of the hour without anyone's project falling apart. That's the actual rule, and it holds up better than any promise to just try harder.
If you're drowning in pings right now, don't just mute everything and hope the anxiety fades on its own. It won't, because the uncertainty was always the actual problem, not the notification count. Fill every keyword slot Slack gives you, split your sidebar into what pays the bills and what doesn't, and pick one check-in cadence you can actually hold to. The red dot stops being a threat once it only ever means something real.