Insights / Articles techniques

Concevoir un site Astro + Cloudflare qui grandit fonctionnalité par fonctionnalité

Comment nous avons combiné Astro et Cloudflare Pages avec un chat IA, Sveltia CMS, un blog multilingue, des CTA de services, un rendu Markdown sécurisé et des commentaires sans service externe.

  • Technologie
  • Astro
  • Cloudflare
  • Site web
  • AI
  • CMS
Concevoir un site Astro + Cloudflare qui grandit fonctionnalité par fonctionnalité
Sommaire
  1. Résumé
  2. Petites API sur Cloudflare
  3. CMS comme surface d’édition
  4. Traduction comme contenu statique
  5. Canaux de contact séparés
  6. La sortie IA n’est pas du HTML fiable
  7. Commentaires dans Cloudflare
  8. Lire par objectif
  9. Ordre d’implémentation
  10. Conclusion

Quand on démarre avec Astro et Cloudflare Pages, des pages statiques rapides et sûres suffisent souvent.

Avec le temps, de nouveaux besoins arrivent : édition depuis le navigateur, pages localisées, orientation par chat IA, transmission du contexte au formulaire et commentaires.

Cet article est un index d’implémentation : il aide à décider dans quelle couche placer chaque fonction, dans quel ordre les ajouter et quel guide lire ensuite. L’exemple vient du site Acecore, mais le modèle s’applique à d’autres sites Astro + Cloudflare.

Résumé

L’architecture sépare les rôles :

Couche Rôle
Astro Pages, blog, OGP, RSS, sitemap et UI
Cloudflare Pages, Pages Functions, D1 et Turnstile
GitHub PR, diffs CMS, traductions et historique
Sveltia CMS Source japonaise, auteurs, tags, images
OpenAI API Réponses du chat de contact
Pagefind Index de recherche pour HTML revu

Ce qui peut être statique reste statique. Le dynamique passe par de petites API.

Petites API sur Cloudflare

Le chat IA et les commentaires suivent le même modèle.

Astro rend l’interface. Pages Functions gère la frontière API. Les secrets, bindings D1, Turnstile, Origin checks et rate limits restent côté serveur.

CMS comme surface d’édition

Sveltia CMS n’est pas une base de données runtime. Il crée des changements Git.

Le contenu japonais, les auteurs, tags, images et JSON passent par PR, build et review.

Traduction comme contenu statique

La localisation n’est pas une traduction de l’interface au moment de l’affichage.

Chaque langue a sa propre URL, son title, sa description, ses métadonnées OGP, JSON-LD, RSS, sitemap et hreflang.

Canaux de contact séparés

Le chat IA aide les visiteurs qui hésitent. Le CTA de service conserve le contexte. Le formulaire enregistre la demande formelle.

Chaque canal a son rôle.

La sortie IA n’est pas du HTML fiable

Les liens Markdown de l’IA sont traités comme du texte jusqu’à validation.

Seuls les liens autorisés par allowlist deviennent des éléments DOM sûrs.

Commentaires dans Cloudflare

Les commentaires ne reposent pas sur un widget externe.

Pages Functions reçoit GET/POST, D1 stocke les commentaires et Turnstile protège les envois.

Lire par objectif

Il n’est pas nécessaire de tout lire d’abord. Commencez par la fonction à ajouter.

Objectif Lire d’abord
Modifier articles et images depuis le navigateur Guide d’installation de Sveltia CMS
Publier des pages multilingues indexables Exploiter un blog multilingue avec Sveltia CMS
Guider les visiteurs avec le chat IA Conception technique du chat IA de contact
Rendre des liens sûrs dans les réponses IA Rendu sécurisé des liens Markdown dans les réponses IA
Transmettre le contexte du service au formulaire Transmettre le contexte du CTA au formulaire
Ajouter des commentaires sans service externe Commentaires de blog Astro avec Cloudflare seulement

Ordre d’implémentation

