- Category
- Video & audio
- Status
- In development
- Platforms
- iOS, Android
- Stack
- React Native, Expo, TypeScript, NativeWind, on-device speech recognition
Pick a clip and CapFlow transcribes it with a speech model that runs on the device, groups the words into readable caption lines, times them against the audio and renders them into the exported video. There is no upload step, so there is no clip sitting on somebody else's server.
Captioning tools almost all work the same way: upload the clip, wait, download it back. That is a reasonable trade for accuracy and a bad one for anything you would rather not hand over. CapFlow does the transcription on the phone instead.
Timing is the hard part
A transcript is not captions. The words arrive with timestamps, and turning those into something readable means deciding where lines break, how many words can sit on screen at once, and how long a line has to stay up to be read at all. That grouping is its own module with its own tests, separate from the recognition.
Burned in, not overlaid
The captions are rendered into the exported video. What you post is what you saw — there is no companion subtitle file to lose and no player that decides not to show them.
- On-device recognition
- The speech model is fetched once and runs locally from then on. The video never leaves the device.
- Readable line grouping
- Word timings are grouped into caption lines sized for the frame, so phrases are not split across cards.
- Rendered into the export
- Captions are drawn into the output video rather than shipped as a separate track.
- Lifetime unlock
- One non-consumable purchase removes the length limit and the ads. No subscription.
Captures of CapFlow are pending. We would rather show you nothing than a drawing of a screen that was never photographed.