Search & Filter: from dense grid to scannable spine.
The grid started as a space problem: show more listings at once, cut what buyers didn't use. Research flipped the assumption — 90% of users prioritized images above everything — and the image-first 2x2 portrait won. The new surface breathes: search moves to its own bottom-nav tab, filter chips become horizontally scrollable pills, product cards lead with imagery, and meta drops to a second line. Home became a ranked feed of modular units — product, creator, live, show — and mobile filters collapsed into a flatter bottom-sheet IA.
Original
Space spent on actions buyers rarely used — small, cramped images.
V1 · Image-first 2x2
The flip: images matter most. Bigger images, Like on photo, price & size lead — impressions beat forecast ≈3×.
App Redesign
The refresh on the same metamodel — portrait imagery, cleaner chips, new nav. One system, app-wide.
New grid design system
One grid metamodel — rolled out to every surface.
The search-grid win didn't stay in Search. I turned it into a grid design system — one metamodel defining every listing state — and we scaled it in four staged, measured releases across the entire app: closets, parties, bundles, likes, and bulk seller flows.
V1 · Search grid
Image-first 2x2 from research — Like & price prioritized, bundle cut.
V2 · Measured A/B
Controlled experiment — beat the impressions forecast on impressions, clicks & CTR.
V3 · Closet
Same metamodel applied to closets and seller surfaces.
V4 · App-wide
Parties, bundles, likes, bulk flows — one system everywhere.
≈3×
search impressions vs. the launch forecast
Sig. ↑
search first-matches & FM D1 orders
2-digit
app closet FM lift at rollout
Every listing state specced — promoted · sold · NWT · shipping · video — with truncation rules. When like-clicks dipped, we traced it: likes had moved to the listing page, so we fixed the tap target. Directional ranges shown to protect confidential data.
And applied app-wide