Shafeen Alam
All work
Stream FindSelf-initiated productLive

From finding a stream to deciding what to watch

A self-initiated product that brings streaming availability, personal taste, and shared decisions into one experience.

Explore the live app
Role
Sole product designer and builder, with AI assistance
Timeline
July 12, 2026 to present
Platform
Responsive web app, deployed on Firebase
Tools and sources
ChatGPT and Claude to build; Watchmode, TMDB, JustWatch, and YouTube for data
Status
Live, with ongoing iteration
case.md
$ cat summary
origin: self-initiated
role: designed + built
The Shōgun title page with a full-bleed still, poster, rating, and a watch action
The current title page: a watch action for someone ready to begin, with story, providers, cast, and episodes below.↗ open full size

01 · The recommendation was only the beginning

A friend would recommend a movie or show, and I would still have to figure out where to watch it. Was it included in a service I already paid for? Could I watch free with ads? Would I need to rent it again?

I started Stream Find on July 12, 2026 to solve that recurring problem for myself. The first version answered a narrow question: where can I watch this at the lowest additional cost? Using it exposed the decisions around that answer. A provider did not tell me whether the title deserved my evening, which episode to return to, or what someone else would want to watch with me.

How might the experience help someone find access, make a choice, and pick up where they left off?

I owned the product direction, interaction model, visual design, and build. ChatGPT helped establish the first working version. I then used Claude to refine the implementation and the cinematic artwork, reviewing and adjusting its output myself. There were no other human contributors. It remains a personal project that I improve when time allows.

02 · One product, two starting points

The guest experience is useful immediately: search, identify a title, compare watch options, and explore the people behind it. An account changes the starting point. The signed-in home is oriented toward the next viewing decision, with saved services, titles from friends, personal recommendations, and a movie-night entry point.

Guest intent
Member intent
Find a title and where it is availableFind something worth watching through saved services
Browse service-specific titles and peopleUse watched and loved titles to inform discovery
Explore title, cast, and episode informationKeep episode favorites and viewing progress
Get an answer before committing to an accountFollow activity and decide with friends
The guest home with a large search field and the line Find the story. Skip the search.
Guest search stays a direct entry point.↗ open full size

03 · Give a group a smaller decision

What should we watch tonight?

Most streaming apps help one person find one title. Stream Find also helps a group agree on one.

The movie night entry: Find tonight’s pick with your circle, with a Start a movie night button
The entry point on the member home: Find tonight’s pick with your circle.↗ open full size
01
Set it up
Who is watching, the mood, and how much time there is.
02
Get a shortlist
Titles meant to be on a service everyone shares in their country.
03
Vote
Each person votes on the shortlist.
04
Finalize
Only the host commits the group to a pick.
Two decide-together steps: What feels right? with mood choices, and How long do you have? with time choices
Mood and time narrow the choice. Time can be unrestricted, under two hours, or one episode.↗ open full size
A shortlist of eight picks with vote and finalize pick actions
A room shortlist with a vote on each title and a separate host action to finalize.↗ open full size

Saying what you prefer is a different act from committing the group.

That is why voting and finalizing are separate. Everyone can vote without anyone being locked in, and the host decides when the choice is made.

The room I reviewed also noted that it predated shared-service filtering and had only checked availability for the host’s country. Keeping that boundary visible matters as the model changes.

04 · Make an answer fit the viewer

A streaming offer depends on location and subscriptions, so I made those inputs Services and region: 24 countries, a searchable directory, and the viewer’s most-watched service first. Discovery starts there. Popular on your services lets someone browse what is included on Netflix, for example, instead of picking a title and learning they need another subscription.

The Services and region panel with a region selector and an ordered list of selected services
Region and ordered service preferences.↗ open full size
Popular on your services with Netflix selected and the K-drama genre chosen
Netflix discovery, narrowed to K-dramas.↗ open full size

05 · Resolve ambiguity, then keep exploring

