Skip to content

Converso - AI Voice Companion SaaS Platform | Create & chat with personalized AI companions using real-time voice interactions | Built with Next.js 15, TypeScript, Supabase & Vapi AI

Notifications You must be signed in to change notification settings

Durga1534/my_converso

Repository files navigation

πŸ—£οΈ Converso - AI Voice Companion SaaS

Next.js React TypeScript Tailwind CSS Supabase Clerk

🎯 An AI-powered voice companion platform built with modern web technologies

Create, customize, and chat with AI companions using voice interactions


🌟 Features

🎀 Voice Interactions

  • Real-time voice conversations with AI companions
  • Speech-to-text and text-to-speech capabilities
  • Microphone controls with mute/unmute functionality
  • Live transcript display during conversations

πŸ€– AI Companions

  • Create custom AI companions with different personalities
  • Subject-based companions (Math, Science, Literature, etc.)
  • Customizable voice styles and speaking patterns
  • Personal companion library management

πŸ‘₯ User Management

  • Secure authentication with Clerk
  • User profiles and session history
  • Bookmark favorite companions
  • Personal dashboard with usage analytics

πŸ“± Modern UI/UX

  • Responsive design for all devices
  • Beautiful animations with Lottie
  • Real-time visual feedback during conversations
  • Clean, intuitive interface

πŸ› οΈ Tech Stack

Frontend

  • Next.js 15.3.4 - React framework with App Router
  • React 19 - User interface library
  • TypeScript - Type-safe JavaScript
  • Tailwind CSS 4 - Utility-first CSS framework
  • Lottie React - Animations and micro-interactions

Backend & Database

  • Supabase - PostgreSQL database and real-time subscriptions
  • Clerk - Authentication and user management
  • Vapi AI - Voice AI integration for conversations

Development Tools

  • ESLint - Code linting and formatting
  • Sentry - Error tracking and monitoring
  • Turbopack - Fast bundler for development

πŸš€ Getting Started

Prerequisites

  • Node.js 18+ installed
  • npm or yarn package manager
  • Supabase account
  • Clerk account
  • Vapi AI account

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/converso.git
    cd converso
  2. Install dependencies

    npm install
    # or
    yarn install
  3. Set up environment variables Create a .env.local file in the root directory:

    # Clerk Authentication
    NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key
    CLERK_SECRET_KEY=your_clerk_secret_key
    
    # Supabase Database
    NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
    NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
    
    # Vapi AI
    NEXT_PUBLIC_VAPI_PUBLIC_KEY=your_vapi_public_key
    VAPI_PRIVATE_KEY=your_vapi_private_key
    
    # Sentry (Optional)
    SENTRY_DSN=your_sentry_dsn
  4. Set up Supabase database

    • Create a new Supabase project
    • Run the database migrations (see /database folder)
    • Set up Row Level Security (RLS) policies
  5. Configure Clerk

    • Create a Clerk application
    • Set up authentication providers
    • Configure webhooks for user management
  6. Start the development server

    npm run dev
    # or
    yarn dev
  7. Open your browser Navigate to http://localhost:3000


πŸ“ Project Structure

