QuietCMS est un système de gestion de contenu écrit en PHP 8.1, open source et publié sous licence MIT. Il repose sur une idée simple : un site n'a pas besoin d'une base de données relationnelle pour être rapide, sûr et agréable à administrer. Toutes les données — pages, articles, catégories, médias, menus, barres latérales et réglages — sont stockées sous forme de fichiers JSON directement sur le système de fichiers.

Le résultat est un CMS que l'on déploie en copiant un dossier, que l'on sauvegarde par un simple rsync, que l'on versionne avec Git et dont on maîtrise chaque rouage. Pas de couche d'abstraction opaque, pas de dépendances à mettre à jour dans l'urgence : juste du PHP standard, lisible et auditable. Son nom dit l'intention — un outil discret, qui se fait oublier pour laisser place au contenu.

Pourquoi un CMS sans base de données ?

La plupart des CMS imposent un serveur de base de données (MySQL, PostgreSQL…) même pour un site vitrine de quelques pages. Cela ajoute un service à installer, à sécuriser, à sauvegarder et à maintenir — souvent pour stocker un contenu qui change rarement. QuietCMS prend le parti inverse :

  • Déploiement trivial — un hébergement PHP mutualisé suffit. On téléverse les fichiers, on visite install.php, et le site est en ligne.
  • Sauvegarde et migration sans effort — copier le dossier de contenu suffit à tout sauvegarder. Aucun export SQL, aucune restauration hasardeuse.
  • Versionnage natif — chaque modification de contenu est un changement de fichier : l'historique Git devient l'historique éditorial du site.
  • Surface d'attaque réduite — pas de port de base de données exposé, pas d'injection SQL possible.

Philosophie du projet

QuietCMS s'appuie sur quatre principes fondateurs qui guident chaque décision technique :

  • Zéro dépendance — aucune bibliothèque externe, aucun gestionnaire de paquets requis. Le cœur fonctionne avec PHP pur, ce qui simplifie le déploiement, garantit la longévité du code et réduit la surface d'attaque.
  • Stockage flat-file — les fichiers JSON sont lisibles par un humain, versionnables avec Git et sauvegardables par un simple rsync. Aucun serveur de base de données séparé à administrer.
  • Sécurité d'abord — URL d'administration aléatoire, chiffrement AES-256-GCM des données sensibles, rate limiting, protection CSRF et sanitisation stricte des entrées sont intégrés dès l'origine, jamais ajoutés après coup.
  • Administration sereine — un back-office clair, organisé en onglets, pensé pour les éditeurs non techniques autant que pour les développeurs.

Le stockage flat-file en pratique

Stockage flat-file de QuietCMS : pages, articles et réglages en fichiers JSON lisibles et versionnables

Chaque type de contenu correspond à un dossier, et chaque entrée à un fichier JSON. Une page, un article ou un réglage sont donc des objets transparents que l'on peut lire, comparer et restaurer sans outil spécialisé.

  • Lisibilité — ouvrir un fichier suffit à comprendre son contenu : titre, slug, statut, métadonnées SEO, image à la une…
  • Intégrité — les écritures sont atomiques (verrou + écriture temporaire) pour éviter toute corruption en cas d'accès concurrent.
  • Portabilité — déplacer un site d'un hébergeur à un autre revient à déplacer un dossier. Aucune dépendance à un moteur de base de données ou à une version précise de celui-ci.
  • Traçabilité — couplé à Git, l'historique des fichiers devient un journal éditorial complet : qui a changé quoi, quand, et comment revenir en arrière.

Sécurité intégrée, pas en option

Sécurité intégrée de QuietCMS : AES-256-GCM, protection CSRF, rate limiting, URL admin aléatoire, en-têtes HSTS et CSP

La sécurité n'est pas une extension à activer : elle est tissée dans le cœur du CMS. Un site QuietCMS fraîchement installé est déjà durci selon les bonnes pratiques actuelles.

  • Chiffrement AES-256-GCM des données sensibles au repos (par exemple les identifiants SMTP).
  • Clé de chiffrement auto-générée — créée et persistée de façon sécurisée au premier démarrage, sans manipulation manuelle.
  • URL d'administration aléatoire pour soustraire le back-office aux scans automatisés.
  • Protection CSRF sur tous les formulaires et rate limiting par IP sur les tentatives de connexion.
  • Filtrage du trafic — blocage d'adresses IP, de sous-réseaux /24 ou de pays entiers depuis le back-office, avec liste blanche des administrateurs.
  • En-têtes HTTP de sécurité — HSTS, Content-Security-Policy à nonce, Trusted Types, COOP… activés par défaut.
  • Journal d'accès structuré pour surveiller le trafic, les robots, les crawlers IA et les événements de sécurité.

Une architecture extensible

