Evianchezvous


Context
Full rebuild of evianchezvous, Evian's home water delivery site (Paris / Île-de-France): migration from a monolithic Magento 1 to headless Magento 2, with a React + GraphQL front-end. I was front-end tech lead for 2 years, from scoping through to production.
My approach
The project meant doing everything at once: migrating Magento 1 to 2, pulling the front out of the monolith into a React app, rethinking checkout and the customer account, and porting the subscription logic (recurring water delivery) that Magento doesn't ship with out of the box. SSR ran underneath to protect search rankings, and performance had to beat the V1 from day one.
- React front-end built from scratch across the full e-commerce tunnel: cart, checkout, account, subscriptions, postal-code-based delivery slots. All the business logic moved over to JS.
- Custom GraphQL layer on top of Magento 2: native M2 doesn't cover everything, so I wrote plenty of custom resolvers and extended schemas to serve the front without unnecessary round-trips.
- Subscription module, recurring payments and one-shot orders, wired into per-zone delivery constraints. Magento can't handle that alone, so I coded it custom on both sides.
Stack & technical choices
Magento 2 on the back for the e-commerce stack (catalog, orders, customers, payments), with a custom-extended GraphQL layer. React + Apollo Client + SSR on the front for performance and SEO: pulling out of a Magento monolith without losing indexation is the whole headless bet. React also enables a real mobile experience, with components designed for touch and native-feeling transitions, that Magento 1 simply couldn't deliver. Then the M1 to M2 data migration itself (products, customers, orders, active subscriptions) without breaking history.
Outcome & takeaways
Still live years after delivery, with performance and conversion rate up compared to the Magento 1 version. On a personal level, this was my first React e-commerce site and my first front-end tech lead role over 2 years. The main lesson: moving Magento to headless means rebuilding in React things the old version gave you for free, like cart, sessions, customer flows. A lot of plumbing to lay back down just to gain on UX and performance.