Skip to content
E-commerce · Skincare storefront

Youssef Parfumes

A luxury Korean-skincare storefront for a Moroccan retailer, selling in French, Arabic, and English on a headless Shopify backend.

Industry
Beauty & skincare retail
Platform
Web (responsive)
Role
Solo full-stack developer
Public reference: youssefparfumes.com
Youssef Parfumes — storefront homepage

Interface mockups shown are illustrative of the live storefront. Production screenshots are being captured for publication.

Business context

Youssef Parfumes sells Korean skincare and beauty products to Moroccan customers. The brand needed a storefront that felt as premium as the products — and that could serve a genuinely trilingual market — without taking on the cost and risk of running its own commerce backend, payments, and order management.

My responsibility

Sole developer. I built the entire storefront: the Shopify Storefront API integration, cart and checkout flow, customer accounts, the custom internationalization layer, SEO and analytics, and the Vercel deployment.

Solution

A Next.js App Router storefront running headless against Shopify's Storefront GraphQL API — Shopify owns products, inventory, orders, and payments, so there is no separate database to keep in sync. Server components fetch catalogue data directly and stream it, with skeleton loading states on product and collection pages. On top of that sit cart, wishlist, recently-viewed, and customer-session contexts, plus a custom i18n layer covering French, English, and Arabic that switches the document to right-to-left for Arabic. Content pages, a blog, buying guides, and comparison pages support organic search.

Product page and cart
Product page and cart
Collection and checkout flow — screenshot needed

Results

Live and selling at youssefparfumes.com. Commercial results are the client's to share — no revenue or conversion figures are published here without their sign-off.

Technology

Next.jsTypeScriptShopify Storefront APITailwind CSSVercel

Headless Shopify keeps PCI scope, inventory, and fulfilment with Shopify while leaving the front end fully custom. Internationalization is a small in-house context rather than next-intl, because the site needed locale-aware routing plus RTL switching without the routing model next-intl imposes.

Planning a product with similar requirements?

Let's discuss it.