Movie Hub is a cinematic movie discovery app built with Next.js, Redux Toolkit, and TMDB APIs. It includes trending/popular catalogs, search, trailers, favorites, responsive navigation, and custom animated interactions.
- Hero-driven home page with featured movie
- Catalog sections:
- Trending (Today / This Week)
- Latest Trailers (Popular / In Theaters)
- Popular Movies
- Top Rated Movies
- Search page (
/search) with TMDB multi-search - Favorites page (
/favorites) with local persistence - Support page (
/support) - Additional sections:
/discussion/leaderboard- Dynamic category pages under
/movies/*,/tv/*,/people/*
- Trailer playback buttons from TMDB video endpoints
- Custom cinematic UI animations (favorite fly, remove-to-trash, dropdowns, fades)
- Next.js 15 (App Router + a Pages route bridge)
- React 18 + TypeScript
- Redux Toolkit + React Redux
- Tailwind CSS v4
- TMDB API (movie data, videos, search)
- React Icons
This project currently uses:
- CSS keyframes (global and component classes)
- Web Animations API (
element.animate(...)) for advanced effects
Note: Framer Motion is not used in the current codebase.
src/app/page.tsx- home pagesrc/app/search/page.tsx- search experiencesrc/app/favorites/page.tsx- favorites pagesrc/components/Navbar.tsx- responsive navbar + mobile toggle panelsrc/components/MovieRow.tsx- reusable card grid + interactionssrc/hooks/useFavorites.ts- favorites persistence hooksrc/lib/tmdb.ts- TMDB fetch helpersrc/lib/trailer.ts- trailer playback helpersrc/store/- Redux store + movie slicesrc/pages/_app.tsx- provider/layout support for pages routes
Create .env.local in project root:
NEXT_PUBLIC_TMDB_API_KEY=your_tmdb_api_keynpm installnpm run devOpen:
http://localhost:3000
npm run dev- start development servernpm run build- production buildnpm run start- run production servernpm run lint- lint with ESLint cache
- The app is responsive and optimized for mobile + desktop.
- Reduced-motion preferences are respected for animations.
- Some routes are served via App Router and some via Pages bridge for compatibility.
Repository: Qamrul-Hassan/Movie-Hub