Component · shippable

Whisper

A hold-to-record voice message, done the way the messaging apps do it — hold to talk with a live waveform, slide to cancel, slide up to lock hands-free, release to send. No dependencies.

Maya Okonkwo online
did you get a chance to look at the deck?
the intro especially — does the pacing feel right to you?
one sec, easier to just tell you

No backend here — recordings stay in the browser so you can watch the whole flow, and each sent bubble's waveform is the exact take you just recorded. Point sendVoiceMessage() in app.js at your upload endpoint and flip USE_MIC on to capture the real microphone — everything else stays exactly as it is.