Skip to content

Epic: richer media detail page (recommendations, person pages, in-app sharing) #34

Description

@miicolas

Problem Statement

The media detail page is informative but a dead end: the cast is not tappable, there are no related-title suggestions, and the only "sharing" is an unused title-only share. Users can't keep exploring or tell a friend about a title from inside the app.

Solution

Turn the media detail page into a hub for rebounding: suggest related titles, let users explore an actor/crew member's filmography, and let users recommend a title to people they follow — without leaving the app.

Scope — one sequenced plan, three independently shippable features

Delivered in order of increasing cost; each can ship on its own:

  1. "You may also like" sectionfeat(mobile): "You may also like" section on the media detail page #31 (cheapest; backend handler already exists, just expose + render).
  2. Person detail screenfeat(mobile): person detail screen (actor/crew filmography) #32 (largest TMDB/UI piece; new endpoint + screen, cast becomes tappable).
  3. In-app media recommendationsfeat: in-app media recommendations (recommend a movie to a friend) #33 (heaviest; new DB table + API module + send sheet + inbox + push).

Key decisions (settled)

  • Related titles use TMDB recommendations (not "similar"); movie/TV only, not episodes.
  • Person page shows two sections — Acting + Directing/Crew; routed by mirroring the existing media-detail multi-stack pattern.
  • "Recommend to a friend" is in-app (not the OS share sheet): recipients = people you follow, multi-select, optional message, entered via a header button, received in a dedicated inbox with push + deep link.

Constraints

  • iOS-only, Expo SDK 56, SwiftUI-first (@expo/ui/swift-ui); TMDB strictly server-side. Follow the tmdb, expo-ui-swiftui, naming, and haptics skills.
  • No automated test framework is wired up; verification is manual (iOS simulator) plus bunx tsc --noEmit and bun run lint. See each child issue for its seams.

Further Notes

Consider a whats-new announcement as each feature ships.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions