WatchLitz
Movie Watchlist App

A simple, distraction-free way to save movies you actually want to watch

Role

Designer & Developer (solo, academic project)

Type

Mobile App (Flutter)

Tool

Flutter , figma

Table of Content
No headings foundSelect the Frame that wraps your article content → open Accessibility → set Tag to main, article, or section.This message disappears as soon as headings are detected.

Project Overview

WatchLitz is a lightweight movie watchlist app built as an academic mobile development project. The idea was simple on purpose: most movie-tracking apps (IMDb, Letterboxd, etc.) pack in reviews, ratings, social feeds, and recommendations — which is great, but often more than someone needs for the basic task of "I want to remember to watch this movie later."


I designed the UI in Figma first, then built the actual app in Flutter using vibe coding — writing and refining the app through iterative AI-assisted coding rather than manual line-by-line development from scratch. Movie data comes from TMDb, so the catalog is real and current rather than a static mock dataset.

The Problem

People planning what to watch tend to fall back on scattered, low-effort methods — a note on their phone, a screenshot, a mental note they forget by the next day. Existing platforms solve discovery well but aren't built around the narrower job of just saving and revisiting — they ask you to engage with a whole ecosystem just to bookmark a title.


The brief I set for myself was narrow on purpose: build the smallest possible version of "save a movie, find it later" and make sure that core loop feels fast and clean.

The App — 3 Screens

WatchLitz is deliberately scoped to three screens, matching the actual core loop of the app:

1. Home / Search entry A clean landing screen with the WatchLitz logo and a search bar, and nothing else competing for attention. It opens blank by design — no forced browsing feed — so the only decision a user makes is "search for a movie."

2. Search results Typing a title pulls live results from TMDb, each shown as a card with poster, title, and year, with a single Add button. No extra metadata, no rating breakdowns — just enough to recognize the movie and decide to save it.

3. Saved list Everything the user has added, shown in the same card format with a Remove button instead of Add. This is the payoff screen — the whole point of the app is to make this list trustworthy and easy to return to.

Keeping it to three screens wasn't a limitation — it was the actual design decision. Every screen maps to one step of the core loop (search → decide → revisit), with nothing extra layered on top.

Design Process

  • Figma first — I designed the layout, spacing, and visual system before writing any code, focusing on a card-based layout, a minimal dark palette with a strong orange accent, and clear typographic hierarchy so title/year/action are easy to scan at a glance

  • Vibe coding in Flutter — rather than building the app fully manually, I used iterative AI-assisted coding to translate the Figma design into working Flutter screens, then refined spacing, states, and behavior by testing directly on device

  • Simple architecture — the app follows a straightforward flow: User → UI (Flutter) → TMDb API → Data Display → Watchlist Storage, with no backend of its own beyond the movie data source

What This Is — and Isn't

This is an academic, first-version project — not a polished consumer product. It's meant to demonstrate a complete, working core loop (search, save, revisit) built end-to-end by one person, rather than a fully-featured watchlist platform. There's no login, no cloud sync yet, and no recommendation engine — all deliberately left out of this version to keep the scope honest and achievable.

What I'd Add Next

  • Cloud sync (Firebase), so the watchlist isn't tied to one device

  • Basic ratings or personal notes per saved movie

  • Genre and year filters on the search screen

  • Simple recommendation logic based on saved titles

Lessons Learned

  • Designing all three screens in Figma first made the Flutter build faster, since every spacing and state decision was already settled before writing code

  • Vibe coding worked well for translating a finished design into working code quickly, but still needed manual polish afterward to fix spacing and edge cases the AI missed

  • Deliberately keeping the scope to three screens made it much easier to actually finish and ship, compared to trying to include every feature a "real" movie app might have

This project was designed and built independently by Prasād Borade as part of the Mobile Application Development coursework, Code: github.com/prasadborade03/watchLitz

Shape
Shape
Shape
Shape
Shape
Bg Image

Hello, visitor.

I'm Prasad

this portfolio was built pixel by pixel for a bigger canvas.
Open it on a laptop or desktop for the full experience.
See you there :)

Decoration Image
Shape
Shape
Shape
Shape
Shape
Bg Image
Bg Image

Portfolio

Create a free website with Framer, the website builder loved by startups, designers and agencies.