Skip to content
Andrew Voirol
WorkLogAboutContact
HomeWorkLog

AboutContact

✦ Just one prompt away from figuring it all out.

Friday, August 14, 2026personal-pomodoro-build

Stats dashboard, sound picker, and shipping dockless

SwiftApple Silicon

The last batch of files rounded out the app — daily stats tracking, a sound system with 6 chime options, and the polish to make it feel native. The StatsView tracks completed pomodoros, total focus time, snooze count, penalties incurred, and break tasks checked off, all persisted through UserDefaults via a StorageService singleton that resets at midnight. The sound system wraps NSSound with system chimes (Glass, Ping, Hero, Bottle, Submarine, Tink) and includes a live preview in the settings panel. Every user preference — focus duration, break lengths, snooze increment, penalty policy, sound selection, menu bar display mode — persists across launches. The app runs as a pure LSUIElement accessory: no Dock icon, no window chrome, just a menu bar popover with a tabbed interface (Timer, Break, Stats, Settings) navigated via SF Symbol icon pills. make run builds and launches it. Gemini 3.7 Flash wrote all of this unprompted — 18 files across Models, Services, and Views, with clean separation of concerns and zero compile errors.

← Previous

Snooze penalties: the feature that makes a timer actually work

Next →

MUJŌ: first ink on digital washi


Andrew Voirol

Builder, hacker, shipper. Currently leaving localhost.

Navigate

WorkBuilder’s LogAboutContactRSS Feed

Connect

X / TwitterGitHubLinkedIn

© 2026 Andrew Voirol✦Just one prompt away from figuring it all out.