← All work
The Ticket Fairy logo
The Ticket Fairy
Aug 2025 – Mar 2026

Redesigning the revenue engine of an event-ticketing platform

Event creation was the platform’s revenue bottleneck. As Lead Product Designer (via Halo Lab), I rebuilt the funnel around one metric — new organizers getting an event live — built the design system that ships it, and designed a new Artist Management module from zero.

Event-creation task success
~50% → ~90% directional usability testing, n=8 per round
Referral-program adoption
~10% → 50%+ product analytics
New users who create an event
20% → ~26% product analytics
The redesigned Ticket Fairy organizer dashboard on a laptop
The redesigned organizer dashboard — the platform’s revenue surface.
Context & ownership

One platform, five products, one revenue surface

The Ticket Fairy runs a multi-product ecosystem: a B2B dashboard where organizers create and manage events, consumer apps and web for ticket buyers, and an on-site ticket-scanning tool. The commission model makes the B2B dashboard the company’s revenue engine — no events created, no tickets sold, no revenue.

I owned that surface end-to-end: every flow of the B2B dashboard, the design system underneath the whole ecosystem, and a brand-new Artist Management module. A second designer handled the consumer side.

Product ecosystem diagram — B2B Dashboard and Artist Management highlighted
The product ecosystem. Highlighted: the surfaces I owned end-to-end.
The problem

80% of new organizers never created an event

Only 20% of newly registered organizers ever created an event. Since revenue depends on events going live, that drop-off was a direct leak in the funnel — the single metric the whole project would be judged against.

Underneath the number: years of legacy code had produced an inconsistent, dated, low-contrast interface. High-value capabilities — including the referral program, the platform’s most unique feature — were buried in settings. And error states failed silently: an event couldn’t be created until a “Brand” existed, but nothing on the screen said so.

The legacy dashboard before redesign
The legacy dashboard: mismatched patterns, buried features, and silent dead-ends.
Research

Watching eight organizers fail, on camera

Before opening Figma, I needed to see exactly where and why users failed. I wrote the test scenarios and ran directional usability testing — eight organizers, unmoderated, with video recording — on the core task: complete onboarding, then create an event.

Research artifact — test scenario excerpt and failure patterns
Eight recorded sessions, four recurring failure patterns in event creation.

Only about half succeeded. Even those who did hit around four critical errors each and needed up to 14 minutes. The recordings surfaced four recurring failure patterns:

  1. Brand & location selectors: users couldn’t understand the selection logic, and silent errors left them stuck without explanation.
  2. Disjointed ticket creation: configuring tickets lived apart from the main flow.
  3. Hidden referral program: the platform’s highest-performing feature was buried so deep that users never found it.
  4. Information overload: one dense page carried so much unorganized content that users missed the primary actions.
Key decisions

The decisions that carried the redesign

Every decision below was anchored to a single question: does this help a new organizer get an event live? The priorities followed from the metric — onboarding, event creation, and surfacing the features that actually drive ticket sales.

Decision 1

Event creation as a step-by-step wizard

I restructured the most business-critical flow from one overloaded page into smaller, clearer steps. The brand and location selectors were rebuilt to be self-explanatory, and the core creation steps were focused on getting the event configured quickly and accurately.

Why it’s a product decision: this flow maps one-to-one onto the company’s revenue funnel. Every removed point of friction is commission the platform stops losing.
Before Old event-creation form — one overloaded page
After New wizard — one focused step, progress visible, tickets integrated
The conversion fix: one overloaded form → focused steps with tickets and referral built into the flow.
Decision 2

Surfacing the referral program

The referral program is a unique, high-performing feature with no direct equivalent among competitors — yet it was hidden inside event settings. Without a support onboarding call, only ~10% of organizers ever set it up. I moved it into the event-creation flow as a prominent, unmissable step: a clear explanation of how it works, links to supporting docs, data-backed messaging on typical results, and a dedicated analytics screen to track performance.

