Skip to content
Now accepting Q2 projects — limited slots available. Get started →
Migration Service

Migrer Gatsby vers Astro | Social Animal

Vos builds Gatsby brûlent 20 minutes que vous ne récupérerez jamais

  • GraphQL forces you to write resolvers just to query local markdown files
  • Builds balloon to 15–30 minutes once you cross 500 pages
  • React runtime ships to every static page with zero interactive elements
  • Plugin dependencies rot with unpatched CVEs and abandoned maintainers
  • Development stalled post-Netlify acquisition with no major release roadmap
  • Incremental builds fail unpredictably, forcing full rebuilds that kill momentum
  • Mobile Lighthouse scores hit 95–100 with zero client-side JavaScript by default
  • Type-safe content queries via getCollection() replace GraphQL ceremony
  • 500-page sites rebuild in under 30 seconds using Vite's dependency pre-bundling
  • Islands architecture hydrates only your interactive components, leaving HTML static
  • Active monthly releases and a growing integration ecosystem backed by real funding
  • Your team deploys 6x per day instead of waiting for build queues to clear

Pourquoi les développeurs quittent Gatsby pour Astro

Gatsby a eu une belle course. Il a pioneered la catégorie des générateurs de sites statiques basés sur React et introduit des milliers de développeurs au JAMstack. Mais il a stagné. Netlify a acquis Gatsby au début de 2023, le développement s'est ralenti considérablement, l'écosystème des plugins se détériore, et les temps de build sur les grands sites de contenu restent encore désespérément lents.

Astro a été construit pour résoudre exactement les problèmes que Gatsby a créés. Zéro JavaScript par défaut, des collections de contenu qui remplacent la complexité de GraphQL, des temps de build qui font paraître Gatsby embarrassamment lent. Si vous maintenez un site de contenu Gatsby, migrer vers Astro n'est pas juste une mise à niveau—c'est long attendu.

Les points douloureux de Gatsby qui conduisent à la migration

Complexité GraphQL pour des données simples

La couche de données GraphQL de Gatsby était innovante au lancement. C'était aussi massif comme overkill pour la plupart des sites de contenu. Vous voulez lister vos articles de blog ? Écrivez une requête GraphQL. Vous voulez extraire le frontmatter d'un fichier markdown ? Requête GraphQL. Vous voulez afficher une image ? Requête GraphQL enveloppée dans un composant spécial.

Pour un site marketing avec 50 pages, vous maintenez des dizaines de requêtes GraphQL juste pour rendre le contenu qui vit dans votre propre système de fichiers. L'abstraction ajoute une surcharge cognitive sans bénéfice proportionnel.

Les temps de build qui se mettent mal à l'échelle

Le pipeline de build de Gatsby traite chaque page à travers sa couche GraphQL, exécute les transformations d'images et génère le bundle React complet pour chaque route. Un site de contenu avec 500 pages peut prendre 10-15 minutes pour construire. Un site avec 2 000 pages ? Vous regardez 30+ minutes, même avec les builds incrémentaux activés.

Chaque mise à jour de contenu signifie attendre. Chaque correction de faute signifie attendre. Votre équipe de contenu commence à détester l'outil.

L'écosystème des plugins se désagrège

La force de Gatsby était son écosystème de plugins—gatsby-plugin-image, gatsby-plugin-sharp, gatsby-source-filesystem, gatsby-transformer-remark. Beaucoup de ces plugins n'ont pas été significativement mis à jour depuis plus d'un an. Les conflits de dépendances se multiplient. Les avis de sécurité s'accumulent. Vous exécutez npm audit et voyez 47 vulnérabilités, la plupart enfouies profondément dans l'arborescence des dépendances Gatsby.

Des bundles JavaScript lourds

Gatsby expédie l'ensemble du runtime React à chaque visiteur, même pour les pages sans aucune interactivité. Une page statique « À propos » télécharge toujours React, ReactDOM et le runtime de Gatsby. Vos scores Lighthouse en souffrent, vos Core Web Vitals s'effondrent, et les utilisateurs sur des connexions plus lentes en paient le prix.

