Movie watchlist with webhooks
Watchlist
A movie watchlist app for tracking what you want to watch, sharing lists with friends and family, and wiring watchlist events into automation tools.
Watchlist is a movie watchlist application for keeping track of what you want to watch and what you have already enjoyed. I built it for the simple problem of remembering what sounded interesting the last time someone asked, "what are we going to watch tonight?" It is meant to be useful for a normal movie watcher first, but it also has a few extras for people who want to connect those moments to automation tools. It is still an experiment rather than a released product.
The project started from a recurring problem I kept running into: what are we going to watch tonight, and what looked interesting earlier that I will not remember next time? That alone was enough to justify the app. The webhook side came after that, because I wanted the project to do something interesting for technical users too.
Why I Built It
Watchlist was also the project I used to explore agentic engineering in a structured way. I wanted to start from a core idea, turn that into a real project requirements document, break it into manageable stories and tasks, and then execute the work with an LLM as a development partner.
That workflow was the experiment as much as the app itself. It took me from treating LLMs like autocomplete to using them in a way that I could trust for full features.
I also intentionally kept the scope tight. Watchlist began as a test ground in a project management class during my master's program in software engineering, so the point was never to build a giant platform. The point was to define something focused, build it well, and use the process to learn.
What It Does
Watchlist is organized around a few core user flows.
Authentication
Users can sign in and get to their own account area, where their watchlists and related settings live.
Watchlists
The main job of the app is to curate movie lists. Users can add and remove movies, keep a primary watchlist, and share lists with friends and family.
I wanted the app to support a very common social habit: one person suggests something, everyone agrees to remember it, and then nobody does. Watchlist gives that thread somewhere to live.
Discovery and Search
The app includes a discover view for browsing movies and a search flow for finding a specific title. That makes it easy to move from browsing to saving without forcing the user to know exactly what they want up front.
Webhooks
For more technical users, Watchlist includes webhook management. When a movie is added to a watchlist, the app can emit an event to an external automation tool such as n8n or Zapier.
That lets a simple action like adding a movie trigger other workflows if the user wants it to: create a shopping reminder, start a library rental flow, or anything else they can wire up themselves.
Technical Setup
Watchlist is built with Next.js, TypeScript, Tailwind CSS, and Postgres for the main application.
The webhook engine runs separately in Go and consumes events from the same Postgres outbox that the main app writes to. That keeps the application logic and the background event delivery concerns separated while still sharing a single source of truth for emitted events.
Design Choices
The product was intentionally kept narrow. That kept the work manageable while still leaving room for a useful automation layer.
That led to a few practical choices:
- Keep the core experience simple for ordinary users.
- Make watchlist management the center of the app.
- Treat sharing as a first-class part of the product.
- Add webhooks as an optional power-user feature instead of making them the main story.
- Use a separate Go service for event delivery so the application stays focused.
The demo reflects that balance. It is a straightforward consumer product on the surface, but it still exposes enough of the underlying mechanics to make it interesting if you want to extend it.
What I Learned
Watchlist was valuable because it proved I could use LLMs as part of a real development workflow, not just as autocomplete assistance. The main lesson was not that the tools replace judgment. It was that they can help move from idea to requirements to execution when the scope is clear.
It also reinforced the value of tight product framing. A smaller project can still be a serious exercise if the problem is real and the implementation follows through.
Status
Watchlist is not a released product. It exists as a finished demo and as an experiment in product definition, project planning, and agent-assisted development.