Skip to content

Kit validation

A platform for clubs to get their kits validated by the FEB

For
Spanish Basketball Federation
Role
Product design and AI-assisted development
Team
Just me, in constant contact with competitions and marketing
Tools
Figma · Lovable · PostHog
When
2025 – 2026
7Pending14In review23ApprovedRules · Proposal · Status · Conversation

Context

Clubs in FEB competitions have to get their kits validated by the federation. A team from the competitions and marketing department handles this.

The problem

Everything went through an endless stream of emails with the clubs: information got lost and the process got out of hand. On top of that, marketing and competitions reviewed different things, and if marketing rejected a kit, competitions had to review it again.

My role

I designed and developed the platform on my own, in Lovable: I decided how to build it and relied on AI to write the code. That way I tested the flow up and running, not in a static prototype, and took it to production without waiting for a free slot in development.

I started by understanding in depth how kits had been validated until then, and I stayed in constant contact with competitions and marketing throughout the project.

The club's dashboard, “Mis Equipos” (my teams): a test team from the Liga Femenina Endesa with its four kits (home, away, third and warm-up), each required or optional and not yet submitted.
What the club sees: each team with its kits and the status of each one. Test account.

The platform

The validation process and the announcements and updates for the clubs are now all in one place.

Uploading the home kit: four slots for photos of the shirt and shorts, front and back, the counter “0 de 4 fotos adjuntas” (0 of 4 photos attached) and the “Enviar solicitud” (submit request) button, still disabled.
Uploading a kit: four photos, shirt and shorts, front and back.

Before, by email

  1. 1

    The club sends its proposal by email.

  2. 2

    Marketing and competitions review it separately: each looks at different things.

  3. 3

    If marketing rejects it, competitions has to review it again.

  4. 4

    Endless threads: lost information and chaos.

Now, on the platform

  1. 1

    The person who manages the team signs in with two-step verification and an access token.

  2. 2

    They check the rules and upload the kit on the platform.

  3. 3

    The FEB team reviews it from a dashboard with roles and permissions.

  4. 4

    The club sees the status of each request and gets the notifications.

  5. 5

    The kit is stored in the team's history.

Validated

How a kit gets validated, before and now.
The FEB's dashboard of club requests: search, filters by competition, status and date, and each request with its kit type and its status, pending or rejected by Competitions. Club names and kits are blurred.
Club requests, each with its status. Clubs and kits blurred.

The hard part: giving access to the right person

The platform is connected to the FEB's large database. When signing up, each person had to land in their club and, within it, in the team they look after, with the role of kit manager. And a club can have several teams, in different categories or competitions.

I solved it with two-step verification and an access token. Each user is linked to their team within the club, so communication goes straight to the person in charge of that team.

Measuring where users get stuck

The people who use the platform at the clubs don't have a technical background. That's why I used PostHog to study their behavior at the two key moments: registration and kit upload.

That's how I saw that less technical users didn't read the note on the sign-in screen: the first time, they had to go through a different link to create their account and join their club. That brought us quite a few support emails. I added a clearly visible notice explaining it, and the problem went away.

Sign-in screen of the FEB kit validation platform on mobile, with a note for first-time users: if their club gave them a registration code, they need to create their account first.
The notice I added for first-time users.

A color comparison tool

Based on the hex code of each color, an algorithm calculates whether the kits of two teams playing each other contrast enough.

#1F3A8A

Home

#F1EEE6

Away

Enough contrast

#1F3A8A

Home

#2C4F9E

Away

Not enough contrast

Illustration with sample colors, not from any club.
The color comparison tool in the platform: two kits, the “Comparar” (compare) button and the result, “Contrastan correctamente” (they contrast well), with a contrast score of 91 out of 100 and each team's main and secondary colors with their hex codes. The clubs and their kits are blurred.
In the platform, with two real kits and their contrast score. Clubs blurred.
The final decision is always made by an FEB employee.
Review of an approved kit: photos of the shirt and shorts, front and back, and the Competitions checklist with all 12 criteria met, such as “Ethical elements” and “Different colors”. The kit and the reviewer's name are blurred.
Each criterion is marked as met or not met. If any isn't met, the kit is rejected and the club is notified.

Results

  1. Its first season

    Since May 2026 it has already received 674 requests for the 2026/2027 season, from every category, including Primera FEB and the Liga Femenina Endesa.

  2. 313 clubs

    Signed up since September 2025.

  3. A standardized process

    What used to be very inefficient is now much faster.

  4. Well received

    The competitions team has been very happy with it.

What I learned

  • Digitizing a process isn't swapping email for a form: it's deciding who reviews what, and in what order.
  • With non-technical users, the hard part is access: getting each person to their club and their team. And explaining it isn't enough; it has to be obvious at first glance.
  • An algorithm helps you decide, but it doesn't replace the person reviewing.

Let's talk.

I can walk you through any of these projects in more detail, including the screens I can't publish here.