Ce qu'Astro vous donne

Les collections de contenu remplacent GraphQL

Les collections de contenu d'Astro sont conçues spécifiquement pour les sites de contenu. Définissez un schéma en TypeScript, déposez vos fichiers markdown dans un dossier, interrogez-les avec getCollection('blog'). Pas de GraphQL. Pas de plugins spéciaux. Validation de frontmatter type-safe prête à l'emploi.

// src/content/config.ts
import { defineCollection, z } from 'astro:content';

const blog = defineCollection({
  schema: z.object({
    title: z.string(),
    date: z.date(),
    tags: z.array(z.string()),
    image: z.string().optional(),
  }),
});

C'est tout. Pas de gatsby-node.js, pas d'API createPages, pas de fragments GraphQL. Votre récupération de données est un seul appel de fonction dans le composant qui en a besoin.

Zéro JavaScript par défaut

Astro expédie zéro JavaScript côté client à moins que vous ne vous y engagiez explicitement. Un site marketing avec 50 pages envoie du pur HTML et CSS au navigateur. Quand vous avez besoin d'interactivité—un formulaire de contact, un carrousel d'images, un widget de recherche—vous utilisez l'architecture Islands d'Astro pour hydrater uniquement ce composant.

Le résultat : des scores Lighthouse de 95-100 sur mobile sans aucun tour d'optimisation.

Des builds sub-secondes

Astro s'exécute sur Vite. Un site de contenu avec 500 pages se construit en moins de 30 secondes. Un site avec 2 000 pages se construit en moins de 2 minutes. Le remplacement de module à chaud en développement est instantané. Votre équipe de contenu peut prévisualiser les modifications en millisecondes au lieu d'attendre que le serveur develop de Gatsby recompile son schéma GraphQL.

Des composants framework-agnostiques

Vous avez déjà des composants React de votre site Gatsby ? Astro les rend au moment de la construction ou les hydrate côté client—votre choix. Vous voulez migrer graduellement vers les composants Astro, ou essayer Vue ou Svelte pour des fonctionnalités spécifiques ? Astro les supporte tous dans le même projet.

Notre processus de migration Gatsby vers Astro

Phase 1 : Audit et architecture (semaine 1)

Nous commençons par mapper votre site Gatsby existant—chaque modèle de page, chaque requête GraphQL, chaque dépendance de plugin, chaque route dynamique. Nous documentons votre configuration gatsby-node.js, identifions les plugins source personnalisés et cataloguons toutes les intégrations tierces.

À partir de là, nous concevons l'architecture Astro : schémas de collections de contenu, hiérarchie de mise en page, sélections d'intégration et cible de déploiement.

Phase 2 : Migration du contenu (semaine 2)

Nous construisons des scripts de migration automatisés qui transforment votre contenu de la structure de Gatsby aux collections de contenu Astro. Les schémas de frontmatter sont validés et normalisés. Les composants MDX sont mappés à leurs équivalents Astro ou enveloppés en tant qu'îles de framework.

L'utilisation de gatsby-image de Gatsby est convertie au composant <Image /> natif d'Astro, qui gère les images réactives, la conversion de format et le chargement lazy nativement—pas besoin de chaîne de plugins.

Phase 3 : Conversion de modèles et de composants (semaines 2-3)

Les modèles de page Gatsby deviennent des mises en page et des pages Astro. Les composants React qui n'ont pas besoin d'interactivité côté client deviennent des composants Astro—plus simples, plus rapides, zéro JS. Les composants interactifs restent comme React (ou sont réécrits) et utilisent les directives client: pour l'hydratation partielle.

