E-commerceSport nutrition, UkraineMobile-first webPersonal project

Stack

Coaches buy supplements for twenty athletes at a time from Excel price lists and a manager's callback. I designed the store that is built around them.

Stack · store home, prototype1440 × 900 and 390 × 760 @2x00:00 / 00:00
The problem
Ukrainian sport nutrition stores are catalogues that treat every buyer the same. The buyer with the biggest basket, a coach ordering for 5 to 30 athletes, still orders by price list, email and callback. No store has a multi-client cart or a reorder button.
The goal
Make the coach the primary customer. The working bet is that coach accounts bring 40 percent of revenue within six months, while first-time buyers get a store they can trust in a market full of counterfeits.
What I did
Research on 15 competitors, personas and jobs, both journeys, the architecture, voice, a visual language with a mascot, 141 screens in colour, a design system and a handoff spec. Every one of the twelve stages.
What it gave
A complete, clickable store: 141 screens with their states, 43 of them for coaches, about 95 components and a 152-row behaviour spec. The riskiest bet is named and priced before a line of product code.
RoleProduct design, soloTimelineJun to Sep 2026Built withHTML · CSS · JS prototypeStage12 of 12through handoff
01 The problem

The biggest basket in the market is ordered by phone.

I read 15 stores and suppliers across three groups and benchmarked five of them on eight criteria. They are the same store: a catalogue, a search box and a cart, built for one kind of buyer. None offers a path by goal for someone who does not know what creatine is for. None has a multi-client cart. None lets you repeat an order. None of eight suppliers publishes its prices.

Trust is the other gap. Counterfeits are not a hypothetical fear here: one case in June 2025 seized more than 20,000 fake packages. Stores answer it with “100 percent original” next to an empty certificates page. And the customer who buys the most, a coach ordering for a whole group, is served worst of all: an Excel price list, an email, and a manager who calls back.

02 The bet

Build the store for the coach, and the athletes come with them.

A coach is not a bulk buyer. Coaches resell to their athletes at a margin, so each one is a channel: one coach account can replace the cost of acquiring 10 to 30 individual customers. Competing against Excel and a phone call is also a lower bar than competing against another store.

The riskiest assumption is that coaches will switch supplier at all. Coach interviews in June sharpened it: price and reseller margin are a gate, not a nice-to-have, and experience only wins among suppliers whose price is already acceptable. That changed the design brief. Stack cannot win on price at launch volume, so it has to win on the ordering session itself.

Price gets a coach to look. The ordering session is what makes them stay.
03 The product

One session, many clients, one tap to repeat.

The coach adds products for several athletes in one session, each line tagged to a client, with every client's history kept. Next month the whole order repeats with one tap.

Coach session, prototype1440 × 900 @2x00:00 / 00:00
The coach session. One order, several athletes, each line tagged to a client. The split view keeps the client list and the catalogue on screen together.

The coach price tier is published on its own landing page before anyone registers, because in a market where no supplier shows its prices, showing them is the differentiator. The page tells the offer as a box being packed for a whole team.

Coach landing, prototype1440 × 900 @2x00:00 / 00:00
The coach landing. The wholesale offer, with prices, before sign-up.

For the first-time buyer the store opens on six goals instead of a catalogue, and every product page puts origin, composition and certificates above the fold. The voice has one rule the rest follow: trust first, then sell. No countdown timers, no “only 2 left”. The mascot is a realistic bear, on the same logic as the best-known Ukrainian bank's cat: trust with a character, not a mascot that winks.

Store, prototype390 × 760 @2x00:00 / 00:00
On a phone, where the store is designed first: from a goal tile to a product, the cart and checkout.
Stack buyer home on a phone: category chips, a discount card and product tiles.
A Stack product page on a phone: a whey tub at 1,290 hryvnias, 15 percent off, with a sticky add to cart bar.
The Stack cart on a phone: three products with quantity steppers and a total of 3,939 hryvnias.
Home, product, cart. Composition and origin sit above the fold on every product.
The Stack coach session in split view: one client's panel with goal chips, quick add and items, and the session total for two clients.
Coach session. Clients first, products second.
The Stack component kit overview: colour roles, type, numerals in IBM Plex Mono, buttons and product cards.
The system. About 95 components, a dark theme and motion tokens.
04 Decisions

Five calls, and what each one cost.

D1

The coach is a buyer, not a seller on a marketplace.

A saved client list, per-client tagging and per-client history, inside a normal store. Coach is a role switched on for an existing account, verified by a link to their public coaching profile.

CostNo marketplace commission and none of a marketplace's network effects.

D2

The coach price tier is public, before registration.

Every competitor hides wholesale prices behind a form. Showing them is the fastest way to pass the price gate the interviews found.

CostCompetitors can read the price as easily as coaches can.

D3

Repeat order, not subscription.

Subscription does not fit the market yet. A coach's order repeats monthly anyway, so one tap to repeat captures the same habit without a commitment.

CostNo guaranteed recurring revenue.

D4

One passwordless sign-in for every role.

Buyers and coaches use the same dialog. No passwords and no separate coach login, because a second door is where a coach decides the old supplier was easier.

CostCoach verification has to happen after sign-in, not at it.

D5

A failed coach check ends at a stop screen, on purpose.

No manual moderation desk in the first release. A coach the automatic check rejects is told plainly and can still buy at retail.

CostSome real coaches are turned away until a human review exists.

05 What it gave

A store ready to build, and the numbers it has to hit.

Shipped

141Screens in colour, with their states
43Of them for the coach channel
~95Components, two themes, motion tokens
152Rows of behaviour spec for the build

Built to move

40%[?] Of revenue from coach accounts within six months
60%[?] Of verified coaches order within seven days
35%[?] Of first-time buyers order again within 30 days
80%[?] Of coaches who order twice still ordering at six months

The targets are hypotheses from the research, each marked as one in the files and each tied to the screen that is meant to move it. The first to test is the gate: whether the coach tier can be priced where coaches will look at all.

06 Still open

The one number the design cannot set.

[?] Can the coach tier pass the price gate at launch volume. Everything else in the coach channel is designed. The price that makes a coach look is a purchasing question, and it stays marked as open rather than filled with a plausible number, because an invented number poisons every stage below it.

07 Artifacts

Every stage, public.

Next case

Harrier