Enter an active NBA player's name above. Try typing in "Al Horford" (remove quotes) if you need a name.

How the B-Ball Cards application respects Sports Reference guidelines:

  • it has never and will never be monetized or advertised commercially (no SEO)
  • search function is limited to once per minute to prevent adverse performance impacts on Sports Reference sites
  • this represents the only direct interaction with Sports Reference websites
  • data, images, statistics, etc. presented on this site from Sports Reference are blurred such that the data is not used in a manner that competes with Sports Reference's services
  • the database that stores deck data is cleared after the 20th deck submission such that the data is not used in a manner that competes with Sports Reference's services

How the B-Ball Cards application application works:

The appilcation's frontend is built on next.js and deployed via Netlify, communicating with an Apache web server, WSGI, and Flask API deployed on an Amazon Linux 2 instance. The API retrieves data directly from the internet and from an AWS MSSQL RDS instance, where data is also stored. An endpoint is available here, and the frontend and backend repositories are public on GitHub. Below are a number of diagrams drawn before any of the application materialized. Their description of the app architecture is still mostly valid.

The backend repository uses Git, GitHub, AWS CodePipeline, and AWS CodeDeploy for CI/CD deployment to an Amazon Linux 2 instance. Similarly, the frontend uses Git and GitHub for direct CI/CD integration with Netlify.

I regret that this website—in particular, this application—is not very responsive (4/13/2023), but I feel it demonstrates fullstack competency and is enough to post. If you see anything broken or poorly-done, I probably know about it, so challenge me to correct it! And, yes, this is wildly overengineered for my purposes, but it was a great learning experience.

Quick Start

Click on the search bar and type in an NBA player's name. Limitations to the search algorithm have the following consequences:

  • only one search is allowed each minute (fill decks with repeated cards, or edit an existing deck)
  • the player must still be playing in the NBA
  • names typed into the search bar should be spelled perfectly
  • players with prefixes, suffixes, or hyphens—anything other than a first and last name—rarely work
  • players traded this season will appear with a blank background and some incorrect data
  • player data is blurred


All player pictures, statistics, and data are property of www.basketball-reference.com. This demonstration is intentionally limited to better align with the guidelines issued by Sports Reference. Measures taken to limit this site's footprint on Sports Reference's are described on the explanation page. Data, images, statistics, etc. from Sports Reference are blurred.