The idea
Independent boutiques make beautiful things but can't each afford their own online store, payments and shipping set-up. Dukkan gives them one shared marketplace where every seller still has a shop of their own.
What I built
- Seller onboarding and boutiques: each seller gets their own shop page, listings and reviews.
- Payments and payouts with Stripe. Commission is taken on the goods only; the postage a buyer pays goes back to the seller in full, because the seller is the one paying the carrier.
- Weight-based Colissimo shipping, calculated once per seller parcel.
- A streaming image-upload pipeline. Photos, including iPhone HEIC files, are normalised in the browser, re-encoded on the server with sharp, and only images that end up on a listing are kept.
- An admin console with an audit log of every admin action, review moderation and seller management.
Running it
Next.js 16, React 19, Prisma, PostgreSQL and Redis in Docker on an OVHcloud server, behind nginx with HTTPS, with encrypted off-site backups and CI that can roll back a bad release.