Le cœur reste volontairement minimal ; tout le reste s'ajoute par-dessus, proprement.

  • Thèmes en PHP — héritage de gabarit, gestion des polices, barres latérales dynamiques et variables CSS générées automatiquement depuis le back-office.
  • Système de plugins — chaque extension est un dossier autonome (manifeste + point d'entrée), activable en un clic, avec un système de hooks (actions et filtres) pour se greffer sur le cycle de vie du contenu.
  • API headless (REST) — QuietCMS peut alimenter un frontend externe (Next.js, application mobile…) : lecture publique en JSON, écriture protégée par clés API avec quotas, et webhooks de revalidation signés HMAC pour l'ISR.
  • Marketplace d'extensions — multilingue, RGPD / bandeau cookies, articles similaires, sommaire automatique, carte des liens, import/export d'articles, réseaux sociaux, plan du site…

Des fonctionnalités complètes

Édition de contenu

Éditeur visuel (WYSIWYG) avec gestion des médias, image à la une, brouillons, planification de publication et prévisualisation du rendu réel avant mise en ligne. Import d'un document Word, LibreOffice, Markdown, PDF ou Google Docs pour générer un brouillon, et export d'un article en docx, odt, pdf ou txt — le tout généré nativement en PHP.

Référencement (SEO)

Balises title et méta description par contenu, Open Graph et X (Twitter) Card, données structurées JSON-LD, hreflang multilingue, sitemap XML automatique, gestion fine des directives robots, fichier llms.txt pour les IA, redirections 301 et fil d'Ariane.

Multilingue & multisite

Extension multilingue complète (traduction en surcouche ou contenu indépendant par langue, mode hybride, URLs préfixées, traduction assistée par IA) et mode multisite : plusieurs domaines depuis une installation unique, avec contenus et réglages isolés.

Recherche, médias & maillage

Recherche interne du site, médiathèque avec vignettes responsives (srcset/sizes), conversion WebP, et une carte des liens qui visualise le maillage interne (contenu, menu, pied de page, barres latérales) pour piloter son SEO.

Performance & Core Web Vitals

QuietCMS vise d'excellents scores Lighthouse sans configuration : CSS du thème inliné et minifié, mise en cache navigateur des ressources statiques, images responsives générées automatiquement avec dimensions explicites (pour éviter les décalages de mise en page), et un rendu serveur léger sans framework. La rapidité est une conséquence de l'architecture, pas un correctif appliqué ensuite.

Licence MIT

QuietCMS est publié sous la licence MIT. Vous êtes libre d'utiliser, copier, modifier, fusionner, publier, distribuer, sous-licencier et/ou vendre des copies du logiciel, sous réserve d'inclure la notice de copyright et la permission ci-dessus dans toutes les copies ou portions substantielles du logiciel. C'est l'une des licences les plus permissives qui soient : elle convient aussi bien aux projets personnels qu'aux usages commerciaux.

Public cible

QuietCMS s'adresse principalement aux :

  • Développeurs PHP qui veulent un CMS maîtrisable de A à Z, sans magie cachée ni dette technique imposée.
  • Agences web qui déploient de nombreux sites vitrine pour des clients, sans vouloir administrer une flotte de bases de données.
  • Créateurs de contenu qui cherchent un back-office clair, rapide et sûr, sans se soucier de la technique sous-jacente.
  • Sites de petite à moyenne taille — blogs, portfolios, sites d'entreprise, documentation de projet, landing pages multilingues.

Stack technique

Le projet repose exclusivement sur des technologies standard et pérennes :

  • PHP 8.1+ avec typage strict et code orienté objet lisible.
  • JSON comme format de stockage universel.
  • Apache (via .htaccess) ou Nginx comme serveur web.
  • Extension GD (optionnelle) pour le traitement d'images ; ZipArchive pour l'import/export de documents.
  • Aucun framework PHP, aucune dépendance JavaScript externe, aucun outil de build obligatoire.

Historique des versions

  • v1.0.0 — 27 mai 2026 : première version publique stable. Back-office complet, thèmes, plugins, SEO avancé et chiffrement AES-256-GCM.
  • Depuis — extension multilingue et multisite, vaste passe d'optimisation performance / SEO / accessibilité / sécurité, API headless REST, import/export d'articles, recherche interne, sommaire automatique, et de nombreuses améliorations du back-office. Le détail figure sur la page Roadmap.

Ressources & contribution

QuietCMS est un projet ouvert, façonné par sa communauté. Pour contribuer ou signaler un problème de sécurité, consultez le fichier CONTRIBUTING.md (processus de contribution) et SECURITY.md (politique de divulgation responsable des vulnérabilités). Vous avez une idée de fonctionnalité ? La feuille de route est ouverte aux propositions.