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.
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.