Nous remplaçons les plugins Gatsby par des intégrations Astro :

  • gatsby-plugin-sitemap@astrojs/sitemap
  • gatsby-plugin-feed → RSS personnalisé avec @astrojs/rss
  • gatsby-plugin-mdx → Support MDX natif via @astrojs/mdx
  • gatsby-plugin-sharp → Optimisation d'image natif via astro:assets

Phase 4 : Préservation SEO (semaine 3)

C'est là que vivent ou meurent les migrations. Nous implémentons une stratégie complète de préservation d'URL :

  • Redirections 301 pour tout changement de structure d'URL, configurés au niveau de l'hébergement pour des redirections à zéro latence
  • Balises canoniques sur chaque page correspondant à votre structure d'URL existante
  • Données structurées (JSON-LD) migrées et validées par rapport au test Rich Results de Google
  • Balises meta préservées exactement—titres, descriptions, Open Graph, Twitter Cards
  • Sitemap XML régénéré et soumis à Google Search Console
  • Audit des liens internes pour attraper toutes les références cassées post-migration

Nous monitorons Google Search Console pendant 30 jours post-lancement pour attraper tout problème d'indexation immédiatement.

Phase 5 : Test et lancement (semaine 4)

Test complet de régression visuelle par rapport à votre site Gatsby existant. Benchmarks de performance comparés côte à côte. Audit d'accessibilité. Test cross-browser. Nous déployons vers une URL de staging pour que votre équipe examine, puis basculons avec zéro temps d'arrêt.

Si votre site Gatsby utilisait un service worker (courant avec gatsby-plugin-offline), nous déployons un service worker de remplacement qui force l'invalidation du cache sur les navigateurs des visiteurs existants—une étape que la plupart des guides de migration omettent entièrement.

Timeline et tarification

Une migration Gatsby vers Astro typique pour un site de contenu avec 50-200 pages prend 3-4 semaines et commence à 8 000 $. Les sites plus grands avec des plugins source personnalisés, du routage dynamique complexe ou une intégration CMS lourde peuvent nécessiter 5-6 semaines.

Les facteurs de scope incluent : nombre de modèles de page uniques, plugins Gatsby personnalisés, intégrations d'API tierces, et si vous voulez garder les composants React ou tout convertir en Astro natif.

Le fond du problème

Gatsby n'est pas mort, mais il n'obtient pas mieux. Astro est activement développé, a une communauté florissante, et a été conçu de zéro pour les sites web riches en contenu. Le chemin de migration est bien documenté, les gains de performance sont immédiats, et votre équipe de développement vous remerciera d'avoir éliminé le boilerplate GraphQL.

Arrêtez de maintenir un framework qui s'immobilise. Allez-y avec celui qui se déplace vite.

How It Works

The migration process

01

Discovery & Audit

We map every page, post, media file, redirect, and plugin. Nothing gets missed.

02

Architecture Plan

New stack designed for your content structure, SEO requirements, and performance targets.

03

Staged Migration

Content migrated in batches. Each batch verified before the next begins.

04

SEO Preservation

301 redirects, canonical tags, sitemap, robots.txt — every ranking signal carried over.

05

Launch & Monitor

DNS cutover with zero downtime. 30-day monitoring period included.

Before vs After

Gatsby vs Astro

Metric Gatsby Astro
Lighthouse Mobile 45-65 95-100
TTFB 1.2-2.5s <0.2s
Build Time (500 pages) 8-15 min 15-30s
Client JS Bundle 200-400 KB 0 KB (default)
Hosting Cost $20-50/mo $0-20/mo
Content Querying GraphQL (complex) Content Collections (simple)
FAQ

Common questions

Combien de temps dure une migration de Gatsby vers Astro ?

La plupart des sites de contenu avec 50-200 pages migrent en 3-4 semaines. Cela couvre la migration du contenu, la conversion de modèles, la préservation SEO et des tests approfondis. Les sites plus grands avec des plugins Gatsby personnalisés ou du routage dynamique complexe peuvent nécessiter 5-6 semaines. Nous vous donnons une timeline détaillée après audit de votre configuration Gatsby spécifique.

