All work

Self-directed concept · UX / UI Case Study · 2025

Designing for the fan who follows wrestlers, not promotions

The problem

Dedicated wrestling fans follow wrestlers across promotions — but every product organises information by promotion and event.

The insight

The data is on the wrong axis — by promotion, when fans think by wrestler — and changes to it aren't trusted.

The turn

Usability testing refuted my core navigation hypothesis — and I caught it before committing to high-fidelity design.

My role

End-to-end UX/UI — framing, strategy, IA, prototyping, test design, running the sessions, synthesis, and iteration.

Project type

Self-directed concept. No shipped product; mock data; five usability participants across two rounds.

Tools

Research & strategy, Mermaid (diagrams), React (interactive prototype), moderated usability testing.

Scope

Multi-stage: reframe → strategy → IA → prototype → two test rounds → handoff.

At a glance

The short version

A wrestler-first concept for tracking pro wrestlers across promotions — and, more than that, a case study in making design decisions under evidence.

  • The core move: reframing the brief from "information is scattered" to "the data is organised on the wrong axis, and its changes aren't trusted."
  • The spine of the work: design decisions held as testable hypotheses, not assertions.
  • The headline result: testing refuted my central navigation hypothesis; I restructured and re-tested before high-fidelity.
  • What it shows: judgment under evidence — including being wrong, noticing, and correcting course.

1 · The reframe

Finding the real problem

The brief asked for an aggregator. I pushed on that, because aggregation didn't survive contact with reality. Sites like Cagematch already aggregate cards, results and ratings for almost every promotion. If “scattered information” were the whole problem, it would already be solved.

So I reframed it. What those tools share is that they're all organised by promotion and by event. But a dedicated fan's interest is organised by wrestler — they follow specific people across whatever shows those people turn up on. The information isn't missing; it's filed on the wrong axis. And cards change constantly, and fans get burned when they can't tell what changed or whether to believe it.

Wrestling information is organised by promotion and event, but fans organise their interest by wrestler — so following the people they care about means stitching together scattered, siloed sources whose changes they can't easily trust. HeelFace inverts the axis: wrestler-first, and makes changes trustworthy enough that a fan would rather check here first.

This reframe became the spine of every decision that followed. The work isn't “I designed a wrestling app.” It's “I questioned the obvious framing and found the one that was actually defensible.”

2 · Who it's for

The hardest user on purpose

Dan, 27 — “the multi-promotion follower.” Watches WWE and AEW weekly, follows NJPW and a couple of UK indies, and keeps a mental list of around fifteen wrestlers across all of them. He juggles a stats site, a subreddit, and a handful of social accounts, and second-screens his phone during live shows.

His pain isn't findinginformation — it's that the information is fragmented by promotion while his interest is organised by wrestler, and that he gets burned when an announced match changes or when he's spoiled on a taped show. He'd abandon a new product instantly if its coverage had gaps, because incompleteness destroys the one thing he needs: trust.

I deliberately did not design for the casual viewer. Casual and hardcore fans want opposite things, and serving both tends to produce something too shallow to retain the people who'd actually use it. Choosing the harder, narrower user was itself a strategic decision.

3 · The wrestler-first strategy

Every screen defined by the spine

If the unit of the product is the wrestler, every screen needs a defined relationship to that spine. I resolved the structure into four roles:

  • My Wrestlers — embodies the spine (data re-organised wrestler-first).
  • Events — the authoritative source of truth; personalisation is a lens on top, never a replacement.
  • Wrestlers (catalogue) — a discovery utility that feeds the spine; not a destination.
  • Home — a blend of the above.

One principle I held throughout: product honesty. With no backend, the prototype could not send real-time alerts — so it must never imply that it does. A permanent line on the feed reads: “HeelFace checks for changes when you open it — you won't be pinged the moment they happen.” Designing the honest limitation in mattered more than a slicker demo.

4 · Information architecture

A decision, not a default

I designed a task-based IA (organised around what Dan is trying to do) and a data-type IA (organised by Wrestlers / Events / Changes / Saved), then argued them against each other rather than defaulting to one.

