I can never decide what movie to watch. So I fixed that.
My Inspiration
I love movies, but sometimes I don't know what to watch. Instead of spending time surfing multiple streaming services, I created a tool that picks a movie for you.
What I Built
Using Claude, I designed a web app that will pick a movie based on three emojis you select. Each emoji gets a label that Claude uses to build a sentence, then returns a movie from TMDB. You can filter by the streaming services you pay for, and the returned movies include direct links so you can start watching immediately.
Challenges
Rate Limiting
I'm using Claude's API to call and return a movie for users. Because of costs, I wanted to limit how many times a user can run the tool. I implemented a soft solution that limits users to 5 runs by checking their browser cookie session. After they reach their limit, users see a popover that redirects them to my website. As a more permanent solution, I'd like to explore using a different Claude model to keep token costs down and potentially limit usage by IP address.
Making sure the LLM doesn't pick the same movie
I added a rule to ensure users don't see the same movie twice during a session. After a successful roll, the movie is added under a rememberFilm ID that saves the film's title and year to localStorage. Claude checks this to ensure the same movie isn't shown again, even if the user clicks the same three emojis.
What's Next?
It'd be great to expand the brand so it's not limited to picking movies. What would an experience look like for picking an album to listen to? Or a television show to watch? How do all three experiences mesh together to become seamless?
