Cette page présente la feuille de route de QuietCMS. Les priorités évoluent en fonction des retours de la communauté — n'hésitez pas à voter pour les fonctionnalités ou à ouvrir une issue pour proposer de nouvelles idées.

🌍 Extension multilingue (mai 2026)

QuietCMS dispose désormais d'une extension multilingue complète, activable et configurable comme l'extension RGPD. Lire l'article détaillé →

  • URLs préfixées par langue — la langue par défaut sans préfixe, les langues secondaires sous /xx/ (ex. /en/contact/), slug conservé
  • Traductions en fichiers JSON — stockées dans content/translations/, sans jamais modifier le contenu d'origine (repli automatique si une traduction manque)
  • SEO multilingue automatique — balises hreflang réciproques, x-default, canonical par langue, <html lang> correct et URLs traduites ajoutées au sitemap (brouillons exclus)
  • Traduction assistée par IA — réutilise les fournisseurs et clés déjà configurés ; les traductions IA sont créées en brouillon pour relecture
  • Éditeur complet en mode traduction — SEO, Open Graph, Twitter, image à la une, brouillon… avec garde-fou contre toute modification accidentelle de l'original
  • Back-office en onglets — Accueil & pages, Articles, Auteurs & formulaires, Configuration ; listes paginées, drapeaux, états de traduction
  • Interface traduite — section commentaires, formulaires natifs et biographies d'auteurs (auteurs et administrateurs)
  • Sélecteur de langue — avec drapeaux, position configurable ou masquable ; drapeau de la langue affiché aussi dans la barre d'administration
Extension multilingue de QuietCMS : traduction, contenu indépendant et mode hybride par langue

