Case Study: Vibe Coding - Social Fight Scoring App

Overview

As a longtime UFC fan, I repeatedly experienced frustration watching fights where official judges’ scorecards felt disconnected from what was happening in the cage. This sparked a core question:

What if fans could score fights in real time and immediately see how others are scoring them?

I designed and built a mobile-first UFC fan app that allows users to:

  • Score fights round-by-round in real time

  • View live aggregate fan scores

  • Participate in fight-specific discussion

This was a self-initiated personal project, built entirely by me using vibe coding, to both design a compelling product and demonstrate my ability to learn an AI-assisted development workflow and ship an end-to-end experience independently.

Role

Product Designer

  • UX Strategist

  • Researcher

  • Vibe-Coder

  • Sole Builder

Timeline

1 week (part-time, iterative)

Product Type

Consumer mobile app

Live sports + social interaction

Team

Myself

Researcher

Problem & Context

The Challenge

MMA judging is subjective, and fan disagreement is part of the sport but there is no structured way for fans to:

  • Score fights as they happen

  • Compare opinions in real time

  • Separate round-by-round analysis from noisy social media commentary

Existing platforms (Twitter/X, Reddit, group chats) are:

  • Unstructured

  • Post-hoc

  • Emotion-driven rather than round-driven

At the same time, I wanted to explore vibe coding as a way to rapidly translate UX intent into working software without a traditional engineering workflow.

Primary Users

  • Internal designers

  • Myself (daily user)

Constraints

  • The entire project was secondary to other product work

  • Progress could only be made during downtime

  • We needed to avoid disrupting ongoing design projects

  • Must integrate with existing partial design systems already in-flight

With a just a click, quickly change a dialog modal from one design system to another. Variable modes utilize color, string, numeric, and boolean variables.

Defining the Experience

I anchored the experience around a simple principle:

“Fast opinions, not perfect analysis.”

In practice, this meant:

  • One-tap round scoring

  • Clear separation between scoring and discussion

  • Structured interaction that mirrors real judging

Key Experience Pillars

  • Real-time first: Designed for live viewing, not post-fight analysis

  • Low cognitive load: Simple actions during high-intensity moments

  • Collective insight: Aggregate fan sentiment over individual hot takes

  • Social, not toxic: Conversation without ranking or downvoting users

  • Buildable via vibe coding: UX decisions that could be realistically implemented solo

Buttons were one of the most challenging features of the multi-product design system with many options and brand-specific settings (color, corner radius, font, etc.).

Research

Before designing or building, I validated the core assumption through informal qualitative research with other UFC fans.

Research Activities

  • One-on-one conversations with frequent UFC viewers

  • Group discussions during live events

  • Comparison of personal scorecards vs. official judging

Key Insight

Across multiple conversations, fans consistently expressed the same pain point:

“The judges often get the scoring wrong.”

This confirmed that:

  • The frustration was shared, not personal

  • Fans already score fights mentally

  • There was appetite for a shared scoring experience

The input design went through multiple rounds of usability testing, centered on a core question: should this be broken into multiple components, or handled as a single component with many toggleable features? We ultimately landed in the middle, balancing the number of components against the complexity and flexibility of each.

Design Activities & Process

My Responsibilities

  • Defined product concept and scope

  • Conducted user research with UFC fans

  • Wrote full user stories using agile methodology

  • Created end-to-end user flows

  • Designed UI and interaction patterns

  • Learned and applied vibe coding principles

  • Built the working application myself

  • Iterated between design intent and implementation constraints

Impact

Qualitative

Night and day compared to before”

-Product Lead

So much easier, everything is just there.”

-UX Designer

A huge mental load off.”

-UX Designer

Lessons & Future Improvements

If We Had More Time

  • Use Figma’s description field for all components

  • Add developer-facing documentation in Confluence

  • Create example pages/templates for common product screens

  • Add accessibility variants to component tokens

Other Case Studies

Data Pipeline Builder

Sign-Up Flow