home / projects / cinevault ← a browsing UI, not a TV station
no. 02 · media discovery UICINEVAULT
A media discovery and browsing interface for exploring movies and shows. TMDB catalog metadata powers search, genre browsing, detail views and trailers, while playback hands off to switchable external embed sources. CineVault stores and hosts no media itself.
TMDBcatalog metadata API
search+genres, watchlist, trailers
PWAmobile-first, TV friendly
The problem
Browsing streaming catalogs is noisy: fragmented services, weak search, no good way to track what to watch next. CineVault explores one clean interface for discovering movies and shows, organizing them into genres and collections, and keeping a personal watchlist with resume support.
Architecture
Next.js 14 App Router + TypeScript
↓
TMDB API (catalog metadata, search, trailers)
↓
Zustand stores (watchlist, continue watching, likes)
↓
External embed providers (playback handoff, server switching)
↓
Rate-limited API routes + Docker deploy
↓
TMDB API (catalog metadata, search, trailers)
↓
Zustand stores (watchlist, continue watching, likes)
↓
External embed providers (playback handoff, server switching)
↓
Rate-limited API routes + Docker deploy
My contribution
- UI/UX Design: streaming-style browsing patterns, visual hierarchy, dark glassmorphic interface
- Search and Discovery: full-text search, genre and category navigation, trending and Top 10 rows
- Detail Views: media pages with trailers, cast filmography explorer, season and episode selectors
- Watchlist and Progress: personal watchlist, continue watching with persisted state, community likes and comments
- Collections: franchise saga timelines with chronological viewing orders and progress badges
- Responsive and PWA: mobile-first layout, bottom navigation, TV remote navigation, installable app
Design problems solved
- Information density: rows, grids and spotlight hero keep a large catalog scannable without clutter
- Playback failover: multi-source embed switching so a dead source never dead-ends the viewer
- Abuse resistance: HMAC admin sessions, encrypted VIP codes, Turnstile checks and layered rate limiting on public endpoints
Next.js 14TypeScriptTailwind CSSZustandTMDB APIDocker
“We are drowning in information but starved for knowledge.”
— John Naisbitt