Ario Barin Ostovary

Software Engineering, University of Waterloo

log

Record a thought. Find it again later.

I made a private voice journal. Record a thought, keep the original audio, and find it later by searching the transcript.

The recording screen.
The voice journal's recording screen

The browser saves audio chunks in IndexedDB while I record. When I stop, the recording stays in a local upload queue until the server confirms it has arrived. An interrupted connection should not mean losing the recording.

Cloudflare R2 stores the audio, D1 stores the notes and searchable transcripts, and a queue handles transcription with Workers AI after the upload. Recording and playback do not have to wait for transcription to finish.

Audio and transcript together. Development preview with a sample note.
The journal's audio player and transcript, displaying a labeled sample note