Back

Scope of work

Full-Stack Web App

Category

Movie Discovery & Streaming UI

Tech Stack

React 18, Vite, Redis, Vercel

Live Platform

Open Live App ↗

Description

Drameeo is a full-stack animated movie discovery platform designed to demonstrate real-world software engineering across the entire modern web stack. From fluid streaming-service micro-interactions to high-throughput backend serverless proxies, Drameeo combines cinematic visuals with fault-tolerant distributed caching and abuse protection.

1. Streaming-Grade React 18 & Vite Frontend

Engineered with React 18 and Vite for blazing-fast HMR and bundle efficiency. Styled with Tailwind CSS and choreographed using Framer Motion, replicating a premium streaming-service UI: an auto-rotating hero carousel, dynamic live catalog search with debounced inputs, genre filter carousels, and an instant YouTube trailer video modal.

2. Resilient 3-Layer Caching Architecture

To eliminate upstream API latency and guarantee high availability, Drameeo implements a 3-layer tiered caching pipeline: Layer 1: TanStack Query in-memory client cache (5-minute TTL) for zero-latency screen re-navigation; Layer 2: Upstash Redis distributed server-side cache (1-hour TTL for trending, 24h for trailers, 7d for genres) shared across all global users; Layer 3: Persistent browser localStorage fallback (24 hours) ensuring the app remains fully functional and visual even during total upstream API outages.

3. Vercel Serverless Proxy & Sliding-Window Rate Limiting

All requests route through a suite of modular Vercel Serverless Functions (/api/trending, /api/movies, /api/search, /api/trailer, /api/movie) that securely isolate TMDB API keys from client inspection. Every endpoint is shielded with an Upstash Redis sliding-window IP rate limiter enforcing a strict 30 requests / 10s per IP limit, mitigating scraper bots and quota exhaustion.

4. Content-Based Recommendation Engine

Solves the classic cold-start problem through intelligent tiered fallback logic: trending titles → genre-filtered catalogs → mathematically scored candidate pools ranked by Jaccard genre overlap and popularity metrics, providing personalized discovery without requiring invasive tracking cookies.

Performance

<50ms

Cached Response Latency

Layered Redis + TanStack caching delivers near-instant response times for global film lookups.

Resilience

3-Tier

Outage-Resilient Caching

React Query memory → Upstash Redis server → localStorage fallback ensures zero client screen disruption.

Security

30 req/10s

Sliding-Window Protection

Distributed Upstash Redis sliding-window algorithm isolates backend keys and stops brute-force scraping.

Platform Architecture & 3-Layer Caching Flow

End-to-end data flow: User Browser → Vercel Serverless Proxy → Upstash Redis (Layer 2) → TMDB & YouTube IFrame APIs.

React 18 · Vercel Serverless · Upstash Redis · TMDB API
Scroll horizontally to explore architecture →
Drameeo Animated Movie Platform System Architecture and 3-Layer Caching Diagram

Application Interface & Interactive Experience

Production screenshots demonstrating movie details backdrops, multi-genre catalog filtering, and the embedded YouTube trailer modal.

Production UI

Cinematic Hero Details & Meta Badges

Dynamic high-resolution backdrop, star rating indicator (7.3/10), release year, runtime, genre chips, and one-click trailer CTA.

Movie Details
Drameeo Movie Details Screen with Backdrop and Meta Tags

Interactive Genre Categorization & Film Cards

Multi-genre filter pills (Action, Adventure, Animation, Comedy, Sci-Fi) powering an instant masonry grid of animated titles.

Genre Exploration
Drameeo Genre Pills Filter and Movie Card Grid

YouTube Trailer Lightbox & Video Embed

Overlay modal leveraging YouTube IFrame API with autoplay parameters, seamless exit transitions, and background dimming.

Trailer Lightbox
Drameeo Embedded YouTube Trailer Modal
Production Live

Explore Drameeo Live

Browse trending animated movies, test the multi-layer caching speed, filter genres in real-time, and watch trailers directly in your browser.

Open Live Application