What we build with it
Whisper turns a form field into something a user can talk to instead of type into. We wire it in two different ways depending on where the input lives.
Behind a web frontend, audio is recorded in the browser, sent to a transcription endpoint on the existing backend, and the text comes back into the field it was recorded for. Inside a Flutter app, we bundle Whisper directly into the binary — a GGML build running through FFI — so transcription happens on-device: no upload, no round trip, and it keeps working with no connection at all.
Where we have shipped it
Formtastic is where this landed first. Its web app calls into a new transcription endpoint on the existing Django backend rather than a separate service, since Django already owns the request's auth and storage. Its Flutter apps carry the model itself, so filling out a form with no signal works exactly the way it does on wifi.
When we recommend it
Whisper is worth reaching for wherever a form has long free-text fields — notes, reports, open-ended answers — that are slow to type on a phone and natural to say out loud.
Which integration makes sense depends on the client. A web app that already has a backend gains little from carrying model weights to the browser, so a server endpoint is the smaller change. A mobile app benefits from the on-device path specifically when it has to work offline or when sending audio off the device isn't acceptable — the trade-off is a larger app bundle and app-level compute, in exchange for zero network dependency and nothing leaving the device.
