Skip to content
Athlete doing sit-ups on a gym floor in front of a window

Muuvr

Sport · Consumer app

A movement app's design system, built from scratch on day one.

Tokens, components and a design language in place from the very first screen of a greenfield consumer app.

Starting point

A brand-new consumer sport app with no system and a blank repo.

Outcome

Tokens, components and a ready-to-ship design language in place from the first screen.

Tech stack
  • Design tokens
  • Figma libraries
  • React Native
  • TypeScript
  • Storybook
Credits
  • Florian GampertProduct design + system foundations
  • Muuvr founding teamProduct

Every reason to skip the foundations

Challenge

With nothing to migrate, the real risk ran the other way: shipping fast on copy-pasted UI and quietly assembling the drift machine.

Athlete doing sit-ups on a gym floor in front of a window
A greenfield sport app: the temptation to ship features before any system exists (placeholder image).
Runner moving along an open road at dawn
Movement as the product: the design language has to feel like motion, not a generic template (placeholder image).

Foundations sized for a founding team

Approach

The system grew screen by screen alongside the product, so every component earned its place by being needed, and nothing was abstracted before there was a second use for it.

Designer sketching interface wireframes at a desk
Tokens and a small component library drawn up alongside the first screens (placeholder image).
Hand holding a smartphone showing a mobile app interface
Core app flows built straight from the system, on a real device from day one (placeholder image).
Small founding team working together around a laptop
Foundations scoped to what a founding team can actually maintain (placeholder image).
  • A small token set and component library sized for a startup team
  • Product design for the core app flows, built from the system
  • A design language that reads as motion, not a generic template

One product, however fast the features come

Outcome

The app stayed one product as features piled up, new screens snapping onto the existing tokens and components instead of spawning their own.

Person using a fitness tracking app on a phone outdoors
One coherent product as the feature set grew (placeholder image).
Running shoes on a track, mid-stride
The system held its pace under feature pressure, with no systems hire (placeholder image).
Day one
tokens and components in place before the first feature sprint
No systems hire
foundations the founding team maintains on their own
Illustrative placeholder
We almost skipped a system entirely to move faster. Instead we got one sized for a team our size, and the app stayed one product as the features piled up.