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



