
TypeScript
ShowFreak — Streaming Tracker
Full-stack streaming tracker with a custom genre-weighted recommendation engine, JWT refresh token rotation, and 106 automated tests — deployed on Vercel + Render + Neon.
Case study
Every streaming tracker I tried surfaced the same trending content regardless of what I actually watched. ShowFreak fixes that with a recommendation engine that weights genres from your rated content (5★=3pts, 4★=2pts, 3★=1pt) — the more you rate, the more accurate it gets.
The key architectural decision was local content caching: all TMDB metadata is stored in a local content_cache table on first fetch, so library queries and sorting never hit the external API. This eliminated the N+1 problem at the API boundary and made the library fast regardless of TMDB's response time.
JWT auth uses refresh token rotation — every token refresh issues a new refresh token and invalidates the old one, so a stolen token becomes useless after one use. The full test suite covers 81 backend integration tests and 25 frontend unit tests, giving me confidence to refactor without regressions.
I built ShowFreak using AI-assisted development throughout — starting with Kilo Code for architecture and scaffolding, then switching to Claude Code for debugging, refactoring, and feature delivery. This workflow cut implementation time significantly and is now how I approach every project.
Stack: React 18 + TypeScript · Node.js 20 + Express · PostgreSQL 16 + Prisma · TanStack Query · Vitest · Vercel + Render + Neon

