Built My Own Movie Watchlist App

Published on July 31, 2025 • 6 min read

I’ve always loved watching movies, series, and anime — but keeping track of them? That was messy.
Scattered notes, random lists, and forgettable watch history just weren’t cutting it.

So I built a solution.

A fast, minimal, fully customizable movie watchlist app — built using Next.js, Tailwind, MongoDB, and a bit of AI to make it smarter.

Why I Built It

Existing platforms felt bloated, restrictive, or ad-heavy. I wanted something:

  • Clean and responsive
  • Organized by status
  • Capable of storing notes and reviews
  • Connected to TMDB for real-time metadata
  • Able to give me daily personalized recommendations
  • With detailed watch stats I actually care about

Tech Stack

  • Next.js (App Router) – server components, loading strategies, and routing
  • Tailwind CSS + DaisyUI – for theming and component scaffolding
  • MongoDB – structured watchlist data per user
  • Zod – API-level validation
  • TMDB API – for movie and series metadata
  • WebSockets – real-time status updates
  • OpenRouter (Mistral) – used to generate recommendations

Key Features

Categorized Lists

Each item is labeled: Watching, Completed, On-Hold, or Dropped.
This made the list more useful and trackable — especially for ongoing series.

Smart AI Recommendations

Each day, users get 10 personalized suggestions based on their watch history, genres, and mood.
These are saved daily and can't be regenerated until the next day.

Stats & Reviews

The dashboard shows stats like total watch time, average ratings, and most-watched genres.
Users can also leave mini reviews for each item — either public or private.

Bulk Upload + CSV Import

I added a bulk import system to quickly upload multiple titles using CSV or custom scripts.
It uses WebSockets for live progress and TMDB for metadata enrichment.

Final Thoughts

This app is now my daily dashboard. It’s personal, fast, and helps me watch with intention instead of mindless scrolling.

If you want something similar or want to collaborate, feel free to reach out.

Enjoyed this post?

If you’ve got a project or idea you’d like help with — I’m available for freelance work.

Let’s Work Together →