Plan d'implémentation - Page d'accueil (Slice 1 - Golden Path)
Analyse des prérequis existants
Section titled “Analyse des prérequis existants”✅ Déjà en place
Section titled “✅ Déjà en place”- Utilitaire getSanityClient() : Existant dans apps/web/src/lib/sanity.ts
- Route Astro index.astro : Existant (contient du code de test à remplacer)
- API Preview :
/api/previewet/api/exit-previewexistants - Sanity Studio : Configuré avec sanity.config.ts
- Schémas Sanity : post, author, category, blockContent, amn, submission existants
- Intégration Sanity : Configurée dans astro.config.mjs
❌ Manquants
Section titled “❌ Manquants”- Schéma
pageavec PageBuilder : Non existant - Blocs PageBuilder : hero, features, testimonials, cta, richText, imageGallery
- Layout
MainLayout.astro: Seul BlogPost.astro existe - Middleware Cloudflare : Non existant
- Configuration SSG : Actuellement en mode
server(SSR), doit passer en static (SSG) - TypeScript types : sanity-typegen non configuré
Plan d’implémentation
Section titled “Plan d’implémentation”Phase 1 : Configuration SSG et Types
Section titled “Phase 1 : Configuration SSG et Types”- Modifier astro.config.mjs : Changer
output: 'server'→output: 'static' - Configurer sanity-typegen : Ajouter la génération de types TypeScript automatique
- Mettre à jour apps/web/package.json : Ajouter script de génération de types
Phase 2 : Schémas Sanity
Section titled “Phase 2 : Schémas Sanity”- Créer le schéma
page.tsdans apps/studio/schemaTypes/- Structure avec PageBuilder (array de blocs)
- Champs : title, slug, seo (title, description, image), status
- Créer les blocs PageBuilder dans apps/studio/schemaTypes/
pageBuilderHero.ts: titre, sous-titre, description, CTA, imagepageBuilderFeatures.ts: titre, liste de features (titre, description, icône)pageBuilderTestimonials.ts: titre, liste de témoignagespageBuilderCta.ts: titre, description, boutonspageBuilderRichText.ts: contenu Portable TextpageBuilderImageGallery.ts: galerie d’images
- Mettre à jour schemaTypes/index.ts : Ajouter les nouveaux schémas
Phase 3 : Layout et Composants Astro
Section titled “Phase 3 : Layout et Composants Astro”- Créer
MainLayout.astrodans apps/web/src/layouts/- Structure HTML de base
- Intégration Header/Footer
- Injection des métadonnées SEO
- Créer les composants de blocs PageBuilder dans
apps/web/src/components/pageBuilder/Hero.astroFeatures.astroTestimonials.astroCta.astroRichText.astroImageGallery.astro
Phase 4 : Route et Middleware
Section titled “Phase 4 : Route et Middleware”- Refactor index.astro :
- Utiliser
MainLayout.astro - Récupérer le contenu page depuis Sanity
- Rendre les blocs PageBuilder dynamiquement
- Injection SEO
- Utiliser
- Créer le middleware Cloudflare dans
apps/web/src/middleware.ts- Détection du cookie
sanity-preview - Bypass du cache Edge en mode preview
- Headers CSP
- Détection du cookie
Phase 5 : Tests et Documentation
Section titled “Phase 5 : Tests et Documentation”- Créer la documentation de test dans GettingStarted/
- Instructions pour tester localement (Astro dev + Studio)
- Instructions pour tester le mode preview
- Checklist de validation
- Tester localement : Validation du build SSG et du mode preview
Ordre de priorité
Section titled “Ordre de priorité”- Phase 1 (Configuration) - Fondation technique
- Phase 2 (Schémas) - Modèle de données
- Phase 3 (Layout/Composants) - UI
- Phase 4 (Route/Middleware) - Intégration finale
- Phase 5 (Tests/Doc) - Validation
Estimation : 3-4 jours de développement