Skip to content

Objet : Schéma Sanity
Type : Document
Slice : Slice 1 (Page d’accueil)
Cycle : DOC → SPEC → CODE → TEST → INTÉG
Statut : DOC


Le schéma page est un document Sanity qui représente une page marketing (vitrine) avec un contenu modulaire flexible via un PageBuilder. Il permet aux équipes marketing de créer des pages de manière autonome sans intervention technique.

  • Page d’accueil (homepage)
  • Pages marketing (landing pages)
  • Pages de présentation (about, features, etc.)
  • Type : Document Sanity
  • Champ principal : PageBuilder (array de blocs modulaires)
  • Blocs supportés : hero, features, testimonials, cta, richText, imageGallery
  • Métadonnées SEO : title, description, slug
  • Mode preview : Support du mode preview Sanity

Entrée : Configuration du schéma page dans Sanity Studio

Structure :

{
_type: "page",
title: string,
slug: { current: string },
description: string,
pageBuilder: [
{
_type: "hero",
heading: string,
tagline: string,
image: image
},
{
_type: "features",
title: string,
features: [
{
title: string,
text: string,
icon: string
}
]
},
{
_type: "testimonials",
title: string,
testimonials: [
{
name: string,
role: string,
text: string,
avatar: image
}
]
},
{
_type: "cta",
heading: string,
text: string,
buttonText: string,
buttonLink: string
},
{
_type: "richText",
content: blockContent
},
{
_type: "imageGallery",
title: string,
images: [image]
}
]
}

Règles :

  • title : obligatoire, titre de la page
  • slug : obligatoire, unique, utilisé pour l’URL
  • description : optionnel, pour le SEO
  • pageBuilder : obligatoire, tableau de blocs modulaires
  • Chaque bloc a ses propres champs spécifiques

Hero :

  • heading : titre principal
  • tagline : sous-titre
  • image : image d’illustration

Features :

  • title : titre de la section
  • features : tableau de features (title, text, icon)

Testimonials :

  • title : titre de la section
  • testimonials : tableau de témoignages (name, role, text, avatar)

CTA :

  • heading : titre de la section
  • text : texte de description
  • buttonText : texte du bouton
  • buttonLink : lien du bouton

RichText :

  • content : contenu Portable Text (blockContent)

ImageGallery :

  • title : titre de la galerie
  • images : tableau d’images

Sortie : Document Sanity de type page

Format : JSON avec la structure définie ci-dessus

Utilisation :

  • Requête GROQ pour récupérer le document
  • Utilisation dans Astro pour le rendu SSG
  • Support du mode preview avec previewDrafts

Sortie : Métadonnées pour l’optimisation SEO

Champs :

  • title : <title> HTML
  • description : <meta name="description">
  • slug : URL de la page

Effet : Le schéma page nécessite un rendu dynamique des blocs PageBuilder

Impact :

  • Astro doit parcourir le tableau pageBuilder
  • Chaque bloc doit avoir un composant Astro correspondant
  • Le rendu doit être flexible pour accepter différents types de blocs

Effet : Le schéma page supporte le mode preview Sanity

Impact :

  • Le client Sanity doit basculer en mode previewDrafts
  • Le cookie sanity-preview doit être détecté
  • Le cache Edge doit être bypassé en mode preview

Erreur Cause probable Solution
Schéma non trouvé Type page non défini dans le schéma Créer le schéma page
Bloc non reconnu Type de bloc non défini dans le PageBuilder Ajouter le type de bloc dans le schéma
Slug en double Deux pages avec le même slug Utiliser la validation Sanity pour l’unicité
Portable Text invalide Structure de blockContent incorrecte Vérifier la structure du blockContent

Non applicable (schéma Sanity)


Avant de passer à l’étape SPEC, vérifier :

  • La structure du schéma est documentée
  • Les types de blocs PageBuilder sont définis
  • Les contrats d’entrée/sortie sont documentés
  • Les side effects sont identifiés
  • Les erreurs potentielles sont documentées

Validation requise : Confirmer que la documentation du schéma page peut passer à l’étape SPEC.


Date Version Description Auteur
2026-09-16 1.0 Création initiale Devin
Edit page

Last updated: