That’s my jam!

Auteur(s) de l'article

CMS headless, Gatsby, GraphQL sont autant de termes tendance ces dernières années qui gravitent tous autour d’un même concept; un terme qui met des étoiles dans les yeux des développeurs web modernes : Jamstack !
Jamstack est un acronyme pour JavaScript APIs et Markup, en résumé : une approche découplée où un client JavaScript (notre site) consomme une APIs (des données brutes) pour générer du markup (le contenu). L’époque où vous installiez un Wordpress sur votre compte Infomaniak pour avoir un site est révolue. Maintenant il vous faut une application backend d’un côté pour gérer vos données (un CMS headless fera très bien l’affaire) et une application JavaScript de l’autre pour consommer, afficher et naviguer dans vos pages.
Alors, dis comme ça, ça semble clairement plus complexe, moins accessible et clairement overkill. C’est peut-être le cas, mais alors pourquoi est-ce que cette approche fait autant d’adeptes ?

Diviser pour mieux régner

La première réponse réside dans sa nature fondamentale, le découplage. À première vue, un site ou une application unique, également appelée monolithique, semble être une option plus simple. Or avec le temps, l’ajout de nouvelles fonctionnalités, contenus, maintenances, la taille du projet va grossir et rendre sa maintenabilité plus compliquée. De plus, si une des parties de notre projet devient dépréciée, c’est toute la viabilité de ce dernier qui est menacée.
Avec une approche découplée, vous découpez votre projet en portions logiques avec, dans l’idéal pour chacune, une fonction unique. De ce fait, chacune de vos parties sera entièrement optimisée pour la tâche qui lui aura été dévolue.
Prenons l’exemple d’un site de contenu traditionnel. Pour gérer votre contenu, nous avons besoin d’un CMS comme Wordpress qui fait un travail remarquable quand il s’agit de rédiger des articles. Maintenant et contrairement à une approche traditionnelle, nous n’allons pas l’utiliser pour faire le rendu de notre site; certains outils sont bien plus optimisés pour ça. Nous allons donc nous orienter vers un outil comme Gatsby ou Next.js qui vont consommer le contenu de Wordpress et en générer toutes les pages. Grâce à ça, nous aurons à fois un site ultra-performant, mais en plus et grâce à l’aspect JavaScript de notre client, nous n’avons aucune limite dans ce que notre site est capable de faire en termes de navigation et d’animations. Toujours au service de l’expérience utilisateur !

Plus simple

Comme je le relevais en introduction, cette approche peut sembler beaucoup plus complexe, mais il n’en est rien. Tous les outils qui gravitent autour de cette idée ; frameworks, librairies, hébergeurs, etc, ont tous le même objectif : enlever autant de frictions techniques que possible. Tout est pensé pour que les développeurs ne doivent se soucier que d’une chose, coder leur projet sans se préoccuper de la façon de le mettre en ligne ou qu’il soit correctement distribué parmi ses utilisateurs.
En plus de ça, toutes ces technologies sont hyper accessibles. Plus besoin d’avoir fait des années d’études en computer science ou d’avoir appris à maitriser un gros framework MVC. Il vous suffit de connaitre les bases de JavaScript, d’avoir suivi un ou deux tutoriels React ou Vue.js et vous pouvez commencer votre projet.
Pour finir, l’aspect sécurité est également simplifié. Étant donné que vos pages sont “statiques”, l’attaquant potentiel n’aura devant lui que du code généré. Plus d’accès direct depuis la base de données pour construire vos pages. Encore une fois, la séparation contribue à la sécurité de votre infrastructure.

Plus de backend ?

Oui et non. Pour qui veut développer un client Jamstack pour une application métier sur mesure, il vous faudra avoir recours à de bonnes connaissances ou une équipe de développeurs backend. Maintenant pour tous les autres cas, il y a des options hyper accessibles. Envie d’un peu de logique serveur, les fonctions lambda de votre hébergeur sont là pour ça. Envie d’un CMS, il existe un nombre incalculable de CMS as a service disponibles, sans oublier Wordpress et ses amis Open-Source qui convergent tous dans ce sens. Envie d’envoyer des mails, là encore, soit votre hébergeur vous proposera des lambdas, soit vous pouvez avoir recours à un Saas.
— Ouai, mais par rapport à “avant”, ça en fait des services dont on dépend.
Oui et non, les services sont simplement un peu différents. Qui a déjà tenté d’héberger ses vidéos sans YouTube ou Vimeo, de faire un formulaire sans plug-in Wordpress ou de mettre un calendrier en ligne sans Google Calendar ? Et même si c’est le cas, vous voyez où je veux en venir. Avant de vouloir réinventer la roue (en potentiellement moins bien), prenez le temps d’évaluer pragmatiquement vos options en comparant le temps de développement d’un “sur-mesure”, face aux tarifs et trade offs d’une solution existante.

Concluons

En plus d’être la meilleure DX (developer experience) sur le marché, la Jamstack amène pleins d’avantages à son adoption comme le gain non négligeable de performances, sa sécurité et son coup de mise en place.
Chez Antistatique, c’est notre approche de prédilection en 2020 et nous avons hâte de vous en démontrer les bénéfices sur votre prochain projet !