Martial Wehrling
← All case studies

Case study

ecom-platform

Private code — it powers Sower & Light and Brûlerie Méridienne.

My reusable e-commerce engine: storefront, checkout, customer area, admin, emails and marketing. A new store is created with one command, with its own language, currency, taxes and backend.

ecom-platform

Context

A codebase born for a first store in production, then reused for Brûlerie Méridienne and Sower & Light. In late October 2026, an audit showed that every new store was redoing part of the work.

Problem

Without a generic data model, every new niche required a fork: product options, print on demand, currency, taxes and language were hard-coded for a single store.

Solution

A rebuild as a monorepo: a shared backend, a reference store (store-starter) shipped with demo data, and a script that creates a new store with its own market (language, currency, taxes, brand) and its own Convex project.

My role

Audit, architecture, rebuild, internationalization, tax handling, documentation and deployment.

Architecture

  • pnpm and Turborepo monorepo: one app per store, shared packages
  • Convex as the backend, one project per store
  • Stripe for payments and Stripe Tax for US sales tax
  • Better Auth for accounts, Resend for transactional and marketing emails
  • Docker image and a Coolify deployment guide

Challenges addressed

  • Extracting niche-specific code without breaking existing stores
  • Making language, currency and taxes configurable per market
  • Translating the storefront, emails and admin
  • Documenting store creation all the way to launch

Verifiable results

  • A new store created with one command (pnpm create-store)
  • Demo store with 12 products, reviews, shipping and emails
  • Complete English version: storefront, emails and admin
  • US sales tax calculated by Stripe Tax

Next steps

Launch the next stores straight from the starter, with no fork.