All projects
E-commerce project

YEM’S

A shoe house in Cotonou, with an online shop built around how people actually buy there.

Yem's sells shoes and leather goods in Benin and Côte d'Ivoire. I designed and built the whole site: identity, copy, catalogue, a bespoke configurator, an ordering flow that takes no payment upfront, and an admin screen for the atelier.

YEM'S home page: headline “Personne ne verra la couture. Tout le monde verra la différence.” over a pair of brown leather shoes
Online shop

Catalogue, product pages with colour galleries, cart and checkout.

Brand identity

Monogram, palette, type and a written voice charter.

Bespoke configurator

Six choices, a live price, recomputed on the server.

Atelier admin

Order workflow and catalogue edits without a rebuild.

01Problem

A new brand, no reviews, and no card payments yet.

Yem's is a young house with its own atelier in Cotonou and a curated line of shoes chosen elsewhere. The site had to sell to a man who cares how he looks at work, in a market where most people pay on delivery or by Mobile Money, and before the business had a merchant account.

It also had to earn trust without inventing it: no fake testimonials, no photos of pieces that don't exist yet.

02Approach

Order now, pay later. Price on the server.

  • No payment at checkout. The order is saved, the atelier is notified on WhatsApp and calls the customer back. Payment happens on delivery or by Mobile Money. Bespoke pieces need a 50% deposit, because the leather is bought first.
  • The cart says what, never how much. Every price is recalculated on the server from the catalogue, so a tampered cart can't change an amount.
  • Honesty as positioning. Pieces that can't be photographed yet sit behind an announcement page instead of empty cards. Early fake reviews were replaced by « Personne ne nous a encore recommandés » and three ways to check the atelier yourself.
  • Online payment ready, but off. Card and Mobile Money payment through KkiaPay is implemented and verified server-side, and stays switched off until a merchant account exists.

03Build

No framework, one source of truth.

The catalogue lives in a single JSON file. A Python generator writes 23 static pages from it: product pages, categories, sitemap and structured data. A Cloudflare Worker handles orders, the admin API and live catalogue edits, which are applied to the pages at the edge without a rebuild.

  • Bespoke configurator: shape, leather, thread, sole, size and initials, with an itemised price that updates live
  • Admin for the atelier: order statuses, WhatsApp links, catalogue overrides and data anonymisation
  • Responsive images (WebP, srcset), non-blocking fonts and immutable caching
  • Accessibility: skip link, visible focus, reduced motion, and a contrast checker that runs through the CSS cascade
  • A security pass: content security policy, CSRF and brute-force protection, data minimisation

04Technologies

The stack.

Front end
Hand-written HTML, CSS and vanilla JavaScript
Generator
Python, standard library only
Server
Cloudflare Workers with static assets
Database
PostgreSQL through Cloudflare Hyperdrive
Integrations
WhatsApp Cloud API, KkiaPay (implemented, switched off)

05Real outcome

What exists today.

The site is live at maisonyems.com: a complete, documented e-commerce site with 23 generated pages, a working configurator, an ordering flow, an admin, legal pages, and a step-by-step deployment guide written for the owner.

What this page doesn't claim. There are no visit, order or revenue figures here: the site deliberately runs no analytics, and online payment is not switched on yet. Product visuals on the shop are AI-generated and labelled as such on the site.

06Visuals

Screens from the actual site.

A similar project?

Let’s talk about it.

An online shop, a redesign or a new e-commerce idea: I'm open to collaborations and new challenges.

Work together