An enterprise-grade AI-native video conferencing platform built with Next.js 15, React 18, TypeScript, and LiveKit. Transform every meeting into a searchable, shareable, actionable workspace with advanced AI capabilities, real-time collaboration, and intelligent meeting management.
- High-quality real-time video/audio with LiveKit
- Adaptive bitrate and network optimization
- Multi-participant support with grid/spotlight layouts
- Screen sharing and presentation mode
- Claude AI Assistant: Advanced conversational AI using Anthropic's Claude
- Real-time Transcription: Live speech-to-text during meetings
- Contextual Understanding: AI accesses current and historical meeting data
- Vector Search: Semantic search through meeting history using Pinecone
- Meeting Summaries: Automatic generation of key points and decisions
- Action Item Extraction: AI identifies and tracks tasks and assignments
- Web Search Integration: AI can search the web for real-time information
- Persistent Meeting Workspaces: Create and manage dedicated meeting spaces
- User Authentication: Secure access with Clerk authentication
- Subscription Management: Tiered access with Stripe integration
- Meeting History: Complete archive of past meetings and transcripts
- Participant Management: Role-based permissions (host/participant)
- Email Invitations: Automated meeting invites via Resend
- Calendar Integration: Schedule recurring meetings (coming soon)
- Real-time Chat: In-meeting messaging with participants
- AI Chat Integration: Chat directly with AI during meetings
- Task Management: Create and assign tasks within meetings

Chat with AI during meetings for instant insights and answers

Automatic speech-to-text transcription during meetings

AI-generated meeting summaries with key points and decisions

Create and assign tasks directly from meeting discussions