converso/
β”œβ”€β”€ app/                         # Next.js 15 App Router
β”‚   β”œβ”€β”€ api/                    # API routes and endpoints
β”‚   β”œβ”€β”€ companions/             # Companion management pages
β”‚   β”‚   β”œβ”€β”€ [id]/              # Dynamic companion detail page
β”‚   β”‚   β”‚   └── page.tsx       # Individual companion view
β”‚   β”‚   β”œβ”€β”€ new/               # Create new companion
β”‚   β”‚   β”‚   └── page.tsx       # Companion creation form
β”‚   β”‚   └── page.tsx           # Companions listing page
β”‚   β”œβ”€β”€ my-journey/            # User dashboard and analytics
β”‚   β”‚   └── page.tsx           # Personal journey tracking
β”‚   β”œβ”€β”€ sentry-example-page/   # Error monitoring demo
β”‚   β”œβ”€β”€ sign-in/               # Authentication pages
β”‚   β”œβ”€β”€ subscription/          # Subscription management
β”‚   β”œβ”€β”€ favicon.ico            # App favicon
β”‚   β”œβ”€β”€ global-error.tsx       # Global error boundary
β”‚   β”œβ”€β”€ globals.css            # Global styles and Tailwind
β”‚   β”œβ”€β”€ layout.tsx             # Root layout component
β”‚   └── page.tsx               # Homepage
β”œβ”€β”€ components/                # Reusable UI components
β”œβ”€β”€ constants/                 # App constants and static data
β”‚   β”œβ”€β”€ index.ts              # Main constants export
β”‚   └── soundwaves.json       # Lottie animation data
β”œβ”€β”€ lib/                      # Utility functions and configurations
β”‚   β”œβ”€β”€ actions/              # Server actions
β”‚   β”‚   └── companion.action.ts # Companion CRUD operations
β”‚   β”œβ”€β”€ supabase.ts           # Supabase client configuration
β”‚   β”œβ”€β”€ utils.ts              # Helper functions and utilities
β”‚   └── vapi.sdk.ts           # Vapi AI SDK integration
β”œβ”€β”€ public/                   # Static assets (images, icons, etc.)
β”œβ”€β”€ types/                    # TypeScript type definitions
β”œβ”€β”€ node_modules/             # Dependencies
β”œβ”€β”€ .env.local                # Environment variables (local)
β”œβ”€β”€ .env.sentry-build-plugin  # Sentry configuration
β”œβ”€β”€ .gitignore                # Git ignore rules
β”œβ”€β”€ components.json           # shadcn/ui components config
β”œβ”€β”€ eslint.config.mjs         # ESLint configuration
β”œβ”€β”€ instrumentation-client.ts # Client-side instrumentation
β”œβ”€β”€ instrumentation.ts        # Server-side instrumentation
β”œβ”€β”€ middleware.ts             # Next.js middleware (auth, etc.)
β”œβ”€β”€ next-env.d.ts             # Next.js TypeScript definitions
β”œβ”€β”€ next.config.ts            # Next.js configuration
β”œβ”€β”€ package.json              # Project dependencies and scripts
β”œβ”€β”€ postcss.config.mjs        # PostCSS configuration
β”œβ”€β”€ sentry.edge.config.ts     # Sentry edge runtime config
β”œβ”€β”€ sentry.server.config.ts   # Sentry server config
└── tsconfig.json             # TypeScript configuration

πŸ”§ Available Scripts

# Development
npm run dev          # Start development server with Turbopack
npm run build        # Build for production
npm run start        # Start production server
npm run lint         # Run ESLint

# Database
npm run db:migrate   # Run Supabase migrations
npm run db:seed      # Seed database with sample data

πŸ“Š Key Application Pages

Core Pages

  • Homepage (/) - Landing page and app introduction
  • Companions Listing (/companions) - Browse all available AI companions
  • Companion Detail (/companions/[id]) - Individual companion interaction page
  • Create Companion (/companions/new) - Build custom AI companions
  • My Journey (/my-journey) - Personal dashboard and usage analytics
  • Authentication (/sign-in) - User login and registration
  • Subscription (/subscription) - Billing and plan management

API Routes

  • Companion management endpoints
  • User authentication handlers
  • Voice AI integration endpoints
  • Subscription and billing webhooks

🎨 UI Components

Custom Components

  • CompanionComponent - Main voice interaction interface
  • CompanionCard - Companion display cards
  • TranscriptDisplay - Real-time conversation transcripts
  • VoiceControls - Microphone and call controls

UI Library

Built with Radix UI primitives and shadcn/ui components for:

  • Accessible form controls
  • Modal dialogs and overlays
  • Navigation and layout components

πŸ” Authentication & Security

Clerk Integration

  • Email authentication
  • Social login providers (Google, GitHub, etc.)
  • Session management and middleware
  • User profile management

Security Features

  • Row Level Security (RLS) with Supabase
  • API route protection
  • Client-side route guards
  • Secure environment variable handling

πŸš€ Deployment

Recommended Platforms

  • Vercel (Recommended for Next.js)
  • Netlify
  • Railway
  • DigitalOcean App Platform

Deployment Steps

  1. Push code to GitHub repository
  2. Connect repository to deployment platform
  3. Configure environment variables
  4. Deploy with automatic builds

Environment Variables for Production

Make sure to set all required environment variables in your deployment platform.


πŸ“ˆ Features Roadmap

  • πŸŽ₯ Video call support
  • 🌍 Multi-language support
  • πŸ“ Conversation summaries
  • πŸ”Š Voice cloning capabilities
  • πŸ“± Mobile app (React Native)
  • 🀝 Team collaboration features
  • πŸ“Š Advanced analytics dashboard
  • 🎨 Custom companion avatars

🀝 Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ™ Acknowledgments

  • Vapi AI for voice AI capabilities
  • Supabase for the amazing backend-as-a-service
  • Clerk for seamless authentication
  • Vercel for hosting and deployment
  • shadcn/ui for beautiful UI components

πŸ“ž Support


Made with ❀️ by Your Name

⭐ Star this repo if you find it helpful!

About

Converso - AI Voice Companion SaaS Platform | Create & chat with personalized AI companions using real-time voice interactions | Built with Next.js 15, TypeScript, Supabase & Vapi AI

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published