E-commerce

Wow Fashions: Conquering the GCC Market

Building a bilingual Arabic-English fashion e-commerce experience that drove a 42% surge in daily active shoppers across Middle Eastern markets through localization-first engineering.

2024 Android / Kotlin 7 min read
+42%DAU Growth
RTLFull RTL Support
2xSearch Speed
GCCTarget Market

The Challenge

Wow Fashions aimed to capture the growing fashion e-commerce market in the Gulf Cooperation Council (GCC) region — UAE, Saudi Arabia, Qatar, Kuwait, Bahrain, and Oman. The challenge went far beyond simple translation. Arabic-speaking users expect a fully native experience: right-to-left layouts, culturally appropriate navigation patterns, local payment methods, and product discovery flows that feel natural in their language.

The existing app was built with an English-first mindset, with RTL support bolted on as an afterthought. This resulted in broken layouts, misaligned text, and a search experience that performed poorly with Arabic queries. User retention in GCC markets was significantly lower than in English-speaking regions.

The Approach

Localization-First Architecture

Rather than retrofitting RTL support, I rebuilt the layout system from the ground up using a bidirectional-first approach. Every component was designed to be direction-agnostic: using start and end instead of left and right, and leveraging Android's built-in layoutDirection API for dynamic switching.

The language switching mechanism was designed to be instant — no app restart required. I implemented a custom LocaleManager that intercepts the Activity context, applies the correct locale configuration, and triggers a smooth layout transition animation rather than a jarring rebuild.

Product Discovery Optimization

Arabic search presented unique challenges. Arabic script has contextual letter forms, diacritics that users often omit, and word roots that don't map cleanly to substring matching. I implemented a search pipeline that:

Regional Payment Integration

GCC markets have strong preferences for specific payment methods that differ from Western markets. I integrated region-aware payment flows supporting Mada (Saudi debit), Knet (Kuwait), and Cash on Delivery alongside standard card payments. The gateway selection was automatic based on the user's detected country, with manual override available.

Results

Key Learnings

Localization is not translation. Building for the GCC market taught me that true localization means rethinking user flows, not just mirroring layouts. Arabic users scan pages differently, have different expectations for navigation hierarchy, and interact with product grids in patterns that LTR-first designs fail to accommodate.

The biggest technical insight was that RTL support needs to be a first-class architectural decision, not a CSS property toggle. When the layout system is direction-agnostic from day one, supporting multiple locales becomes trivial rather than a constant source of visual bugs.

AndroidKotlinJetpack Compose RTLLocalizationFirebase Arabic NLPE-commerce