← All templates

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

Open in Molecule

What is inside

  • auth
  • speech-to-text
  • text-to-speech
  • ai-agents
  • realtime
  • subscriptions

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 (4 handlers)

  • agents api/src/handlers/agents.ts
  • conversations api/src/handlers/conversations.ts
  • preferences api/src/handlers/preferences.ts
  • speech api/src/handlers/speech.ts

Subscription tiers

free / pro / team — gated by: maxConversations, maxSpeech, advancedFeatures, canExport, retentionDays

Built from 19 @molecule/* packages

Browse all @molecule/* packages →

Required secrets

  • DATABASE_URL PostgreSQL connection string
  • ANTHROPIC_API_KEY Anthropic API key for Claude
  • OPENAI_API_KEY OpenAI 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