Listen First
Yesterday I made the design decisions for Layer 2, the personalization. Today I built the rating slice.
Until now, TVLens recommended shows using data that was not personalized to the user. I built and tested the recommender against data from TMDb. That was the right way to start. But a recommender has to be able to learn from its users’ ratings.
I wired the rating slice: a half-star widget on each show’s page, half a star up to five, the same scale MovieLens uses. A user can rate a show, the user can change the rating, and each TV show page shows both the user’s rating and an average score of all TVLens users. It sits behind a login, because a rating only means something when it belongs to a user.
I also wired one rule: a rating implies a user watched a TV show.
I wanted to demo the site with my test account and actually feel the personalization work. But a rating slice with nothing to re-rank is only half of it, so I ended up building the re-ranking too, Layer 2. Now the recommendations on a show’s page re-order to fit what you rate. Rate a few sci-fi shows highly and the list leans sci-fi, while a dominant shared-cast edge still holds its spot.
I also activated the genre pills on the homepage, so you can browse by genre and find shows to rate.
I did not start on search. It has to be built around how TV show data is actually indexed, so it is a medium lift for later, not something to rush into today.
TVLens now has a layer of personalization. I am excited to see what we can do from here.
For a more in-depth explanation, read this ADR.