A full-stack Next.js streaming platform for movies, TV, anime, and KDrama — deployed on Cloudflare Workers.
NodWatch is a full-stack streaming platform built with Next.js 15 (App Router) and deployed to Cloudflare Workers via OpenNext. It covers movies, TV shows, anime, and KDrama — with auth-gated streaming, watchlist and progress tracking, a recommendation engine, offline downloads, and an admin feedback system.
Despite the README describing a Turborepo monorepo with a React Native app, the actual implementation is a single Next.js application with all logic under src/. It is live at nodwatch.online.
| Category | Source | Notes |
|---|---|---|
| Movies | TMDB trending, popular, top-rated, now playing, upcoming | |
| TV Shows | TMDB trending, popular, top-rated, airing today, on the air | |
| Anime | TMDB discover — genre 16, origin country JP | Filtered through isSafeAnimeItem() |
| KDrama | TMDB discover — original language ko | Romance (10749) and Thriller (9648) genre splits |
localStorage; stream URLs encrypted with AES, proxied server-side, expire after 60 secondswatch_progress rows updated every 15 seconds and on pause/seek/completion; drives "Continue Watching" rowcinepro, client-side OPFS storage, HLS segment reassembly, IndexedDB metadata, offline playback at /offline/[id]user_preferencesAdUnit components pre-wired on streaming pages| Layer | Technology |
|---|---|
| Framework | Next.js 15 (App Router) |
| Deployment | Cloudflare Workers via OpenNext |
| Database | Neon PostgreSQL via Drizzle ORM (Hyperdrive connection pooling) |
| Auth | Better-Auth (email/password + Bearer) |
| Cache | Cloudflare KV (recommendations), R2 (ISR/fetch cache), D1 (tag cache) |
| Storage | OPFS + IndexedDB for offline downloads |
| Media | TMDB API, OpenSubtitles API |
| Images | Cloudinary (feedback attachments) |
| Analytics | Plausible |
| PWA | Serwist (@serwist/next) |