AI Voice Assistant
AI-first · React + Node (Express) · 19 @molecule/* packages
Speech-to-text, AI processing, and text-to-speech voice assistant — with built-in Stripe-backed subscription tiers
Live demo
The real deployed app. It can take a few seconds to start.
What is inside
Screens (14)
- Landing
/ - Login
/login - Signup
/signup - ForgotPassword
/forgot-password - ResetPassword
/reset-password - Conversation
/conversation(signed in) - History
/history(signed in) - ConversationDetail
/history/:id(signed in) - Agents
/agents(signed in) - Settings
/settings(signed in) - AgentDetail
/agents/:id(signed in) - Billing
/settings/billing(signed in) - Search
/search(signed in) - Profile
/profile(signed in)
Data model (11 tables)
- agents — id, user_id, name, system_prompt, model, voice_id, tools, persona_avatar_url, …
- api_credentials — id, user_id, provider, encrypted_key, label, last_used_at, created_at, updated_at
- conversations — id, user_id, agent_id, title, mode, message_count, total_seconds_spoken, started_at, …
- devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
- messages — id, conversation_id, role, content, type, audio_s3_key, duration_ms, latency_ms, …
- notifications — id, user_id, kind, title, body, link, read_at, created_at
- payments — id, createdAt, updatedAt, userId, transactionId, productId, platformKey, data, …
- thread_messages — id, threadId, userId, body, editedAt, createdAt, updatedAt
- thread_read_status — threadId, userId, lastReadMessageId, updatedAt
- threads — id, title, creatorId, resourceType, resourceId, closed, createdAt, updatedAt
- voice_presets — id, user_id, provider, provider_voice_id, name, sample_url, created_at
API (5 handlers)
- agents
api/src/handlers/agents.ts - conversations
api/src/handlers/conversations.ts - preferences
api/src/handlers/preferences.ts - profile
api/src/handlers/profile.ts - speech
api/src/handlers/speech.ts
Subscription tiers
free / pro / team — gated by: maxConversations, maxSpeech, advancedFeatures, canExport, retentionDays
Built from 19 @molecule/* packages
@molecule/api-ai-agents@molecule/api-ai-agents-llm@molecule/api-ai-anthropic@molecule/api-ai-speech-elevenlabs@molecule/api-ai-speech-openai@molecule/api-database-postgresql@molecule/api-email-templates@molecule/api-emails-mailgun@molecule/api-entitlements@molecule/api-payments-stripe@molecule/api-realtime-socketio@molecule/api-resource-payment@molecule/api-resource-thread@molecule/api-resource-user@molecule/app-ai-assistant@molecule/app-ai-voice@molecule/app-billing-react@molecule/app-realtime-socketio@molecule/app-timeline
Required secrets
DATABASE_URLPostgreSQL connection stringANTHROPIC_API_KEYAnthropic API key for ClaudeOPENAI_API_KEYOpenAI API key for Whisper STT
The @molecule/* packages are Apache-2.0. The app you build from this template is yours to export and self-host. Licensing