All projects
E-commerceBackendFrontend

Headless e-commerce platform connected to the ERP

E-commerce API, storefront and back-office, with an ERP-driven catalogue

Key figures

lines of code
~115,000
automated tests
~1,570
API routes
70
applications
3

Context

The business needed to sell professional equipment online, with a catalogue driven by the ERP. The store had to take payments, issue compliant invoices and handle returns, and non-technical staff needed a simple back-office.

My role

From design to operations, fully autonomously.

Solution

The platform is built from 3 components. A MedusaJS v2 API hosts 6 custom modules: payments, ERP sync, order operations, a CMS, account security and e-mails. It exposes 70 routes and 11 scheduled jobs.

The ERP remains the single source of truth for the catalogue, while MeiliSearch powers instant search. The Next.js 15 storefront covers catalogue, cart, checkout, rentals and the customer account, and the back-office follows a BFF architecture wired to the SSO. The project is governed by 8 specs, 5 audits and 5 acceptance testing campaigns.

Key features

  • ERP-driven catalogue

    The ERP remains the single source of truth, with incremental and full synchronisation.

  • Online payments through Mollie

    Card and local payment methods, governed by a dedicated payment security contract.

  • Compliant invoices, never duplicated

    Each document is generated exactly once, with PDFs served through short-lived HMAC-signed links.

  • A back-office for non-technical staff

    13 screens behind SSO, from orders to catalogue, with a permission matrix.

Engineering challenges

  1. 1

    Concurrency under control

    Redis lease locks and distributed rate limiting protect sensitive operations.

  2. 2

    Idempotent payment capture

    A stuck payment capture was fixed with a workflow built from idempotent steps.

  3. 3

    Admin cut off from the Internet

    Admin access is not reachable from the Internet, with two layers of isolation.

  4. 4

    Quality built into the process

    ~1,570 Vitest tests, 5 audits and 5 agent-driven acceptance testing campaigns in a real browser.

Tech stack

Backend
MedusaJS 2Node.jsTypeScript
Data
PostgreSQL 16Redis 7MeiliSearch
Frontend
Next.js 15/16React 19next-intlTailwind
Integrations
MollieResend
Infrastructure
DockerCloudflare TunnelGitHub ActionsGHCR
Quality
Vitest

A project of this scale?

Let's talk about your context: I'll tell you frankly what is feasible, and how long it takes.