Transform your voice memos into actionable insights with AI-powered transcription and summarization.
- 🎤 One-Tap Recording - Start recording instantly
- ⚡ AI Transcription - Convert speech to text in seconds (Groq Whisper)
- ✨ Smart Summaries - Get 3 key points automatically (Llama 3.3 70B)
- 📋 Action Items - Extract clear next steps from your memos
- 📧 Email Drafts - Generate professional email drafts
- 💾 History - Access all your past recordings
- 🔒 Private & Secure - Your data stays protected
- React Native + Expo
- React Navigation
- Supabase (Auth + Database + Storage)
- React Native Paper (UI)
- Expo AV (Audio recording)
- Node.js + Express
- Groq API (Whisper Large v3 + Llama 3.3 70B)
- Supabase (PostgreSQL)
- Supabase (FREE tier)
- Groq API (FREE tier - 14,400 requests/day)
- Total cost: $0/month (switching to Android - $25 one-time Google Play fee)
- Node.js 18+
- npm or yarn
- Expo CLI
- Groq API key (free at console.groq.com)
- Supabase account (free at supabase.com)
# Clone the repository
git clone https://github.com/yourusername/voicesnap.git
cd voicesnap
# Install frontend dependencies
npm install
# Setup backend
cd backend
npm install
cd ..
# Configure environment variables
cp .env.example .env
# Edit .env with your API keys
# Configure backend
cp backend/.env.example backend/.env
# Edit backend/.env with your API keysTerminal 1 - Backend:
cd backend
npm startTerminal 2 - Frontend:
npx expo startScan the QR code with Expo Go app on your phone to test.
id uuid (references auth.users)
email text
full_name text
subscription_status text (default: 'free')
subscription_end_date timestamp
recordings_this_month int (default: 0)
created_at timestampid uuid (primary key)
user_id uuid (references auth.users)
audio_url text (Supabase Storage URL)
duration int (seconds)
transcript text (Groq Whisper output)
summary jsonb ({bullets, action, email})
created_at timestampFull processing pipeline (transcribe + summarize)
curl -X POST http://localhost:3000/api/process \
-F "audio=@recording.m4a" \
-F "userId=user-123" \
-F "recordingId=rec-456"Transcription only
curl -X POST http://localhost:3000/api/transcribe \
-F "audio=@recording.m4a"Summarization only (text input)
curl -X POST http://localhost:3000/api/summarize \
-H "Content-Type: application/json" \
-d '{"transcript": "Your text here..."}'Health check
curl http://localhost:3000/healthTest Groq API connection
curl http://localhost:3000/test-groqEXPO_PUBLIC_SUPABASE_URL=https://xxx.supabase.co
EXPO_PUBLIC_SUPABASE_ANON_KEY=eyJ...
EXPO_PUBLIC_API_URL=http://YOUR_LOCAL_IP:3000SUPABASE_URL=https://xxx.supabase.co
SUPABASE_SERVICE_ROLE_KEY=eyJ... (SECRET!)
GROQ_API_KEY=gsk_...
PORT=3000
NODE_ENV=developmentcd backend
node test-groq.js- Login/Sign Up - Email authentication via Supabase
- Home - Quick record + usage stats + recent recordings
- Record - One-tap recording with timer (10-minute max)
- Results - Bullet points + action item + email draft
- History - All past recordings with search
- Settings - Profile, subscription status, logout
- Paywall - Premium upgrade prompt after 5 recordings
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License.
For questions or support, please open an issue on GitHub.
Built with ❤️ using open-source technologies