Comprehensive meeting workspace with all tools integrated
- Next.js 15: App Router with React Server Components
- React 18: Latest React features with Concurrent Rendering
- TypeScript: Full type safety and IntelliSense
- Tailwind CSS: Utility-first styling with custom design system
- Framer Motion: Smooth animations and transitions
- LiveKit: WebRTC infrastructure for video/audio
- LiveKit Components: Pre-built React components
- Real-time Messaging: WebSocket-based chat system
- Anthropic Claude: Advanced conversational AI (Claude-3.5 Sonnet & Claude-4)
- OpenAI: Text embeddings for semantic search
- Pinecone: Vector database for AI context retrieval
- Hybrid RAG: Retrieval-Augmented Generation system
- MongoDB: Document database with Mongoose ODM
- Zustand: State management for complex UI state
- Server Actions: Next.js server-side data mutations
- Clerk: Complete authentication and user management
- Stripe: Subscription billing and payment processing
- Webhook Handling: Real-time event processing
- Resend: Transactional email service
- React Hot Toast: In-app notifications
- Real-time Updates: Live meeting status and notifications
- Vercel: Serverless deployment platform
- ESLint & Prettier: Code quality and formatting
- TypeScript: Full type coverage
- Turbo: Fast development builds
- Node.js 18+ (recommended: use Node.js 20)
- MongoDB (local installation or MongoDB Atlas)
- Package Manager: npm, yarn, or pnpm
- Clone the repository:
git clone <repository-url>
cd aura
- Install dependencies:
npm install
# or
pnpm install
- Set up environment variables:
cp env.example .env.local
- Configure your environment variables in
.env.local
:
See the Environment Variables section below for detailed configuration.
- Start the development server:
npm run dev
# or for faster builds with Turbo
npm run dev --turbo
- Open your browser: Navigate to http://localhost:3000 to access Aura.
# Development
npm run dev # Start development server
npm run dev --turbo # Start with Turbo (faster builds)
# Production
npm run build # Build for production
npm run start # Start production server
# Code Quality
npm run lint # Run ESLint
npm run lint:fix # Fix ESLint issues
npm run format:check # Check Prettier formatting
npm run format:write # Apply Prettier formatting
# Database & AI
npm run migrate-pinecone # Migrate data to Pinecone
npm run test-pinecone # Test Pinecone connection
npm run check-data # Check existing data
The application requires several API keys and configuration variables. Copy env.example
to .env.local
and fill in your values:
Variable | Description | Where to Get |
---|---|---|
LIVEKIT_API_KEY |
LiveKit API key for video/audio | LiveKit Console |
LIVEKIT_API_SECRET |
LiveKit API secret | LiveKit Console |
LIVEKIT_URL |
LiveKit WebSocket URL | LiveKit Console |
MONGODB_URI |
MongoDB connection string | MongoDB Atlas or local |
Variable | Description | Where to Get |
---|---|---|
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY |
Clerk public key | Clerk Dashboard |
CLERK_SECRET_KEY |
Clerk secret key | Clerk Dashboard |
CLERK_WEBHOOK_SECRET |
Clerk webhook secret | Clerk Dashboard |
Variable | Description | Where to Get |
---|---|---|
ANTHROPIC_API_KEY |
Claude AI API key | Anthropic Console |
OPENAI_API_KEY |
OpenAI API for embeddings | OpenAI Platform |
PINECONE_API_KEY |
Vector database API key | Pinecone Console |
Variable | Description | Where to Get |
---|---|---|
RESEND_API_KEY |
Email service API key | Resend Console |
STRIPE_SECRET_KEY |
Stripe payment processing | Stripe Dashboard |
STRIPE_WEBHOOK_SECRET |
Stripe webhook secret | Stripe Dashboard |
STRIPE_PRICE_ID |
Subscription price ID | Stripe Dashboard |
Variable | Description | Default |
---|---|---|
NEXT_PUBLIC_APP_URL |
Your app's base URL | http://localhost:3000 |
NEXT_PUBLIC_SHOW_SETTINGS_MENU |
Show settings menu | false |
π₯ LiveKit Setup
- Sign up at LiveKit Cloud
- Create a new project
- Go to Settings β Keys
- Copy the API Key, API Secret, and WebSocket URL
- Your WebSocket URL format:
wss://your-project.livekit.cloud
π Clerk Authentication Setup
- Sign up at Clerk
- Create a new application
- Go to API Keys section
- Copy the Publishable Key and Secret Key
- Set up webhooks in Webhooks section for user management
π€ AI Services Setup
Anthropic Claude:
- Sign up at Anthropic Console
- Add billing information (required for API access)
- Generate an API key
- Ensure access to Claude-3.5 Sonnet and Claude-4 models
OpenAI:
- Sign up at OpenAI Platform
- Add billing information
- Generate an API key with embeddings access
Pinecone:
- Sign up at Pinecone
- Create a new project
- Generate an API key
- Note your environment and index name
π§ Resend Email Setup
- Sign up at Resend
- Add and verify your domain
- Generate an API key
- Configure DNS records for email delivery
π³ Stripe Payment Setup
- Sign up at Stripe
- Get your Secret Key from the API keys section
- Create a Product and Price for subscriptions
- Set up Webhooks for payment events
- Copy the webhook signing secret
# Build the application
npm run build
# Start production server
npm start
- Connect Repository: Link your GitHub repository to Vercel
- Environment Variables: Add all environment variables in Vercel dashboard
- Deploy: Vercel will automatically deploy on every push to main branch
# Deploy to Vercel
npx vercel
# Production deployment
npx vercel --prod
- Build the application:
npm run build
- Set up environment variables: Ensure all production variables are set
- Start the server:
npm start
- Set up reverse proxy: Use Nginx or similar for production
- Development: Uses
.env.local
- Production: Set environment variables in your hosting platform
- Staging: Use
.env.staging
or platform-specific variables
- Sign Up: Create a free account or join as a guest
- Create Room: Set up a new meeting room with participants
- Join Meeting: Enter room via direct link or dashboard
- Enable AI: Sign up to unlock AI assistant features
- π₯ Video Controls: Camera on/off, background effects, screen sharing
- π€ Audio Controls: Microphone mute/unmute, noise suppression
- π¬ Real-time Chat: Message participants during meetings
- π€ AI Assistant: Chat with AI about meeting content
- π Transcription: Live speech-to-text transcription
The AI assistant provides intelligent meeting support:
- Meeting Insights: "Summarize the key decisions made today"
- Historical Context: "What did we discuss about this topic in previous meetings?"
- Action Items: "Create a task list from today's discussion"
- Web Search: "What are the latest trends in our industry?"
- Participant Analysis: "Who has been most active in recent meetings?"
- Task Management: Create and assign tasks within meetings
- Meeting Analytics: Track participation and engagement metrics
- Subscription Management: Upgrade for advanced AI features
- Email Invitations: Automatically send meeting invites
- Calendar Integration: Schedule recurring meetings (coming soon)
aura/
βββ app/ # Next.js 15 App Router
β βββ (auth)/ # Authentication routes
β β βββ sign-in/ # Sign in pages
β β βββ sign-up/ # Sign up pages
β βββ api/ # API routes
β β βββ ai-chat/ # AI assistant endpoints
β β βββ meetings/ # Meeting management
β β βββ subscription/ # Stripe integration
β β βββ webhooks/ # External webhooks
β βββ meeting/[meetingId]/ # Individual meeting pages
β βββ rooms/[roomName]/ # Live meeting rooms
β βββ subscription/ # Billing and subscription
β βββ layout.tsx # Root layout
βββ components/ # React components
β βββ landing/ # Landing page components
β βββ meeting/ # Meeting UI components
β βββ ui/ # Reusable UI components
β βββ workspace/ # Dashboard components
βββ lib/ # Core utilities and services
β βββ ai/ # AI and ML services
β β βββ chatbot.ts # Claude AI integration
β β βββ embeddings.ts # OpenAI embeddings
β β βββ hybrid-rag.ts # RAG system
β β βββ pinecone.ts # Vector database
β βββ database/ # Database layer
β β βββ mongodb.ts # MongoDB integration
β βββ services/ # External services
β β βββ email.ts # Resend email service
β β βββ livekit-room-service.ts # LiveKit integration
β β βββ stripe.ts # Stripe payment service
β βββ state/ # State management
β β βββ meeting-store.ts # Zustand stores
β βββ utils/ # Utility functions
βββ public/ # Static assets
βββ styles/ # Global styles
βββ scripts/ # Utility scripts
We welcome contributions! Here's how to get started:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature
- Make your changes: Follow the existing code style
- Run tests:
npm run lint
andnpm run format:check
- Commit changes:
git commit -m 'Add amazing feature'
- Push to branch:
git push origin feature/amazing-feature
- Open a Pull Request: Describe your changes
- Follow TypeScript best practices
- Use Prettier for code formatting
- Write meaningful commit messages
- Test your changes thoroughly
- Update documentation as needed
Apache License 2.0 - see LICENSE file for details.
- Documentation: Check this README and code comments
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: Contact the development team
Built with β€οΈ by Paras Savnani