Introduction à Fatplant
Qu’est-ce que Fatplant ?
Fatplant est un système de gestion de contenu (CMS) open-source et self-hosted, conçu pour les médias modernes. Il permet à des rédactions, des équipes éditoriales et des développeurs indépendants de créer, organiser et publier du contenu numérique sans dépendre d’une plateforme tierce.
Contrairement aux CMS traditionnels, Fatplant est pensé dès le départ pour la collaboration en temps réel, la structuration de contenu éditorial riche (articles, dossiers, podcasts, lives) et la personnalisation complète de l’expérience de lecture.
Philosophie
Open-source et souveraineté
Fatplant est distribué sous licence MIT. Son code est public, auditible, et vous pouvez le modifier librement. Vous hébergez vos données sur votre propre infrastructure — aucun abonnement SaaS, aucune dépendance à un fournisseur.
Editorial-first
L’interface d’administration est conçue pour les journalistes et les éditeurs, pas seulement pour les développeurs. Le page builder visuel, les statuts éditoriaux (brouillon / publié), les champs SEO intégrés et le support des workflows collaboratifs font de Fatplant un outil que les équipes adoptent naturellement.
Extensible par nature
Fatplant expose un système de plugins basé sur des hooks, une API publique complète (API Platform / JSON:API), et un mécanisme de thèmes et layouts. Les développeurs peuvent étendre toutes les couches sans forker le projet.
Architecture
Fatplant repose sur une architecture découplée (headless) organisée en plusieurs services indépendants :
┌──────────────────────────────────────────────────┐
│ Navigateur │
│ ┌─────────────────┐ ┌───────────────────┐ │
│ │ Admin SvelteKit│ │ Frontend SvelteKit│ │
│ │ (SPA) │ │ (SSR) │ │
│ └────────┬────────┘ └────────┬──────────┘ │
└───────────┼─────────────────────┼────────────────┘
│ │
┌──────▼──────────────────── ▼──────┐
│ Backend Symfony │
│ + API Platform │
│ (REST JSON:API / JWT Auth) │
└───────┬─────────┬─────────────────┘
│ │
┌───────▼───┐ ┌──▼──────────┐
│PostgreSQL │ │ Redis │
└───────────┘ └─────────────┘
│
┌───────▼───────────┐
│ Serveur Yjs │
│ (collaboration │
│ temps réel) │
└───────────────────┘ Backend Symfony + API Platform
Le cœur métier de Fatplant est un backend Symfony enrichi par API Platform. Il expose une API RESTful conforme JSON:API qui sert à la fois l’administration et le frontend public. La sécurité repose sur des tokens JWT.
Administration SvelteKit (SPA)
L’interface d’administration est une Single Page Application construite avec SvelteKit. Elle inclut le page builder visuel, la gestion des articles et médias, et la collaboration en temps réel via le serveur Yjs.
Frontend SvelteKit (SSR)
Le frontend public est un projet SvelteKit indépendant en mode Server-Side Rendering, idéal pour le référencement et les performances. Il consomme l’API publique de Fatplant.
Serveur Yjs (collaboration CRDT)
Un serveur WebSocket dédié, basé sur Yjs (algorithme CRDT), gère la collaboration temps réel entre éditeurs. Les modifications sont synchronisées sans conflit et persistées dans le backend.
PostgreSQL et Redis
- PostgreSQL est la base de données principale (articles, médias, utilisateurs, structure de contenu).
- Redis est utilisé pour le cache, les sessions et la file de messages internes.
Ce que Fatplant n’est pas
- Ce n’est pas un service hébergé — vous apportez votre propre serveur.
- Ce n’est pas un constructeur de site généraliste — il est optimisé pour la production éditoriale de médias.
- Ce n’est pas un headless CMS en lecture seule — il intègre un frontend SSR complet en option.
Conformité RGPD
Fatplant est développé en France, avec une attention particulière à la protection des données personnelles. Les données restent sur votre infrastructure, aucune télémétrie n’est envoyée à des tiers.