Skip to content
All projects

Freelance · Beauty & body care · 2026

ARE Beauty

Trilingual e-commerce platform for a Moroccan body-care brand: French, English and Arabic storefront, guest checkout, Speedaf delivery, influencer-tracked coupons and a complete admin back-office.

Client
ARE Beauty
Duration
3 months
Core stack
Next.js · TypeScript · Express.js
Status
Completed
ARE Beauty preview

Overview

ARE Beauty is a Moroccan body-care brand built around a three-step ritual — scrub, serum and cream — formulated with Moroccan plant extracts and oils. The project was delivered with MS Signature, which managed the client relationship. I was responsible for the technical side: I designed and built the platform, a Next.js storefront with its admin dashboard and an Express REST API, and I deployed and host it.

The challenge

  • A premium, editorial brand image that had to come through in three languages, including Arabic in right-to-left.
  • Moroccan buying habits: most customers pay on delivery and many don’t want to create an account before ordering.
  • A marketing strategy built on influencers, where the team needed to know which partner brought which order.
  • A small team that had to manage products, bundles, content and orders on its own, in every language.

What I built

Trilingual storefront

A Next.js 15 storefront fully localized in French, English and Arabic with next-intl and locale-prefixed URLs. It has an editorial, magazine-style design (serif headings, a cream, ink, sage and pink palette and Framer Motion animation), along with product pages with variants, an ingredients page, a before-and-after gallery, a “Journal” blog, a Pro & Retail application form and a newsletter with a first-order discount.

Checkout & orders

  • A three-step checkout (address, shipping, review), with a dedicated guest checkout that stores the order and its address without creating an account.
  • Cash on delivery as the payment method, with the payment model already prepared for card and PayPal gateways.
  • Shipping rates calculated by zone, country and city, and shipments pushed to the Speedaf courier API.
  • Transactional emails for order confirmation, shipping and delivery, built with Nodemailer and EJS templates.

Customer area

Customers can follow their orders, manage addresses and settings, keep a wishlist, like and review products and request returns online.

Influencer & offer tracking

Coupons can be limited to all products, non-discounted products or a chosen list, and attributed to an influencer. Product bundles (offers) can carry their own coupon, so every order can be traced back to the coupon and influencer behind it. Time-limited flash sales complete the set.

Admin back-office

About twenty-five management screens covering products, categories, orders, returns, refunds, coupons, influencers, offers, flash sales, users, newsletter, hero slides, announcements, the scrolling ribbon, ingredients, content blocks, gallery, before-and-after results, blog, carriers and shipping. It includes a rich text editor and Excel exports. Every piece of content is translated per language from the same screens.

Architecture & security

  • Translation-driven data model: almost every content model in Prisma has a paired translation table keyed by language, which is what makes the three-language back-office possible.
  • Modular API: an Express 5 REST API in strict TypeScript, organized in 34 domain modules that follow the same routes, controller, service and validation pattern.
  • Authentication: short-lived JWT access tokens with a cookie-based refresh token. The frontend refreshes once on a 401 and replays the request, and concurrent requests share a single refresh.
  • Hardening: Zod validation on every route, role-based access (customer / admin) with ownership checks, Helmet, an explicit CORS whitelist, a global rate limit and a stricter one on authentication, and image-only uploads.

Tech stack & deployment

  • Frontend: Next.js 15 (App Router), React 19, TypeScript, Tailwind CSS v4, SCSS modules, Framer Motion, next-intl.
  • Backend: Node.js, Express 5, TypeScript, Prisma, PostgreSQL, Zod, Nodemailer.
  • Infrastructure: deployed on a Linux VPS behind Nginx, which I set up and maintain.

Outcome

  • A complete online shop for the brand in three languages, with payment and delivery suited to the Moroccan market.
  • Influencer marketing that can be measured order by order from the back-office.
  • A team that runs its catalogue, content and orders on its own, in every language.
Next projectNeuroKey Password Manager