Sommaire
Naviguer dans l'article
Retour d'expérience sur un projet commencé en 2023
En juillet 2023, j’ai lancé un projet un peu particulier : développer mon propre CMS en PHP/MySQL pour faire évoluer mon site au-delà de WordPress. L’idée n’était pas simplement de “refaire un site”, mais de construire un outil que je comprenne vraiment, que je puisse faire évoluer moi-même, et qui me serve aussi de terrain d’apprentissage pour progresser en développement avec l’aide de l’IA.
Au départ, je travaillais avec GitHub pour organiser ma todo, VS Code pour coder, et ChatGPT 3 en version web pour m’accompagner sur la logique, la structure, les bugs et les choix techniques. Ensuite, je suis passé à ChatGPT 4, toujours en version web, ce qui m’a permis d’aller plus loin. Au fil du projet, cela a représenté plus de 500 conversations autour du CMS. Plus récemment, je suis passé à ChatGPT 5 Codex, avec une approche plus rigoureuse et mieux documentée.
Pourquoi créer un CMS maison ?
La première raison était simple : apprendre à programmer avec l’IA. Je voulais comprendre concrètement comment on construit une application web en PHP, comment organiser un projet, gérer le routing, les contrôleurs, les templates, la base de données, les redirections, le SEO, les formulaires, ou encore les commentaires.
La deuxième raison était plus concrète : préparer une alternative à WordPress. WordPress reste très pratique, mais je voulais tester une version plus légère, plus maîtrisée, plus proche de mes besoins réels. L’objectif n’était pas forcément de tout remplacer du jour au lendemain, mais d’avancer étape par étape vers un site fait maison, pensé pour mon usage, mon contenu et ma façon de travailler.
Une progression pas à pas
Ce projet n’a pas été construit en une seule fois. Il a avancé progressivement, version après version, avec beaucoup d’allers-retours, de tests, de corrections et d’améliorations.
Les premières versions posaient les bases : routing, lecture de configuration en base, première structure MVC, templates Twig, contenu, catégories. Puis le projet s’est enrichi avec un vrai blog, des pages d’information, un profil, un CV, un sitemap, des commentaires, un import WordPress, des redirections 301, des pages 404, et une montée en gamme continue sur la partie SEO et expérience utilisateur. Le changelog montre bien cette évolution, depuis V0.1 jusqu’aux versions plus avancées avec sitemap XML, robots.txt, méta descriptions, SEO article/catégorie, commentaires modérés et améliorations de routing.
Les grandes lignes de la roadmap
Si je résume le projet en grandes étapes, la roadmap ressemble à ceci :
1. Poser les fondations techniques
Au début, le but était surtout de mettre en place une base propre :
- structure du projet ;
- routing ;
- organisation MVC ;
- chargement des classes ;
- premières pages dynamiques.
2. Construire le cœur éditorial
Ensuite, l’objectif a été de créer un vrai socle de contenu :
- gestion des articles ;
- catégories ;
- affichage blog ;
- pages d’information ;
- système Markdown ;
- premiers éléments de navigation.
3. Reproduire et améliorer certaines fonctions utiles de WordPress
Une fois la base en place, j’ai ajouté des briques plus concrètes :
- commentaires ;
- import WordPress ;
- pages 404 ;
- redirections 301 ;
- page profil ;
- page CV ;
- sitemap.
4. Monter en qualité
Le projet a ensuite évolué sur la forme et la robustesse :
- refonte visuelle ;
- amélioration des templates ;
- optimisation des images ;
- meilleure gestion des assets ;
- évolution Bootstrap puis Tailwind ;
- meilleure expérience mobile.
5. Travailler sérieusement le SEO
Enfin, une grosse partie du travail a consisté à rendre le CMS plus propre sur le plan SEO :
- robots.txt ;
- sitemap XML ;
- balises Open Graph / Twitter ;
- canonical ;
- JSON-LD ;
- méta descriptions ;
- URLs propres ;
- corrections de comportements 404 et redirections.
Quelques statistiques sur le projet
Pour avoir une idée du volume réel de travail, j’ai regardé deux sources :
- ma todo exportée depuis le projet GitHub ;
- mon fichier
CHANGELOG.txt.
Dans l’export GitHub, on compte 73 lignes/tâches, pour 1 157 minutes déjà renseignées. De mon côté, j’ai aussi compté les 517 lignes du changelog comme des entrées de suivi, avec une estimation volontairement simple de 10 minutes par ligne. En additionnant les deux, j’arrive à une estimation globale d’environ 6 327 minutes de travail, soit 105 heures et 27 minutes, pour 590 tâches/entrées suivies.
Dit autrement, cela représente un peu plus de 13 journées de 8 heures. Cela ne veut pas dire que chaque minute a été mesurée au chronomètre, mais cela donne un bon ordre d’idée : ce CMS n’a pas été bricolé en quelques soirées. Il a été construit progressivement, avec de nombreuses itérations, corrections et améliorations.
Ce que ce projet m’a appris
Ce projet m’a appris plusieurs choses.
D’abord, que l’IA peut être un véritable levier d’apprentissage, à condition de ne pas l’utiliser comme une boîte noire. L’intérêt, pour moi, n’était pas juste de copier-coller du code, mais de comprendre ce que je faisais, pourquoi je le faisais, et comment améliorer le résultat.
Ensuite, j’ai vu à quel point la régularité compte plus que la vitesse. Le CMS a avancé par petites briques : une route, un template, une correction, une amélioration SEO, un script, une page, une refonte visuelle. Ce sont ces petits pas accumulés qui finissent par produire quelque chose de solide.
Enfin, ce projet m’a permis de mieux voir la différence entre “faire fonctionner” et “construire proprement”. Quand on développe soi-même, on se confronte vite à des sujets qu’on sous-estime souvent : structure, maintenance, cohérence, performance, lisibilité du code, évolutivité.
Pourquoi je documente davantage aujourd’hui
Avec le temps, ma façon de travailler a évolué. Le passage à ChatGPT 5 Codex m’a poussé à être plus rigoureux dans le suivi du projet, ce qui m’a amené à tenir un CHANGELOG.txt plus sérieusement. C’est un point important, car documenter les évolutions permet de garder une trace claire, de voir le chemin parcouru, et de mieux piloter la suite. Le changelog montre d’ailleurs une vraie montée en gamme du CMS, depuis la base MVC des débuts jusqu’aux évolutions plus avancées sur le SEO, les commentaires, le sitemap et la robustesse générale.
Et maintenant ?
Le projet n’est pas “terminé” au sens strict. Un CMS maison est par nature un projet vivant. Il peut continuer à évoluer avec de nouvelles idées, de nouveaux besoins et de nouvelles contraintes.
Mais une chose est sûre : ce projet m’a déjà apporté énormément. Il m’a permis d’apprendre, de tester, d’itérer, et surtout de construire quelque chose de concret, utile, et de plus en plus maîtrisé.
Créer un CMS maison n’est pas forcément le chemin le plus court. En revanche, c’est un excellent moyen d’apprendre en profondeur, de mieux comprendre son site, et de bâtir un outil qui correspond réellement à sa vision.
Commentaires