Avant même de penser à l’interface ou à la technique, toute implémentation d’un CMS commence par la même question fondamentale : comment modéliser mon contenu ? Un mauvais modèle de contenu produit une dette technique qui s’accumule pendant des années. Un bon modèle est celui que les journalistes comprennent instinctivement et que les développeurs peuvent faire évoluer sans tout casser.
Voici comment nous avons pensé le modèle de contenu de Fatplant, et comment l’adapter à différents types de médias numériques.
Le contenu éditorial n’est pas du texte
La première erreur des CMS généralistes est de traiter tout le contenu comme du “texte avec des champs”. Un article n’est pas un formulaire. C’est un objet éditorial avec une histoire, un contexte, des relations, un cycle de vie.
Fatplant distingue plusieurs types d’objets éditoriaux, chacun avec ses propres attributs et ses propres usages.
Les articles : le coeur de la rédaction
L’article est l’unité de base de toute rédaction. Fatplant le modélise avec les champs qui comptent vraiment pour un journaliste :
- Titre et slug — l’identité de l’article
- Chapô (excerpt) — le résumé court, affiché dans les listes et les réseaux sociaux
- Contenu — le corps de l’article, composé via le page builder
- Date de publication — qui détermine le positionnement dans les flux
- Auteur — avec support de plusieurs auteurs si nécessaire
- Statut — brouillon ou publié, sans complexité superflue
Les catégories et les tags complètent la classification. Les catégories sont hiérarchiques et stables (Politique, Économie, Culture) ; les tags sont libres et transversaux (noms propres, thématiques ponctuelles).
Les dossiers : raconter sur la durée
Un dossier est un récit long. Quand une rédaction couvre un sujet pendant plusieurs semaines — une élection, un procès, une crise sanitaire — elle a besoin d’un objet qui agrège les articles liés et offre une page de référence à ses lecteurs.
Le dossier dans Fatplant est exactement cela : une page éditoriale qui liste des articles dans un ordre choisi par la rédaction, avec une introduction, une image de couverture et des champs SEO dédiés.
Ce modèle évite les “catégories à usage unique” — une pratique courante dans les vieux CMS qui pollue la taxonomie globale avec des classifications ad hoc qui perdent leur sens une fois l’événement terminé.
Les podcasts : le contenu audio a ses règles
Le podcast est un format à part. Une émission audio a une identité propre (nom, présentation, image de couverture) et produit des épisodes réguliers. Chaque épisode a sa durée, sa date de mise en ligne, son fichier audio.
Fatplant modélise le podcast comme une entité parente qui contient une liste d’épisodes, et génère automatiquement un flux RSS compatible avec toutes les plateformes d’écoute (Apple Podcasts, Spotify, Deezer). Plus besoin de gérer manuellement le flux XML.
Les lives : l’information en mouvement
La couverture d’un événement en direct est un cas d’usage que les CMS traditionnels gèrent mal. Fatplant introduit l’entité live : un flux chronologique de courtes mises à jour, chacune horodatée et attribuée à un journaliste.
Le live a un statut (prévu, en cours, terminé) qui permet d’adapter l’affichage frontend en conséquence. Une fois l’événement terminé, le live devient une archive consultable — un récit de l’événement reconstituable minute par minute.
Adapter le modèle à votre média
Fatplant propose un modèle de contenu standard qui couvre la grande majorité des besoins d’un média numérique. Mais chaque rédaction a ses particularités.
Un magazine culturel voudra peut-être ajouter un champ “note” sur les critiques de films ou de disques. Un journal local aura besoin de géolocaliser ses articles. Un média spécialisé pourra vouloir un nouveau type de contenu (fiches produits, profils de personnalités, résultats sportifs).
Le système de plugins de Fatplant permet d’étendre le modèle de données Symfony/Doctrine sans modifier le core. Un plugin peut enregistrer de nouveaux champs, de nouvelles entités et de nouveaux endpoints API.
Les champs SEO : ne pas les oublier
Chaque entité publiable dans Fatplant dispose d’un objet SEO embarqué : méta titre, méta description, image Open Graph, option noindex. Ces champs sont renseignés dans l’administration et utilisés par le frontend SSR pour générer les balises HTML appropriées.
Un bon modèle de contenu inclut les champs SEO dès le départ — les ajouter après coup est toujours plus douloureux.
Conclusion
La qualité d’un CMS se mesure d’abord à son modèle de contenu. Fatplant propose un modèle éditorial pensé pour les médias numériques modernes, extensible via les plugins pour s’adapter à chaque rédaction. C’est la fondation sur laquelle tout le reste — page builder, collaboration, API — prend son sens.