All work

Rebuilding a 28-year-old gym software for the web

As the sole designer, I turned a dense, desktop-era management tool into a clear, responsive web app, built on a design system the whole team could rely on.

Skip to the live dashboard

Role
Sole UX/UI Designer
Platform
Responsive web app
Timeline
Sep 2025 – Jan 2026
Tools
Figma, FigJam
Dashboard of the redesigned gym management platform shown on a laptop

This project is under NDA, so I changed the product name and all the data. The dashboard and mobile views are concepts that haven’t shipped.

Overview

A powerful product, buried under 28 years of features

The platform helps gyms and fitness studios run their entire business: members, packages, sales, bookings, staff, finance and progress tracking. Over almost three decades it had grown feature by feature, and the interface had grown with it.

The company decided to move from its desktop software to a modern web version. My job was to rethink the experience end to end: restructure the information architecture, design every module and create a design system for consistent, fast development.

The short version: I grouped a long list of modules into a clear navigation, turned complex tasks like sales into guided flows, replaced empty pages with searchable hubs and built an accessible design system with light and dark modes, used across all ten modules.

My role

One designer, the whole product

I was the only designer on the team, working directly with the product owner and the developers, and owned every step from audit to final specs.

  1. AuditHeuristics and WCAG
  2. StructureIA and navigation
  3. FlowsReviewed with the team
  4. UIAll ten modules
  5. SystemLight and dark tokens
  6. HandoffSpecs and design QA
The problem

Built for experts, hard for everyone else

Front-desk staff, trainers and managers use the software all day, often while a member is standing in front of them. New staff took long to learn it, and even experts lost time jumping between windows to answer simple questions.

The goal was not to add features. It was to make the existing ones easy to find, easy to understand and quick to finish.

Discovery

What the audit showed

I walked through the most common daily tasks, reviewed every module against usability heuristics and WCAG, and discussed the workflows with the product owner and support team. Six patterns kept coming back, and each became a design principle.

01

Information was scattered

To answer "does this member owe us money?", staff opened several separate windows: personal details, packages, payments.

Design response

One member profile that goes from summary to detail, with the balance always visible.

02

No quick way to find or act

The top bar held only the logo. There was no search, and account and notifications were not where users expected them.

Design response

A search field in the top bar that jumps to any category by keyword, with the avatar, name and notification bell in the top right corner.

03

A flat menu with no clear active state

Users read through ten to twelve menu items one by one, and the selected item was marked only with a pale gray that was easy to miss.

Design response

Items grouped under three to four headings, and a highlight bar with a filled background for the active item.

04

Settings was empty, then overloaded

The settings page opened blank with no guidance, so it could look like it had not loaded. The only way in was a long dropdown of options, some of which overlapped.

Design response

A card-based settings panel with related options grouped together. For example, individual and studio bookings became one bookings area. The cards also give large tap targets on mobile.

05

Long tasks had no structure

Screens had large unused areas, yet a sale was one long form. If something went wrong at payment, users had to scroll back and check everything again.

Design response

Guided flows with a stepper, so users always see the previous and next step on the same page. The aim was shorter task times and less effort per task.

06

Inconsistent screens and technical labels

Spacing between elements had no rhythm, buttons and tables varied from module to module, and tab names used internal, technical terms.

Design response

An 8pt spacing grid that also simplifies responsive layouts, one design system with WCAG-compliant contrast, and short, plain labels anyone can scan.

Information architecture

From a flat list to ten clear modules

The old menu listed every entry side by side with equal weight, so I regrouped them into ten top-level modules for the sidebar. Daily work sits one click away, and rarely used options live in searchable hubs instead of the main menu.

0.0Stride
  1. 1.0Dashboard
  2. 2.0Members
    • 2.1Member list
    • 2.2Add memberBasic info · Other info · Custom fields
    • 2.3Member profileOverview · General info · Interactions · Bookings · Packages · Notes · Additional info
  3. 3.0Staff
    • 3.1Staff list
    • 3.2Add staff
    • 3.3Staff profileGeneral info · Interaction info
  4. 4.0Sales
    • 4.1All sales
    • 4.2New saleSelect product · Discounts · Cart summary · Payment
    • 4.3Sale details
    • 4.4Refunds
  5. 5.0Planning
  1. 6.0Bookings
    • 6.1Calendar
    • 6.2Individual bookings
    • 6.3Studio bookings
  2. 7.0Finance
  3. 8.0Reports
    • 8.1Staff & operations
    • 8.2Members & bookings
    • 8.3Sales & finance
    • 8.4Campaigns & packages
    • 8.5System & automation
  4. 9.0Sport & measurement
    • 9.1Measurements
    • 9.2Measurement analyses
    • 9.3Training program
    • 9.4Package programs
    • 9.5Trainer notes
  5. 10.0Settings
    • 10.1System management
    • 10.2Users & permissions
    • 10.3Documents & communication
    • 10.4Membership management
    • 10.5Customer relations
    • 10.6Events & bookings
    • 10.7Sport & measurement
    • 10.8Sales managementProducts & services · Sales definitions · Price list
    • 10.9DefinitionsStaff · Member · Other
The ten sidebar modules, with the pages, tabs and hub sections shown in this case study. Modules without branches appear at the top level only.
Dashboard