The data-type version is cleaner and scales more easily — but it organises navigation by exactly the axis the product exists to escape. The task-based IA matches the user's mental model and makes the wrestler-first thesis structural rather than cosmetic.

The more useful move was to refuse the either/or: I kept the data-type structure as the underlying content model and the task-based structure as the navigation — they operate at different layers and aren't in competition.

Initial assumption

"My Wrestlers should be the primary personalised destination."

Testing insight

Users needed a broader catch-up surface before entering a deeper tracking workspace.

Final direction

Home became the personalised overview, while My Wrestlers became the dedicated monitoring space.

Task-based IA for HeelFace: top-level navigation splits into Home, My Wrestlers, Events, and Wrestlers catalogue. Colour encodes authority.
Initial IA — the hypothesis. Shown as first designed — testing suggested relocating the personalised hero to Home.
Revised IA after testing: Home is now the personalised catch-up hero, My Wrestlers becomes the dedicated monitoring workspace.
Revised IA — after testing. Home carries the personalised catch-up; My Wrestlers becomes the management and monitoring space.

5 · Dynamic behaviour

Ranked by user value, not by cleverness

I catalogued every moment where the interface should adapt to state — then cut what didn't earn its place. (A “Heel/Face” alignment filter: alignment is kayfabe, flips mid-storyline, and isn't how anyone searches. Cut.)

The moments that stayed all served the two real jobs:

  • Change detection a 'since your last visit' digest, scoped to the wrestlers you follow.
  • Provenance every change shows whether it's confirmed or rumoured, and how many sources back it.
  • Lens, not filter on an event card, your wrestlers are pinned and highlighted, but the full card stays visible.
  • Spoiler control for taped shows, results stay hidden behind a deliberate reveal.
  • Optimistic follow instant state change, with a real rollback path when a save fails.

6 · The prototype

Every decision made clickable

A working React prototype became the project's source of truth — rather than describing the design in Figma and leaving behaviour to imagination.

The HeelFace prototype, running live. Follow a couple of wrestlers, then use the “Backstage” panel to simulate a card change and watch the feed update. Backstage is test scaffolding, not product UI.

The turning point

7 · Testing

Where I was proven wrong

Rather than test generic “can you find X” tasks, I framed each contested decision as a hypothesis and ran moderated, think-aloud sessions against it — three participants in the first round. The point wasn't to confirm the design; it was to find where it broke.

With three non-fan participants, I treated this as friction-finding — evidence about usability, not proof about wrestling-domain preferences. Even so, two of my hypotheses were refuted.

My central navigation bet was wrong

I had made “My Wrestlers” the hero — the place personalised updates lived. Every participant expected that content on Home, and read “My Wrestlers” as a settings or management area. This was the most valuable thing the test produced.

I assume Home is where my updates would be.
That sounds like where I manage favourites.
Round 1 — hypotheses vs. evidence (3 participants)
HypothesisResult
Users go to "My Wrestlers" for personal updates
Refutedthey went to Home
"My Wrestlers" reads as the hero
Refutedread as settings
Event card reads as full card, not filtered
Failedfor a participant
Seen state reads as recall, not clutter
Failedexpected it cleared
Provenance (confirmed/rumoured + sources) is understood
Supported
Pull-not-push model is understood
Partialunderstood, but alerts still expected

Held honestly: three participants surface major friction, not statistical behaviour — so I report these as “observed with three participants,” not as proof about all users.

8 · Iteration

Fixing what the evidence exposed

The evidence pointed deeper than a rename. I restructured to match the mental model the test revealed.

Restructure: Home becomes the feed

People wanted Home to do the job “My Wrestlers” was built for — so I moved the personalised change digest to Home, where people already looked, and recast My Wrestlers as the “manage who you follow” list, which is what participants had assumed it was. The design stopped fighting the mental model and started matching it.

Micro-fix: lens, not filter

