A modern, responsive web application for streaming movies and TV shows with a beautiful UI and comprehensive features.
- Multi-Source Streaming: Access content from multiple video sources
- Search & Discovery: Search movies and TV shows with real-time results
- Watchlist Management: Save and organize your favorite content
- Continue Watching: Resume where you left off
- News Integration: Latest entertainment news and updates
- Responsive Design: Optimized for desktop, tablet, and mobile
- Dark/Light Theme: Toggle between themes
- PWA Support: Install as a progressive web app
- Offline Capability: Service worker for offline functionality
- Node.js 18+
- npm or yarn
- Vercel account (for deployment)
-
Clone the repository
git clone <repository-url> cd NowShowing
-
Install dependencies
npm install
-
Set up environment variables Create a
.envfile in the root directory:OMDB_API_KEY=your_omdb_api_key_here GNEWS_API_KEY=your_gnews_api_key_here NODE_ENV=development
-
Start development server
npm run dev
The app will be available at
http://localhost:3001
-
Build the project
npm run build
-
Start production server
npm start
- Visit OMDb API
- Request a free API key
- Add to environment variables
- Visit GNews
- Sign up for a free account
- Get your API key
- Add to environment variables
- Installable: Add to home screen on mobile devices
- Offline Support: Cache essential resources
- Background Sync: Sync data when online
- Push Notifications: Stay updated with new content
Add custom streaming sources via localStorage:
const customSources = [
{
name: "Custom Source",
url: "https://custom-source.com/movie/",
tvUrl: "https://custom-source.com/tv/"
}
];
localStorage.setItem('ns_custom_sources', JSON.stringify(customSources));Modify style.css to customize colors, fonts, and layout:
:root {
--primary-color: #your-color;
--secondary-color: #your-color;
--background-color: #your-color;
}-
Install Vercel CLI
npm i -g vercel
-
Deploy to Vercel
vercel
-
Set environment variables in Vercel dashboard
OMDB_API_KEYGNEWS_API_KEYNODE_ENV=production
-
Build the project
npm run build
-
Upload files to your hosting provider
- Upload all files except
node_modules - Ensure
.envfile is configured
- Upload all files except
- Static site deployment
- API function configuration
- Security headers
- Caching strategies
- Offline caching
- Background sync
- Push notifications
Images not loading
- Check network connectivity
- Use the refresh images button
- Clear browser cache
Video not playing
- Try different video sources
- Check if content is available
- Ensure JavaScript is enabled
API errors
- Verify API keys are set correctly
- Check API rate limits
- Ensure environment variables are configured
Enable debug logging in browser console:
localStorage.setItem('debug', 'true');- Image Optimization: Lazy loading and fallback handling
- Caching: Strategic cache headers and service worker
- Code Splitting: Efficient resource loading
- Memory Management: Cleanup of timeouts and event listeners
- Responsive Design: Optimized for all screen sizes
- Memory usage tracking
- Image loading statistics
- Error monitoring and reporting
- CSP Headers: Content Security Policy implementation
- CORS Configuration: Cross-origin resource sharing
- Input Validation: Sanitized user inputs
- API Key Protection: Server-side proxy for API calls
Content-Security-PolicyX-Frame-OptionsX-Content-Type-OptionsReferrer-Policy
- Error tracking and reporting
- Performance metrics
- User interaction analytics
- Google Analytics (configurable)
- Error reporting services
- Performance monitoring tools
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
- Follow existing code style
- Add comments for complex logic
- Update documentation
- Test on multiple devices
This project is licensed under the MIT License - see the LICENSE file for details.
- OMDb API for movie and TV show data
- GNews API for entertainment news
- Font Awesome for icons
- Vercel for hosting and deployment
For support and questions:
- Create an issue on GitHub
- Check the troubleshooting section
- Review the documentation
- Complete UI redesign
- Enhanced video player
- Improved performance
- Better error handling
- PWA enhancements
- Initial release
- Basic streaming functionality
- Search and discovery
- Watchlist management
Built with β€οΈ for movie and TV show enthusiasts