A cutting-edge Netflix clone built with the latest React 19 and modern web technologies
π₯ Live Demo β’ β¨ Features β’ π Installation β’ π οΈ Tech Stack
Dive into the future of streaming with this premium Netflix clone, crafted using React 19 and the latest web technologies. Experience seamless movie discovery, detailed information pages, and a pixel-perfect Netflix-inspired interface that adapts beautifully to any device.
|
|
| Technology | Version | Purpose |
|---|---|---|
6.7.2 |
Professional icon library | |
4.17.21 |
Utility functions for better performance |
| Technology | Version | Purpose |
|---|---|---|
9.21.0 |
Advanced code linting and formatting | |
3.5.3 |
Code formatting with Tailwind plugin | |
Types |
Type definitions for better development |
| Service | Purpose |
|---|---|
| Movie and TV show database | |
| Reusable data fetching logic |
οΏ½ Experience the magic yourself!
| Requirement | Version | Download |
|---|---|---|
18.0+ |
Download | |
latest |
Included with Node.js | |
Required |
Get API Key |
π₯ One-Click Setup (Recommended)
# Clone and setup in one go
git clone https://github.com/mrDanh11/netflix.git && cd netflix && npm installgit clone https://github.com/mrDanh11/netflix.git
cd netflix# Using npm (recommended)
npm install
# Or using yarn
yarn install
# Or using pnpm (fastest)
pnpm installCreate a .env file in the root directory:
# π TMDB API Configuration
VITE_API_HOST=https://api.themoviedb.org/3
VITE_API_TOKEN=your_tmdb_api_token_here
# π Optional: Custom Configuration
VITE_APP_TITLE=Netflix Clone
VITE_APP_DESCRIPTION=Premium Streaming Experienceπ How to get your TMDB API Token
- Visit TMDB API Settings
- Create a free account if you don't have one
- Request an API key (it's free!)
- Copy your API Read Access Token (not the API Key)
- Paste it in your
.envfile
π‘ Tip: Use the API Read Access Token, not the API Key for better security!
# Start the development server
npm run dev
# Or with other package managers
yarn dev
pnpm devπ Success! Visit http://localhost:5173 to see your Netflix clone in action!
# Create optimized production build
npm run build
# Preview production build locally
npm run preview# π§Ή Lint your code
npm run lint
# π¨ Format code with Prettier
npm run format
# π§ͺ Run tests (if available)
npm test
# π Analyze bundle size
npm run analyzeποΈ netflix/
βββ π public/
β βββ πΌοΈ asets/ # Static images and visual assets
β β βββ aceBg.jpg # Hero background image
β β βββ logo.png # Netflix logo
β β βββ NoImage.svg # Fallback image placeholder
β βββ π€ fonts/ # Netflix Sans font family
|
βββ π src/
β βββ π― components/ # Reusable UI components
β β βββ π§© CircularProgressBar.jsx # Rating visualization
β β βββ πΌοΈ Image.jsx # Optimized image component
β β βββ β³ Loading.jsx # Loading spinner
β β βββ π¬ MovieCard.jsx # Movie/TV show cards
β β βββ π SearchForm.jsx # Search functionality
β β βββ π₯ TrailerModal.jsx # Video trailer modal
β β βββ π Header/ # Navigation components
β β β βββ index.jsx
β β βββ π FeatureMovie/ # Hero section
β β β βββ index.jsx
β β β βββ Movie.jsx
β β β βββ PaginateIndicator.jsx
β β βββ π MediaDetail/ # Detail page components
β β β βββ ActorInfo.jsx # Cast member details
β β β βββ ActorList.jsx # Cast listing
β β β βββ Banner.jsx # Detail page hero
β β β βββ MediaInfo.jsx # Media information
β β β βββ RecommendMediaList.jsx # Similar content
β β βββ π MediaList/ # Content lists
β β β βββ index.jsx
β β βββ π SearchForm/ # Advanced search
β β β βββ FormField.jsx
β β β βββ GenresTypeInput.jsx
β β β βββ MediaTypeInput.jsx
β β β βββ RatingInput.jsx
β β βββ π Season/ # TV show seasons
β β βββ SeasonCard.jsx
β β βββ SeasonList.jsx
β βββ πͺ hooks/ # Custom React hooks
β β βββ useFetch.jsx # API data fetching
β βββ π libs/ # Utilities and constants
β β βββ constants.js # App-wide constants
β βββ π pages/ # Route components
β β βββ MovieDetail.jsx # Movie detail page
β β βββ PeoplePage.jsx # Actor/person page
β β βββ RootLayout.jsx # Layout wrapper
β β βββ SearchPage.jsx # Search results
β β βββ TvShowDetail.jsx # TV show detail page
β βββ π¨ index.css # Global styles
β βββ π main.jsx # Application entry point
β βββ π± App.jsx # Main app component
βββ π docs/ # Documentation and assets
β βββ πΈ screenshots/ # App screenshots
β βββ docsTailwindcss.md # Tailwind documentation
β βββ react-hook-form.md # Form handling docs
βββ βοΈ vite.config.js # Vite configuration
βββ π§Ή eslint.config.js # ESLint rules
βββ π¦ package.json # Dependencies and scripts
βββ π README.md # This file
|
|
Centralized API data fetching with advanced features:
const { data, isLoading, error, refetch } = useFetch({
url: '/movie/popular',
options: {
enabled: true,
cache: true,
retries: 3
}
});Features:
- β Automatic loading and error states
- β Request caching and deduplication
- β Retry logic for failed requests
- β TypeScript-ready interface
- π Smooth transitions and hover effects
- π± Touch-friendly interactions
- β‘ Hardware acceleration for performance
- π Micro-interactions for engagement
| Feature | Endpoint | Purpose | Cache |
|---|---|---|---|
| π₯ Trending | /trending/all/day |
Daily trending content | β 30min |
| β Top Movies | /movie/top_rated |
Highest rated movies | β 1hr |
| πΊ Top TV Shows | /tv/top_rated |
Highest rated TV shows | β 1hr |
| π¬ Movie Details | /movie/{id} |
Complete movie information | β 2hr |
| πΊ TV Details | /tv/{id} |
Complete TV show information | β 2hr |
| π― Recommendations | /movie/{id}/recommendations |
Similar content discovery | β 1hr |
| π₯ Cast & Crew | /movie/{id}/credits |
Actor and crew information | β 2hr |
| π Search | /search/multi |
Multi-category search | β No cache |
graph TD
A[User Interaction] --> B[React Component]
B --> C[useFetch Hook]
C --> D[API Request]
D --> E[TMDB API]
E --> F[Response Processing]
F --> G[State Update]
G --> H[UI Re-render]
H --> I[Loading States]
H --> J[Error Handling]
H --> K[Content Display]
|
|
// Global Error Boundary
<ErrorBoundary fallback={<ErrorFallback />}>
<Router>
<Suspense fallback={<Loading />}>
<App />
</Suspense>
</Router>
</ErrorBoundary>Features:
- π¨ Graceful Degradation - App continues working with limited functionality
- π Automatic Retries - Smart retry logic for failed API calls
- π Error Logging - Comprehensive error tracking and reporting
- π Fallback UI - Beautiful error states and empty states
| Feature | Status | Priority | ETA |
|---|---|---|---|
| π User Authentication | π‘ In Progress | High | Q1 2025 |
| π Watchlist Functionality | π΅ Planned | High | Q1 2025 |
| π― Advanced Search Filters | π‘ In Progress | Medium | Q2 2025 |
| π₯ Video Trailer Integration | π΅ Planned | Medium | Q2 2025 |
| β User Reviews & Ratings | π΅ Planned | Low | Q3 2025 |
| π± Progressive Web App | π΅ Planned | Medium | Q2 2025 |
| π Internationalization | π΅ Planned | Low | Q3 2025 |
| π€ AI Recommendations | π΅ Planned | Low | Q4 2025 |
- Phase 1 (Q1 2025): User authentication and watchlist
- Phase 2 (Q2 2025): Enhanced search and video integration
- Phase 3 (Q3 2025): Social features and internationalization
- Phase 4 (Q4 2025): AI-powered features and advanced analytics
- β iOS Safari (iOS 14+)
- β Chrome Mobile (Android 8+)
- β Samsung Internet
- β Firefox Mobile
This project is licensed under the MIT License - see the LICENSE file for details.
|
The Movie Database Providing comprehensive movie data |
Vite Team Lightning-fast build tool |
React Team Revolutionary UI framework |
Tailwind CSS Beautiful utility-first CSS |




