Logo MantaDev

Mon expérience chez CheckMyGuest

Refondre un ERP en pleine production, faire gagner du temps à toute une entreprise… et remettre du plaisir dans l’interface.

CheckMyGuest : un ERP locatif à refondre en douceur

CheckMyGuest est une entreprise française spécialisée dans la gestion locative courte et moyenne durée. Elle accompagne des propriétaires sur tout le territoire pour rentabiliser leurs biens grâce à des plateformes comme Airbnb, Booking ou Abritel.

Derrière cette activité grand public, c’est toute une organisation logistique qui fonctionne au quotidien : équipes terrain, gestionnaires, services support, plannings de ménage, interventions techniques... Le tout orchestré à travers une application métier centrale : l’ERP interne nommé UMAN.

À mon arrivée, l’interface Front-end de cette application était devenue difficile à maintenir. Elle reposait sur des composants lourds, une architecture vieillissante, et ne permettait plus de répondre rapidement aux besoins métiers.

Mon défi : refondre progressivement ce cœur d’activité, sans bloquer les équipes opérationnelles, tout en assurant qualité, scalabilité et fluidité.

🏠 Une application critique, utilisée quotidiennement, à moderniser en douceur.

Mon rôle : lead technique et garant de l’UX dev

En tant que Lead Développeur Front-end, j’étais responsable de la refonte progressive de l’ERP UMAN, de la mise en place d’un design system réutilisable, et du pilotage technique d’une équipe hybride (interne + freelances).

J’ai instauré des bonnes pratiques de développement : architecture en Atomic Design, composants typés, pair programming, revues de PR systématiques, documentation partagée dans Storybook. J’étais aussi en lien direct avec les équipes produit et les managers métiers pour prioriser les évolutions, anticiper les besoins et accompagner les refontes critiques.

Mon rôle allait donc bien au-delà du code : transmission de savoir-faire, structuration de l’équipe, vision long terme.

👨‍💻 Repenser une application métier sans bloquer les opérations, en gardant l’équipe engagée.

Fonctionnalités majeures réalisées

  • Refonte Front-end progressive : suppression de jQuery, migration vers Vue.js/Nuxt.js, refactorisation de composants lourds (6000 ➜ 400 lignes), maintien de la production continue.
  • Design system réutilisable : Storybook, Chromatic, monorepo partagé, composants versionnés et testés visuellement.
  • Composants dynamiques typés : tableaux adaptables aux données (statuts, dates, actions), pages générées depuis une configuration métier.
  • Recherche universelle : accès rapide aux réservations, logements, propriétaires, voyageurs, tickets maintenance…
  • Gestion multilingue : prise en charge FR / EN / RU via i18n avec fallback automatique.
  • Fonctionnalités métier clés : modal manager, page détail contextuelle, API frontend en TypeScript, récupération de mot de passe.
  • Maintenances transverses : corrections sur React Native, améliorations SEO sur les sites vitrine, debug de code PHP legacy.
🛠️ Une refonte pensée pour améliorer l'efficacité métier et la maintenabilité du code.

Environnement technique

  • Frameworks & langages : Vue.js 2, Nuxt.js, Composition API, TypeScript, SCSS, TailwindCSS, PHP (legacy), JavaScript ES6
  • Architecture & composants : Atomic Design, Design System, Monorepo, Pages dynamiques (configurables via schémas métier), Tableaux dynamiques typés
  • Tests & qualité : Storybook, Chromatic, Jest, Revues de PR, Pair programming
  • Outils & CI/CD : Axios, GitLab CI/CD, GitLab Runners, Jira, Confluence
  • Mobile & cross-stack : React Native, Debug PHP legacy, intégration SEO
  • Internationalisation & accessibilité : i18n, pages multilingues (FR / EN / RU), récupération mot de passe, revue UX
🛠️ Une stack moderne pour accompagner la refonte d'un ERP métier critique.

