Skip to content
FR
Back

cine-taste

A film discovery app whose trending ranking decays by construction, with no scheduled job at all.

Public projectNext.js, React, TypeScript, PostgreSQL, Drizzle, Zod, Tailwind

The problem

A trend has to forget: a film watched a lot a month ago must not bury this week's. The usual answer recomputes scores on a schedule, with a job that can fail.

The approach

The score is a sum of interactions discounted by their age. Factored, it becomes an accumulator updated in constant time, stored as a logarithm (log-sum-exp) to stay finite. The decay is in the formula: nothing has to run afterwards.

The demo page explaining the ranking model
The decay is in the formula
InteractionAccumulatorlog-sum-expAgeexponential discountRankingno scheduled jobconstant time