← Portfolio
Software

Cadence

Aug 2026

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.
From key press to pasted text. Everything before the paste runs on the Mac.
From key press to pasted text. Everything before the paste runs on the Mac.

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.

Links