DEV Community

Cover image for I built a Mac app to stop exceeding my mobile data cap
heocoi
heocoi

Posted on

I built a Mac app to stop exceeding my mobile data cap

Ever tethered from your iPhone for "just a quick Zoom call" and ended up burning through half your monthly data?

Yeah, me too. Multiple times.

The problem

macOS doesn't distinguish between your home WiFi and your iPhone hotspot. Activity Monitor shows total bandwidth, but not "how much data did I use specifically on this limited connection?"

Existing solutions either:

  • TripMode ($15/year) - Overkill. I don't need app blocking, just awareness
  • Bandwidth+ (Free) - Doesn't know the difference between hotspot and home WiFi

So I built HotspotPeek

A simple menu bar app that:

  • Detects hotspot connections using NWPathMonitor.isExpensive
  • Tracks data per session and per month
  • Supports multiple profiles (personal phone, work phone, travel MiFi)
  • Alerts before you hit your cap

Technical bits

Built with SwiftUI + AppKit (NSMenu for native feel). Uses:

  • NWPathMonitor for connection type detection
  • CoreWLAN for SSID identification (to auto-switch profiles)
  • Pure system frameworks, no external dependencies

macOS 14+ only because I wanted to use the @Observable macro.

Lessons learned

  1. Sweet spot matters - Found the gap between "too basic" and "overkill"
  2. Location permission UX - Needed for SSID access on Sonoma+, had to explain clearly why
  3. Menu bar apps - NSMenu > NSPopover for authentic macOS feel

This is part of my "Peek" series - simple utilities that surface hidden macOS info:

  • VPN Peek (VPN status + leak detection)
  • Signal Peek (WiFi signal strength)
  • Battery Vitals (battery health)
  • Storage Peek (disk info)

Available on the Mac App Store for $4.99 one-time purchase.
No BS subscriptions.

https://apps.apple.com/us/app/hotspot-peek/id6757591640?mt=12


What's your experience with data caps? Any features you'd want to see?

Top comments (1)

Collapse
 
heocoi profile image
heocoi

More info about Hotspot Peek πŸ‘‡
anhphong.dev/apps/hotspot-peek