React, Netflix-inspired movie discovery web application built with React, TypeScript, and Vite. Features real-time movie data from The Movie Database (TMDb) API with a stunning responsive design.
## β¨ Features
- π Advanced Search: Real-time movie search with smart filtering
- π± Responsive Design: Netflix-style interface optimized for all devices
- π Category Browsing: Popular, Top Rated, Upcoming, and Now Playing movies
- π₯ Movie Details: Comprehensive information including ratings, genres, and release dates
- π¬ Video Integration: YouTube trailers and promotional videos
- β‘ Real-time Updates: Dynamic content loading with smooth transitions
- Netflix-inspired UI: Dark theme with red accent colors
- Bebas Neue Typography: Professional branding with Google Fonts
- Smooth Animations: Hover effects and transitions
- Modern Icons: SVG-based iconography
- Mobile-first Approach: Optimized for touch interactions
- Type-safe Development: Full TypeScript implementation
- State Management: Efficient global state with Zustand
- API Integration: Robust HTTP client with Axios
- Schema Validation: Runtime type checking with Zod
- Performance Optimized: Fast loading with Vite bundler
- Code Quality: ESLint integration for consistent code standards
- React 18.2.0 - Modern UI library with hooks and concurrent features
- TypeScript 5.0.2 - Type-safe JavaScript for better development experience
- Vite 7.0.4 - Next-generation frontend tooling for fast development
- CSS3 - Custom styling with CSS Grid, Flexbox, and animations
- Zustand 4.4.3 - Lightweight state management solution
- Axios 1.5.1 - Promise-based HTTP client for API requests
- Zod 3.22.4 - TypeScript-first schema validation
- The Movie Database (TMDb) API v3 - Comprehensive movie database
- YouTube API - Video content integration
- React Router DOM 7.6.3 - Declarative routing for React
- ESLint - Code linting and quality assurance
- Autoprefixer - CSS vendor prefixing
- PostCSS - CSS processing tool
NEXTFILM/
βββ public/
β βββ images/ # Static assets and screenshots
β βββ favico.svg # Favicon
βββ src/
β βββ components/ # Reusable React components
β β βββ MovieSearchForm.tsx
β β βββ CryptoPriceDisplay.tsx
β β βββ MovieTrailers.tsx
β β βββ ErrorMessage.tsx
β β βββ Footer.tsx
β β βββ Spinner.tsx
β βββ pages/ # Page components
β β βββ Home.tsx
β β βββ Credits.tsx
β βββ services/ # API integration
β β βββ MovieService.ts
β βββ types/ # TypeScript type definitions
β β βββ index.ts
β βββ schema/ # Zod validation schemas
β β βββ crypto-schema.ts
β βββ data/ # Static data and configurations
β β βββ index.ts
β βββ App.tsx # Main application component
β βββ main.tsx # Application entry point
β βββ store.ts # Zustand store configuration
β βββ index.css # Global styles and Netflix theme
β βββ vite-env.d.ts # Vite type definitions
βββ tsconfig.json # TypeScript configuration
βββ vite.config.ts # Vite configuration
βββ package.json # Project dependencies and scripts
- Node.js (v16 or higher)
- npm or yarn
- TMDb API Key (free registration)
-
Clone the repository
git clone https://github.com/firedevelop/NEXTFILM.git cd NEXTFILM -
Install dependencies
npm install
-
Environment Setup Create a
.envfile in the root directory:cp .env.example .env
Then edit
.envand add your TMDb credentials:VITE_TMDB_ACCESS_TOKEN=your_tmdb_access_token_here VITE_TMDB_API_KEY=your_tmdb_api_key_here
Get your TMDb API credentials:
- Sign up at TMDb
- Go to Settings > API
- Request an API key (free)
- Copy your Access Token and API Key to the
.envfile
-
Start development server
npm run dev
Open http://localhost:5173 in your browser
-
Build for production
npm run build npm run preview
- π Home Logo: Click NEXTFILM logo to refresh and return to popular movies
- π Categories: Use dropdown to switch between movie categories
- π Search: Type in search box and click search icon to find specific movies
- π¬ Movie Selection: Click any movie card to view detailed information
- π₯ Popular: Currently trending movies worldwide
- β Top Rated: Highest-rated movies by user reviews
- π Upcoming: Movies releasing soon
- οΏ½ Now Playing: Currently in theaters
- πΊ Video Trailers: Watch YouTube trailers directly in the app
- π Movie Ratings: View IMDb-style ratings and vote counts
- π Genre Tags: Quick genre identification with color-coded tags
- π Release Information: Detailed release dates and status
--netflix-black: #000000 /* Primary background */
--netflix-dark: #141414 /* Secondary background */
--netflix-red: #e50914 /* Brand color */
--netflix-white: #ffffff /* Primary text */
--netflix-text-gray: #999999 /* Secondary text */- Primary Font: Inter (clean, modern sans-serif)
- Brand Font: Bebas Neue (bold, cinematic feel for logo)
- Responsive Scaling: rem-based sizing with 62.5% base
- Mobile-first: Responsive design starting from 320px
- Netflix Grid: Auto-fitting movie cards with consistent aspect ratios
- Smooth Transitions: 0.3s ease transitions for interactive elements
- β‘ Vite HMR: Hot module replacement for instant development feedback
- π§ Code Splitting: Automatic route-based code splitting
- π¦ Tree Shaking: Unused code elimination in production builds
- πΌοΈ Image Optimization: Responsive images with proper sizing
- οΏ½ State Persistence: Efficient state management with Zustand
npm run dev # Start development server with HMR
npm run build # Type-check and build for production
npm run preview # Preview production build locally
npm run lint # Run ESLint for code quality checkstsconfig.json: TypeScript compiler configurationvite.config.ts: Vite bundler settings and pluginspackage.json: Dependencies and project metadata
# 1. Type checking
tsc --noEmit
# 2. Production build
npm run build
# 3. Generated files in dist/
# Ready for deployment to any static hosting service- Vercel - Optimal for React applications
- Netlify - Easy deployment with CI/CD
- GitHub Pages - Free hosting for public repositories
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow TypeScript best practices
- Maintain responsive design principles
- Write meaningful commit messages
- Test on multiple devices and browsers
This project is licensed under the MIT License - see the LICENSE file for details.
- The Movie Database (TMDb) - Comprehensive movie data API
- Netflix - Design inspiration
- React Community - Amazing framework and ecosystem
- Google Fonts - Typography resources
Developer: firedevelop
π¬ Built with passion for cinema and modern web development
This project demonstrates proficiency in React, TypeScript, API integration, responsive design, and modern frontend development practices.











