🌐 Live Demo: cine-vault-mdryaan.vercel.app
CineVault is a modern cinematic movie discovery platform where you can explore trending, popular, and top-rated films, search across thousands of titles, browse by genre, and build your personal watchlist — all powered by the TMDB API and built with Next.js 14, TypeScript, and Tailwind CSS. No sign-up required, no database, just pure cinema.
- Hero Section — Featured trending movie with backdrop, rating, genres, and action buttons
- Trending Movies — Toggle between daily and weekly trending, horizontal scroll row
- Popular & Top Rated — Curated movie grids and rows with live TMDB data
- Genre Filter — Color-coded genre badges to filter the popular movies grid
- Real-time Search — Debounced search with instant results and pagination
- Movie Detail Page — Full info: backdrop, poster, cast, trailer link, runtime, budget, revenue
- Watchlist — Add/remove movies, persisted in
localStorage, grid + list views - Loading Skeletons — Shimmer placeholders for all async content
- Error States — Graceful error UI with retry for all fetch failures
- Fully Responsive — Mobile, tablet, and desktop layouts
- Dark Cinematic Theme — Glassmorphism cards, gradient overlays, smooth animations
![]() 🎬 Movie Detail |
![]() 📌 Watchlist |
![]() 🔍 Search |
![]() 🎭 Browse by Genre |
- Go to https://www.themoviedb.org and create a free account
- Navigate to Settings → API
- Request an API key — choose Developer for personal projects
- Copy your API Key (v3 auth)
git clone https://github.com/mdryaan/cinevault.git
cd cinevaultnpm installcp .env.example .env.localEdit .env.local and add your key:
NEXT_PUBLIC_TMDB_API_KEY=your_tmdb_api_key_herenpm run devOpen http://localhost:3000 in your browser.
| Variable | Description | Required |
|---|---|---|
NEXT_PUBLIC_TMDB_API_KEY |
Your TMDB v3 API key | ✅ Yes |
| Technology | Purpose |
|---|---|
| Next.js 14 (App Router) | Framework, SSR, routing |
| TypeScript (strict) | Type safety |
| Tailwind CSS | Styling, animations |
| TMDB API | Movie data source |
| localStorage | Watchlist persistence |
Contributions are welcome! Please read CONTRIBUTING.md before submitting a pull request. Whether it's a bug fix, new feature, or UI improvement — all contributions are appreciated.





