← All work
Proactive ProjectUX DesignMobile · 2024

Optimizing the
Yaga Listing
& Drop Flow

Streamlining the seller upload experience to reduce drop-offs while maintaining database integrity.

Scroll to explore
·Proactive Project
01Problem Framing

A high-friction form
on a small mobile screen

Concept case study — not affiliated with Yaga. Based on observing the public listing flow and how I would approach a redesign.

In a secondhand marketplace, the listing form is the primary revenue touchpoint. Sellers who abandon mid-form mean lost inventory and lower GMV. Three friction points drove the most drop-offs.

Problem 01 — Core UX Flaw
Sizing has no common language
A seller lists "UK 8". A buyer searches "US 4" — the same size, worn by nobody Yaga's filter can find, because the two values never match.
Problem 02 — Silent Failure
Uncompressed image upload failures
A 15MB photo over 3G fails silently — no feedback, no retry path, no indication the listing is incomplete.
Problem 03 — Downstream Friction
Shipping misclassification
Flat shipping options without item-size context leads to wrong tier selection and friction at drop-off.
Before state
CATEGORY
Tops
Dresses
Shoes
Bags
SIZE
UK 8
US —
EU —
No US / EU equivalent stored
PHOTOS

UK-only size — invisible to US/EU search

02Design Solution

One size, translated
into every system

The key insight: a size isn't one value — it's a set of equivalents. The picker adapts to category (clothing, shoes, jeans), and the moment a seller taps one size, Yaga resolves it to its UK / US / EU equivalents so buyers can search in whichever system they know.

Try it — select a category
CATEGORY
Clothing
SIZE
UK 4 / US 0 / EU 32
UK 6 / US 2 / EU 34
UK 8 / US 4 / EU 36
UK 10 / US 6 / EU 38
Selecting one size stores all equivalents
PHOTOS
The conditional logic
if category == "shoes":
  size_schema = shoe_sizes_uk_us_eu
elif category == "jeans":
  size_schema = waist_sizes_w_uk_us
elif category == "clothing":
  size_schema = clothing_sizes_uk_us_eu
else: # accessories
  size_schema = None # skip step
selected = seller.pick(size_schema)
equivalents = resolve(selected) # {uk, us, eu}
03User Flow

Decision tree for
the full listing flow

Every branch mapped — including the image compression edge case — to create an error-proof, database-aware mobile experience.

STARTSelect CategoryCategorytype?ClothingShoesAccessoriesClothing SizesUK 4-18 / US 0-14 / EU 32-46Shoe SizesUK 3-9 / US 5-11 / EU 36-42No SizeStep skippedAdd PhotosPhoto>5MB?YESNOCompress → UploadDirect UploadListed ✓

Jeans, vintage, and jacket listings reuse the clothing or shoe schema — each mapped to its own UK / US / EU size chart.

04Technical Artifact

From user input
to database schema

The back-end constraint that makes conditional logic essential: size_id is a foreign key constrained by category_id, and resolves to a size_equivalents row — so a UK, US, or EU value all point back to the same listing.

USER INPUTcategory_idenumsize_valuestringimage_files[ ]File[]pricenumbershipping_tierenumVALIDATIONsize_value → equivalentsResolves selected size toUK / US / EU equivalentsimage → compress if neededFile size check; compress to<800KB before CDN uploadshipping → auto-suggest tierCategory infers defaultshipping tier (small/med/large)DATABASElistings tableid, seller_id, titlecategory_id → FK categoriessize_id → FK size_equivalentsimage_urls: ARRAYshipping_tier: ENUM
05Skills Demonstrated

The Dev/PM edge
in this work

Conditional Form Logic
Designed the UI rule that makes category selection dynamically reconfigure downstream fields — preventing invalid submissions before they reach the API.
Edge Case Design
Mapped the image upload failure state: slow connections trigger a progress indicator and retry flow — not a silent failure. A common mobile-first oversight.
Backend Awareness
Recognised that category_id constrains valid size_id values — and designed the UI to enforce that visually, before it's an API error.
International Size Mapping
Every size resolves to its UK, US, and EU equivalents at write-time — improving search accuracy, cutting buyer confusion, and scaling cleanly to new categories like jeans and vintage without new filter logic.
Proactive Project