Create, customize, and chat with AI companions using 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
- Create custom AI companions with different personalities
- Subject-based companions (Math, Science, Literature, etc.)
- Customizable voice styles and speaking patterns
- Personal companion library management
- Secure authentication with Clerk
- User profiles and session history
- Bookmark favorite companions
- Personal dashboard with usage analytics
- Responsive design for all devices
- Beautiful animations with Lottie
- Real-time visual feedback during conversations
- Clean, intuitive interface
- 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
- Supabase - PostgreSQL database and real-time subscriptions
- Clerk - Authentication and user management
- Vapi AI - Voice AI integration for conversations
- ESLint - Code linting and formatting
- Sentry - Error tracking and monitoring
- Turbopack - Fast bundler for development
- Node.js 18+ installed
- npm or yarn package manager
- Supabase account
- Clerk account
- Vapi AI account
-
Clone the repository
git clone https://github.com/yourusername/converso.git cd converso
-
Install dependencies
npm install # or yarn install
-
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
-
Set up Supabase database
- Create a new Supabase project
- Run the database migrations (see
/database
folder) - Set up Row Level Security (RLS) policies
-
Configure Clerk
- Create a Clerk application
- Set up authentication providers
- Configure webhooks for user management
-
Start the development server
npm run dev # or yarn dev
-
Open your browser Navigate to
http://localhost:3000
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
# 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
- 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
- Companion management endpoints
- User authentication handlers
- Voice AI integration endpoints
- Subscription and billing webhooks
CompanionComponent
- Main voice interaction interfaceCompanionCard
- Companion display cardsTranscriptDisplay
- Real-time conversation transcriptsVoiceControls
- Microphone and call controls
Built with Radix UI primitives and shadcn/ui components for:
- Accessible form controls
- Modal dialogs and overlays
- Navigation and layout components
- Email authentication
- Social login providers (Google, GitHub, etc.)
- Session management and middleware
- User profile management
- Row Level Security (RLS) with Supabase
- API route protection
- Client-side route guards
- Secure environment variable handling
- Vercel (Recommended for Next.js)
- Netlify
- Railway
- DigitalOcean App Platform
- Push code to GitHub repository
- Connect repository to deployment platform
- Configure environment variables
- Deploy with automatic builds
Make sure to set all required environment variables in your deployment platform.
- π₯ Video call support
- π Multi-language support
- π Conversation summaries
- π Voice cloning capabilities
- π± Mobile app (React Native)
- π€ Team collaboration features
- π Advanced analytics dashboard
- π¨ Custom companion avatars
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- 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
- π§ Email: kondurudurgaprasad.2@gmail.com
- π Documentation: docs.converso.com
- π Bug Reports: GitHub Issues
Made with β€οΈ by Your Name
β Star this repo if you find it helpful!