L'équipe projet

  • 👤 1 Lead développeur Front-end (moi)
  • 🧑‍💻 1 Développeur Front-end junior
  • 🌍 2 Développeurs externes (France & Inde)
  • 🛠️ 1 Lead développeur Back-end
  • 💾 1 Développeur Back-end
  • 🎨 1 UX/UI Designer
  • 📋 1 Product Manager
  • 📌 1 Product Owner
👥 Une équipe pluridisciplinaire pour refondre un produit critique sans perte de service.

Apprentissages et retours

  • Refondre en production : apprendre à équilibrer refonte technique et continuité métier.
  • Encadrement humain : transmission des bonnes pratiques, montée en compétence par pair programming et dojos.
  • Anticipation produit : construire une architecture modulaire pour absorber les évolutions métiers futures.
  • Posture d'écoute : collaboration étroite avec les équipes métier pour prioriser, ajuster et sécuriser les refontes.
🎯 Une expérience clé pour allier architecture technique, pragmatisme produit et accompagnement humain.

Questions fréquentes

Comment avez-vous géré la suppression progressive de jQuery sans interrompre l'activité de l'application ?

La suppression de jQuery a été menée en refonte incrémentale, avec pour objectif de ne jamais casser la production. On a d'abord cartographié les usages de jQuery dans l’application pour identifier les zones critiques.

Ensuite, nous avons intégré Vue.js et migré progressivement chaque fonctionnalité vers des composants modulaires, tout en conservant la compatibilité. Les nouveaux composants étaient testés visuellement avec Chromatic, et validés en sprint.

Résultat : jQuery a pu être entièrement supprimé sans perturber les équipes métier.

Quelle méthodologie avez-vous utilisée pour construire et faire évoluer le Design System dans un contexte en production ?

Le design system a été développé dans un monorepo indépendant, avec des composants typés, documentés et testés dans Storybook. Chaque composant était versionné, validé par les métiers, et partagé avec les autres projets.

J’ai aussi structuré la contribution via des dojos techniques, et assuré une adoption progressive côté équipe. Chromatic permettait d’éviter les régressions visuelles à chaque modification.

Quelles stratégies avez-vous mises en place pour assurer la qualité du code malgré la refonte incrémentale ?

Revue de code systématique, pair programming, Storybook, Chromatic pour les composants visuels, et refactorisation progressive avec composants réutilisables. Toute nouvelle fonctionnalité devait passer par une structure typée et une documentation claire.

Bien que nous n’utilisions pas TypeScript côté Front, j’ai mis l’accent sur les conventions de nommage, les structures de props claires et l'encapsulation logique.

Comment avez-vous organisé la migration et la maintenance simultanée de plusieurs applications ?

Nous avions un design system centralisé partagé entre les différentes applications : ERP interne (UMAN), dashboard propriétaires, site de réservation, application mobile agents, et interface d’acquisition.

Je priorisais les chantiers critiques métier, tout en planifiant les évolutions par lot fonctionnel pour livrer sans blocage. Chaque périmètre avait ses priorités, mais les fondations techniques restaient cohérentes.

Comment avez-vous accompagné la montée en compétences du développeur junior et des prestataires offshore ?

Pair programming régulier, dojos techniques, documentation dans Storybook et Confluence, revues de PR pédagogiques. Je veillais à transmettre autant le “quoi” que le “pourquoi”.

Cela a permis à chacun de progresser rapidement et de mieux comprendre les contraintes métier et techniques.

Comment avez-vous collaboré avec les équipes métiers pour prioriser les fonctionnalités tout en gérant la dette technique ?

J’ai proposé un double backlog (fonctionnel + technique) avec une priorisation alignée sur les besoins métiers. Chaque refacto était associé à une fonctionnalité visible, pour justifier l’effort et sécuriser l’adhésion des managers.

Quelles sont les raisons de ton départ de CheckMyGuest après deux ans de mission ?

Après avoir stabilisé l’ERP, transmis les bonnes pratiques, et posé les fondations du design system, j’avais bouclé mon cycle. L’équipe était autonome et les outils en place.

J’ai souhaité retrouver davantage de variété et continuer à intervenir sur des projets de refonte technique ou d’architecture Front-end à fort impact.