A revolutionary conversational AI news platform that transforms how you consume and interact with news content.
- Conversational AI Interface: Natural language interactions with an intelligent news anchor
- Real-time News Updates: Latest articles from multiple categories and sources
- Voice & Text Input: Seamless switching between voice commands and text queries
- AI Video Chat: Interactive video conversations with AI news anchor (Tavus CVI)
- Smart Categorization: AI-powered news organization and personalization
- Search & Discovery: Advanced news search with contextual understanding
- User Authentication: Secure account management with Supabase
- Conversation History: Persistent chat history and preferences
- Responsive Design: Optimized for desktop, tablet, and mobile devices
- React 18 - Modern UI library with hooks and concurrent features
- TypeScript - Type-safe JavaScript development
- Vite - Fast build tool and development server
- Tailwind CSS - Utility-first CSS framework
- Framer Motion - Production-ready motion library
- React Router DOM - Client-side routing
- Zustand - Lightweight state management
- Lucide React - Beautiful SVG icons
- date-fns - Modern date utility library
- Supabase - PostgreSQL database, authentication, and real-time subscriptions
- Google Gemini API - Advanced AI language model for conversations
- GNews API - Real-time news article aggregation
- Tavus API - Conversational Video Interface (CVI) technology
- AssemblyAI - Real-time speech-to-text transcription
- Netlify - Static site hosting and continuous deployment
- Node.js (v18 or higher)
- npm or yarn package manager
- Git version control
git clone https://github.com/your-username/ai-news-anchor.git
cd ai-news-anchor
npm install
Create a .env
file in the root directory:
# Supabase Configuration
VITE_SUPABASE_URL=your_supabase_project_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
# AI Services
VITE_GEMINI_API_KEY=your_gemini_api_key
VITE_GNEWS_API_KEY=your_gnews_api_key
# Speech Recognition (Optional)
VITE_SPEECH_API_KEY=your_assemblyai_api_key
# Video Chat (Optional)
VITE_TAVUS_API_KEY=your_tavus_api_key
VITE_TAVUS_PERSONA_ID=your_tavus_persona_id
npm run dev
Visit http://localhost:5173
to see the application.
- Visit Supabase
- Create a new project
- Go to Settings → API
- Copy your project URL and anon key
- Visit Google AI Studio
- Create a new API key
- Copy the generated key
- Visit GNews
- Sign up for a free account
- Get your API key from the dashboard
- Visit AssemblyAI
- Create an account
- Get your API key from the dashboard
- Visit Tavus
- Sign up and create a persona
- Get your API key and persona ID
src/
├── components/ # React components
│ ├── Auth/ # Authentication components
│ ├── landing/ # Landing page sections
│ ├── layout/ # Layout components
│ └── NewsAnchor/ # Main app components
├── hooks/ # Custom React hooks
├── lib/ # Third-party library configurations
├── services/ # API service layers
├── store/ # State management
└── styles/ # Global styles and Tailwind config
npm run build
- Connect your GitHub repository to Netlify
- Configure build settings:
- Build command:
npm run build
- Publish directory:
dist
- Build command:
- Add environment variables in Netlify dashboard
- Deploy automatically on every push to main branch
- Sign up for a new account or sign in
- Choose between Chat, News, or Video modes
- Start asking questions about current events
- Browse news by category or search for specific topics
- Click the microphone button to start voice input
- Speak naturally about news topics you're interested in
- The AI will provide contextual responses with source links
- Activate video mode for face-to-face conversations
- Ask questions and get visual responses from the AI anchor
- Use both voice and text input during video sessions
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
- Follow TypeScript best practices
- Use Tailwind CSS for styling
- Write meaningful commit messages
- Test your changes thoroughly
- Update documentation as needed
npm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production build
npm run lint # Run ESLint
"Invalid time value" error
- Ensure your browser supports modern JavaScript features
- Clear browser cache and localStorage
Voice input not working
- Check microphone permissions in browser
- Verify AssemblyAI API key is configured
- Try using Chrome, Edge, or Safari
News not loading
- Verify GNews API key is valid
- Check internet connection
- Ensure API rate limits aren't exceeded
AI responses failing
- Confirm Gemini API key is correct
- Check API quotas and billing
- Verify network connectivity
- Lighthouse Score: 95+ across all metrics
- Bundle Size: Optimized with code splitting
- Loading Time: < 3 seconds on 3G networks
- Accessibility: WCAG 2.1 AA compliant
- Environment variables for sensitive data
- Supabase Row Level Security (RLS) enabled
- Input sanitization and validation
- HTTPS-only in production
- Regular dependency updates
- Multi-language support
- Push notifications for breaking news
- Social sharing features
- Advanced analytics dashboard
- Mobile app development
- Integration with more news sources
For support and questions:
- Create an issue on GitHub
- Check the documentation
- Review troubleshooting guide
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with Bolt - AI-powered development platform
- Icons by Lucide
- Images from Pexels
- Powered by cutting-edge AI technologies
Made with ❤️ for the future of news consumption