Skip to content
Learni
Voir tous les tutoriels
CMS & Contenu

Comment démarrer avec Sanity CMS en 2026

Read in English

Introduction

Sanity est un CMS headless révolutionnaire conçu pour les développeurs modernes. Contrairement aux CMS traditionnels comme WordPress, qui imposent un rendu frontend couplé, Sanity sépare la gestion de contenu (backend) de sa présentation (frontend). Cela signifie que vous stockez vos données de manière structurée via une API GraphQL ou GROQ, et les consommez librement dans n'importe quelle application : sites React, apps mobiles, ou même IoT.

Pourquoi adopter Sanity en 2026 ? Avec la montée des architectures Jamstack et des sites statiques générés (SSG/SSR), Sanity excelle par sa collaboration en temps réel, sa scalabilité infinie et son studio personnalisable. Les équipes marketing éditent du contenu riche (images, vidéos, documents) sans toucher au code, tandis que les devs modélisent des schémas flexibles. Ce tutoriel beginner, 100% conceptuel, vous guide des bases à la maîtrise théorique, pour que vous puissiez bookmarker et relire comme référence. Prêt à transformer votre workflow contenu ? (128 mots)

Prérequis

  • Connaissances de base en développement web (HTML/CSS/JS).
  • Familiarité avec les API REST ou GraphQL (concepts, pas du code).
  • Un compte gratuit sur sanity.io (illimité pour les petits projets).
  • Compréhension des JSON comme format de données structurées.

Qu'est-ce que Sanity ? Les fondations

Imaginez Sanity comme un tableau de bord Excel intelligent pour du contenu riche. Au cœur : le Sanity Studio, une interface admin web personnalisable où éditeurs et devs collaborent.

Concepts clés :

  • Projets : Espaces isolés pour chaque app (comme un workspace).
  • Datasets : Bases de données au sein d'un projet (prod/staging).
  • Documents : Unités de contenu (articles, produits) avec champs personnalisés.

Analogie : Sanity = Lego. Vous définissez des blocs (schémas), assemblez-les en structures (documents), et queryez via API. Pas de base de données relationnelle rigide ; tout est schémaless par défaut, mais typé pour la sécurité.

Étude de cas : Un blog. Un schéma 'post' inclut titre (string), body (array de blocs), auteur (référence). Scalable pour 1M+ documents sans downtime.

L'architecture headless de Sanity

Headless signifie 'sans tête' : pas de rendu intégré. Sanity fournit :

  1. Backend CDN global : Contenu en temps réel, edge-caché (99.99% uptime).
  2. API flexibles : REST, GraphQL, ou GROQ (langage query maison, ultra-performant).
  3. Studio : Interface React customisable (drag-and-drop, visionneuse média).
Flux typique :
  • Devs modélisent schémas (objets JS définissant types/champs).
  • Éditeurs créent documents via Studio.
  • Frontend query l'API : *_where(slug == $slug)[0] en GROQ.
Avantages vs. Strapi/Directus :
CritèreSanityAutres
-------------------------
Temps réelOui (WebSockets)Limité
SchémasPortable (fichiers)DB-centré
PrixFreemium scalableSouvent payant tôt
Progression : Des schémas statiques aux schémas dynamiques (via plugins).

Modélisation des données : Schémas et documents

Les schémas sont le cœur théorique. Un schéma = définition d'un type de document :

  • Champs primitifs : string, number, boolean, text (rich).
  • Champs objets : {name: string, age: number}.
  • Tableaux : array of blocks (pour éditeurs WYSIWYG).
  • Références : Liens vers d'autres documents (weak/strong).

Bonnes pratiques précoces :
  • Utilisez namespaces pour organiser (ex: 'blog.post').
  • Validation intégrée (required, maxLength).
  • Preview : Secret pour drafts vs. published.

Exemple concret : Schéma 'produit' :
  • Nom (string).
  • Prix (number).
  • Images (array of image).
  • Catégorie (référence à schéma 'categorie').

Documents : Instances live. Cycle : Draft → Publish → Unpublish. Temps réel = éditeurs voient changements instantanés.

Requêtes et consommation : GROQ en théorie

GROQ (Graph-Relational Object Queries) est le query language star de Sanity. Plus simple que GraphQL, optimisé pour du contenu.

Syntaxe progressive :

  1. Sélection : [_type == "post"] (tous les posts).
  2. Filtres : [_type == "post" && publishedAt < now()][0..5] (5 derniers publiés).
  3. Projections : [_type == "post"] {title, "slug": slug.current}.
  4. Joins : [_type == "post"] {..., "author": *[_type == "author" && _id == ^.author._ref][0]{name}}.

Analogie : SQL meets MongoDB. Performant sur milliards de docs.

Variables : $mySlug pour params dynamiques. Intégrez dans Next.js via sanity.client. Cachez avec ISR pour perf.

Bonnes pratiques essentielles

  • Modélisez itérativement : Commencez simple, raffinez avec retours éditeurs.
  • Utilisez des schémas portables : Versionnez en Git pour déploiements CI/CD.
  • Sécurisez les accès : Rôles/membres (admin/editor/viewer) + API tokens scoped.
  • Optimisez les queries : Évitez les *[] sur gros datasets ; paginez avec [0...100].
  • Intégrez Vision : Plugin pour preview live dans VSCode/Studio.

Erreurs courantes à éviter

  • Schéma trop rigide : Évitez les champs obligatoires excessifs ; préférez optionnels + fallbacks.
  • Queries non-indexées : Sans indexes GROQ, perf chute sur gros volumes (ajoutez via Studio).
  • Oublier les locales : Pour i18n, utilisez string[] ou pt::locale (pas document par langue).
  • Ignorer les assets : Images/vidéos = hotspots/crop ; optimisez avec CDN automatique.

Pour aller plus loin

Maîtrisez Sanity en pratiquant :


Découvrez nos formations Learni sur les CMS headless pour un atelier pratique Next.js + Sanity. Communauté Discord Sanity pour Q&A live.