Here are some preview images of the Netflix Clone application:
This project demonstrates Angular best practices and modern features by building a Netflix-inspired streaming platform. It serves as an example of how to structure a large-scale Angular application while implementing current web development techniques.
- Utilizes Angular's standalone components for better modularity and lazy-loading capabilities.
- Implements feature-based folder structure for improved organization and scalability.
- Employs Angular's lazy loading to improve initial load time and overall performance.
- Uses
loadComponentsyntax for route configurations, demonstrating modern lazy loading techniques.
- Showcases advanced form handling with reactive forms in the email signup process.
- Implements custom validators for email domain restrictions and asynchronous validation.
- Utilizes RxJS BehaviorSubjects for lightweight state management of the authentication state.
- Demonstrates how to effectively manage and share state across components without heavy libraries.
- Incorporates Angular's new Signals API for more granular and efficient state management, as seen in the
FeaturedSectionComponent.
- Implements authentication guards to protect routes and ensure user authorization.
- Uses resolvers to pre-fetch data before component initialization, improving user experience.
- Utilizes OnPush change detection strategy to optimize performance in components like
MovieCardComponent.
- Implements a responsive layout using Tailwind CSS, showcasing how to integrate modern CSS frameworks with Angular.
- Demonstrates integration with external APIs (TMDB) using Angular's HttpClient.
- Implements interceptors for adding authentication tokens and handling errors globally.
- Showcases RxJS operations for data transformation and API request handling.
- Utilizes Angular's environment files for managing environment-specific variables and API keys.
To run this project locally:
-
Clone the repository:
git clone https://github.com/josematosworks/NetflixClone.git -
Navigate to the project directory:
cd netflix-clone-angular -
Install dependencies:
npm install -
Set up environment variables:
- Rename
src/environments/environment.example.tstoenvironment.ts - Add your TMDB API key to the file
- Rename
-
Run the development server:
ng serve -
Open your browser and navigate to
http://localhost:4200
- Angular 18
- RxJS
- Tailwind CSS
- TMDB API
For more information on the concepts and practices used in this project, check out the following resources:
This project is MIT licensed.
⭐️ If you found this project helpful, please give it a star on GitHub! ⭐️

