Skip to content

Pabl0Parra/Netflix-clone-React-Tsx

Repository files navigation

Table of Contents
  1. Prerequisites
  2. Learning objectives this project deals with
  3. Third Party libraries used except for React and RTK
  4. Features under development
  5. Contact

Logo

Home Page

Logo

Mini Portal

Logo

Detail Modal

Logo

Grid Genre Page

Prerequisites

  • Create an account or use your existing one at TMDB.

  • Follow the documentation to create the API Key.

  • Finally, if you use v3 of TMDB API, create a file named .env, copy-paste the content of .env.example to the .env file you just created and then paste the API Key you got at TMDB.

Learning objectives

Third Party libraries used except for React and RTK

Install with Docker

docker build --build-arg TMDB_V3_API_KEY=your_api_key_here -t netflix-clone .

docker run --name netflix-clone-website --rm -d -p 80:80 netflix-clone

Todo

  • Add loader.
  • Fix mobile version. Navbar is not displaying properly, as well as margins of the carousel.
  • Implement animation using motion hook from react-use, now I am using framer-motion for animation. If we use the motion hook from react-use, framer-motion is not needed.
  • Improve performance. I am using context and provider but all components subscribed to the context's value are re-rendered. These re-renders happen even if the part of the value is not used in the render of the component. There are several ways to prevent these re-renders. In addition to them, there may be several performance issues.
  • Replace bundler(Vite) with Turbopack. Turbopack is introduced in Next.js conf recently. It's very fast but it's not ready to use right now with React. It just supports Next.js, they plan to support all others as soon as possible, so if it's ready to use, replace Vite with Turbopack.

Contact

Note This project only aims to show how to use the features mentioned above. There might be several things to improve for performance. I welcome anyone who wants to contribute.