Next.jsTypeScriptFramer MotionTMDB APISSR/ISRSwiper.jsPromise.allOpen Graph / SEO

HookedOnMovies

Full-stack media discovery platform built on Next.js with SSR/ISR, a TypeScript normalization layer across TMDB's Movie & TV APIs, and sub-second TTFB via parallel server-side data fetching.

Project overview

HookedOnMovies is a production-quality media discovery platform with a focus on performance, type safety, and cinematic UX. Users can explore trending content, view rich metadata, watch trailers, and surface recommendations—with a UI that competes visually with commercial streaming platforms.

Engineering: type safety & fetch architecture

TMDB's API returns fundamentally different shapes for movies versus TV shows. A custom TypeScript normalization layer maps both into a single shared interface consumed across all components—eliminating defensive nullchecks throughout the codebase. Combined with Promise.all parallel fetching on the server, page data is assembled in a single round-trip rather than a waterfall.

Cinematic interface showcase

Impact

Demonstrates end-to-end ownership of a full-stack Next.js product: API integration architecture, TypeScript system design, ISR caching strategy, SEO implementation, and a polished Framer Motion UI—all shipped as a cohesive, performant application.

Core Features

Built for Performance

TypeScript data normalization layer that reconciles inconsistent TMDB Movie vs TV Show field schemas into a single unified interface—eliminating runtime type errors across the entire app

Parallel server-side data fetching with Promise.all across multiple TMDB endpoints, cutting TTFB significantly versus sequential waterfall requests

ISR (Incremental Static Regeneration) on detail pages — content stays fresh without per-request SSR cost, ideal for high-traffic title pages

Full SEO implementation: dynamic Open Graph tags, structured metadata per page, and canonical URLs for discoverability on search engines

Roadmap

Personalized recommendation engine

Replace TMDB's basic 'similar' endpoint with an embedding-based recommender (OpenAI embeddings + cosine similarity) that learns from a user's watch history and ratings.

User accounts + persistent watchlists

Add NextAuth.js with Google OAuth, PostgreSQL-backed watchlists, and per-user recommendation personalization that persists across sessions.

Streaming availability via JustWatch API

Show which platform (Netflix, Prime, Hotstar, etc.) each title is currently available on — bridging discovery to instant action.

Redis edge caching for TMDB responses

Cache API responses at the CDN edge with configurable Redis TTLs to eliminate redundant TMDB calls and achieve sub-100ms global response times.