Depuis, l'extension est allée bien au-delà de la simple surcouche de traduction :

  • Trois modes par langue — chaque langue secondaire peut être en traduction (surcouche partageant le slug de l'original) ou en contenu indépendant (pages, articles et catégories propres dans content/_lang/{lang}/).
  • Mode hybride — on combine librement : l'anglais en contenu indépendant, l'espagnol en simple traduction, etc.
  • Habillage par langue — menu de navigation, barres latérales, pied de page, page d'accueil et listing du blog (titre, description et même slug, ex. /en/news/) peuvent être propres à chaque langue, avec repli automatique sur la langue par défaut.
  • hreflang par équivalence explicite — un champ « équivalent dans la langue par défaut » relie les contenus même lorsque les slugs diffèrent (ex. /a-propos/en/about).
  • Aide à la traduction du menu — la structure du menu de la langue principale est proposée à « calquer », avec création de brouillons pour les contenus manquants (invisibles publiquement tant qu'ils ne sont pas traduits et publiés).
  • Migration assistée — conversion en un clic des traductions « surcouche » existantes en contenu indépendant.
  • Redirections 301 automatiques — au changement de slug de blog ou de structure d'URL, par langue, avec aplatissement des chaînes de redirection.

🏢 Multisite (mai 2026)

Multisite QuietCMS : plusieurs sites et domaines depuis une seule installation

QuietCMS gère désormais plusieurs sites depuis une installation unique : chaque domaine ou sous-domaine dispose de son propre espace de contenu, de ses réglages et de ses médias, tout en partageant le cœur, les thèmes et les plugins.

  • Routage par hôte — détection automatique du domaine et bascule vers le dossier de contenu correspondant (SiteManager), toujours sans base de données.
  • Comptes & contenus isolés par site — le mode mono-site (legacy) reste préservé par défaut, sans aucune migration.
  • Multilingue par répertoire, sous-domaine ou domaine — la gestion des langues peut s'appuyer sur le multisite pour des domaines distincts par langue.
  • Onglet « Sites & domaines » dans les réglages pour déclarer et administrer chaque instance.

🚀 Optimisations performance, SEO, accessibilité & sécurité (mai 2026)

Une vaste passe d'optimisation a été menée à partir des audits PageSpeed Insights (Lighthouse), couvrant les quatre piliers : vitesse, référencement, accessibilité et sécurité.

⚡ Performance & Core Web Vitals

  • CSS du thème inliné et minifié — la feuille de styles est intégrée directement dans la page (suppression de la requête bloquante), puis minifiée et mise en cache automatiquement (AssetHelper), sur les trois thèmes
  • Cache navigateur des ressources statiques — en-têtes Cache-Control / Expires (images et polices : 1 an, CSS/JS : 1 mois) ajoutés au .htaccess et au modèle par défaut du CMS
  • Images responsives automatiques — génération srcset / sizes via ThumbHelper pour les images à la une, les vignettes et les visuels d'accueil des trois thèmes ; le navigateur télécharge la taille adaptée à l'écran, sans jamais dépasser la résolution d'origine
  • Dimensions d'images explicites — attributs width / height ajoutés partout (y compris injection automatique dans le contenu des articles) pour éliminer les décalages de mise en page (CLS)

🔍 Référencement (SEO)

  • Lien canonical absolu — correction du canonical de la page d'accueil (URL absolue garantie même si le réglage est vide), aligné avec le sitemap et les données structurées
  • Données structurées enrichies — la page d'accueil expose désormais un graphe WebSite + Organization (avec logo) au format JSON-LD
  • Réseaux sociaux — nouveau champ dans les réglages, injecté en sameAs dans les données structurées (utile au knowledge panel de Google)

♿ Accessibilité

  • Contrastes conformes WCAG AA — correction des textes à faible contraste sur les encarts d'accueil
  • Liens explicites — suppression des libellés de liens ambigus pointant vers des destinations différentes
  • Focus clavier visible — indicateurs de focus ajoutés là où ils manquaient
  • Gestion du focus du menu mobile — le focus est dirigé vers le menu à l'ouverture et rendu au bouton à la fermeture, avec fermeture au clavier (touche Échap)

🔒 Sécurité (en-têtes HTTP)

  • COOP — en-tête Cross-Origin-Opener-Policy pour isoler la fenêtre de premier niveau des documents tiers (pop-ups)
  • HSTS — en-tête Strict-Transport-Security pour forcer le HTTPS côté navigateur et empêcher la rétrogradation en HTTP

🔌 API headless (REST) (juin 2026)

QuietCMS peut désormais alimenter des applications et des frontends externes en headless, grâce à une API REST complète livrée sous forme d'extension activable.

  • CRUD complet — lecture publique des pages, articles et catégories en JSON ; création, mise à jour et suppression protégées par clé API.
  • Clés API multiples — une clé par développeur ou application, avec quotas (limite de requêtes, réponse 429 au dépassement) et portées lecture/écriture.
  • Extensibilité — ressources personnalisées, filtre de sérialisation et type d'erreur dédié pour adapter l'API à chaque projet.
  • Webhooks de revalidation — notifications signées HMAC à chaque changement de contenu, idéales pour l'ISR de Next.js et les régénérations Jamstack.
  • CORS configurable et documentation développeur intégrée au back-office.

📄 Import / export d'articles (juin 2026)

Une extension pour faire entrer et sortir du contenu sans copier-coller fastidieux.

  • Import multi-format — Word (.docx/.doc), LibreOffice (.odt), .txt, Markdown, RTF, PDF et documents Google Docs exportés, convertis en brouillon d'article.
  • Mise en forme préservée — titres, gras/italique/souligné/barré, exposant/indice, listes à puces et numérotées, citations, tableaux, alignements et images.
  • Réglage des images par fenêtre dédiée — pour chaque image, une URL (nom de fichier) et un texte alternatif sont proposés par défaut (depuis le titre pour l'image à la une, depuis le sous-titre voisin pour les images de contenu), modifiables, avec unicité des URLs garantie pour éviter les conflits.
  • Image à la une automatique — la première image du document devient l'image mise en avant, placée avant le titre.
  • Export natif — téléchargement de l'article en .docx, .odt, .pdf ou .txt, généré 100 % en PHP (sans LibreOffice), images comprises.
  • Confidentialité — le fichier source importé est supprimé du serveur après traitement.

✅ Récemment livré

Ces fonctionnalités ont été développées et intégrées au cours des dernières semaines :

  • Blocage IP, sous-réseau /24 et pays — filtrage du trafic entrant directement depuis le back-office, avec liste blanche des IPs administratrices et gate 403 avant le routeur
  • Journal d'accès structuré en 5 onglets — Trafic, Crawl & IA, Journal (50 entrées/page), Robots (25/page) et Sécurité ; affichage de la taille des fichiers de logs
  • Typographie par niveau de titre (H1–H6) — sélecteur de police Google Fonts indépendant pour chaque niveau, avec auto-hébergement, variables CSS et règles directes injectées après le CSS du thème
  • Configuration du thème en onglets — trois onglets distincts (Logo & Icônes, Typographie, Responsive & Mobile) avec mémorisation de l'onglet actif par thème
  • Sidebar du constructeur de menu collapsible — les sections Pages et Catégories se replient au clic pour libérer l'espace sur les sites avec de nombreuses pages
  • Correction du scroll lock mobile sur les thèmes Default et Juridique (menu hamburger)
  • Génération automatique de la clé de chiffrement — la clé ENCRYPTION_KEY est créée et persistée de façon sécurisée au premier démarrage, sans intervention manuelle
  • Création de comptes simplifiée — à l'ajout d'un administrateur ou d'un auteur, un mot de passe provisoire est généré automatiquement et la personne est invitée par email à définir son propre mot de passe à la première connexion
  • Bouton « Prévisualiser » — sur les articles et les pages, aperçu du brouillon sur le site réel, dans un nouvel onglet, avant publication
  • Boîtes de dialogue unifiées — confirmations élégantes et cohérentes dans tout le back-office ; à la suppression d'un contenu, possibilité de le mettre en brouillon plutôt que de le supprimer, et proposition d'une redirection 301
  • Suppression de catégorie avec réaffectation — les sous-catégories et les articles dépendants sont réaffectés vers une autre catégorie (ou le blog), avec redirections 301 automatiques
  • SEO de la page d'accueil — champs dédiés (balise title, méta description, Open Graph, X Card) directement dans les réglages
  • Recherche interne — moteur de recherche du site, avec champ dans le menu et page de résultats
  • Extension Sommaire — table des matières automatique avec ancres et suivi de lecture (scrollspy), entièrement personnalisable en CSS
  • Carte des liens enrichie — le maillage interne prend en compte les liens du pied de page et des barres latérales (selon le contexte du thème), avec filtrage par typologie de lien et export (PNG/SVG/JSON) reflétant la sélection
  • Délivrabilité des emails améliorée — envois multipart (texte + HTML) avec en-têtes Message-ID et Date, compatibles SPF / DKIM / DMARC
  • Page d'accueil redessinée — animations au défilement et sections retravaillées sur le thème vitrine
  • Page « Mentions légales & confidentialité » — éditable dans le back-office et liée automatiquement dans le pied de page

v1.1 — Améliorations de l'interface et de l'extensibilité

La prochaine version mineure se concentre sur l'expérience développeur et l'ergonomie du back-office :

  • Mode sombre pour le back-office : thème dark natif basculable depuis les préférences utilisateur, sans dépendance JS
  • Hooks supplémentaires pour les plugins : enrichissement de l'API de plugins avec les points d'extension before_save, after_delete, before_render et on_media_upload pour un contrôle plus fin du cycle de vie du contenu
  • Amélioration de l'éditeur de formulaires : champs conditionnels, validation côté client et export CSV des soumissions

v1.2 — Performance & stockage

Le contenu multilingue, initialement planifié ici, est désormais livré — voir la section « Extension multilingue » ci-dessus.

  • Backend SQLite optionnel : pour les sites à fort trafic en écriture, possibilité de basculer le stockage vers SQLite tout en conservant la compatibilité avec le format JSON pour la migration
  • Cache de pages statiques : génération de fichiers HTML statiques pour les pages non dynamiques afin de maximiser les performances sous charge

Horizon long terme

Ces fonctionnalités sont à l'étude et feront l'objet de discussions avec la communauté avant toute implémentation :

  • Plugin e-commerce : catalogue produits, panier et intégration de passerelles de paiement (Stripe, PayPal)
  • Page builder visuel : éditeur de blocs par glisser-déposer pour la composition des pages, sans quitter le back-office
  • Intégration CDN : synchronisation automatique des médias vers un CDN (Cloudflare R2, Bunny.net) pour accélérer la distribution des assets

Contribuer à la roadmap

La roadmap de QuietCMS est façonnée par sa communauté. Si vous avez besoin d'une fonctionnalité spécifique ou souhaitez contribuer à l'une des pistes ci-dessus, consultez la page Contribuer pour savoir comment participer au développement du projet.