8-Bit Baseball Cards

Live stats determine visual quality — from NES pixels to gold-foil cards.

React 19 TypeScript Vite 7 MLB Stats API Vercel
View live →

The problem

I wanted a fun way to browse baseball stats that felt more like collecting cards than reading spreadsheets. Traditional stat sites are dense and utilitarian — I wanted something with personality.

The approach

Each player gets a procedurally generated pixel-art card rendered on HTML canvas. The sprite, colors, and layout are all derived from the player’s real stats pulled from the MLB Stats API. Cards update in real-time during the season.

Grid of 8-bit baseball cards showing pixel art player sprites

The app supports both the MLB regular season and the World Baseball Classic, with automatic fallback between the two. Team colors, roster data, and game stats all come from the public API — no auth required.

Detailed view of a single 8-bit baseball card with stats

How it works

React 19 handles the UI, with canvas-based rendering for the pixel art sprites. Vite 7 bundles everything, and the app deploys to Vercel as a static site. The MLB Stats API provides all player and team data, with sportId=51 toggling WBC mode. The result is a living card collection that reflects the actual season.