Pour un site similaire, l’ordre pratique est :

  1. Stabiliser les pages statiques, le blog, RSS, sitemap et OGP avec Astro.
  2. Ajouter Sveltia CMS pour modifier la source japonaise.
  3. Générer les pages localisées en HTML statique.
  4. Ajouter le guidage par chat IA et les CTA de services.
  5. Verrouiller les liens Markdown, le prefill de formulaire, les Origin checks et les rate limits.
  6. Ajouter les commentaires dans Cloudflare seulement quand ils deviennent nécessaires.

Conclusion

Astro + Cloudflare permet d’étendre un site institutionnel sans perdre les avantages du statique.

Utilisez cette page comme point d’entrée et n’ajoutez que les éléments dont votre site a besoin, sans affaiblir la base statique.

Site Architecture

Couches d'extension du site

Garder le site statique par défaut et ajouter du dynamique seulement où c'est nécessaire.

  1. Livrer

    Générer le HTML avec Astro et le servir sur Cloudflare Pages.

  2. Éditer

    Modifier la source japonaise dans Sveltia CMS et revoir par PR.

  3. Traduire

    Garder les traductions dans des PR plutôt que dans toute l'interface CMS.

  4. Guider

    Utiliser le chat IA et les CTA de services pour orienter vers le bon formulaire.

Différences entre ajouter des fonctions isolées et les intégrer à une architecture globale

Ajouter chaque fonction séparément

  • L’IA, le CMS, les commentaires et les formulaires finissent par suivre des principes de conception différents
  • Les scripts et interfaces de services externes se multiplient, dispersant la responsabilité d’explication
  • Des écarts apparaissent facilement entre les URL multilingues, l’index de recherche et l’environnement de prévisualisation
  • Les relations entre fonctions restent invisibles et l’ordre d’adoption est difficile à décider

Ajouter par couches

  • Les rôles d’Astro, Cloudflare, GitHub et de l’API OpenAI peuvent être expliqués séparément
  • Les API dynamiques sont regroupées dans Pages Functions et le stockage peut être rapproché de Cloudflare avec D1
  • Les mises à jour du CMS, les traductions, la recherche, RSS et sitemap partagent la même structure de contenu
  • La page se parcourt facilement comme un index par usage et ordre d’adoption

Vérifications de conception pour réutiliser cette architecture sur un autre site

  • Séparer ce qui peut être généré statiquement de ce qui nécessite une API
  • Séparer le CMS comme entrée d’édition, la traduction sous forme de PR et la décision de publication au build
  • Ne pas transmettre de données personnelles à l’IA de contact et la laisser guider uniquement avec des informations publiées
  • Transmettre le contexte du formulaire par des paramètres d’URL et conserver des valeurs reçues stables
  • Définir explicitement dans la configuration le nom physique de D1 et son binding pour les données soumises, comme les commentaires
  • Ne pas faire confiance aux sorties d’IA ni aux contributions utilisateur comme HTML et les traiter par listes d’autorisation

Questions fréquentes

Par où faut-il commencer ?

Commencez par consolider les pages statiques Astro, le blog, RSS, sitemap et OGP. Ajoutez ensuite le CMS et les langues ; lorsque le parcours de contact devient nécessaire, ajoutez le chat IA, les CTA de services et les commentaires.

Faut-il tout construire uniquement avec Cloudflare ?

Non. Certaines parties, comme l’IA de contact, utilisent l’API OpenAI. L’essentiel est de rapprocher de Cloudflare la diffusion, la frontière des API, la base de données et la protection antibot, tout en choisissant consciemment où employer des services externes.

Un petit site a-t-il besoin de tout cela ?

Il n’est pas nécessaire de tout intégrer dès le départ. Mais si vous prévoyez un CMS, un parcours de contact, plusieurs langues ou des commentaires, décider tôt des URL, du stockage, de l’environnement de prévisualisation et de l’index de recherche facilitera la suite.