Aller au contenu

Présentation d'ArtisanCMS

ArtisanCMS est un système de gestion de contenu (CMS) open-source de nouvelle génération. Conçu pour répondre aux exigences des projets web modernes, il combine un backend robuste avec une interface d’administration réactive et intuitive.

Les CMS traditionnels comme WordPress, Joomla ou Drupal ont été conçus il y a plus de 15 ans. Malgré leurs évolutions, ils trainent un héritage technique qui impacte la performance, la sécurité et l’expérience développeur.

ArtisanCMS part d’une feuille blanche pour offrir :

  • Un stack technique moderne : Laravel 13, React 19, Inertia 2, shadcn/ui et Tailwind CSS v4.
  • Une expérience sans code pour les utilisateurs finaux : page builder visuel, gestion de contenu intuitive, personnalisation graphique complète.
  • Un accès total au code pour les développeurs : hooks/filtres, plugins, thèmes, API REST, commandes CLI.
  • Des performances natives : pas de couche de plugins lourde, cache multi-niveaux, optimisation d’images intégrée.

Chaque composant est optimisé : cache intelligent avec invalidation automatique, images WebP générées à la volée, lazy loading natif, jobs asynchrones pour les tâches lourdes. Le résultat est un CMS qui charge rapidement, même avec un contenu riche.

La sécurité est intégrée dès la conception : validation stricte des entrées, policies granulaires sur chaque ressource, headers de sécurité configurés par défaut, audit trail complet, signature HMAC des webhooks et protection CSRF native de Laravel.

Le système de plugins repose sur les Service Providers de Laravel et un mécanisme de hooks/filtres inspiré de WordPress mais modernisé. Chaque plugin peut étendre le backend, l’interface d’administration et les fonctionnalités frontend sans modifier le coeur du CMS.

L’interface d’administration est pensée pour être utilisée sans formation technique. Le page builder fonctionne en glisser-déposer, les paramètres sont organisés de manière logique et chaque action offre un feedback visuel immédiat.

ArtisanCMS s’adresse à trois profils principaux :

ProfilBesoinCe qu’offre ArtisanCMS
DéveloppeursUn CMS avec un stack moderne, testable et extensibleLaravel + React + TypeScript, architecture propre, hooks/filtres, CLI
Agences webUn outil productif pour livrer des sites clients rapidementPage builder, multi-site, white-label, templates de site, plugins officiels
EntreprisesUn CMS fiable, sécurisé et évolutifPermissions granulaires, audit trail, multi-langue, e-commerce intégré
CritèreArtisanCMSWordPressJoomlaDrupal
Stack techniqueLaravel 13 + React 19PHP procéduralPHP (MVC partiel)PHP (Symfony)
Interface adminReact SPA (Inertia)jQuery + blocs ReactjQuery + BootstrapjQuery + Twig
Page BuilderNatif (39 blocs)Gutenberg (plugin)Aucun natifAucun natif
TypageTypeScript + PHP strictNonNonPartiel
Multi-site natifOuiPartiel (WordPress Multisite)NonNon
E-commercePlugin officiel intégréWooCommerce (lourd)VirtueMartDrupal Commerce
SEOPlugin officielYoast/RankMath (tiers)Extensions tiercesExtensions tierces
PerformanceCache multi-couches natifPlugins de cache requisPlugins de cache requisCache intégré
Bloat pluginsArchitecture légèreDépendance forte aux pluginsModéréModéré
API RESTIntégréeIntégrée (v2)IntégréeIntégrée
Gestion des rôles40+ permissions granulaires5 rôles fixesACL flexiblePermissions granulaires
White-labelNatifPlugins tiersNonNon

ArtisanCMS adopte une architecture monorepo hybride :

artisancms/
├── app/ # Backend Laravel (Controllers, Models, Services, CMS Core)
├── resources/js/ # Frontend React + Inertia (pages admin)
├── packages/ # Packages React partagés (@artisan/ui, @artisan/blocks, ...)
├── plugins/ # Plugins officiels et personnalisés
├── themes/ # Thèmes installés
└── routes/ # Routes web et API

Le backend Laravel gère la logique métier, la persistance et la sécurité. Le frontend React, chargé via Inertia, offre une navigation de type SPA sans nécessiter d’API séparée. Les packages partagés (@artisan/ui, @artisan/blocks, @artisan/page-builder, @artisan/theme-engine) assurent la cohérence entre l’administration et les thèmes.