The Context Switch
Browser Friction
Time tracking in agency environments is inherently flawed. Developers and designers are forced to abandon their IDEs to hunt for a specific browser tab, navigate a clunky web UI, and click 'Start Timer'.
Lost Billable Hours
This massive friction point leads to inaccurate timesheets. Users desperately needed a zero-friction, native utility that lives globally in the system menu bar.
Instant State Swapping
The goal was to allow professionals to rapidly swap active contexts with a single click without ever breaking focus or waiting for a heavy DOM to render.
"I engineered this native macOS application strictly using Swift and SwiftUI, completely rejecting web wrappers to ensure the app consumes virtually zero CPU cycles in the background."
Technical Architecture
AppState is the single source of truth for every running timer. SwiftData caches projects and tasks for instant browsing; nothing reaches ProofHub's Bolt API until a timer is explicitly saved.
The MenuBarExtra Lifecycle
SwiftUI & macOS Native
SwiftData Offline Caching
Local Persistence Layer
Concurrent State Engine
Combine & Actor Model
