Sanity CMS : l'éditeur de contenu que les développeurs adorent

Avis sur Sanity — CMS headless avec collaboration en temps réel, requêtes GROQ et interface d'administration personnalisable. Pour les équipes qui tiennent au DX et au contrôle du contenu.

Sanity est un CMS headless norvégien, fondé en 2015. La principale différence avec les concurrents : le contenu est constitué de données structurées, pas de blocs HTML. Les développeurs décrivent le schéma dans le code, les éditeurs le remplissent dans une interface collaborative en temps réel, et les requêtes de contenu sont exécutées en GROQ — le langage de requête propre à Sanity.

Site : sanity.io

Architecture

Sanity sépare le contenu et la présentation à un niveau fondamental. Le contenu vit dans le Sanity Content Lake — un stockage cloud accessible via API. L’interface d’administration (Sanity Studio) est une application React qui peut être personnalisée à volonté et hébergée n’importe où.

Le schéma de contenu est décrit dans des fichiers JavaScript/TypeScript. Vous définissez les champs, leurs types, validations, relations — et le Studio adopte automatiquement le schéma. Les modifications du schéma sont déployées avec le code du Studio — un workflow basé sur Git sans configurateurs GUI.

GROQ — le langage de requête

GROQ (Graph-Relational Object Queries) — c’est comme GraphQL, mais conçu pour travailler avec des documents. Il permet d’interroger des structures imbriquées, de filtrer, d’agréger et de transformer les données en une seule requête. Exemple :

*[_type == "post" && publishedAt < now()] | order(publishedAt desc) {
  title,
  "slug": slug.current,
  "author": author->name,
  "related": *[_type == "post" && references(^._id)]{title}
}[0...10]

Puissant, mais demande un temps d’adaptation. Les développeurs familiers avec GraphQL le maîtrisent en un jour ou deux.

Collaboration en temps réel

Plusieurs éditeurs peuvent travailler sur le même document simultanément. Les modifications apparaissent instantanément — comme dans Google Docs. Les conflits sont résolus au niveau des champs. Pour les rédactions et les équipes de contenu où 2 à 3 personnes travaillent sur un article, c’est une killer feature.

Tarifs

  • Free : contenu illimité, 2 utilisateurs, 100 Go d’assets
  • Growth : 15 $/mois par utilisateur — rôles personnalisés, publication planifiée
  • Enterprise : sur mesure — SSO, audit logs, support dédié

Le forfait gratuit est incroyablement généreux. Pour une équipe jusqu’à 5 personnes — 75 $/mois. À comparer avec Contentful (489 $/mois pour 5 utilisateurs) — la différence est d’un ordre de grandeur.

Ce qui est bien

L’expérience développeur — la fonctionnalité phare. Schéma dans le code, déploiement via Git, personnalisation de l’interface en React. Intégrez vos propres composants directement dans le panneau de l’éditeur : prévisualisations, widgets personnalisés, intégrations. Le Sanity Studio peut être stylisé aux couleurs du client.

GROQ — une fois maîtrisé, donne un super-pouvoir. Filtrage par documents liés, champs conditionnels, agrégations — tout dans une seule requête sans problème N+1.

Le contenu est accessible via GraphQL et GROQ simultanément. API rapide, mise en cache sur CDN, webhooks pour les rebuilds.

Ce qui freine

La courbe d’apprentissage est plus raide que Strapi ou Storyblok. GROQ doit être appris, le Studio doit être construit — ce n’est pas du Plug & Play. Pour un simple blog avec une structure standard, le surcoût est important.

Vendor lock-in : le contenu dans le Content Lake n’est pas simplement du JSON. L’export en Markdown est possible, mais la structure Sanity (references, blocks, portable text) est perdue. La migration inverse serait douloureuse.

Le prix par utilisateur (15 $/mois) s’accumule rapidement pour les grandes équipes. 20 éditeurs — 300 $/mois.

Verdict

Sanity est le CMS pour les équipes où les développeurs participent à la conception du contenu. Si vous avez une structure de données complexe, un besoin de collaboration en temps réel et l’envie de personnaliser l’interface d’administration pour le client — Sanity est le meilleur choix du marché. Pour les blogs simples et les landing pages — prenez Strapi, c’est plus simple.