mucadoo logo
  • Accueil
  • Thèmes
    • Architecture
    • Vie
  • Français
    • EnglishAnglais
    • Français
    • PortuguêsPortugais
    • ItalianoItalien
    • EspañolEspagnol
    • 日本語Japonais

© Samuel Britto. Tous droits réservés.

Architecture

L'Architecture Avant l'Ego : Pourquoi J'ai Arrêté de Construire Mon Propre Backend Après 11 Ans

Après 11 ans dans l'industrie, j'ai appris que la chose la plus coûteuse que vous puissiez faire est de construire quelque chose que vous auriez pu acheter—ou dans ce cas, configurer. Nous ressentons souvent le besoin de prouver notre profondeur technique en construisant tout à partir de zéro, mais pendant longtemps, ce n'était qu'une taxe créative que j'ai payée pour mon propre ego. Le vrai défi est de savoir quand utiliser un outil pour pouvoir se concentrer sur l'art de l'implémentation.

1. L'Héritage : Standards Élevés, Backend Fragile

Mon portfolio a toujours été un projet dont je suis fier, mais jusqu'à récemment, sa fondation technique ressemblait à une capsule temporelle. Pendant des années, j'ai tout géré avec un backend PHP simple qui analysait les données de fichiers INI. Finalement, j'ai migré vers une configuration où mon frontend lisait les données brutes directement à partir de fichiers JSON locaux.

Bien que le frontend soit soigné, le flux de travail était insoutenable. Chaque correction de faute de frappe ou mise à jour de projet nécessitait que j'ouvre mon IDE, que je modifie un fichier et que je fasse un commit. Je me souviens de la frustration de vouloir mettre à jour une seule phrase en étant loin de mon bureau et de réaliser que je ne pouvais pas le faire sans un cycle de déploiement complet. Début 2025, j'ai décidé qu'il était temps d'un changement professionnel. Je voulais un backend robuste et accessible qui me permettrait de gérer le contenu depuis une interface, sur n'importe quel appareil, sans toucher une ligne de code.

2. Redécouvrir le "Headless"

Je ne voulais pas réinventer la roue en construisant une interface administrative personnalisée à partir de zéro, j'ai donc commencé à explorer les solutions professionnelles déjà disponibles sur le marché. Cette recherche m'a mené directement au concept de "Headless CMS". Pour ceux qui ne sont pas familiers, cette architecture signifie que la "tête" (le frontend) est complètement séparée du référentiel de contenu, permettant aux données d'être servies n'importe où via API. J'avais déjà travaillé avec cette architecture au niveau de l'entreprise, mais je n'étais pas familiarisé avec l'évolution du marché indépendant.

J'ai rapidement découvert une vaste gamme d'options, en commençant par les "géants de l'industrie" dans l'espace SaaS, comme Contentful. Ces plateformes sont puissantes, mais elles s'accompagnent souvent de niveaux restrictifs de "paiement par enregistrement" et de limites d'API qui ressemblent à une bombe à retardement pour un projet en croissance. En tant qu'ingénieur, je ne voulais pas que ma croissance soit pénalisée par une facture d'abonnement. Je voulais la Souveraineté des Données—je voulais posséder le code et la base de données.

3. Évaluer le Paysage Auto-Hébergé

Je me suis tourné exclusivement vers les options auto-hébergées, à la recherche d'un outil qui équilibre la "pureté" technique avec la facilité administrative. J'ai audité les leaders actuels :

  • Ghost : Excellent pour la publication, mais trop rigide pour un portfolio multi-entités.
  • Directus : Une puissance pour la mise en miroir de base de données, mais l'interface semblait un peu trop "centrée sur l'ingénieur" pour une expérience d'écriture créative et fluide.
  • Payload CMS : Une approche code-first impressionnante, mais je voulais un constructeur visuel plus mature qui ne nécessitait pas de définir chaque champ en code avant même de pouvoir voir le tableau de bord.
architecture-over-ego-strapi-migration

4. Pourquoi Strapi ? Le Juste Milieu Parfait

Strapi s'est distingué car il représente le juste milieu parfait entre une application "prête à l'emploi" et un framework hautement personnalisable. Il fournit une interface soignée et intuitive qui est une bouée de sauvetage lorsque j'ai besoin de faire des mises à jour rapides depuis mon téléphone, mais il ne m'enferme jamais dans une bulle "low-code". Comme il est construit sur Node.js, j'ai toujours le pouvoir d'écrire des lifecycle hooks personnalisés ou d'étendre les controllers d'API chaque fois que j'ai besoin d'une logique qu'un CMS standard ne peut pas fournir.

Cet équilibre m'a permis de faire évoluer mon infrastructure sans la friction que j'ai rencontrée dans le passé. L'écosystème regorge de fonctionnalités qui en ont fait le gagnant incontestable :

  • Internationalisation (i18n) : Gérer du contenu en 6 langues est un obstacle architectural massif, mais Strapi traite les locales comme des citoyens de première classe. Je peux gérer les métadonnées SEO localisées et basculer entre les langues dans une interface épurée.
  • Content Type Builder : J'ai pu architecturer des schemas complexes visuellement, qui ont ensuite généré automatiquement mes APIs REST et GraphQL.
  • Dynamic Zones : C'était le game-changer. Cela a transformé mon contenu en un système de données modulaire où je peux empiler des extraits de code, des galeries ou des blocs de texte comme des briques Lego.

Lorsque j'ai lancé ce blog, je n'ai pas eu à recommencer de zéro. J'ai simplement étendu mes modèles Strapi existants pour servir les deux projets. Cela a transformé mon backend d'un lecteur de fichiers statique en un moteur évolutif et multi-projets.

Conclusion

J'ai créé ce blog pour inspirer d'autres développeurs à valoriser l'efficacité en ingénierie. Il est facile de se perdre dans le "cool" de construire à partir de zéro. Il est beaucoup plus difficile—et plus gratifiant—de choisir une fondation qui équilibre un contrôle technique profond avec une interface centrée sur l'humain.

La fondation est posée. Strapi s'occupe du reste. Maintenant, il est temps de construire.

Partager

  • Facebook
  • Twitter
  • LinkedIn
  • WhatsApp
  • Reddit
  • Telegram
  • E-mail
  • 0 réponses