A comprehensive Netflix clone built with React, TypeScript, and TailwindCSS featuring a professional streaming platform interface with working video playback functionality.
Experience the Netflix Clone in action!
Note: After setting up the repository on GitHub, the live demo will be available at:
https://yourusername.github.io/netflix-clone/
This project includes automated GitHub Pages deployment using GitHub Actions.
- Push to GitHub: Push your code to a GitHub repository
- Enable GitHub Pages:
- Go to your repository settings
- Navigate to "Pages" in the left sidebar
- Under "Source", select "GitHub Actions"
- Automatic Deployment: The app will automatically deploy when you push to the main branch
The deployment workflow:
- โ
Runs on every push to
mainbranch - โ Uses pnpm for fast, efficient builds
- โ Automatically optimizes for production
- โ Deploys to GitHub Pages with proper routing
- Authentic Netflix UI Design: Dark theme with signature red accent colors
- Responsive Layout: Adapts perfectly to desktop, tablet, and mobile devices
- Netflix-Style Navigation: Fixed header with search, notifications, and user profile
- Featured Hero Section: Large video background with movie details and action buttons
- Working Video Player: Full-featured HTML5 video player with:
- Play/pause controls
- Volume control with mute toggle
- Seek bar for timeline navigation
- Fullscreen support
- Skip forward/backward (10s)
- Horizontal Content Rows: Smooth scrolling movie collections by category
- Interactive Movie Cards: Hover effects revealing video previews and detailed information
- Smart Search: Real-time search across all content with results display
- Movie Information Modals: Detailed popup with cast, genres, and recommendations
- Content Categories:
- Trending Now
- Popular on Netflix
- Netflix Originals
- Action & Adventure
- Smooth Animations: Professional transitions and hover effects
- Netflix Brand Colors: Authentic #E50914 red and dark theme palette
- Modern Typography: Clean, readable fonts matching Netflix's style
- Professional Layout: Pixel-perfect recreation of Netflix's interface
- Visual Hierarchy: Clear content organization and navigation flow
- Frontend Framework: React 18.3 with TypeScript
- Build Tool: Vite 6.0 for fast development and optimized builds
- Styling: TailwindCSS with custom Netflix color scheme
- UI Components: Radix UI component library for accessible interactions
- Icons: Lucide React for consistent iconography
- State Management: React hooks and context for client-side state
The application is fully responsive and optimized for:
- Desktop: Full-featured experience with all interactive elements
- Tablet: Adapted layout maintaining functionality
- Mobile: Touch-optimized interface with mobile navigation
- Fixed navigation with scroll effects
- Search functionality with expandable input
- User profile and notification areas
- Full-screen featured content display
- Video background with gradient overlays
- Call-to-action buttons (Play, More Info, My List)
- Custom HTML5 video player
- Professional playback controls
- Fallback to working sample videos
- Thumbnail display with hover expansion
- Interactive buttons and information overlay
- Smooth animations and transitions
- Horizontal scrolling movie collections
- Navigation arrows for content browsing
- Category-based organization
- Detailed content information popup
- Cast and crew details
- "More Like This" recommendations section
- Node.js (v18 or higher)
- pnpm package manager
# Navigate to the project directory
cd netflix-clone
# Install dependencies
pnpm install
# Start development server
pnpm dev
# Build for production
pnpm buildpnpm dev
# Open http://localhost:5173pnpm build
# Output in /dist directoryThe project includes a GitHub Actions workflow (.github/workflows/deploy.yml) that automatically:
- Installs dependencies using pnpm
- Builds the project for production
- Deploys to GitHub Pages
- Configures proper base path for GitHub Pages routing
netflix-clone/
โโโ public/
โ โโโ data/
โ โ โโโ movies.json # Sample movie/show data
โ โโโ images/ # Movie thumbnails and assets
โโโ src/
โ โโโ components/
โ โ โโโ ui/ # Reusable UI components
โ โ โโโ NetflixHeader.tsx # Main navigation
โ โ โโโ HeroSection.tsx # Featured content section
โ โ โโโ VideoPlayer.tsx # Custom video player
โ โ โโโ MovieCard.tsx # Individual movie cards
โ โ โโโ ContentRow.tsx # Horizontal content rows
โ โ โโโ MovieModal.tsx # Detailed content popup
โ โโโ App.tsx # Main application component
โ โโโ index.css # Global styles and Netflix theme
โ โโโ main.tsx # Application entry point
โโโ dist/ # Production build output
- Netflix Red: #E50914 (primary brand color)
- Netflix Black: #141414 (dark backgrounds)
- Netflix Dark: #000000 (deepest black)
- Netflix Gray: #333333 (secondary elements)
- Netflix Light Gray: #b3b3b3 (text and borders)
- Font Family: Sans-serif system fonts
- Sizes: Responsive scaling from mobile to desktop
- Weights: Regular, medium, semibold, and bold variants
- Uses HTML5 video elements with custom controls
- Fallback to Google Cloud Storage sample videos
- Supports autoplay, muting, and loop functionality
- Error handling with graceful degradation
- Real-time filtering across all content
- Search by title and genre
- Results display with grid layout
- Clear search state management
- Mobile-first approach with progressive enhancement
- Breakpoint-based layout adjustments
- Touch-optimized interactions for mobile devices
- Fluid typography and spacing
- Optimized Images: Proper image loading and fallbacks
- Code Splitting: Efficient bundle management with Vite
- Lazy Loading: Content loaded as needed
- Smooth Animations: Hardware-accelerated transitions
- SEO Ready: Proper meta tags and structure
- User authentication and profiles
- Personal watchlists and favorites
- Recommendation algorithms
- Content rating and reviews
- Multi-language support
- Offline viewing capabilities
- Social sharing features
This project is created for educational and demonstration purposes, showcasing modern web development techniques and Netflix-inspired design patterns.
Built with โค๏ธ using React, TypeScript, and TailwindCSS