AI-powered VC pitch practice platform where founders conduct real-time voice conversations with AI-simulated venture capitalists.
- Real-time Voice Conversations: Practice your pitch with AI VCs using natural voice interaction powered by OpenAI's Realtime API
- Customizable VC Personas: Choose from preset personas or create custom VCs with configurable personality traits
- 8 Personality Dimensions: Aggression, supportiveness, metrics focus, vision focus, interruption frequency, question depth, skepticism, and patience
- 5 Firm Archetypes: Angel, Seed VC, Series A, Growth Equity, and Corporate VC
- AI-Powered Feedback: Get detailed analysis of your pitch across 9 scoring dimensions after each session
- Session History: Review past sessions with full transcripts and feedback
- Framework: Next.js 16 (App Router) with TypeScript
- Frontend: React 19, Tailwind CSS, Lucide icons, Recharts
- Backend: Next.js API Routes, OpenAI SDK
- Database: Supabase (PostgreSQL + Auth)
- Real-time Voice: WebRTC via OpenAI Realtime API
- Validation: Zod
- Node.js 18+
- Supabase account
- OpenAI API key with Realtime API access
Create a .env.local file in the project root:
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY=your_supabase_anon_key
SUPABASE_SECRET_KEY=your_supabase_service_role_key
OPENAI_API_KEY=your_openai_api_key- Create a new Supabase project
- Run the database migrations (see
supabase/migrations/) - Enable Google OAuth in Authentication > Providers > Google
- Add your OAuth credentials from the Google Cloud Console
# Install dependencies
npm install
# Run development server
npm run dev
# Build for production
npm run build
# Start production server
npm startapp/
├── (auth)/ # Public routes (login, signup)
├── (dashboard)/ # Protected routes
│ ├── dashboard/ # Main dashboard
│ ├── practice/ # Voice practice sessions
│ ├── personas/ # VC persona management
│ ├── sessions/ # Session history & feedback
│ └── settings/ # User settings
└── api/
├── auth/ # OAuth callback
├── personas/ # Persona CRUD
├── realtime/ # WebRTC token generation
└── sessions/ # Session & feedback endpoints
components/
├── practice/ # Voice session UI components
├── personas/ # Persona management components
└── ui/ # Shared UI components
hooks/
├── useRealtimeSession.ts # WebRTC + OpenAI Realtime management
└── useTokenPrewarm.ts # Token pre-warming for faster connections
lib/
├── supabase/ # Supabase client utilities
├── personas/ # Prompt generation
└── utils.ts # Shared utilities
- User selects a VC persona
- Token is pre-warmed in the background for faster connection
- User clicks "Start Session" - WebRTC connection established via OpenAI Realtime API
- Real-time voice conversation with AI VC
- Session ends - transcript saved and analyzed by GPT-4o
- User receives structured feedback with scores
Each VC persona has:
- Personality Traits (0-1 scale): Controls conversation style and behavior
- Firm Archetype: Determines investment focus and typical questions
- Focus Areas: Specific topics the VC cares about
- Voice Style: OpenAI voice for audio output
| Table | Description |
|---|---|
user_profiles |
User info (display name, company, industry) |
vc_personas |
AI persona configurations |
pitch_sessions |
Practice session records |
session_messages |
Conversation transcripts |
session_feedback |
AI-generated feedback and scores |
npm run dev # Development server with Turbopack
npm run build # Production build
npm run lint # ESLint
npm start # Production serverPrivate - All rights reserved