All projects
E-commerce project

YEM’S

A shoe house in Cotonou, and an online shop made for how people 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 workshop.

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.

And it had to earn people's trust without faking anything: no made-up reviews, no photos of shoes that hadn't been made 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.
  • Being upfront. 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

Built by hand, from one catalogue file.

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 I can't show you. I don't have visit or sales figures to share: the site runs no analytics, on purpose, and online payment isn't switched on yet. The product photos on the shop are AI-generated, and the site says so.

06Visuals

Screens from the actual site.

Thinking about an online shop?

Let’s talk.

Whether you're starting from nothing or redoing a site you already have, I'm happy to look at it with you.

Work together