On this page
  • Micro case study
  • Mobile commerce · iOS and Android
  • Fashion
  • Accessibility

Poshmera: a fashion app built for trust at checkout

A new women's fashion app from Urbanfit, designed from research to launch. The work centred on the moments Indian shoppers hesitate: size, delivery, price and payment.

  • My roleUX lead, research to launch
  • CompanyUrbanfit Wellness · Pune
  • Timeline24 weeks
  • PlatformsiOS and Android, plus web
  • In Figma48 mobile frames
Dresses listing with a filter bar: Sort, Category, Size, Fast Delivery and Filter.
Product page for a yellow polka dot dress: price 530 rupees down from 870, colour, sizes, size chart and delivery details.
My Bag with two items, a free-shipping message, coupon SPR120 applied and a Continue To Checkout button.
01 · Snapshot

Research first, then launch

I led UX from research to launch. Research and results below are as reported in my portfolio; the design file shows the screens and flows.

  • 15Target shoppers interviewed
  • 250Survey responses
  • 3Rounds of usability testing
  • 8,000Installs in the first month, against a target of 5,000
  • 4.3★App Store rating
  • 13%Checkout completion

The 13% needs its denominator stated (sessions that reached the bag, or all sessions) before it can be compared with anything.

02 · The shopping path

Browse freely, sign in only to pay

Shoppers browse, filter, save and fill a bag without an account. Sign-in appears only when they continue to checkout, so the account ask comes after the intent to buy.

  1. Discover
  2. Category
  3. Listing + filters
  4. Product
  5. Bag + coupon
  6. Sign in or sign up
  7. Address
  8. Checkout
  9. Payment success
  • 286Prototype interactions on the mobile page
  • 3Starting flows: launch, home and sign-in
  • 4Tabs: Discover, Category, Bag, Account
  • 7Home layout explorations on the desktop page
03 · Decision 1 · Finding the right dress

Quick filters on top, full filters one tap away

Listing with the Size quick filter open: size chips from XS to 5XL and One-Size, with Clear and Apply.
Quick filterSize opens in place, above the results.
Full Filter screen: category chips, colour swatches, sizes, length and pattern, with Clear and Apply buttons fixed at the bottom.
Full filterEvery facet, with Clear and Apply fixed at the bottom.
Considered

One long filter screen

Complete, but slow for the most common filter, which is size.

Chosen

Two levels

A sticky bar holds Sort, Category, Size and Fast Delivery as dropdowns. Filter opens the full list for colour, length and pattern.

04 · Decision 2 · The product page

Answer the doubts before they become exits

The product page answers the questions that stop a purchase: is my size in stock, when will it arrive, can I pay cash, and can I return it.

Product page where the selected size is out of stock, with an orange Notify Me button.
Out of stockAdd to Bag becomes Notify Me.
Bottom sheet over the product page asking for a pincode, with a Submit button.
Pincode checkA sheet asks for a pincode to show delivery dates.
Pattern

Keep the shopper, not the stock

When a size is sold out, the main button changes to Notify Me instead of disappearing. The file explores colour versions of it: orange and green on mobile, yellow and green on desktop.

Pattern

Delivery promise in the page

Pincode, delivery dates, cash on delivery, free shipping and 10-day free-pickup returns sit right under the size picker.

Note

Both Notify Me colours fail contrast

White on orange is 1.89:1 and white on green is 3.56:1. A black button keeps the state change and passes.

05 · Decision 3 · Bag and checkout

Make the last steps feel safe

The bag and checkout carry the discount logic, account creation and payment. Each screen gives one clear next step.

Bag with a free-shipping nudge, coupon applied and price breakdown.
Bag"Add ₹700 more for free shipping" sits at the top.
Select Coupons screen: a code field, five redeemable coupons, and three expired coupons greyed out.
CouponsUsable codes first, expired ones greyed below.
Sign in screen on pink with username, password, recovery link and social sign-in buttons.
Sign inShown only on the way to checkout.
Sign-up form with red error messages under name, phone and email fields explaining the rule for each. Personal details are blurred.
Sign upEach error says the rule, under its field.
Order review: address, delivery date, coupon and reference code fields, and payment methods UPI, card, net banking, cash on delivery and PoshPay. Personal details are blurred.
CheckoutUPI first, cash on delivery always offered.
Empty bag screen reading Ouhh, it's empty in here, with a Continue Shopping button.
Empty bagA way back, not a dead end.

Payment in the local order

UPI comes first, then cards, net banking, cash on delivery and the store wallet. Cash on delivery is also promised on the product page, so it's never a surprise.

Address from the pincode

The address form links state and city to the pincode, so shoppers type six digits instead of two fields.

