Dynasty Cap Manager
A fantasy football platform built to model the NFL - manage a full salary cap, contract types, and more as you look to build a true dynasty.
Build Log: Jan-Feb 2026 - The NFL Data Pipeline
Connecting to real NFL data was the first major challenge. We started with the Sportradar API but hit trial key limitations before we could test a full season pull. After evaluating alternatives, we migrated to RapidAPI NFL Data (PRO plan, 5,000 requests/day).
A Python data pipeline was built to pull, transform, and store: 32 NFL teams with logos and branding, 2,550+ players with biographical data and headshots, 17,540 game stat records across the 2025 season, and half-PPR fantasy scoring calculated and stored per game.
The frontend now features a full player browser with game logs spanning 2021–2025, career stats, defensive rank indicators, and current-week opponent matchup data.
Key technical decisions:
RapidAPI over Sportradar for rate limit headroom
Store calculated fantasy scores per game (not compute on the fly)
Five seasons of historical data for meaningful career context
What’s next: The salary cap engine — 91 features to replace the league’s most painful Google Sheet.
Build Log: Jan 2026 - The Origin Story
BroNasty League has been running for 12 years across four disconnected platforms: Sleeper for matchups, Google Sheets for salary caps, Google Docs for rules, and Yahoo Email for waivers. The commissioner spent hours every offseason reconciling spreadsheets. Salary cap errors slipped through. Contract disputes turned into group chat archaeology.
No existing platform handles what makes dynasty leagues worth playing: salary caps with rollover and dead money, multi-year contracts with guaranteed vs. non-guaranteed structures, and restricted free agency.
Development started in January 2026 with a React + Vite frontend and Node.js + Express backend. Core architecture decisions: click-to-swap roster management (more reliable on mobile than drag-and-drop), SQLite for development with a clear migration path to PostgreSQL, JWT authentication with role-based permissions from day one.
The initial build delivered login, team selection, roster editing with position validation, and a 9-position starting lineup with 14 bench spots and IR.
Key technical decisions:
Click-to-swap over drag-and-drop for mobile reliability
SQLite → PostgreSQL migration path for zero-config dev
Role-based access (Commissioner vs. Owner) from the start
What’s next: Connecting to real NFL data — 2,550+ players, 5 seasons of stats, and a Python pipeline to pull it all together.