Migration CMS Legacy vers Next.js + Supabase
Votre CMS Legacy Vous Coûte des Revenus Pendant que Vous Attendez les Réponses des Développeurs
Why leave ExpressionEngine / MODX / Custom PHP CMS?
- Stagnant add-on ecosystems leave critical extensions unpatched for years, creating security vulnerabilities your compliance team flags in every audit
- Shrinking talent pools turn routine updates into three-week contractor searches, while your marketing team's campaign launch slips another fortnight
- Accumulated technical debt transforms simple feature requests into £8K custom development projects with two-month lead times
- Mobile Lighthouse scores stuck at 45-65 trigger Core Web Vitals failures that push your category pages below faster competitors in Search Console
- Server hosting burns £200-800/month for managed PHP environments that still deliver 1.2-2.5 second response times under moderate traffic
- Monolithic architecture couples your content model to presentation logic, forcing full regression testing every time your designer tweaks a layout component
What you gain
- Mobile Lighthouse scores hit 95-100 with green Core Web Vitals across every template, moving your pages up in organic rankings within the first billing cycle
- Global TTFB drops to sub-300ms via edge deployment on Vercel's network, replacing the 1.8-second lag your analytics team sees in session recordings
- Hosting costs fall to £50-200/month on managed infrastructure that auto-scales to traffic spikes your legacy VPS would crash under
- TypeScript + React codebase opens your talent pool to thousands of senior developers, ending your dependency on the two contractors who still remember MODX syntax
- Supabase consolidates PostgreSQL, auth, realtime, and storage into one managed platform — eliminating your separate MySQL + Redis + S3 + Auth0 bill
- Decoupled content API lets your team publish changes via Supabase Studio while your dev team ships frontend updates independently, cutting deployment friction by 70%
Votre CMS Legacy Vous Coûte des Revenus Pendant que Vous Attendez les Réponses des Développeurs
ExpressionEngine a rempli sa fonction. MODX était vraiment innovant pour son époque. Ce CMS PHP personnalisé que votre agence a construit en 2011 ? Ça fonctionnait. Mais « fonctionnait » est au passé, et c'est important.
Ces plateformes partagent une trajectoire commune : des écosystèmes de plugins en déclin, des correctifs de sécurité qui arrivent des mois tard (ou jamais), des développeurs qui ont poursuivi leur route, et des scores de performance qui font ressembler les Core Web Vitals de Google à un film d'horreur. Vous payez des coûts d'hébergement premium pour des serveurs qui ont du mal à dépasser les 2 secondes de chargement tandis qu'un site statique sur un forfait de 20 £/mois les surpasse largement.
Nous avons migré des sites ExpressionEngine avec plus de 15 000 entrées, des installations MODX exécutant plus de 40 snippets personnalisés, et des plateformes CMS PHP sur mesure avec des schémas de base de données non documentés. Chacune d'entre elles fonctionne maintenant sur Next.js avec Supabase, obtient un score vert pour tous les Core Web Vitals, et coûte moins cher à héberger que l'ancienne pile ne l'était.
Pourquoi les migrations d'ExpressionEngine et MODX Échouent
La plupart des agences traitent une migration CMS comme un projet de refonte. Elles construisent un joli nouveau site, font un export CSV, font un import en masse, mettent en place quelques redirections, et appellent ça terminé. Puis vous regardez votre trafic organique chuter de 40 % sur six semaines.
Voici ce qui se passe réellement :
Décalage de Modélisation de Contenu
Les champs de canal d'ExpressionEngine et les variables de modèle de MODX ne correspondent pas correctement aux structures de contenu modernes. Un champ « textarea » contenant du HTML avec des styles inline, des images intégrées avec des chemins relatifs, et des shortcodes personnalisés nécessite une transformation intelligente — pas un script de recherche et remplacement.
Fragmentation de la Structure d'URL
Les anciennes plateformes CMS PHP aiment générer des URL avec des paramètres, des préfixes de catégories, et des structures basées sur la date qui ne correspondent pas aux conventions de routage modernes. Manquez un seul modèle de redirection et vous avez une page 404 là où votre page d'accueil à plus fort trafic était auparavant.
Logique de Modèle Enfoui dans le Contenu
Les chunks et snippets MODX, les balises de modèle d'ExpressionEngine, les inclusions PHP personnalisées — ce ne sont pas du contenu. C'est de la logique de présentation qui s'est emmêlée à votre base de données sur une décennie de croissance organique. Séparer le contenu de la logique d'affichage est le vrai travail difficile de la migration, et c'est la partie que la plupart des agences sautent.
Authentification et Données Utilisateur
Si votre CMS legacy gère les connexions des membres, les rôles utilisateur personnalisés, ou le contenu verrouillé, vous ne pouvez pas simplement ignorer ces données. Les hachages de mots de passe ont besoin d'être migrés, ou les utilisateurs ont besoin d'un flux de réauthentification gracieux.
Ce que Next.js + Supabase Vous Donne Réellement
Ce n'est pas une mise à niveau marginale. C'est un saut architectural.
Next.js pour le Frontend
Next.js vous donne la génération statique pour les pages de contenu (TTFB inférieur à 100 ms), le rendu côté serveur pour les routes dynamiques, les composants serveur React pour les mises en page complexes sans le ballast JavaScript côté client, et la régénération statique incrémentielle afin que votre équipe de contenu publie les modifications qui deviennent actives en secondes sans reconstruction complète.
Vos scores Lighthouse passent de la plage 45-65 à 95-100. Pas grâce à des astuces — parce que l'architecture est fondamentalement plus rapide.
Supabase pour le Backend
Supabase fournit une base de données PostgreSQL avec une API REST et GraphQL prête à l'emploi. La sécurité au niveau des lignes gère les permissions sans middleware. Les abonnements en temps réel alimentent les fonctionnalités en direct. L'authentification intégrée gère tout, des identifiants email/mot de passe aux fournisseurs OAuth. Les fonctions Edge gèrent la logique côté serveur au réseau edge du CDN.
Pour la plupart des migrations CMS legacy, Supabase remplace la pile backend entière : base de données, authentification, stockage de fichiers, et couche API. Une plateforme, une facture, aucune maintenance de serveur.
Intégration CMS Headless
Pour les équipes de contenu qui ont besoin d'une interface d'édition familière, nous intégrons Sanity, Payload CMS, ou Storyblok comme couche éditoriale. Les éditeurs de contenu obtiennent une interface moderne. Les développeurs obtiennent des API structurées. Supabase gère tout ce qui n'est pas du pur contenu : données utilisateur, état de l'application, analytique, soumissions de formulaires.
Notre Processus de Migration
Nous exécutons un processus en cinq phases conçu spécifiquement pour les anciennes plateformes CMS PHP. Pas de cutover de type « big-bang ». Pas de doigts croisés.
Phase 1 : Audit Approfondi (Semaine 1-2)
Nous explorons complètement votre site existant. Chaque URL, chaque type de contenu, chaque modèle, chaque redirection déjà en place. Nous mappons vos canaux ExpressionEngine ou ressources MODX à un schéma de contenu moderne. Nous documentons les fonctionnalités personnalisées — recherche, formulaires, zones de membres, hooks e-commerce, intégrations tierces.
Livrable : un document de spécification de migration avec des mappages de modèle de contenu, un plan de redirection d'URL, et un inventaire des fonctionnalités.
Phase 2 : Construction d'Infrastructure (Semaine 2-4)
Nous configurons l'application Next.js, configurons Supabase (schéma de base de données, règles d'authentification, buckets de stockage), et déployons vers Vercel ou Cloudflare Pages. Pipeline CI/CD, environnements d'aperçu, domaine de staging — tout configuré avant que du contenu ne soit déplacé.
Phase 3 : Migration de Contenu (Semaine 3-6)
Les scripts de migration personnalisés extraient le contenu de votre base de données legacy, le transforment (nettoyage HTML, résolution des chemins d'images, conversion des shortcodes en données structurées), et le chargent dans le nouveau système. Nous exécutons ceci itérativement — migrer, valider, corriger les cas limites, réexécuter.
Pour ExpressionEngine, nous nous connectons directement à la base de données MySQL et analysons les données de canal avec connaissance des types de champ. Pour MODX, nous gérons l'arborescence des ressources, les variables de modèle, et les références de chunks. Pour les plateformes CMS PHP personnalisées, nous ingéniérisons inverses le schéma et construisons des extracteurs sur mesure.
Phase 4 : Construction Frontend (Semaine 4-8)
Pages et composants Next.js construits pour correspondre (ou améliorer) votre conception existante. Chaque modèle de page du site legacy obtient un équivalent moderne. Nous optimisons les images, implémentons des mises en page réactives, et nous assurons que chaque page obtient des Core Web Vitals verts avant le lancement.
Phase 5 : Basculement SEO et Go-Live (Semaine 7-10)
C'est là que les migrations réussissent ou échouent. Notre processus de basculement :
- Plan de redirection 301 déployé et testé par rapport à l'exploration complète d'URL de la Phase 1
- Plans de site XML régénérés et soumis à Google Search Console
- Balises canoniques, hreflang, et données structurées préservées ou améliorées
- Surveillance en temps réel des pics 404, erreurs d'exploration, et mouvements de classement pendant 30 jours après lancement
- Basculement DNS sans temps d'arrêt — le site legacy reste en direct comme solution de secours jusqu'à ce que nous confirmions une indexation propre
Nous garantissons aucune perte de classement imputable à la migration. Si Google abandonne une page à cause d'une redirection que nous avons manquée, nous la corrigeons le jour même.
Stratégie de Préservation SEO
La préservation du SEO n'est pas une phase — c'est une contrainte qui gouverne chaque décision tout au long du projet.
Nous exportons votre profil de backlink complet et le recoupons par rapport au plan de redirection. Les liens internes sont mis à jour par programmation, pas manuellement. Nous préservons l'autorité de la page en maintenant les structures d'URL où possible et en implémentant les chaînes de redirection appropriées où elles changent.
Next.js nous donne le rendu côté serveur pour les crawleurs, ce qui signifie que Google voit le HTML complètement rendu à la première demande — pas de délais de rendu JavaScript qui affligent les migrations SPA. Combiné avec un TTFB inférieur à 300 ms depuis le déploiement edge, vos pages sont explorées plus rapidement et indexées plus complètement qu'elles ne l'ont jamais été sur l'ancienne pile.
Calendrier et Prix
Les prix transparents signifient que vous connaissez la gamme avant le premier appel.
| Taille du Projet | Volume de Contenu | Calendrier | Investissement |
|---|---|---|---|
| Standard | Jusqu'à 500 pages | 6-8 semaines | 12 000 £ - 25 000 £ |
| Mi-taille | 500-5 000 pages | 8-12 semaines | 25 000 £ - 55 000 £ |
| Entreprise | 5 000+ pages, fonctionnalité personnalisée | 12-20 semaines | 55 000 £ - 120 000 £ |
Les prix incluent l'audit, les scripts de migration, la construction Next.js, la configuration Supabase, le basculement SEO, et 30 jours de surveillance post-lancement. Pas de surprises de facturation horaire. L'hébergement continu sur Vercel + Supabase s'exécute généralement entre 50 £ et 200 £/mois en fonction du trafic — une fraction des coûts du serveur legacy.
Garantie Core Web Vitals 100 % Verts
Chaque page que nous déployons réussit l'évaluation Google Core Web Vitals avec des scores verts sur LCP, INP, et CLS. Pas sur une connexion rapide dans un test de laboratoire — sur le terrain, mesuré par des utilisateurs réels via les données CrUX.
Si une page quelconque échoue CWV dans les 90 jours suivant le lancement en raison de notre implémentation, nous la corrigeons sans frais supplémentaires. Nous pouvons faire cette garantie parce que l'architecture Next.js + Supabase, déployée sur des CDN edge, est fondamentalement rapide. Nous ne combattons pas la plateforme pour obtenir de bons scores — la plateforme les livre par défaut lorsqu'elle est construite correctement.
Couverture Royaume-Uni et États-Unis
Nous travaillons avec des équipes dans tout le Royaume-Uni et les États-Unis, avec un déploiement optimisé pour les deux marchés. Les réseaux edge Vercel et Cloudflare garantissent que votre site se charge rapidement, que vos utilisateurs soient à Londres, Leeds, Los Angeles, ou Louisville. Tous les projets incluent la gestion des données conforme au RGPD pour les audiences du Royaume-Uni/UE et les pratiques alignées sur SOC 2 pour les exigences des entreprises américaines.
The migration process
Discovery & Audit
We map every page, post, media file, redirect, and plugin. Nothing gets missed.
Architecture Plan
New stack designed for your content structure, SEO requirements, and performance targets.
Staged Migration
Content migrated in batches. Each batch verified before the next begins.
SEO Preservation
301 redirects, canonical tags, sitemap, robots.txt — every ranking signal carried over.
Launch & Monitor
DNS cutover with zero downtime. 30-day monitoring period included.
ExpressionEngine / MODX / Custom PHP CMS vs Next.js + Supabase
| Metric | ExpressionEngine / MODX / Custom PHP CMS | Next.js + Supabase |
|---|---|---|
| Lighthouse Mobile | 45-65 | 95-100 |
| TTFB | 1.2-2.5s | <0.3s |
| Build/Deploy | FTP upload, manual cache clear | Git push, auto-deploy in <60s |
| Hosting Cost | £200-800/mo | £50-200/mo |
| Developer Availability | Scarce (EE/MODX specialists) | Abundant (React/Next.js ecosystem) |
| API / Headless Support | None or bolted-on | Native REST + GraphQL via Supabase |
Common questions
Combien de temps prend une migration d'ExpressionEngine vers Next.js ?
Une migration typique d'ExpressionEngine prend 6-12 semaines selon le volume de contenu et les fonctionnalités personnalisées. Les sites de moins de 500 pages avec des champs de canal standard se terminent en 6-8 semaines. Les sites plus grands avec des systèmes de membres, des add-ons personnalisés, ou une logique de modèle complexe s'étendent à 12-20 semaines. Nous vous donnons un calendrier exact après la phase d'audit.
Vais-je perdre les classements SEO lors de la migration ?
Non. Notre processus de migration comprend un plan de redirection 301 complet construit à partir d'une exploration de site complète, le rendu côté serveur pour les moteurs de recherche, et 30 jours de surveillance post-lancement. Nous préservons les structures d'URL, les balises canoniques, les données structurées, et les attributs hreflang. Nous garantissons aucune perte de classement causée par la migration elle-même.
Pouvez-vous migrer un CMS PHP personnalisé sans documentation ?
Oui. Nous faisons l'ingénierie inverse des schémas de base de données non documentés en analysant les structures de table, les relations, et les modèles de contenu directement. Nous avons migré des plateformes CMS PHP personnalisées construites au cours de 10+ ans sans aucune documentation. La phase d'audit mappe chaque type de contenu, relation, et fonction personnalisée avant que nous écrivions une seule ligne de code de migration.
Qu'advient-il de nos variables de modèle MODX et snippets ?
Les variables de modèle MODX sont mappées aux champs de contenu structurés dans votre nouveau CMS ou schéma Supabase. Les snippets et chunks contenant de la logique de présentation sont reconstruits comme composants Next.js. Le contenu intégré dans les chunks est extrait et stocké comme données structurées. Le résultat final est une séparation propre du contenu et de la présentation qui n'a jamais vraiment été possible dans MODX.
Comment fonctionne la migration sans temps d'arrêt ?
Nous exécutons les deux systèmes en parallèle pendant la période de basculement. Votre CMS legacy reste en direct tandis que le nouveau site Next.js est entièrement construit et testé sur un domaine de staging. Le DNS est commuté avec un TTL minimal, et nous gardons le serveur legacy disponible comme solution de secours. La surveillance en temps réel détecte tout problème quelques minutes après le go-live.
Que couvre exactement la garantie Core Web Vitals ?
Chaque page que nous construisons réussira l'évaluation Google Core Web Vitals — LCP inférieur à 2,5s, INP inférieur à 200ms, CLS inférieur à 0,1 — mesuré sur le terrain via les données Chrome User Experience Report. Si une page quelconque échoue dans les 90 jours suivant le lancement en raison de notre code, nous la corrigeons sans frais. Cela couvre notre implémentation, pas les scripts tiers que vous ajoutez après le lancement.
Pourquoi Next.js et Supabase au lieu de WordPress ou d'un autre CMS ?
WordPress reproduirait nombre des mêmes problèmes que vous essayez de laisser derrière : architecture monolithique, dépendance aux plugins, rendu PHP côté serveur, et surcharge de sécurité. Next.js livre des pages statiques et rendues côté serveur à la vitesse edge du CDN. Supabase fournit un backend PostgreSQL géré avec authentification et API intégrées — pas de serveurs à maintenir, pas de mises à jour de plugins à craindre.
Offrez-vous une assistance continue après la migration ?
Oui. Chaque migration comprend 30 jours de surveillance post-lancement et de corrections de bugs. Au-delà, nous proposons des forfaits de retenue mensuels pour le développement continu, les changements de modèle de contenu, la surveillance des performances, et l'administration Supabase. La plupart des clients passent à un plan de support léger après la période de stabilisation initiale.
Ready to migrate?
Free assessment. We'll audit your current site and give you a clear migration plan — no commitment.
Let's build
something together.
Whether it's a migration, a new build, or an SEO challenge — the Social Animal team would love to hear from you.