Pixro is a modern webinar platform built with Next.js, featuring AI-powered assistance, live streaming capabilities, and integrated payment processing. The platform enables users to create, manage, and host interactive webinars with features like real-time chat, AI agents, and automated attendee management.
- Live Webinar Hosting: Real-time streaming with Stream.io integration
- AI Assistant Integration: Powered by Vapi.ai for intelligent interaction
- Payment Processing: Stripe integration for monetization
- User Authentication: Secure auth system using Clerk
- Real-time Chat: Interactive communication during webinars
- Automated Attendee Management: Track and manage webinar participants
- π Dark/Light Mode Support
- π Analytics Dashboard
- π¬ AI-powered Chat Assistance
- π Role-based Access Control
- π± Responsive Design
- π³ Stripe Connect Integration
- Frontend: Next.js 15.2.4 with React 19
- Backend: Next.js API Routes
- Database: PostgreSQL with Prisma ORM
- Authentication: Clerk
- Streaming: Stream.io
- AI Integration: Vapi.ai
- Payment Processing: Stripe
- State Management: Zustand
- UI Components: Radix UI
- Styling: Tailwind CSS
components.json- UI component configurationsnext.config.ts- Next.js configurationprisma/- Database schema and migrationspublic/- Static assetssrc/- Source code
(auth)/- Authentication routescallback/- OAuth callback handlingsign-in/- User sign-insign-up/- User registration
(protectedRoutes)/- Authenticated user routesai-agents/- AI assistant managementhome/- Dashboardlead/- Lead managementsettings/- User settingswebinars/- Webinar management
(publicRoutes)/- Public access routeslive-webinar/- Webinar viewing interface
ReusableComponent/- Shared componentsCreateWebinar/- Webinar creation interfaceLayoutComponents/- Layout elementsStripe/- Payment componentsSubscriptionModal/- Subscription management
ui/- UI component library
action/- Server actionslib/- Utility functions and configurationsprovider/- Context providersstore/- State management (Zustand stores)
- User: Account management and profile
- Webinar: Webinar session details
- Attendee: Participant information
- Attendance: Session participation tracking
- AiAgents: AI assistant configurations
- Node.js (LTS version)
- PostgreSQL
- Stripe CLI (for payment testing)
- Clone the repository
- Copy `.env.example` to `.env`
- Configure environment variables:
- Database connection
- Stream.io credentials
- Stripe keys
- Clerk authentication
- Vapi.ai configuration
```bash
npm install
npx prisma generate npx prisma db push
npm run dev ```
```bash
stripe listen --forward-to localhost:3000/api/stripe-webhook ```
- Use multiple browsers or incognito windows for testing webinar functionality
- Access via localhost:3000
- For local network testing, use your machine's IP address
- Start development server
- Open different browsers/incognito windows
- Login with different accounts
- Join the same webinar session
next.config.ts- Next.js settingsprisma/schema.prisma- Database schematsconfig.json- TypeScript configuration
src/provider/StreamProvider.tsx- Video streaming setupsrc/lib/prismaClient.ts- Database clientsrc/action/webinar.ts- Webinar management logic
- JWT-based authentication
- Role-based access control
- Secure payment processing
- Protected API routes
- Input validation and sanitization
- Use TypeScript for type safety
- Follow Next.js 13+ conventions
- Implement proper error handling
- Maintain consistent code style
- Write meaningful comments
- Use environment variables
- Implement proper logging
- Monitor performance metrics
- Regular security updates
- Database backups
For issues and feature requests, please create an issue in the repository.
[License Type] - See LICENSE file for details
For detailed documentation on specific features or components, please refer to the corresponding directories and their README files.