
In progress
Boring Notch
Shipping real fixes into a macOS utility with thousands of existing users, on someone else's codebase and someone else's review bar.
- Role
- Contributor: Swift/macOS engineering
- Context
- Open source, fork of TheBoredTeam/boring.notch
- Timeline
- 2026, active
- Swift
- SwiftUI
- AppKit
- MediaPlayer
Summary
Boring Notch turns the MacBook notch into a music control center, HUD
replacement, clipboard shelf, and calendar surface. I'm working on a fork,
live-audio-visualizer, that started as one feature, a real-time audio
visualizer reacting to whatever's playing, and turned into a running list
of shipped fixes across Now Playing state, the clipboard shelf, and window
positioning, each one a bug real users would hit.
The problem
An always-visible menu-bar utility has a much less forgiving bar than most apps: it's on screen constantly, so any flicker, wrong elapsed-time count, or dropped state is visible every single time you glance at the top of your screen. The specific problem this branch chases is that the Now Playing state (what's playing, whether it's paused, the elapsed time) has to stay correct across pause, resume, and a browser tab silently taking over the system's "now playing" claim from the app that was actually playing audio. None of that is exotic, but all of it is easy to get subtly wrong.
Target user
The existing Boring Notch user base: people who already run a MacBook notch utility and expect it to be reliable enough to ignore, not something they have to work around. For this branch specifically: anyone who plays music through the notch and expects pause/resume, elapsed time, and which app "owns" the notch to just be correct, plus anyone who wants a visualizer that isn't a filler animation but actually driven by the audio playing.
Competitors
- NotchNook and similar notch utilities: cover some of the same surface (media controls, HUD) with varying reliability; Boring Notch's open-source model and active Discord/Crowdin community are its edge.
- Apple's built-in Now Playing: reliable but minimal, no visualizer, no clipboard shelf, no HUD replacement.
The differentiation isn't feature count, it's whether the always-on surface stays correct under real usage: pausing, switching apps, opening a browser tab with autoplay, which is exactly the class of bug this branch works through.
Insight
Bugs in an always-visible utility are found by using it, not by reading the code: a stopwatch that silently jumps to zero on pause, or elapsed time that rewinds a second on resume, only shows up when you're actually listening to music and glance up. So the effective process here was: use the app as a daily driver, notice the thing that looks wrong, trace it to the specific state transition causing it, and fix that transition, not just the visible symptom, so the same class of bug doesn't recur elsewhere in the Now Playing controller.
Solution
A run of targeted fixes to NowPlayingController and related views, each
scoped to one state-transition bug: elapsed time no longer flickers on
play/pause, resume no longer rewinds the counter by a second, the elapsed
time actually counts up and nothing else perturbs it, and the notch now
stays anchored to the app that's actually playing audio instead of
jumping to a browser tab that merely claimed the system Now Playing slot.
Alongside that: clipboard history changes (files, links, and images now
retained, a schema change that no longer wipes history), and window
positioning fixes so the expand/clipboard views size and dock consistently
instead of drifting or getting shoved off-screen.
Distribution
Distribution here is the upstream PR, not an app store or a marketing
push. The fork exists to eventually merge back into
TheBoredTeam/boring.notch, where the existing Discord and Crowdin
community becomes the distribution channel for free. The branch isn't
merged yet; it's still being hardened against the kind of usage that
finds the next state-transition bug.
Adapting to user feedback
Every fix on this branch traces back to something that looked wrong during actual daily use, not a filed issue: the notch following a browser tab instead of the real playing app was found by using the notch while browsing with autoplay video open. The elapsed-time issues were found the same way, by pausing and resuming during normal listening and noticing the number lie. That direct-usage loop is why the commit history reads as a string of specific, narrow fixes rather than one big rewrite: each one is sized to the exact transition that broke.
Process
Working directly against the upstream fork with focused commits, one state bug per commit, so each fix stays reviewable and revertable on its own rather than landing as a single large diff. Ongoing: hardening the Now Playing controller and the visualizer against edge cases before proposing the branch upstream.