Case study · Native macOS · Personal project

FocusNotch

Role
Sole designer + developer
Timeline
June 2026 → present
Stack
SwiftUI · AppKit · Swift 5 · macOS 14.6+ · xcodegen
Bundle
com.rhitik.focusnotch
HERO IMAGE
Cover — the collapsed pill sitting in the notch bands, dot left / timer right
01
Overview

A time tracker that lives inside the hardware notch.

FocusNotch tracks time inside the physical notch cutout on M-series MacBooks. An orange dot sits in the left band, the timer in the right band, and nothing hangs below or announces the app's presence.

The threat model shaped the design from the start: someone glances at my screen during a meeting. The pill has to stay useful to me and meaningless to them.

Category
Native macOS · Privacy-first
Platform
macOS 14.6+, Apple Silicon notch
Status
Working build, daily use
Predecessor
NotchTimer (retired, hit an architectural ceiling)
02
The design problem

Most notch apps hide below the void. I designed around it instead.

The notch itself is a physical cutout — zero pixels. Most notch apps hang a card below it, which works but wastes the real estate immediately left and right of the cutout, and announces the app's presence exactly when a tracker for sensitive freelance work shouldn't.

I treated the notch as a layout constraint rather than an obstacle to hide behind: dot in the left band, timer in the right band, both at the same vertical position as the menu bar, so the pill reads as part of the OS chrome instead of an app demanding attention.

"Someone glances at my screen during a meeting. The pill has to be useful to me and meaningless to them."
The threat model
03
Key decisions

Five decisions that came out of the constraint.

Decision
Privacy is non-negotiable
The collapsed pill shows the dot, timer, and optionally music EQ bars — never the project name. Direct consequence of the threat model, not a settings toggle.
Decision
Three switchable notch themes
Dynamic Island, Soft Panel, and Brutalist, routed through a settings dispatcher. Every theme had a vocal partisan in testing, so the fix was theme architecture instead of picking a winner.
Decision
Hover trigger clipped to the notch shape
An invisible hover zone shaped exactly like the notch cutout expands the panel only when the cursor actually enters the notch outline — not when it brushes past the side bands.
Decision
Freelance pricing as a first-class field
hourlyRate lives in the core data model, not a settings-screen afterthought. The manager header shows $/hr, the active task row tints orange, and CSV export adds an Amount column when a rate is set.
Decision
Currency as a real concern
Thirty curated currency codes, defaulting from the system locale. Hardcoding a $ sign is a bug that only non-US users ever notice.
Decision
App Intents kept deliberately small
Apple caps App Intents at ten. Status, resume, and focus-block intents made the cut and ship through Shortcuts rather than voice — each inclusion was a deliberate keep/cut call, not a full voice-control build.
04
What I cut

Two things that looked good and didn't fit.

The full Nothing-OS brutalist treatment as the default look — striking in mockups, but it contradicted the privacy stance the app is built around. It survives as one of the three themes, not the front door.

The card-below-notch pattern most competing notch apps use. I designed around the bands instead of defaulting to the easier, more common layout.

05
Outcome

Working build, replacing an earlier codebase that hit its ceiling.

FocusNotch is a working build in daily personal use. It replaces an earlier codebase (NotchTimer) that had accumulated too many patches around the same hardware constraints. Every load-bearing constraint discovered in that earlier build — visibleFrame handling, MenuBarExtra behavior, Core Audio quirks on recent macOS — carried forward without needing to be rediscovered.

The threat model is "someone glances at my screen during a meeting."
The pill has to be useful to me and meaningless to them.

Create a free website with Framer, the website builder loved by startups, designers and agencies.