Shipped an Android app «Ne pishi golosovoe!» («Don’t send voice notes!») to RuStore in two days. Speak into the mic, get a transcript. All on the device: no cloud, no account, no internet. Voice notes often carry sensitive stuff, and pushing them off to someone else’s servers is a bad default.

The stack: Expo SDK 54, React Native 0.81 with the New Architecture, 16 kHz mono WAV recording via @siteed/audio-studio, sherpa-onnx engine, Sber’s GigaAM v3 (NeMo CTC, INT8). On Russian it’s about 2.5× more accurate than Whisper-large-v3. The model downloads once, weighs around 320 MB, then runs offline. I slice long recordings into chunks and drop anything under 250 ms as noise.

The UI is minimal: one main screen with a list of notes and a floating record button. A real-time waveform, pulse and glow animations in sync with loudness, swipe-left deletes, light and dark themes.

Put the negolosom.ru landing together in a sitting: a one-pager with buttons to RuStore and contacts.

Technologies: Expo SDK 54, React Native 0.81 (New Architecture), TypeScript, Zustand, Reanimated v4, sherpa-onnx, GigaAM v3, AppMetrica

negolosom.ru «Ne pishi golosovoe!» app landing