Self-Directed · FastAPI · Claude API
CRIT: Curated Recommendations in Titles
A self-hosted web app that unifies your game library across Steam, Epic, and GOG and uses Claude to recommend what to play: your backlog, current sales, or titles you haven't touched.
After a decade of Steam sales, Humble bundles, and Epic giveaways, I owned hundreds of games across three stores with no good way to decide what to play next. Existing recommenders look at one storefront at a time and don't know what I've already finished. So I built something that looks at my total library across all three platforms, my Steam playtime, and current deals, then recommends what to play next from my existing library or deep-discount sales.
Unified library: all three stores
Claude streaming a recommendation
Engineering decisions
Three auth systems, three different constraints
Steam speaks OpenID 2.0. Epic's public launcher client ID only accepts localhost redirects. GOG pins its redirect to embed.gog.com, so the server can't receive the callback directly. Each integration has a fallback where the user pastes a code from the URL bar, covering the gap without requiring a different auth library.
Slow dependency, progressive render
RAWG metadata for 300 games takes ~30 seconds. Rather than block on it, the library table renders immediately from the platform fetch and fills in ratings and genres row-by-row as each RAWG call resolves. Server-Sent Events carry the updates without polling.
Cross-store deduplication without a fuzzy-match library
"Hades" on Steam, "Hades™" on Epic, "Hades: GOTY Edition" on GOG. A normalizer strips trademark marks and edition suffixes for exact matching. Anything it misses, the owned-titles list passed to Claude handles as a backstop: two layers, no third-party dependency.
Historical price correlation
IsThereAnyDeal prices are batched, cached for 6 hours across all three endpoints, and tagged with verdicts: all-time low, near low, below regular. A 30% discount on a game that regularly hits 70% off reads very differently from a first-ever discount.
Deal mode: all-time low, near low, and below-regular verdicts per title