Emperor.
← All work
Live2026

Fashion e-commerce platform

A 587-product storefront for a retailer in Accra, where every order closes in WhatsApp.

Next.jsTypeScriptNeon PostgresWhatsApp APIJSON-LDVercel
helloathena.live
Fashion e-commerce platform interface

Context

A fashion retailer in Accra selling men's, women's and kids' pieces plus authenticated designer bags. They had a physical shop and an Instagram following, and no way for either to turn into an online order.

The problem

  • Nearly 600 products with no catalogue anyone could browse or search.
  • Card payment penetration is low locally, and a checkout nobody completes is worse than no checkout.
  • Customers were already messaging on WhatsApp. Any flow that pulled them out of it lost them.
  • Nothing about the shop existed in Google results.

What I did

Catalogue first

Built the browse and search experience before anything else. Products, categories, filters, and a detail page fast enough to feel native on a mid-range Android over mobile data.

Checkout where the customer already is

The buy action composes a prefilled WhatsApp message with the product, size and price. No account, no card form, no abandoned cart. The conversation the seller was already having, just started correctly.

Findable by default

JSON-LD product schema with live price and availability, per-product Open Graph images generated on the fly, sitemap, robots.txt and a real 404. Shared links preview properly, which matters when the traffic is social.

Accounts, collections and an admin the owner runs herself

Customer auth with saved items, curated collections and filtering across the full catalogue. Behind it, an authenticated admin for products, images and pricing on Vercel Blob, so the shop lists new stock without a developer in the loop.

Calls I made

WhatsApp ordering instead of a card gateway

Matching how people in this market actually buy beat matching how e-commerce is supposed to work. Conversion came from removing steps, not adding payment options.

Migrated SQLite to Neon Postgres

The local database that was right in development was wrong for serverless. Moving to Neon fixed connection handling on Vercel before it became a production problem.

Dynamic OG images per product

Almost all inbound traffic arrives from a shared link. A generic preview card wastes the one impression you get in someone's chat.

Where it landed

  • Live storefront with around 587 products, browsable and shareable.
  • Orders flow straight into WhatsApp, where the shop already closes sales.
  • Full technical SEO in place: structured data, sitemap, per-product previews.
  • The shop lists and updates its own stock through the admin.
Next projectOffline-first retail POS →

Open for work

Got something that has to work on a bad connection, in a real shop, with real money?

Open to full-time remote roles, freelance projects and collaborations. Tell me what you are building and I will tell you honestly whether I am the right person for it.

Or email directlyemmanuelogu03@gmail.com