Skip to content
← Work

NBA.com and the League Pass storefront

Four years building fan-facing features for NBA.com and the subscription storefront for NBA League Pass.

Role
Front-end and Drupal developer
Company
Turner · NBA Digital
Year
2016–2020
Stack
Angular, TypeScript, Drupal 8, PHP, Twig, SCSS
test coverage gate on the storefront
94%
files changed in the HTTPS migration
154

Context

NBA.com ran on Drupal 8 with a team of about a hundred contributors over its life. Alongside it, a separate Angular app handled buying and managing NBA League Pass subscriptions.

NBA.com

I was one of the core feature developers and took a regular turn on release duty. Most of my work was front end: templates, styles, and JavaScript, with PHP where the feature needed it.

  • Fan votes and sweepstakes. I was the top contributor to the module behind the Kia MVP vote and Rising Stars polls, including its admin configuration.
  • Tentpole events. Schedule, scores, standings, and stats pages for All-Star, the Playoffs, the Draft, and Summer League. The 2018 Playoffs schedule fetched data server-side with cache timing that editors could set.
  • HTTPS migration. I carried out the move to HTTPS in 2018, across 154 files plus environment settings.
  • Privacy. GDPR consent, CCPA “Do Not Sell”, and requiring the current password for account changes.

League Pass storefront

In 2019 I moved to the storefront as its primary front-end contributor and drove its releases through each environment to production.

  • Purchase confirmation, subscription management, and a flow for switching between League Pass and Team Pass, covered by end-to-end tests.
  • The sales sheet: one-time and team purchases, a configurable feature comparison, and seasonal pricing layouts.
  • Moved single-game pages to server-side rendering.
  • A performance refactor guided by Lighthouse audits.
  • Raised the test coverage threshold to 94% and added code owners.

What I took from it

High-traffic event pages taught me to respect caching and release discipline. When the Playoffs start, the page has to be right the first time.

Next project

Publishing a page without rebuilding the site