Kyla & Co
A dual-currency storefront for a Sri Lankan fashion label
A Medusa-backed storefront selling to Sri Lanka and the rest of the world from one codebase, with currency, payment methods and shipping all driven by region.
kylaandcoclothing.com
Kyla & Co is a Sri Lankan fashion brand selling to two very different markets at once: local customers paying in rupees, often cash on delivery, and international customers paying in dollars by card. A templated platform can be made to fake that. It cannot be made to model it.
Why not Shopify
The brief looked, on the surface, like a job for an off-the-shelf store. It was not. The business needs genuinely different rules per market — different currency, different payment methods, different shipping logic — and templated platforms handle that with plugins and conditionals that quietly rot. MedusaJS models regions natively, so the difference between the Sri Lankan and international shopping experience is configuration rather than branching code.
That decision set the shape of everything after it. New market behaviour extends the region config; it never becomes a hardcoded country check buried in a component.
Two currencies, one catalogue
- Automatic LKR/USD detection by visitor location, with a manual switcher for anyone the geolocation gets wrong.
- Dual price lists managed natively in Medusa — real prices the merchant sets, not a live FX conversion applied at render time. A dress priced at a round number in rupees stays a round number.
- Payment methods gated to their region. PayHere carries local and international cards. Cash on Delivery, Koko and Mintpay are Sri Lanka only, and simply do not appear at an international checkout.
Checkout that does not fight the customer
Guest checkout is a first-class path — account creation is offered, never required. Promotion codes, multi-step shipping and payment, customer accounts with order history and saved addresses all sit on Medusa's own commerce modules rather than a parallel implementation.
Shipping integration depth was scoped to the courier's actual capabilities: live tracking and status sync where the courier exposes an API, rate and zone calculation with manual dispatch where it does not. One behaviour was guaranteed either way — the moment a tracking number is entered in admin, the customer gets an email.
Running it
The storefront and the Medusa backend are deployed on Webloom Labs infrastructure via Coolify, with PostgreSQL for commerce data and Cloudflare R2 for product imagery and daily backups on a seven-day retention window. Transactional email runs through Resend, deliberately scoped to the emails that matter — order confirmation, shipping and tracking updates, password reset — rather than every event that could theoretically send one.
Performance was tuned against mid-range Android hardware, since that is what most Sri Lankan customers are actually browsing on, with GA4 and Microsoft Clarity wired site-wide and a WhatsApp contact button present on every page.