Why it’s a product decision: in sample event data, active referral campaigns generate ≈18% of total ticket sales. Making the feature discoverable was a revenue decision, validated post-launch through analytics — adoption rose from ~10% to 50%+.
Before Referral program buried inside event settings
After Referral program integrated as a prominent step in the wizard
Discoverability: buried four levels deep in settings → an unmissable step in event creation.
Referral analytics screen — the dedicated, more visually engaging performance view
A dedicated analytics view organizers actually check — deliberately more engaging than a standard report.
Decision 3

Integrated ticket creation

Ticket setup — previously buried in a separate sub-menu — was integrated directly into the wizard as a dedicated step. Organizers can now configure tiers, pricing rules, and limits inline without interrupting event creation.

Why it’s a product decision: configuring tickets is where value turns into transaction. Moving setup directly into creation eliminated a major drop-off point before events could accept payments.
Before Old ticket setup form in a separate sub-menu
After New inline ticket builder step inside the creation wizard
Integrated ticket creation: separate settings sub-menu → intuitive inline ticket builder within the creation flow.
Validation & outcomes

Tested before, tested after, confirmed in analytics

After the redesign I ran a second round of usability testing with the same scenario and metrics (n=8). Critical errors dropped to near zero and time on task almost halved. Post-launch, product analytics confirmed the business movement.

Metric Before After Source
Event-creation task success ~50% ~90% Usability testing, n=8 per round
Mean time on task ~14 min ~8 min Usability testing
Critical errors per user ~4 0–1 Usability testing
Mean SEQ score 5.0 / 7 6.5 / 7 Usability testing
Referral-program adoption ~10% 50%+ Product analytics
New users who create an event 20% ~26% Product analytics
Support onboarding-call requests baseline ~10% lower Internal support data
Design system · DesOps

A scalable foundation, built from scratch

No system existed when I joined. I built one from the ground up: color, typography, and spacing tokens (semantic and primitive) and a component library that developers implemented in Storybook while I reviewed every build in Chromatic with annotated feedback, iterating until each component matched design intent.

The system spans the entire ecosystem with two design languages — information-dense, operational B2B and expressive, consumer-friendly B2C — on one shared foundation across web, iOS, and Android. Tokens were built semantic-first, so the system is theming-ready and holds WCAG-compliant contrast and target sizes — with status never carried by color alone.

Why it’s a product decision: a redesign only counts if it ships. The token-based system and the Storybook/Chromatic loop made every subsequent flow cheaper to build — and kept the shipped product true to the design.
Design-system foundations — token scales and core components
Foundations: token scales and core components.
The handoff loop — components reviewed in Chromatic until they matched design intent
The handoff loop: components reviewed in Chromatic until they matched design intent.
Designing from zero · 0→1

Artist Management: a product inside the product

Festival organizers juggle artist contracts, riders, travel, accommodation, and equipment across dozens of emails, PDFs, and spreadsheets — with no shared visibility. I designed a centralized artist & logistics management module that, in scope and complexity, works as a standalone product embedded in the dashboard.

  • AI-powered bulk import: organizers upload their existing documents; the system parses and routes the data into the right modules, with review/edit control and version-conflict handling (a revised contract becomes a v2, the previous version is archived).
  • Role-based access for 7+ roles: each role sees only its own modules — artist fees are visible exclusively to Finance/Legal.
  • IA before UI: I mapped a separate sitemap per role — exactly which screens and data each role can reach — before drawing a single screen.
  • Real domain complexity: multi-day events, simultaneous stages, per-artist riders and logistics, hotel-room reuse across non-overlapping dates, Viberate integration for artist stats.
Role-based sitemap — roles mapped to the modules and screens each can access
The strongest artifact of the project: one sitemap per role, mapped before any screen was drawn.
AI import flow schema — upload, parse, route, review, version conflict handling
The AI import flow: upload → parse → route → review → version conflict handling.
Key module screens — artist overview and logistics tracking
Key screens: artist overview and logistics — one operational source of truth.
Reflection

The work I’m proudest of isn’t a screen — it’s the role-based IA for Artist Management and the system that ties the whole platform together. That’s the part that holds up as the product scales.