Jersey Generator

What It Is

An internal web tool that generates transparent sports jerseys used as team identifiers across the SBX sportsbook UI.

Why It Matters

Team logos don't reliably scale to small sizes and take time to source and clean. Jerseys gave SBX a fast, consistent alternative that stays readable in dense betting surfaces.

My Role

End-to-end ownership: defined the visual rules, designed the jersey system, scoped the project, and built the generator using AI coding assistance.

Impact

1,400+ teams generated in 4 days. Replaced a manual asset pipeline and saved weeks of ongoing work.

What It Shows

Systems thinking. Design × code execution. AI-assisted delivery with clear constraints and consistent output.

It didn't automate a task.

It removed the task.

alabama crimson tide.avif
atlanta hawks.avif
boston celtics.avif
buffalo sabres.avif
charlotte hornets.avif
chicago bulls.avif
clemson tigers.avif
dallas stars.avif
florida gators.avif
golden state warriors.avif
iowa hawkeyes.avif
chicago bulls.avif
montreal canadiens.avif
new york islanders.avif
alabama crimson tide.avif
atlanta hawks.avif
boston celtics.avif
buffalo sabres.avif
charlotte hornets.avif
chicago bulls.avif
clemson tigers.avif
dallas stars.avif
florida gators.avif
golden state warriors.avif
iowa hawkeyes.avif
chicago bulls.avif
montreal canadiens.avif
new york islanders.avif
alabama crimson tide.avif
atlanta hawks.avif
boston celtics.avif
buffalo sabres.avif
charlotte hornets.avif
chicago bulls.avif
clemson tigers.avif
dallas stars.avif
florida gators.avif
golden state warriors.avif
iowa hawkeyes.avif

The Problem

The SBX sportsbook needed a clear visual identifier for teams that worked reliably at small sizes and across a growing set of leagues.

Before the generator, we manually sourced team logos and then manually cleaned them to work in UI. That workflow didn't scale — it was slow, inconsistent, and prone to mistakes.

We needed a system that could generate consistent identifiers on demand.

The Solution

I built a web-based internal generator designed specifically to solve the scale problem — not just create individual assets.

Instead of one-at-a-time generation, the system was built around structured batch input.

Each league was uploaded as a CSV file containing:

  • Sport type (NFL, Soccer, Cricket, Rugby, Ice Hockey, etc.)
  • League name
  • Team name
  • Descriptive prompt defining team colours and visual style

This allowed identity to be expressed clearly without relying on logos or manual interpretation.

The generator processed entire leagues in a single run.

  • Hundreds of teams generated automatically per batch
  • Consistent silhouettes with team-specific colour application
  • Automatic enforcement of contrast and brand rules
  • No manual cleanup or review pass required

Batch generation dramatically reduced production time and made scale practical — not theoretical.

What used to take days or weeks of manual sourcing and cleanup became a repeatable, minutes-long process.

Jersey Generator UI

The Generated Jerseys

How It Was Built

This project was treated like a production system, not a throwaway tool. Speed mattered — but predictability and correctness mattered more.

Before writing code, I worked with AI in order to create a detailed Product Definition Requirements (PDR) document to lock scope and intent.

  • Clear problem statement and success criteria
  • Explicit non-goals to prevent scope creep
  • Defined input → output model
  • Constraints around branding, contrast, and legibility
  • Batch processing for efficiency

This upfront clarity made implementation faster and removed ambiguity during build.

Test Driven Development (TDD)

The generator was built using Test Driven Development to ensure reliability at scale.

  • Tests written before implementation
  • Regression protection as logic evolved

With hundreds of teams generated automatically via batch processing, failures needed to be caught early — not visually discovered later in production.

Implementation

  • Web-based internal application
  • AI-assisted coding used to accelerate iteration, not replace judgment
  • Rule-driven generation rather than manual overrides
  • Transparent PNG and AVIF outputs for flexible UI placement

The combination of clear requirements andtest-backed logic meant the system scaled immediately — with confidence.

Where It Shipped

The jerseys were used throughout the SBX sportsbook experience:

  • Sports cards (browse / market views)
  • Bet slip (selection context at-a-glance)
  • Bet history (quick recall and scanning)

The Outcome

In the first push, we generated 1,400+ teams in 4 days— a volume that would have taken weeks manually.

The generator completely replaced the previous workflow of sourcing logos and cleaning them for UI use, while making ongoing updates effectively free.

What Made It Good

  • Solves a real scaling problem, not a cosmetic one
  • Replaces manual asset work with a consistent system
  • Designed for small-size legibility and dense UI surfaces
  • End-to-end ownership: design rules + implementation
  • AI-assisted delivery with clear constraints and outcomes