SkillAgentSearch skills...

Netflix

netflix clone using react js, css, axios, themoviedb, get api, netflix-clone react simplified project, axios-react

Install / Use

/learn @sijeeshmiziha/Netflix

README

Netflix Clone — React & TMDB Streaming UI

Open-source Netflix-style streaming UI for browsing movies and TV shows. Built with React and TMDB API — no backend server, no Redux. Browse by genre, watch trailers on YouTube, search with debounced multi-search, and save titles to My List. Includes Netflix Originals, trending, popular, top rated, and detailed modals with cast and similar titles.

Visit live demo

React 17 TMDB API Node 14 License PRs Welcome


Demo & Screenshots

See it in action: Netflix Clone — no signup, no install.

| Home · Browse | Detail · Trailer | | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Netflix Clone home and browse | Netflix Clone detail and trailer |

| Search & discovery | | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Netflix Clone search |


Table of Contents


Features

Content Browsing

  • Genre rows — Action, Romance, Horror, Comedy, Documentary via TMDB discover.
  • Netflix Originals — Discover TV with network ID 213.
  • Trending — Daily and weekly trending (all, TV, movies).
  • Popular and top rated — For both movies and TV shows.
  • Movies — Popular, top rated, upcoming, now playing.
  • TV shows — Popular and top rated.
  • Horizontal scrolling rows — Smooth scroll with arrow navigation and lazy-loaded images.

Search and Discovery

  • Real-time search — Debounced (400ms) multi-search for movies and TV shows.
  • Separate browse pages — Movies, TV Shows, and New & Popular.
  • Grid layout — Search results with posters.

Movie and TV Details

  • Detail modal — Backdrop, title, overview, metadata.
  • Cast — Credits from TMDB.
  • Similar titles — Recommendations.
  • Maturity ratings — PG, 13+, 16+, 18+.
  • Match percentage — Display on cards and in modal.

Trailer Playback

  • YouTube trailers — Play trailers in modal via react-youtube (video keys from TMDB).
  • Banner — Hero with trending content; play, info, and list buttons; mute toggle.

My List

  • Add/remove — Add or remove movies and TV shows from My List.
  • Persistence — Stored in localStorage.
  • My List page — Dedicated route to view saved titles.

User Interface

  • Netflix-style dark theme — CSS variables (--color-bg, --color-text, etc.).
  • Responsive design — Mobile menu and layout.
  • Hover effects — Card hover with play, add to list, like, dislike, info.
  • Loading skeletons — Shimmer for banner, rows, cards, and modal.
  • Scroll to top — On route change.
  • Custom image component — Loading and error states for TMDB images.

Navigation and Routing

  • React Router v5 — Centralized routes in AppRoutes; browse, movies, TV, trending, search, My List, profile, and info pages.
  • Layouts — Browse layout and info layout for shared structure.
  • Profile selection — Profile page.
  • Footer info pages — Help, Privacy, Terms, Legal, Cookie preferences, Contact, and more.
  • 404 page — Not found page for unknown routes.

Tech Stack

The app runs on React and TMDB API. No backend, no Redux.

| Layer | Stack | | :----------- | :---------------------------------------------------------------------------------------------- | | Frontend | React 17, React Router 5, Context API (Modal, My List), Axios, react-youtube. Custom hooks (useDebounce, useMyList). | | API | TMDB API v3 via tmdbService — trending, discover, search/multi, movie/TV details with videos, credits, similar. | | Styling | Custom CSS (component-scoped), CSS variables, Google Fonts (Bebas Neue). | | Tooling | Create React App 4, Prettier, ESLint. Node 14.x. |

Built With

React · React Router · Context API · Axios · TMDB API · react-youtube · CSS


TMDB API Endpoints

Key endpoints used (see src/config/urls.js):

| Endpoint | Purpose | | :------------------------------------------------------------------------ | :--------------------------------------------------------- | | trending/all/day, trending/all/week | Banner and trending content. | | trending/tv/week, trending/movie/week | Trending by type. | | discover/tv?with_networks=213 | Netflix Originals. | | discover/movie?with_genres=... | Genre rows (Action, Romance, Horror, Comedy, Documentary). | | tv/popular, tv/top_rated | TV browse. | | movie/popular, movie/top_rated, movie/upcoming, movie/now_playing | Movies browse. | | search/multi?query=... | Search movies and TV. | | movie/{id}?append_to_response=videos,similar,credits | Movie details, trailer, cast, similar. | | tv/{id}?append_to_response=videos,similar,credits | TV details, trailer, cast, similar. |

Images: https://image.tmdb.org/t/p/original and .../t/p/w500.


Getting Started

Prerequisites: Node.js 14.x (use .nvmrc with nvm use), npm. A TMDB API key is required.

1. Clone and install

git clone https://github.com/sijeeshmiziha/netflix.git
cd netflix
npm install

2. TMDB API key

Create a .env file in the project root and add your TMDB API key:

REACT_APP_TMDB_API_KEY=your_api_key_here

The app reads the key from src/config/constants.js. Do not commit .env or your API key.

3. Run

npm start

Open http://localhost:3000

Available scripts

| Script | Description | | :--------------- | :------------------------ | | npm start | Start dev server | | npm run build | Production build | | npm test | Run tests | | npm run format | Format code with Prettier |


Deployment

  1. Build: npm run build — output is in the build/ folder.

  2. Static hosting — Deploy the build/ folder to Vercel, Netlify, Firebase Hosting, or any static host. Configure environment variables in the h

View on GitHub
GitHub Stars11
CategoryDevelopment
Updated2mo ago
Forks6

Languages

JavaScript

Security Score

95/100

Audited on Feb 9, 2026

No findings