[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"projects-listing":3},[4,93,161,232,293],{"id":5,"title":6,"body":7,"client":6,"cover":57,"description":61,"draft":62,"extension":63,"gallery":64,"highlight":73,"links":74,"meta":78,"navigation":73,"path":79,"period":80,"role":81,"seo":82,"shortDescription":83,"sitemap":84,"stack":85,"stem":90,"year":91,"__hash__":92},"projectsFr\u002Fprojects\u002Ffr\u002Femeis.md","Emeis",{"type":8,"value":9,"toc":49},"minimark",[10,15,19,23,26,30,33,36,39,42,46],[11,12,14],"h2",{"id":13},"contexte","Contexte",[16,17,18],"p",{},"Emeis est un groupe de santé présent dans plus de vingt pays, avec plus de mille établissements, des maisons de retraite aux cliniques. Après la refonte de sa marque, le groupe a lancé des sites pays pour accompagner son développement à l'international, distincts du site corporate. C'est sur ces sites pays que je suis intervenu : chacun a sa propre structure, son contenu et son URL, mais tous reposent sur un socle commun.",[11,20,22],{"id":21},"rôle","Rôle",[16,24,25],{},"Lead front et développeur principal sur le projet, mon apport central a été de repenser l'architecture front pour absorber le multi-thème, une activité Emeis correspondant à un thème. J'ai isolé le styleguide de la structure Drupal pour le rendre indépendant du thème parent, créé les composants manquants et repris les existants pour qu'ils fonctionnent sur tous les thèmes. En parallèle, j'ai développé toute la partie front du store locator, en coordination avec la développeuse back qui développait le module Drupal.",[11,27,29],{"id":28},"réalisation","Réalisation",[16,31,32],{},"L'architecture multi-thèmes est la pièce maîtresse du projet. Elle reprend le principe des thèmes parent\u002Fenfant de Drupal : un thème parent, Emeis, porte tous les composants et les assets ; chaque thème enfant en dépend et n'override que le strict nécessaire. Toute l'identité visuelle repose sur des variables CSS, qu'un thème enfant redéfinit pour appliquer ses propres couleurs, sans jamais toucher au composant lui-même. Le prérequis a été conséquent : inventorier et mapper chaque variable en amont, pour poser le système sur des bases saines.",[16,34,35],{},"Le chargement du JavaScript suit le même esprit. Un script global vérifie, via les classes CSS présentes dans la page, quels scripts de composants doivent être chargés, puis les charge de façon asynchrone via dynamic import. Le but : réduire au maximum la charge JS de chaque page, sur un projet où la performance et le SEO priment.",[16,37,38],{},"Le store locator est la fonctionnalité applicative la plus importante. Le front récupère les paramètres d'URL pour construire les filtres et lancer les appels API : un pour le listing des établissements, paginé, un autre pour les marqueurs de la carte Google Maps, avec sa gestion de clusters. Pas de framework : sur un site Drupal servi en Twig, un framework JavaScript aurait ajouté une charge supplémentaire non nécessaire.",[16,40,41],{},"Le point délicat réside dans les filtres, propres à chaque activité. En accédant au store locator d'une activité, l'utilisateur ne voit que les filtres de celle-ci ; sur le store locator multi-activité, il choisit d'abord une activité avant d'atteindre ses filtres. S'y ajoute une logique géographique, du pays à la ville, qui recentre la carte et ne remonte que les établissements de la zone concernée. Autant de cas à prévoir un par un dans le code.",[11,43,45],{"id":44},"résultats","Résultats",[16,47,48],{},"Le premier site pays est en ligne, et le socle sert désormais de base au déploiement des suivants, pays par pays. Pour un site éditorial de cette ampleur, les scores de performance sont solides, et le client est satisfait du résultat. Le projet est toujours actif, avec de nouveaux pays en cours d'ouverture.",{"title":50,"searchDepth":51,"depth":51,"links":52},"",2,[53,54,55,56],{"id":13,"depth":51,"text":14},{"id":21,"depth":51,"text":22},{"id":28,"depth":51,"text":29},{"id":44,"depth":51,"text":45},{"src":58,"width":59,"height":60},"\u002Fimg\u002FProjects\u002FEMEIS_Cover.jpg",2560,1440,"Refonte de l'architecture front, en tant que lead front et développeur principal, des sites pays d'un groupe de santé présent dans plus de vingt pays : socle Drupal multi-thèmes bâti sur des variables CSS, styleguide isolé du thème parent, chargement JS asynchrone conditionnel, et développement complet du front du store locator (carte Google Maps, filtres cumulatifs par activité et par zone géographique).",false,"md",[65,67,71],{"src":66,"width":59,"height":60},"\u002Fimg\u002FProjects\u002FEMEIS_Gallery_Hero.jpg",{"src":68,"width":69,"height":70},"\u002Fimg\u002FProjects\u002FEMEIS_Gallery_Tile-1.jpg",1600,1200,{"src":72,"width":69,"height":70},"\u002Fimg\u002FProjects\u002FEMEIS_Gallery_Tile-2.jpg",true,[75],{"label":76,"href":77},"Site","https:\u002F\u002Fwww.emeis.fr\u002Ffr",{},"\u002Fprojects\u002Ffr\u002Femeis","2025-2026","Lead Front-end",{"title":6,"description":61},"Architecture front multi-thèmes et store locator pour les sites pays d'un groupe de santé, à fort enjeu SEO.",{"loc":79},[86,87,88,89],"Vanilla JS","Twig","Drupal","Storybook","projects\u002Ffr\u002Femeis",2025,"D1QpLVUbg3prB7D0BeSW47WZGfNFDtl2lmlABT0K1LE",{"id":94,"title":95,"body":96,"client":136,"cover":137,"description":139,"draft":62,"extension":63,"gallery":140,"highlight":62,"links":147,"meta":148,"navigation":73,"path":149,"period":150,"role":81,"seo":151,"shortDescription":152,"sitemap":153,"stack":154,"stem":158,"year":159,"__hash__":160},"projectsFr\u002Fprojects\u002Ffr\u002Fjlr-cockpit.md","Cockpit",{"type":8,"value":97,"toc":130},[98,100,103,105,108,110,113,116,118,121,124],[11,99,14],{"id":13},[16,101,102],{},"Jaguar Land Rover pilotait son activité commerciale sans outil centralisé : chaque concession faisait remonter ses chiffres à la main, par fax ou par tableur, sans jamais de vision d'ensemble. Le projet Cockpit est né de ce manque : réunir toutes ces données dans une seule application pour redonner aux équipes une visibilité claire sur leurs ventes, leurs leads et leur après-vente.",[11,104,22],{"id":21},[16,106,107],{},"En tant que Lead Développeur, j'ai accompagné le cadrage du besoin avant de développer un POC en Vue 2. Cette première version testable a permis au client de mesurer concrètement les gains de temps et de coordination attendus. Le POC a convaincu, et le projet est passé en V1 : j'ai pris le lead sur une équipe de développeurs front qui sont repartis du POC, tout en gardant la main sur l'architecture et les revues de code. Tous seniors, ils ont peu à peu repris le développement. Je suis ensuite revenu ponctuellement, sur les grosses évolutions et pour piloter la migration de Vue 2 vers Vue 3.",[11,109,29],{"id":28},[16,111,112],{},"Le client ayant adhéré à notre application, les demandes ont suivi : de nouveaux dashboards, de nouvelles données à intégrer, au fil des années. L'application a fini par couvrir tout le cycle commercial, du suivi des leads au portefeuille de véhicules, jusqu'à l'après-vente et les marges. Chaque tableau de bord se filtre très finement, par région, groupe, concession, marque ou modèle, avec des droits ajustés à chaque profil, du chef de région au directeur après-vente. Adopté par la plupart des concessions françaises, l'outil a ensuite été déployé dans toute l'Europe.",[16,114,115],{},"Le vrai défi n'était pas d'afficher la donnée ni de gérer ces dizaines de dashboards, mais de bien concevoir la couche qui les alimente, filtres compris, pour réduire au maximum le temps d'attente à l'écran. Le back-end Python traite des millions de lignes et a besoin de quelques secondes pour récupérer, traiter et renvoyer la donnée. Tout le travail a donc consisté à absorber cette attente côté front. Préchargement des contenus avant l'affichage, transitions maîtrisées d'un écran à l'autre, loaders animés : une interface qui fait patienter proprement plutôt que de laisser l'utilisateur devant un écran figé.",[11,117,45],{"id":44},[16,119,120],{},"Parti d'un simple POC, Cockpit s'est imposé comme l'outil de reporting de référence de Jaguar Land Rover, adopté à la fois dans les bureaux et dans les concessions, qui alimentent elles-mêmes leurs données pour le faire vivre. Étendu à toute l'Europe, il est aujourd'hui toujours en place et utilisé par JLR.",[122,123],"hr",{},[16,125,126],{},[127,128,129],"em",{},"Les captures présentées illustrent des maquettes de l'application : toutes les données affichées (concessions, chiffres, indicateurs) sont fictives.",{"title":50,"searchDepth":51,"depth":51,"links":131},[132,133,134,135],{"id":13,"depth":51,"text":14},{"id":21,"depth":51,"text":22},{"id":28,"depth":51,"text":29},{"id":44,"depth":51,"text":45},"Jaguar Land Rover",{"src":138,"width":59,"height":60},"\u002Fimg\u002FProjects\u002FJLR_Cover.jpg","Conception du POC front d'une application interne de reporting pour Jaguar Land Rover, qui a grandi jusqu'à équiper la plupart des concessions françaises, puis toute l'Europe. Plusieurs dizaines de dashboards filtrables sur des données CRM fraîches et migration Vue 2 vers Vue 3.",[141,143,145],{"src":142,"width":59,"height":60},"\u002Fimg\u002FProjects\u002FJLR_Gallery_Hero.jpg",{"src":144,"width":69,"height":70},"\u002Fimg\u002FProjects\u002FJLR_Gallery_Tile-1.jpg",{"src":146,"width":69,"height":70},"\u002Fimg\u002FProjects\u002FJLR_Gallery_Tile-2.jpg",null,{},"\u002Fprojects\u002Ffr\u002Fjlr-cockpit","2019-2026",{"title":95,"description":139},"Application interne de reporting pour Jaguar Land Rover, du POC au déploiement européen.",{"loc":149},[155,156,157,89],"Vue 3","TypeScript","Vite","projects\u002Ffr\u002Fjlr-cockpit",2019,"j-QX1xS2jnhEFqFrXNe4-sbTK8apKYRWzeeuIpvMnc8",{"id":162,"title":163,"body":164,"client":207,"cover":208,"description":210,"draft":62,"extension":63,"gallery":211,"highlight":62,"links":218,"meta":222,"navigation":73,"path":223,"period":224,"role":81,"seo":225,"shortDescription":226,"sitemap":227,"stack":228,"stem":230,"year":159,"__hash__":231},"projectsFr\u002Fprojects\u002Ffr\u002Fpaper-club.md","Paper.club",{"type":8,"value":165,"toc":201},[166,168,171,173,176,178,181,184,187,190,192,195],[11,167,14],{"id":13},[16,169,170],{},"Paper.club est une marketplace de netlinking : les annonceurs y achètent des articles sponsorisés pour renforcer le référencement de leurs sites, les éditeurs y vendent de la visibilité sur leurs sites. L'annonceur parcourt un annuaire de sites, chacun décrit par sa thématique, ses audiences et ses indicateurs SEO, puis commande un article auprès de l'éditeur de son choix. La plateforme est une marque du groupe Ydylle (Eskimoz), l'un des acteurs européens de référence du secteur. Le développement a démarré mi-2019.",[11,172,22],{"id":21},[16,174,175],{},"J'ai conçu et développé l'intégralité du front, comme lead front et développeur principal. D'abord seul, puis aidé de plusieurs développeurs sur la phase la plus intense jusqu'à la V1, avant de reprendre la main sur le front pour la maintenance et les évolutions. Un lead back développait l'API en parallèle sur toute la durée du projet. Quand une évolution arrivait sans maquette, mon background créatif prenait le relais : concevoir les écrans manquants en puisant uniquement dans le design system existant, pour une interface qui garde sa cohérence.",[11,177,29],{"id":28},[16,179,180],{},"Le front couvre une application large : back-office d'administration, onboarding des nouveaux clients, moteur de recherche à filtres cumulatifs pour explorer l'annuaire, suivi de commande. Trois chantiers ressortent : le tunnel de commande et le système de portefeuille, l'outil de rédaction d'article, et la migration de Vue 2 vers Vue 3.",[16,182,183],{},"Toute la mécanique de commande vit dans la plateforme : l'annonceur remplit son panier, un tunnel de paiement gère la transaction, et l'application orchestre les échanges entre annonceur et éditeur jusqu'à la mise en ligne de l'article. À côté, chaque profil dispose d'un porte-monnaie complet, avec historique des transactions, moyens de paiement et rechargement, sur des rôles aux droits très différents, de l'annonceur à l'éditeur en passant par les agences et leurs consultants.",[16,185,186],{},"La partie la plus délicate est l'outil de rédaction d'article. Il couvre tout le parcours, de l'écriture du contenu, mise en forme comprise, jusqu'à sa validation. Les commentaires se posent directement sur le texte de l'article, ce qui ouvre des allers-retours entre annonceur et éditeur pour l'affiner passage par passage jusqu'à la version finale.",[16,188,189],{},"La dernière grande étape a été la migration de Vue 2 vers Vue 3, sur une codebase de production déjà conséquente. Le projet n'a jamais été mis en pause : la migration avançait sur une branche à part, maintenue à jour des évolutions du quotidien, pendant que le développement courant continuait en Vue 2. Une phase de conseil a permis de décaler les gros chantiers après la bascule, pour ne pas avoir à les livrer deux fois, une version par framework. L'exercice a été exigeant, entre des dépendances qui n'avaient pas encore franchi le pas vers Vue 3 et le quotidien à tenir en parallèle.",[11,191,45],{"id":44},[16,193,194],{},"Mise en ligne mi-2021, après plus d'un an de développement, la plateforme a ensuite été suivie et enrichie pendant quatre années. Ce qui était prévu comme une première version a donné lieu à un accompagnement au long cours, la confiance se renouvelant d'année en année jusqu'en 2025. Paper.club est toujours en ligne aujourd'hui et donne accès à plus de 120 000 médias, l'un des plus grands catalogues du marché.",[16,196,197,200],{},[127,198,199],{},"Les captures présentées illustrent des maquettes de l'application : toutes les données affichées sont fictives.","\n{.l-page__disclaimer}",{"title":50,"searchDepth":51,"depth":51,"links":202},[203,204,205,206],{"id":13,"depth":51,"text":14},{"id":21,"depth":51,"text":22},{"id":28,"depth":51,"text":29},{"id":44,"depth":51,"text":45},"Ydylle (Eskimoz)",{"src":209,"width":59,"height":60},"\u002Fimg\u002FProjects\u002FPPC_Cover.jpg","Conception et développement front, en tant que lead front et développeur principal, d'une plateforme SaaS de netlinking de premier plan en Europe pour le groupe Ydylle (Eskimoz) : marketplace annonceurs\u002Féditeurs, tunnel de commande et de paiement, portefeuille, outil de rédaction collaborative. Migration Vue 2 vers Vue 3 pilotée sur une codebase de production.",[212,214,216],{"src":213,"width":59,"height":60},"\u002Fimg\u002FProjects\u002FPPC_Gallery_Hero.jpg",{"src":215,"width":69,"height":70},"\u002Fimg\u002FProjects\u002FPPC_Gallery_Tile-1.jpg",{"src":217,"width":69,"height":70},"\u002Fimg\u002FProjects\u002FPPC_Gallery_Tile-2.jpg",[219],{"label":220,"href":221},"Application","https:\u002F\u002Fapp.paper.club\u002F",{},"\u002Fprojects\u002Ffr\u002Fpaper-club","2019-2025",{"title":163,"description":210},"Plateforme SaaS de netlinking construite de zéro et portée pendant plusieurs années.",{"loc":223},[229,155,156,157],"Vue 2","projects\u002Ffr\u002Fpaper-club","0QDeLvmbaDZWVKs5BXXmKYIJJCZ5NXmN89gFf4Wxgc8",{"id":233,"title":234,"body":235,"client":234,"cover":269,"description":271,"draft":62,"extension":63,"gallery":272,"highlight":62,"links":279,"meta":282,"navigation":73,"path":283,"period":284,"role":81,"seo":285,"shortDescription":286,"sitemap":287,"stack":288,"stem":291,"year":91,"__hash__":292},"projectsFr\u002Fprojects\u002Ffr\u002Fsite-arneo.md","Arneo",{"type":8,"value":236,"toc":263},[237,239,242,244,247,249,252,255,258,260],[11,238,14],{"id":13},[16,240,241],{},"Arneo a refondu le site de son agence, un site éditorial riche à forte identité visuelle. Trois exigences tenaient le projet : des animations poussées, des performances solides et un bon référencement, le tout sur un contenu mis à jour en continu. J'y étais lead développeur front.",[11,243,22],{"id":21},[16,245,246],{},"Je chapeautais l'équipe front tout en développant avec elle. Le site repose sur un Drupal headless, dont le front Next.js consomme les API. Mon travail s'est concentré sur l'architecture front, autour de deux priorités : la performance et la souplesse laissée aux équipes de contribution.",[11,248,29],{"id":28},[16,250,251],{},"Le front est en Next.js, rendu côté serveur. Sur un site éditorial dont le contenu change en continu, le SSG était exclu : le rendu doit refléter la dernière version à chaque visite, sans rien céder sur la vitesse ni le référencement. Chaque page se construit à partir de blocs définis dans Drupal, qu'un composant unique, le BlockManager, affiche dans l'ordre voulu. Les équipes de contribution composent ainsi leurs pages librement, sans limite de blocs et sans passer par le code.",[16,253,254],{},"La performance repose sur un cache à plusieurs niveaux, du front avec Next.js jusqu'au back avec Drupal. J'ai mis en place tout le système de cache front avec Next.js ; puis, afin d'invalider un contenu précis, j'ai créé une API réservée au back lui permettant de déclencher cette invalidation dès qu'un contenu est modifié en contribution. La donnée s'affiche presque instantanément, sans jamais servir une version périmée. L'enjeu était là : sur un site aussi chargé, avec sa surcouche visuelle et ses librairies tierces, les performances s'effondrent sans le cache.",[16,256,257],{},"L'expérience passe par une direction artistique assumée et par les animations, présentes sur une grande partie des blocs. Des mouvements déclenchés au scroll, des micro-interactions poussées, avec quantité d'éléments qui apparaissent au survol, jusqu'à des SVG animés. Elles donnent au site son rythme, sans jamais en faire trop. Les images se chargent en lazy-loading, un placeholder cédant la place au visuel réel une fois prêt. Le CSS a été privilégié au JavaScript partout où c'était possible, pour alléger les pages et garder une vraie fluidité côté navigateur.",[11,259,45],{"id":44},[16,261,262],{},"Le site est en ligne depuis mi-2025. Le pari était de tenir des performances élevées malgré une forte charge visuelle et de nombreuses librairies tierces : Lighthouse mesure, sur desktop, 97 en performance, 96 en accessibilité, 92 en bonnes pratiques et 92 en SEO. Le cache les maintient à ce niveau malgré tout ce que la page embarque.",{"title":50,"searchDepth":51,"depth":51,"links":264},[265,266,267,268],{"id":13,"depth":51,"text":14},{"id":21,"depth":51,"text":22},{"id":28,"depth":51,"text":29},{"id":44,"depth":51,"text":45},{"src":270,"width":59,"height":60},"\u002Fimg\u002FProjects\u002FArneo_Cover.jpg","Refonte complète du site de l'agence Arneo, en tant que lead développeur front : un site éditorial à forte identité visuelle, rendu côté serveur en Next.js sur un Drupal headless, avec un système de blocs pour la contribution, une stratégie de cache pour les performances et des animations sur une grande partie des pages.",[273,275,277],{"src":274,"width":59,"height":60},"\u002Fimg\u002FProjects\u002FArneo_Gallery_Hero.jpg",{"src":276,"width":69,"height":70},"\u002Fimg\u002FProjects\u002FArneo_Gallery_Tile-1.jpg",{"src":278,"width":69,"height":70},"\u002Fimg\u002FProjects\u002FArneo_Gallery_Tile-2.jpg",[280],{"label":76,"href":281},"https:\u002F\u002Farneo.io\u002Ffr",{},"\u002Fprojects\u002Ffr\u002Fsite-arneo","2025",{"title":234,"description":271},"Refonte du site éditorial de l'agence Arneo en Next.js (SSR) sur un Drupal headless, à fort enjeu graphique et de performance.",{"loc":283},[289,156,290,89],"Next.js","Drupal headless","projects\u002Ffr\u002Fsite-arneo","KmqIQXs7fALXqsIYpwETIR8LkEF_6tTufi3DlwE-xGg",{"id":294,"title":295,"body":296,"client":389,"cover":390,"description":392,"draft":73,"extension":63,"gallery":393,"highlight":62,"links":400,"meta":403,"navigation":73,"path":404,"period":147,"role":405,"seo":406,"shortDescription":407,"sitemap":408,"stack":409,"stem":412,"year":413,"__hash__":414},"projectsFr\u002Fprojects\u002Ffr\u002Fvalhalla-breitling-aston-martin.md","Valhalla",{"type":8,"value":297,"toc":383},[298,300,303,305,313,315,322,325,338,341,348,350,353],[11,299,14],{"id":13},[16,301,302],{},"Aston Martin et Breitling ont collaboré autour du projet Valhalla : un site qui permet à chaque acquéreur de la supercar de se voir offrir une montre Breitling personnalisée. Le client y choisit son modèle, entre homme et femme, puis le configure à son goût. J'ai conçu l'ensemble du front-end de cette expérience, sur un projet aux exigences élevées : visuels haute définition, navigation fluide, performance, et un rendu parfait aussi bien à l'écran que dans le code.",[11,304,22],{"id":21},[16,306,307,308,312],{},"Sur ce projet, j'ai porté le front-end, de l'architecture jusqu'à la mise en production. Un lead back gérait en parallèle la partie back-office et la synchronisation avec le CRM du client. Le configurateur, le formulaire et les transitions de page sans rechargement voulues par la créa demandaient une vraie application côté client. Le templating a donc été écarté très vite au profit de ",[309,310,311],"strong",{},"Nuxt",", dont le rendu côté serveur offrait les meilleures performances sans sacrifier la fluidité côté client.",[11,314,29],{"id":28},[16,316,317,318,321],{},"Le configurateur est la pièce maîtresse du site. Le client y personnalise sa montre et voit l'aperçu se mettre à jour en temps réel, d'une combinaison à l'autre, ",[309,319,320],{},"sans transition ni clignotement",". Pour obtenir ce résultat, chaque nouvelle image est chargée et décodée en arrière-plan avant d'apparaître : elle ne remplace la précédente qu'une fois prête à l'affichage. Chaque combinaison possède son visuel dédié, retrouvé à partir des références produit fournies par le client.",[16,323,324],{},"Pour aller au bout de l'expérience, j'ai développé plusieurs fonctionnalités :",[326,327,328,332,335],"ul",{},[329,330,331],"li",{},"afficher ou masquer l'interface pour observer la montre en détail ;",[329,333,334],{},"reprendre sa personnalisation depuis le début ;",[329,336,337],{},"alterner entre les bracelets.",[16,339,340],{},"Le tout sans scroll, en restant fluide, même sur mobile.",[16,342,343,344,347],{},"Côté performance, l'enjeu était de conserver des visuels haute définition sans alourdir le site. J'ai développé un script Node qui retravaille les images fournies et les décline en WebP et AVIF sur plusieurs tailles, pour le mobile comme pour le desktop, soit ",[309,345,346],{},"plus de 400 visuels générés",". Le responsive mobile, non prévu à l'origine, a été ajouté en cours de projet et affiné jusqu'à un rendu optimal, pour préserver l'expérience d'origine.",[11,349,45],{"id":44},[16,351,352],{},"Les performances mesurées, visuels haute définition compris :",[326,354,355,369,377],{},[329,356,357,360,361,364,365,368],{},[309,358,359],{},"Desktop"," : Lighthouse Performance ",[309,362,363],{},"100\u002F100",", LCP ",[309,366,367],{},"0,7 s"," ;",[329,370,371,360,374,368],{},[309,372,373],{},"Mobile",[309,375,376],{},"91\u002F100",[329,378,379,382],{},[309,380,381],{},"CLS de 0"," sur l'ensemble.",{"title":50,"searchDepth":51,"depth":51,"links":384},[385,386,387,388],{"id":13,"depth":51,"text":14},{"id":21,"depth":51,"text":22},{"id":28,"depth":51,"text":29},{"id":44,"depth":51,"text":45},"Breitling × Aston Martin",{"src":391,"width":59,"height":60},"\u002Fimg\u002FProjects\u002FValhalla_Cover.jpg","Conception et développement de bout en bout du front d'un site événementiel de luxe : un configurateur de montre avec aperçu en direct, une expérience sans scroll pensée pour le haut de gamme, livrée dans des délais courts. Lighthouse Performance 100\u002F100 desktop (LCP 0,7 s) et 91\u002F100 mobile, CLS 0, malgré des visuels haute définition.",[394,396,398],{"src":395,"width":59,"height":60},"\u002Fimg\u002FProjects\u002FValhalla_Gallery_Hero.jpg",{"src":397,"width":69,"height":70},"\u002Fimg\u002FProjects\u002FValhalla_Gallery_Tile-1.jpg",{"src":399,"width":69,"height":70},"\u002Fimg\u002FProjects\u002FValhalla_Gallery_Tile-2.jpg",[401],{"label":76,"href":402},"https:\u002F\u002Fvalhalla.breitling.com\u002Ffr",{},"\u002Fprojects\u002Ffr\u002Fvalhalla-breitling-aston-martin","Lead Développeur Front-end",{"title":295,"description":392},"Site événementiel avec configurateur de montre pour la collaboration Breitling × Aston Martin.",{"loc":404},[311,156,410,411],"Pinia","i18n","projects\u002Ffr\u002Fvalhalla-breitling-aston-martin",2026,"dVOGocjB4jxAz5ltJ6oz_CNXnH5ICmDPETZOu0POsAk"]