
Software
Cadence
A macOS dictation app that sends what you say to whichever app you name.
What it does
Built-in dictation types wherever the cursor happens to be. With Cadence you say where the text should go, so it lands in the right app without switching to it first.
Technical details
- Input
- A global push-to-talk hotkey records 16 kHz audio with a live level meter.
- Transcription
- Apple Speech, on-device where the Mac supports it. The audio is deleted after each use.
- Routing
- It parses the spoken destination and supports 10 apps, plus whichever one is already open.
- Cleanup
- It removes filler words, adds punctuation and capitalization, and applies a personal dictionary.
- Backend
- Cloudflare Worker and Supabase, with Stripe for paid plans. Only the server can change which plan a user is on.
- Release
- One command builds it, signs it with a Developer ID, gets it notarized by Apple and packages the installer.
Engineering decisions
Signing every build
macOS ties accessibility permissions to an app's signature, and an ad hoc signature changes on every build. I sign every build, including development ones, with a real Developer ID certificate, so the permissions carry over from one build to the next.
Server-side plan control
Before release I locked down the database so a user's plan can only be changed by the server, never by the app itself.