Birthday Stats - Application Concept + React/Vite Setup
Birthday Stats is a sports analytics proof of concept that surfaces NBA player statistics specifically tied to games played on a player’s birthday. The client — non-technical, with a strong vision — wanted to explore whether real-time sports data could power a consumer-facing product, with room to grow into a full league tracker.
Architecture
The application is split across a React frontend and a Next.js backend, with both layers pulling data from an ETL pipeline hosted on AWS. Raw NBA stats are extracted, transformed, and loaded into an S3 bucket as compressed .gz files, which the Next.js API routes fetch and serve to the frontend on demand.
Frontend — Vite + React
The frontend is built with Vite and React, keeping the component layer focused on display logic without additional framework overhead. It handles the leaderboard views, player index, and birthday calendar — each driven by data fetched from the backend API routes.

Backend — Next.js + AWS S3
The Next.js layer handles server-side data fetching from the S3-hosted ETL output, transforming the compressed stat files into structured responses for the frontend. Player profile pages display birthday-specific career stats, season averages, and a +/- metric that measures how a player performs on their birthday relative to their season baseline.
