Public
Like
2
voicemessages
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data ā all from the browser, and deployed in milliseconds.
Viewing readonly version of main branch: v10View latest version
A web application for recording, transcribing, and sharing voice notes with expiration controls.
- šļø Record voice notes directly in the browser
- š¤ AI-powered transcription using OpenAI Whisper
- š Share voice notes via unique URLs
- ā° Set expiration by max listens or date
- š± Responsive design with modern UI
- I can record a voice note
- Given I record a voice note, it is transcribed by AI
- Given I have recorded a voice note, I can share that voice note with someone via URL
- I can set an expiration for the voice note by number of max listens (i.e. 1 listen)
- Or, I can set an expiration for the voice note by choosing an expiration date
āāā backend/
ā āāā database/
ā ā āāā migrations.ts # Database schema
ā ā āāā queries.ts # Database operations
ā āāā routes/
ā ā āāā voicenotes.ts # Voice note CRUD operations
ā ā āāā static.ts # Static file serving
ā āāā index.ts # Main Hono server
āāā frontend/
ā āāā components/
ā ā āāā App.tsx # Main app component
ā ā āāā VoiceRecorder.tsx # Recording interface
ā ā āāā VoicePlayer.tsx # Playback interface
ā ā āāā ShareModal.tsx # Sharing configuration
ā āāā index.html # Main HTML template
ā āāā index.tsx # Frontend entry point
ā āāā style.css # Custom styles
āāā shared/
āāā types.ts # Shared TypeScript types
- Backend: Hono (TypeScript API framework)
- Database: SQLite for voice note metadata
- Storage: Val Town Blob storage for audio files
- AI: OpenAI Whisper for transcription
- Frontend: React with TypeScript
- Styling: TailwindCSS