LunaFit App

LunaFit App

OUTCOME

Improved activation, retention, and emotional engagement

FEATURES

Improved Workout Flows and Nutrition Logging, Progress Tracking, New Visual Identity

Problem

LunaFit needed to improve activation, retention, and engagement as users were dropping during onboarding, struggling to build consistent habits, and lacking emotional connection in a saturated fitness app market. Early onboarding created friction, daily workflows felt overwhelming, and the experience lacked a clear, motivating identity.

Solution

To address this, I transformed onboarding into a conversational, coach-led experience that reduced friction and guided users step by step, redesigned core workout and logging flows to be faster and lower cognitive load, and introduced clearer progression loops and emotional reinforcement to support habit formation and long-term engagement. Each intervention was mapped to activation, retention, and emotional differentiation across the full user journey.

LunaFit App GIF

Product

LunaFit is a mobile app within a broader fitness ecosystem that combines gym, coaching, nutrition, and supplements, functioning as a guided, emotionally supportive coaching journey rather than a passive tracker.

Key Features

Deep Dive

Seven chapters of building the system

Day 1, week 1

I joined; the previous designer trained me for a week, then left. I inherited 300+ unlabeled frames and a live product.

Inherited Figma file with unlabeled framesThe scale of the handover

Execute fast, no system

No components, no time to organize. I redesigned screens under visual restrictions, while shipping weekly.

Redesigned fitness screensRedesigned nutrition screensRedesigned onboarding screens

Organize by feature

First pass of structure: screens grouped by feature, labeled, searchable. Not a system yet, but navigable.

Screens grouped by featureLabeled and searchable file structure

Many hands, many branches

Marketing asks. Investor asks. Dev asks. Stakeholder asks. All landing on one designer at once.

Competing requests across teamsBranching work in one file

The drift

Over time, what's in Figma ≠ what's in the app. The drift is what forced the next phase.

Divergence between design and buildDrift between Figma and the shipped app

Building a refined component system

Little by little. From screens to components — the Global Recovery System below is one concrete example.

Component library taking shapeComponent variantsSystem documentation

The vision

A token change in Figma propagates through Code Connect, auto-generates a PR, and devs merge. Zero manual handoff.

Token pipeline from Figma to codeAutomated handoff via Code Connect

Error isn't a screen. It's a system.

One feature's worth of error and fallback UX collapsed into 4 reusable components. See the design and system flows.

Global Recovery System component set
Error and fallback states
Recovery flows

Research & data that shaped the product

  • Quant

    Onboarding funnel

    Onboarding required 17 data points upfront, and the biggest drop-off came before account creation.

    Onboarding funnel drop-off in Google Analytics
  • Quant

    Retention

    Retention dropped sharply between D1 and D3, with users disengaging after receiving their initial plan.

    D1–D30 retention curve
  • Qual

    Competitive analysis

    Studied leading nutrition apps and analysed user feedback to understand friction in logging behaviour.

  • Qual

    1:1 interviews

    Observed a live workout with a user and saw frustration with an overwhelming, interruptive UI.

    Old workout UI
  • Qual

    User flows & journey mapping

    Mapped the full user journey and found half of users were frustrated by excessive animation and unclear flow.

    User journey map
  • Quant + Qual

    Weight-logging usability test

    Ran a usability test to evaluate which weight-logging UI felt more intuitive.

    Weight-logging test, option A