It didn't automate a task.
It removed the task.







































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.
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

