Listen First

Day 17 · August 19, 2026

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.

← The 80-Day Project