Artwork, year, and media type separate similarly named titles. Result cards pair identity with an availability answer, and they separate “no streaming options listed” from “availability hasn’t been verified,” so missing evidence never becomes a false claim. Cast portraits link to profiles and filmographies, so one title can lead to another.

Search results for Dune with a live count, filters, and availability on each card
Search results with a live count and an answer on each card.↗ open full size
The Hiroyuki Sanada profile with a portrait and biography
A person profile connects credits to the next title.↗ open full size
Autocomplete suggestions for Shogun with artwork, year, and series or movie labels
Artwork and year resolve similar names.↗ open full size
The Cast and creators grid with portraits and roles
Cast portraits create a recognizable path.↗ open full size

06 · Separate having watched from how it felt

Watching status comes first: Have you seen this? Marking a title watched reveals Loved, Liked, and Not for me, which keeps a fact apart from a preference. Series get the same care. Audience scores are labeled and kept separate from personal ratings, early scores with few votes are marked, and members can resume with Next unwatched.

The Shōgun page after marking it watched, with Loved, Liked, and Not for me controls
Watched state reveals personal ratings.↗ open full size
Season availability and an episode ratings overview with a score for each episode
Season coverage and the episode ratings overview.↗ open full size
A Because you loved Don’t Say Good Luck row of recommendations with availability notes
Recommendations show why they appear.↗ open full size
Episode progress with a saved episode and an early rating note
Progress, a saved episode, and early-rating context.↗ open full size
The Watchlist Episodes collection with a favorite episode
Saved episodes have their own collection.↗ open full size

07 · Make a saved title useful over time

Availability changes after someone saves a title. A daily check at 8:00 AM Pacific looks for new included options, price drops, and providers leaving, and changes show up in Activity with an unread count. Push preferences let people choose which reasons to return.

The Watchlist with a monitoring status and last-check time
The Watchlist shows monitoring status and the last check.↗ open full size
The Activity panel listing friend and availability events
Activity gives changes a destination.↗ open full size
Push preferences with toggles for recommendations, friend activity, availability and prices, and release alerts
Preferences separate the reasons to return.↗ open full size

08 · What building it taught me

01One lookup became a set of connected decisions. Subscription access shapes discovery. Watched titles shape recommendations. Episodes support returning. Friends add shared constraints. Monitoring makes yesterday’s saved intention useful today.
02Real data exposes what static screens hide. Shōgun showed 92% labeled as a TMDB rating on its title page and 84% in the actor’s filmography. The next iteration needs consistent source, score, and freshness handling across those surfaces. Suitability and reviewer summaries also need clearer provenance.
03Music-video search is still an experiment. Results loaded, but thumbnail areas were black in my browser, and an “Official” label appeared on a result from a third-party channel.

09 · Outcome and next iteration

Stream Find is deployed and usable in both guest and member modes. It demonstrates service-based discovery, personal taste inputs, title and person exploration, episode ratings and progress, shared voting rooms, and ongoing watchlist activity. I don’t yet have reliable usage, retention, conversion, or time-saved numbers, so I treat these as shipped capabilities, not measured impact.

I would measure search-to-provider time, engagement with service and genre discovery, whether recommendation reasons help people choose, episode return journeys, shortlist-to-choice completion, and useful Activity clicks. Next up: reconcile ratings and provider data, explain synthesized summaries, verify shared-service filtering in a new cross-account room, and test mobile, keyboard, screen-reader, and notification behavior. Push delivery and its Firestore protections still need testing beyond a UI walkthrough; notifications were blocked in the review browser.

Its direction is clearer now: help people choose something they can watch, with the context and continuity to keep going.

Screenshots are live-app captures from October 11, 2026, cropped to remove account and friend details. The review covered guest and signed-in desktop. New invitations, votes, cross-account access controls, and browser push delivery were not tested.

Find the story. Skip the search.

Explore the live app
Next case studyThreat & exposure intelligence platformRead the case study