Bespoke Membership Experience

145 iOS screens + 4 codebases

Race day just got more competitive

Role
Principal designer: UX, UI and design system
Client
Rafa Racing Club
Timeline
Oct 2022 to Dec 2023
Team
A developer, a payments specialist and a project manager
Platform
iOS, web admin and consumer web
Scope
Principal Designer · Native App · Web · Design System

The problem

A private racing club needed one product to run applications, events, lap times, simulator bookings and a shop. Nothing off the shelf could hold that whole operating model.

The result

We partnered with Orbus Innovation to design it end to end, and members raced with the TestFlight build at live events in November 2023.

Outcomes

Build the thing that does not exist yet.

The market for private motorsports club software had a clear gap. Generic event platforms could handle ticketing. CRMs could handle members. Nothing could hold a racing club’s full operating model in a single coherent product. Approval-gated membership, tiered access, car profiles with hashtag identities, lap data, community, and a simulator booking system. That gap was the brief.

01 — Apply online
Web membership form
02 — Admin reviews
Approval dashboard
03 — Pay to join
Stripe membership tiers
04 — Access app
Full iOS experience
05 — Race. Log. Compete.
Events, laps, leaderboard

Dark, native, and built to feel like the sport.

Motorsport is nighttime paddock light. The entire platform ships in dark mode. Deep charcoal surfaces, Rafa Racing red (#BA2528) as the primary brand color, and a secondary blue (#1977DA) reserved for interactive affordances. The typography runs on Kanit, condensed, bold, athletic. Leaderboard rank numbers render in ExtraBold Italic with a hot-pink-to-red gradient. The design system is iOS-native throughout.

Threescreensmembersusedmost

Public profile screen with a hexagonal avatar and car hashtag library

Profile

Leaderboard screen — member rankings by track with gradient rank numbers and per-car lap times

Leaderboard

Past events screen with the “Your Last Race” recap and best lap

Events

Therestoftheclubhouse

Chat post thread — a tire-setup question with two threaded replies and a comment field

The clubhouse feed

My Cars screen listing two garage entries under #tigerchase and #redfalcon with an Add A Car action

The #hashtag garage

“Hang tight” loading screen with a pulsing brand-red dot standing in for a generic spinner

Loading as brand voice

Five decisions that made the product feel like itself.

  • Kanit: the typeface as a design decision, not a default

    Condensed, geometric, athletic. Kanit formats lap times at 17px with the same authority it brings to the 36px leaderboard rank numbers in ExtraBold Italic with a hot-pink-to-red gradient. Competitive intensity through typography alone.

    Typographic system identity

  • Hexagonal profile avatars

    Circular avatars are default. A hexagonal clip, applied to user-uploaded photos, signals immediately that this app is built for a specific tribe. It carries from profile to event attendee rows to the leaderboard at every component size.

    Differentiates at first open

  • The #hashtag car identity system

    Members name their cars, #tigerchase, #yellowbandit, and that handle is their identity everywhere: event registration, lap times, leaderboard, shop. The red # earns its prominence every time it appears.

    System-wide identity token

  • SVG race track illustrations, per event

    Each track has a custom SVG outline, Texas Motor Speedway, COTA, Austin, Paris, rendered in Rafa Racing red on dark event cards. Members recognize tracks from shape alone. Admin accepts SVGs as assets. New tracks extend the library without a design update.

    Custom per-track asset library

  • Lap time entry gated to registered events, not a freeform log

    Tying lap entry to a registered event means the system confirms the member was actually there before accepting data. It feeds the leaderboard with trustworthy times and gives the admin panel a meaningful participation record. One logic gate that removes a whole class of disputes.

    Data integrity over flexibility

Thesystembeneaththelivery

The quick brown fox
Large Title · Kanit Bold · 34px
The quick brown fox
Title 1 · Kanit Bold · 28px
The quick brown fox
Title 2 · Kanit Bold · 22px
The quick brown fox
Title 3 · Kanit Bold · 20px
The quick brown fox
Headline · Kanit SemiBold · 17px
The quick brown fox
Footnote · Kanit Regular · 13px

TheAppStorecampaign

App Store marketing screen — “Let’s Rally”, an invitation to join the Rafa Racing ClubApp Store marketing screen 2 of 10App Store marketing screen 3 of 10App Store marketing screen 4 of 10App Store marketing screen — “Shop cars and merch”App Store marketing screen 6 of 10App Store marketing screen 7 of 10App Store marketing screen 8 of 10App Store marketing screen 9 of 10App Store marketing screen — “Bolder. Faster. Refined.”

Everything we designed and shipped.

A 36k fixed fee across iOS app and web platform. Alongside Caleb Nance on development, Luis Lopez at Openlandmark on payments, and Zavida Mangaru as project manager. Four codebases, full-stack integration with Stripe, Mailchimp, and AWS S3.

  • Membership ApplicationWeb form to Mailchimp to admin approval to setup emailWeb · Admin
  • EventsUpcoming and past, racing and social types, track SVG, “Your Last Race” recap with best lapiOS
  • Event RegistrationCar selection, equipment add-ons, transport fields, Stripe payment, event perksiOS · Web
  • Lap Time TrackingPost-event entry, per-car, millisecond precision, locked to registered eventsiOS
  • LeaderboardPersonal standings per track, community board, gradient rank numbers, top-100 expansioniOS
  • Profile and CarsHex avatar, racing number, social links, car hashtag library, track photos, event historyiOS
  • Clubhouse ReservationsDriving and golf simulator booking, time-slot selection, admin calendar viewiOS · Admin
  • Chat and CommunityPer-event post feed, comments, photo uploadsiOS
  • ShopRental cars by hashtag, equipment, Shopify-connected merchiOS
  • AuthenticationEmail and password, Face ID and Touch ID, forgot password flowiOS · Web
  • Admin PanelMember tiers, events and tracks CRUD, rental cars, equipment, simulator scheduling, approval workflowWeb · Admin

Click through the live flow.

A working slice of the iOS app. Use the tabs to move between the screens members navigated, and scroll any screen to its full length. The complete clickable prototype lives in Figma.

Open the full prototype in FigmaEvery flow, clickable, 145 screens

Signintotheleaderboard,tapbytap

Sign in screen with email and password fields and a link to apply for membership
  1. 01Sign in
  2. 02Events, upcoming
  3. 03Event detail
  4. 04Leaderboard
  5. 05Chat

The panel that runs the club behind the scenes.

A Next.js web application at admin.rafaracing.app. The same backend, a different surface. Approving applications, loading events and tracks, managing rental inventory, monitoring simulator reservations. Permission tiers are hard-coded at the database level. One Super Admin, below which Admins and Employees operate within defined limits.

admin.rafaracing.app/members/active
Members, active
admin.rafaracing.app/members/review
Members, new applicants
admin.rafaracing.app/members/profile
Members, profile detail
admin.rafaracing.app/events/detail
Events, event detail
admin.rafaracing.app/clubhouse
Clubhouse, reservations
admin.rafaracing.app/clubhouse/simulators
Clubhouse, simulators
View admin and web platform designsDesktop nav, Members, Events, Reservations

Theadminpanel,screenbyscreen

Admin panel — Active Members table with tenure, skill level and service columns
Members, active
Admin panel — New Applicants list with approve and decline actions
Members, new applicants
Admin panel — Member Profile detail with form fields and payment history
Members, profile detail
Admin panel — event detail registration table with cars, equipment and transport
Events, event detail
Admin panel — Racing Reservations calendar and time-slot list
Clubhouse, reservations
Admin panel — Racing Simulators inventory with availability toggles
Clubhouse, simulators

Howtheclubfitstogether

Member journey

Member journey
  1. Sign In, then Home
  2. Home, then Race: Upcoming events; or Compete: Leaderboard; or Talk: Chat; or Manage: Profile
  3. Upcoming events, then Event detail
  4. Event detail, then Register
  5. Register, then Apple Pay
  6. Apple Pay, then Confirmation
  7. Confirmation
  8. Leaderboard, then Car detail
  9. Car detail
  10. Chat, then Post
  11. Post
  12. Profile

Member journey

“We moved quickly from concept and design to a working platform that supported the vision for a first-of-its-kind racing club. Levi’s design work helped turn a complex idea into something real and tangible.”

Junaid Basdeo, Orbus Innovation

New knowledge or insights gained

  • On a platform, coherence is the hard part.

    The app was not the difficult surface. Keeping iOS, web admin, consumer web and email in one voice was, because every change rippled through the same backend. I now set the shared voice and components before the first surface ships.

  • Iterate where the developer already works.

    We worked through Figma comments with the developer, build by build. That loop kept the product feeling unified rather than patched, and I run it on every interconnected build now.

More projects