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
Concurrency under control
Redis lease locks and distributed rate limiting protect sensitive operations.
- 2
Idempotent payment capture
A stuck payment capture was fixed with a workflow built from idempotent steps.
- 3
Admin cut off from the Internet
Admin access is not reachable from the Internet, with two layers of isolation.
- 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.