Blog
Notes on the tools and apps I build: how they work, what broke, and what I decided.
- 3 min read
Shipping Lyffe: a life planner with no account and no server
What I decided and what I shipped building Lyffe, an iOS planner for tasks, habits, journal and money that keeps all data on the phone.
React NativeExpoiOSPrivacy - 3 min read
Hacker News has no search box, so I built a reader in one HTML file
HN Reader adds search, time windows and fast comment threads to Hacker News using two public APIs, with no build step, no dependencies and no account.
JavaScriptAPIsOpen Source - 3 min read
Hiding menu bar icons on macOS 27, where the old trick stopped working
How hidnr hides menu bar icons on macOS 14 to 26 with a stretched divider, and what it does on macOS 27, where macOS controls which apps are visible.
SwiftmacOSOpen Source - 3 min read
Limiting a Mac battery after Apple locked the charging keys
On macOS 27 firmware 20457.1 the old charging switches are locked. How chargnr still limits charge, and the safety rules that keep a Mac from draining flat.
SwiftmacOSApple SiliconOpen Source - 3 min read
Why listnr never mixes your microphone with the call audio
Mixing the mic and the call into one waveform makes Whisper invent confident, wrong sentences. How listnr transcribes two separate lanes on-device instead.
SwiftWhisperKitOn-device AIPrivacy - 4 min read
How grabnr downloads one file over every network connection
A look inside grabnr: a shared chunk queue, a worker bound to each network interface, and the limits of adding Wi-Fi, Ethernet and a phone together.
RustNetworkingOpen Source