Problem
A legacy online game publishes its rankings as one raw table with no history. Players could see who led today, with no record of who was rising, falling, or gone.
What I built
A ranking platform on an event-sourced architecture. Every change in the game’s public data is stored as an event, and every metric on the site derives from that log. A Next.js and TypeScript front end on Vercel reads from a Cloudflare Workers and Neon Postgres backend.
