A modern movie and TV show discovery web application built with Next.js, React, TypeScript, Tailwind CSS, and the TMDB API.
CineHub lets users discover movies and TV shows using live data from The Movie Database (TMDB), with search, filtering, sorting, ratings, cast information, and dedicated detail pages.
- Browse trending and popular movies
- Search movies by title
- Filter movies by genre
- Sort and discover movies using TMDB data
- View movie details, ratings, overview, and cast
- Browse trending, popular, and top-rated TV shows
- Search TV shows
- Filter by genre
- View dedicated TV show detail pages
- Modern dark-themed interface
- Responsive layouts for different screen sizes
- Interactive movie and TV cards
- Homepage carousel
- Clean navigation using the Next.js App Router
| Technology | Purpose |
|---|---|
| Next.js 16 | Application framework and App Router |
| React 19 | User interface |
| TypeScript | Type-safe development |
| Tailwind CSS | Styling and responsive design |
| TMDB API | Live movie and TV show data |
CineHub retrieves movie and TV metadata dynamically from the TMDB REST API. The application uses reusable TypeScript helpers for API requests and supports movie discovery, search, genres, details, credits, and TV data.
The TMDB integration also includes request error handling, retry logic, timeouts, and production revalidation to improve reliability.
cinehub/
├── app/ # Next.js App Router pages
│ ├── movies/ # Movie routes and detail pages
│ ├── tv/ # TV show routes and detail pages
│ └── page.tsx # Homepage
├── components/ # Reusable UI components
├── lib/
│ └── tmdb.ts # TMDB API helpers and TypeScript types
├── public/ # Static assets
├── screenshots/ # Project screenshots
└── README.md
git clone https://github.com/saadrahmans/cinehub.git
cd cinehubnpm installCreate a .env.local file in the project root:
TMDB_API_KEY=your_tmdb_api_key_hereYou will need your own TMDB API key to run the application locally.
npm run devVisit http://localhost:3000 in your browser.
CineHub uses movie and TV metadata from The Movie Database (TMDB), including titles, genres, ratings, release dates, posters, overviews, and cast information.
No web scraping is used; application data is retrieved through the TMDB API.
Building CineHub helped me gain practical experience with:
- Building applications with Next.js and the App Router
- Working with React and TypeScript
- Integrating a third-party REST API
- Handling asynchronous API requests and errors
- Creating reusable API helper functions and typed data models
- Building responsive interfaces with Tailwind CSS
- Structuring a modern web application
- User authentication
- Personal watchlists and favorites
- Pagination or infinite scrolling
- Improved caching and performance optimization
- Enhanced homepage animations
- More advanced discovery filters
Mohammad Saad ur Rahman
- GitHub: saadrahmans
- LinkedIn: Mohammad Saad ur Rahman
CineHub was built as a hands-on project to strengthen my experience with modern web development, API integration, and TypeScript.




