Il progetto
Il problema di partenza è quello che conoscono tutti: mezz'ora a scorrere il catalogo e alla fine non si guarda niente. La difficoltà vera arriva quando le persone sono più di una, perché i gusti confliggono e chi decide di solito accontenta sé stesso.
WatchWise costruisce un profilo di gusto dalle valutazioni e dallo storico di visione, lo incrocia con un questionario giornaliero sull'umore e produce una selezione quotidiana. Ogni suggerimento porta con sé la sua spiegazione: «hai valutato questo film 8 o più, ecco altri titoli con la stessa atmosfera». Sapere perché un film è stato proposto cambia il rapporto con la raccomandazione.
Per i gruppi il meccanismo è diverso: si crea una lobby, si entra con un codice d'invito, e il sistema cerca il compromesso fra i profili dei partecipanti invece di sommarli. È la parte che ci ha dato più lavoro, perché un compromesso banale finisce sempre sul titolo più generico possibile.
Sul piano tecnico il backend è un servizio Fastify con PostgreSQL e Drizzle, autenticazione delegata a Supabase e verifica dei token via JWKS. I metadati dei film arrivano da TMDB con una cache dedicata, perché il rate limit dell'API è la prima cosa che si rompe quando la pagina carica trenta poster insieme.
Nel gruppo mi sono occupato principalmente del backend e della logica di raccomandazione.