The misread happened because the highlighted match floated to the top — which pattern-matches to “filtered result” — while the reassurance sat at the bottom where the misreader never reached. The fix front-loads proof: an explicit match count (“Full card · 3 matches”) and a “Rest of the card” divider that reframes the reorder as structure rather than exclusion. No new colour, no toggle.

Event card showing 'Full card, 2 matches', the user's wrestler pinned at the top, and a 'Rest of the card, in card order' divider below.
After the fix: the count and divider make it unmistakable that the full card is present and the user's wrestler is pinned, not isolated.

Redesign: seen, with recall

“Seen” was a genuine conflict between two needs — “seen = cleared” and “let me look that up again.” The fix separates them: marking a change seen clears it from the active digest, and seen items collect in a collapsed “Seen earlier” group with undo. It's the email-archive pattern, so users arrive already knowing how it works.

Home feed with an empty active digest reading 'Nothing new', and a separate expanded 'Seen earlier' group containing a previously seen change with an undo control.
After the fix: the active list clears when a change is seen, but the change stays recoverable from a separate, collapsed group.

9 · Re-validation

Closing the loop

A fix isn't validated until it's re-tested. I ran a second round with two fresh participants and pre-written pass/fail criteria — so I was measuring first-run clarity, not what earlier participants had learned. The specific failures no longer appeared.

This is exactly where I expected changes.
Full card tells me everything is here.
Before / after the iteration
IssueRound 1Round 2 (2 participants)
Where personal updates liveExpected Home, found nothing thereHome is the update destination
Event card (lens vs filter)Read as filteredRead as the full card
Seen / recallSeen items caused confusionCleared, and recoverable

Held honestly: a clean second round with two non-fans, in a confirmation-framed test, is directional — not proof the design works for everyone. The accurate claim is that the Round 1 failures were no longer observed, not that the design is “validated.”

10 · High fidelity & handoff

Taking it toward production

With the structure holding up across both rounds, I took the prototype toward production rather than re-describing it in a new tool.

  • Design system: a dark broadcast aesthetic — condensed display type, a 'title-belt gold' accent reserved for your wrestlers, red for changes and alerts, colour never the sole signal.
  • States: loading skeletons and a load-error / retry state, alongside the empty and edge states.
  • Responsive: a bottom tab bar and 44px touch targets on mobile — the real usage context, since fans second-screen on a phone.
  • Accessibility: all text/UI contrast checked to WCAG AA; semantic headings; focus moved to screen on navigation; reduced-motion honoured.
HeelFace on a narrow mobile viewport with a fixed bottom tab bar and single-column content.
HeelFace loading state showing shimmer skeleton placeholders.
HeelFace load-error state: a bordered alert reading 'Couldn't load the latest' with a Retry button.

Production-leaning states: mobile bottom-nav, loading skeletons, and a load-error with retry.

11 · What I didn't prove

Naming the edges of the evidence

Naming the edges of the evidence is part of the work, not an apology for it.

  • Fan-domain questions are unproven. Spoiler-culture fit, how fans weigh 'rumoured vs confirmed', and full-card vs wrestler-only preference were tested only with non-fans. These need recruited wrestling fans.
  • The notification expectation is unresolved. Users understood the pull model but still expected alerts. The honest caption mitigates it; only a real backend resolves it.
  • Sample size is small. Five participants across two rounds surface major friction, not statistical behaviour — and I've framed every finding accordingly.
  • It's a concept. No shipped product, no real data, no live users. The work is the thinking and the evidence, not a launch.

12 · Reflection

Decision → hypothesis → test → evidence → iteration

The most useful moment in the whole project was a refuted hypothesis, because catching it in a lo-fi prototype cost a restructure — catching it after high-fidelity would have cost far more.

How this was made

This is a self-directed concept project, and I want to be transparent about how it was made. I worked with AI tooling throughout the process — to pressure-test my framing, generate the diagrams and prototype code, draft the test plans, and render screens. The problem definition, the strategic and IA decisions, the choice of what to test, the running of the usability sessions, and the interpretation of what the findings meant were mine. In short: the production was AI-assisted; the design judgment and the decisions are what I'm presenting here.