06 · Growth loops

Shoppers who sell

Poshmera also recruited shoppers as influencers. They register, wait for approval, then track commission from their link and code. Referrals and Posh Points reward everyone else.

Influencer registration form with personal, bank and social account fields.
RegisterProfile, bank details and social links.
My Earnings: estimated commission, paid and unpaid commission, referral link and code, and a summary.
EarningsPaid, unpaid and estimated, side by side.
Account page with wishlist and bag shortcuts, a refer-a-friend banner and a list of account options. Personal details are blurred.
AccountRefer a friend sits above orders.
Flash Sale screen with On Sale Now and Starts Tomorrow tabs and a list of discounted dresses with Buy Now buttons.
Flash saleNow and upcoming, in two tabs.
07 · Components and tokens

Two components did most of the work

The mobile screens reuse four local components: product price (69 uses), discount badge (41), status bar (32) and bottom bar (10). Colours are typed in directly; no variables are bound. Below: the parts as specimens, with proposed tokens that fix contrast.

Product price

ProdPrices · 69 instances

Sale price in a deeper pink that passes on white: 5.22:1, against 3.91:1 as designed. The struck price carries a hidden "was" so screen readers read both prices correctly.

Size chip

Default · Selected · Out of stock

Out of stock is shown three ways (dashed border, strike-through, label), not by colour alone. Chips are 44pt.

Notify Me button

Primary action · out-of-stock state

The two versions in the file are 1.89:1 (orange) and 3.56:1 (green) with white labels. The proposed black button is 21:1, and keeps the state change visible through the label rather than the colour.

Proposed colour tokens, built from the values in the file
TokenValueReplacesCheck
brand/pink#FF1D8EPink headers and banners (no change)Black text on it 5.82:1. White text only at 24px+ (3.61:1).
text/sale#D6005F#FF0052 on 275 text layers5.22:1 on white
text/secondary#5E5E5E#B0B0B0 and #CCCCCC hint text6.48:1, against 2.17 and 1.61:1
action/primary#000000Orange and green Notify Me fillsWhite label 21:1
type/familyLatoLato plus 7 other families in the fileOne family, 12pt minimum
08 · iOS and Android

One design, two stores

The file holds one set of 428 × 926 frames. This is how the shared design maps to each platform.

Shared design and its platform equivalents
ElementIn the designiOSAndroid
Bottom barDiscover, Category, Bag, AccountTab barNavigation bar
BackBack arrow, plus swipe on some screensBack chevron and edge swipeSystem back must also work
Pincode sheetOverlay from the bottomSheetModal bottom sheet
PaymentUPI, cards, net banking, cash on deliveryUPI apps open by linkUPI apps open by intent
Phone field+91 with a flag pickerPhone keypad, SMS code autofillPhone keypad, SMS code autofill
Status barDrawn into the framesSystem status barSystem status bar
Touch targetsMixed sizesAt least 44 × 44 ptAt least 48 × 48 dp
09 · Accessibility audit

Checked against WCAG 2.2 AA

  • 402Of 1,545 text layers are smaller than 12pt, down to 7pt
  • 275Sale-price layers in a pink that is 3.91:1 on white
  • 8Font families on one page
Findings, highest impact first
FindingWCAG 2.2SeverityFix
Sale prices and pink links at 3.91:1; hint text at 1.61 to 2.17:11.4.3 ContrastHighUse text/sale and text/secondary.
Notify Me buttons at 1.89 and 3.56:11.4.3 ContrastHighBlack button, white label.
Text down to 7pt, fixed sizes1.4.4 Resize textHigh12pt floor; support Dynamic Type and Android font scale.
Colour swatches in Filter have no names1.1.1 · 4.1.2MediumLabel each swatch ("Coral, not selected").
Some prototype paths use a swipe to go back to Home2.5.7 Dragging movementsMediumMake sure every swipe has a visible button that does the same thing.
Phone field shows a Nigerian flag with +913.3.2 Labels or instructionsLowDefault to India and say it in the label.
Policy and FAQ pages hold placeholder textContent quality, not WCAGLowReplace before release; screen readers read it aloud.

What already works

Errors sit under each field and state the rule. Out-of-stock sizes keep the shopper with Notify Me. Every tab has a text label.

If I ran it again

Name the 13% denominator, bind colours to tokens from day one, and test sign-up and checkout with TalkBack and VoiceOver users in one of the three test rounds.

Screens are exported from the Poshmera Figma file. Product photography is no longer in the file, so product images are illustrated placeholders added for this case study. Names, phone numbers, emails and addresses are blurred. Specimens in section 07 are recreations. Research and results are as reported in my portfolio.