- User authentication and room creation (host creates session with session code)
- Peer-to-peer WebRTC connection between host and receiver
- Record media locally using MediaRecorder API
- Upload complete recording to backend endpoint after stopping
- Backend saves to S3 and stores metadata in DB
- Dashboard shows uploaded recordings per session
- Create
Sessions,Tracks,JoinSessiontables in DB - Host can see all session-related recordings in dashboard
- Participants recordings visible to host
- User must sign up before joining a session (for access control & dashboard)
- Upload endpoint creates track entries linked to users and sessions
- Track who joined which session via
JoinSession - Display sessions and recordings in dashboard
- Show upload progress in UI
- Allow retry/re-upload if upload failed
- Track recording status (pending, uploaded, failed)
- Cache blob temporarily in
localStorageorIndexedDB
- Upload in chunks in background
- Display upload and processing status on dashboard
- Implement retry logic with exponential backoff
- Improve S3 metadata tagging (who, when, size)
- Track device info (optional, for support)
- Add simple waveform preview (placeholder for audio analysis)
- Transition to SFU (Selective Forwarding Unit) for 1-to-many calls
- Parallel media stream recording (record raw streams)
- Backend media merging (FFmpeg workflows)
- Server-side transcription or integration with external API (Whisper, Deepgram)
- Post-processing pipeline (normalize audio, trim silence)
- Timeline-style editor for aligning tracks
- Multi-track editing and exporting
- Green-room flow before session starts
- Cloud-based recording (backup stream via SFU)
- Real-time speaker detection (for auto-focus)
- Calendar integration, scheduling
- Shareable link with viewer access
- Progressive uploads and live previews
- Version 1 Complete
- Version 2 Complete
- Version 3
- Version 4
- Version 5