How is the gym doing today?

The dashboard is the first thing staff see in the morning. It answers that question in a few seconds: key numbers with a comparison, revenue for the last six months, today's classes and their capacity, and memberships that are about to expire, each with a one-click action.

A sidebar that steps aside. A lock icon lets users choose how the shared sidebar behaves: locked, it stays open with labels so new staff can learn the modules; unlocked, it shrinks to an icon rail and gives the width to tables, calendars and charts.

Live prototype: hover the chart, renew a membership, or use the lock to collapse the sidebar.
Final design

Key screens

Every module follows the same structure: a page title with one primary action, filters and search in one row, and content organized from summary to detail. Click any screen to see it full size.

Everything about a member, on one screen

The member profile brings everything staff need about a person into one view.

  • Key figures at a glance: sales, refunds, balance and overdue debt
  • Spending trend and active packages with status badges
  • Tabs for details, bookings, packages and notes
Live prototype: hover the chart and tabs.

Lists that lead to action

Every list has one clear primary action, search and filters in the same row, visible active filters and consistent status badges.

Members list

Products & services in one catalog

Categories, products, services and packages share one page with tabs, so the whole catalog a gym sells lives in one place.

  • The same table pattern as every other list
  • Code, category, tax rate, branches and status in one row
  • Edit and delete right in the row
Products and services catalog with the Services tab open

Bookings at a glance

Private and studio bookings now live in one booking area, with a weekly calendar, color-coded sessions and a short summary of confirmed and pending bookings.

Weekly bookings calendar

Hubs instead of empty pages

Settings and Reports are card-based hubs: options are grouped into clear categories with icons, the most-used items sit at the top, and a search field gets you anywhere in seconds.

Settings hub with grouped categories

Training & progress

Trainers can pick a member, review measurements and analyses and add new records in a focused dialog, without leaving the page.

Training and progress screen with an Add File dialog
Multi-step flow

Selling in four guided steps

A sale involves several decisions in a row: products, discounts, the cart and payment. I split it into four steps with a stepper and kept the member, date, point of sale and sales rep pinned at the top, so users always know where they are and what comes next.

Sales step 1: choose products
1 · Products. Browse by category, see stock status and build the cart side by side.
Sales step 2: discounts
2 · Discounts. Apply discounts per product and see list and final prices at once.
Sales step 3: cart summary
3 · Cart summary. Every applied discount is itemized before payment, with room for notes.
Sales step 4: payment in installments
4 · Payment. Choose a method, split into installments and track what's due and remaining.
Dialogs

Quick tasks without leaving the page

Quick tasks like adding a member, an emergency contact or a call log happen in dialogs, so users never lose their place. They share one pattern: title and helper line, a two-column field grid, marked required fields and the primary action bottom right.

Three dialogs: Add Member, Add Emergency Contact and Log Conversation
Add Member, Add Emergency Contact and Log Conversation dialogs

Longer forms, same pattern

Adding a new service uses the same dialog with tabs: Basic Info, Customization, Branches and Additional Info.

  • Units like % and minutes sit inside the fields
  • Cover image and color are picked in place
  • A live preview shows how the service will look in the catalog
Add New Service dialog, Customization tab with image upload and color picker
Responsive

From the front desk to the gym floor

Managers check numbers on a tablet and trainers look up members on their phones, so every layout adapts to the screen:

Tablet. The sidebar collapses into a top bar with a menu button, and the KPI row becomes a 2×2 grid while charts keep their full width.

Mobile. A bottom tab bar reaches the five most used areas, cards stack into one column and common actions like a sale or booking sit right under the member's name.

Live prototype: open the tablet menu, tap the chart, switch phone tabs or book a class for Sophie.
Design system

Building the design system alongside the screens

To keep a product this large consistent, I built the design system alongside the screens. It's set up in Figma with variables for light and dark mode, so developers get the same tokens the designs use.

8pt grid. All spacing and sizes are multiples of 4 and 8, which keeps layouts orderly and predictable across breakpoints.

60-30-10 color rule. Light neutrals carry most of the interface, soft grays separate the sidebar and surfaces, and a single accessible violet accent marks everything you can interact with.

Built for data. A clear type scale with strong contrast between headings, figures and labels keeps dense tables easy to scan.

Design system overview with colors, typography, spacing, radius and components
Foundations and core components

Dark mode, from the same tokens

Because every color is a token, the whole product supports a dark theme without designing every screen twice.

Studio bookings screen in dark mode
Outcome

A full product redesign, ready for development

High-fidelity designs for the full product, including flows and dialogs, plus a documented design system that streamlined the handoff to development and kept new screens consistent.

  • A ten-module sidebar in place of a flat menu of dozens of entries
  • A guided four-step sale in place of one long form
  • Card-based hubs with search in place of empty pages
  • One token-based system for light and dark mode

What I learned

People had used this software for years, so I changed the structure and made screens clearer, but kept the core workflows recognizable. Reviewing flows and layouts with the product owner and developers before any visual polish kept the feedback on how the product works, not on colors.

The first modules took the longest. Once the components existed, new screens came together much faster. And because I was the only designer, I wrote down why each decision was made, which made it easier to explain changes to developers and stakeholders later.