Vais-je perdre mon classement Google lors de la migration ?

Non, si c'est fait correctement. Nous implémentons des redirections 301 pour chaque URL, préservons toutes les balises meta et les données structurées, maintenons votre sitemap XML, et monitorons Search Console pendant 30 jours post-lancement. Notre processus de préservation SEO est conçu spécifiquement pour protéger vos classements existants et votre trafic organique pendant la transition.

Puis-je garder mes composants React lors de la migration vers Astro ?

Oui. Astro supporte nativement les composants React via son architecture Islands. Les composants React interactifs peuvent être hydratés côté client en utilisant les directives client d'Astro. Les composants React statiques se rendent au moment de la construction avec zéro JavaScript expédié. Vous pouvez aussi convertir graduellement les composants React en composants Astro natifs au fil du temps—il n'y a aucune pression pour le faire tout d'un coup.

Qu'est-ce qui remplace la couche de données GraphQL de Gatsby dans Astro ?

Les collections de contenu d'Astro remplacent GraphQL pour le contenu local. Vous définissez un schéma TypeScript, placez des fichiers dans un répertoire de contenu, et interrogez avec getCollection() ou getEntry(). Pour les sources de données externes, Astro utilise des appels fetch standard au moment de la construction. C'est dramatiquement plus simple—pas de fragments de requête, pas d'assemblage de schéma, pas de sessions de débogage GraphiQL.

Qu'advient-il de gatsby-image et de l'optimisation d'image ?

Astro possède l'optimisation d'image intégrée via le module astro:assets et le composant Image. Il gère les tailles réactives, le chargement lazy et la conversion de format automatique en WebP et AVIF nativement. Aucune chaîne de plugins requise. Nous convertissons toute utilisation de gatsby-image au composant Image d'Astro pendant la migration, avec une qualité de sortie équivalente ou meilleure.

Astro est-il un bon choix si mon site Gatsby utilise un CMS headless ?

Absolument. Astro s'intègre proprement avec chaque CMS headless majeur—Contentful, Sanity, Storyblok, Strapi et autres—en utilisant des appels d'API standard ou des intégrations officielles. Contrairement aux plugins source et à la couche GraphQL de Gatsby, Astro récupère directement les données du CMS au moment de la construction, ce qui est plus simple à déboguer et à maintenir.

Quels sont les inconvénients d'utiliser Gatsby ?

Gatsby peut être difficile en raison de ses temps de build complexes pour les sites plus grands, ce qui peut ralentir le processus de développement. Il dépend fortement de GraphQL, qui peut avoir une courbe d'apprentissage abrupte pour les développeurs qui ne le connaissent pas. L'écosystème de plugins de Gatsby, bien qu'étendu, peut parfois mener à des problèmes de dépendances ou des défis de compatibilité. De plus, comme c'est un générateur de sites statiques, le contenu dynamique nécessite des configurations supplémentaires, ce qui peut ajouter de la complexité et pourrait ne pas être idéal pour les sites nécessitant des mises à jour fréquentes.

Pourquoi utiliser Gatsby plutôt que React ?

Gatsby est souvent préféré à React pour construire des sites web statiques en raison de ses capacités puissantes de génération de sites statiques. Il est fourni avec un écosystème riche de plugins qui simplifient des tâches comme l'approvisionnement en données et l'optimisation d'images, ce qui peut accélérer considérablement le temps de développement. La configuration par défaut de Gatsby inclut également des optimisations de performance comme la division de code et le chargement lazy, ce qui peut être manuellement intensif dans une configuration React pure. De plus, l'intégration GraphQL de Gatsby permet une interrogation de données flexible, ce qui en fait un excellent choix pour les sites riches en contenu.

Ready to migrate?

Free assessment. We'll audit your current site and give you a clear migration plan — no commitment.

Get your free assessment →
Get in touch

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.

Get in touch →