Aller au contenu
~/lucas

← Retour aux projets

Site de l’AS Saint-Rogatien

Le site public du club, qui remplace un WordPress : des pages générées à l’avance avec Nuxt, un contenu en JSON, et pas de base de données.

En productionCode source privé

  • Nuxt 4
  • Vue 3
  • TypeScript
  • Tailwind 4
  • Docker
  • nginx
  • Coolify

Contexte

Le site du club sert de vitrine à ceux qui découvrent la St Ro, et d’information pour les licenciés. Il remplace le WordPress que le club utilisait de 2020 à 2026, et il est en ligne sur le domaine officiel depuis octobre 2026.

Ce que j’ai fait

  • Un site Nuxt 4 pré-généré : les pages sont fabriquées une fois pour toutes au moment du build, puis servies telles quelles par nginx.
  • Pas de base de données ni d’espace d’administration : tout le contenu (équipes, plannings, articles) tient dans quelques fichiers JSON versionnés avec le code.
  • La reprise des articles de l’ancien WordPress.
  • Un petit service qui transmet par e-mail les formulaires du site, protégé contre les robots sans captcha.
  • Un déploiement automatique : trois images Docker, construites par Coolify à chaque push sur main.

Deux décisions

  • Publier sans reconstruire le site. Le contenu est lu au build, puis relu à l’exécution depuis une image nginx dédiée : mettre à jour un horaire ne demande pas de tout reconstruire, et la copie du build sert de repli.
  • Un seul script écrit le contenu, et il vérifie avant d’écrire : l’équipe existe, l’heure de rendez-vous précède le match, l’article a une longueur minimale. Une erreur d’horaire peut envoyer une équipe au mauvais gymnase, donc le script la refuse.

Garde-fous

Le typage TypeScript et les vérifications faites à la publication.

// Pour mes projets de 2026, je travaille avec des agents IA (Claude Code) : je cadre le besoin, j’écris la spécification, puis je relis et je valide le code.