Qu'est ce que la JamStack ?
Visite guidée de cette véritable philosophie de développement. 26 novembre 2022
Un peu d'histoire
Aux balbutiements d'internet, les sites étaient très simples. Leur but était simplement de stocker et de distribuer une information monolithique peu sujette au changement. Avec la démocratisation du web, de nouveaux besoins sont apparus avec leurs lots de solutions plus ou moins complexes : marketing, communication, sécurisation, gestion de données dynamiques, sont quelques-uns des aspects qui nécessitèrent une adaptation des outils de développement pour permettre au web de croître et d'assurer de nouveaux services.
C'est par ces processus que sont notamment nés les gestionnaires de contenus (CMS) dont Wordpress est le fer de lance.
Monopole et efficience
Wordpress est un très bon outil. Il répond à l'origine à une problématique précise, qui est celle de rédiger, gérer et distribuer de grandes quantités de contenus. De nombeux utilisateurs l'ont adopté, au point de lui conférer une part écrasante du marché. Et pour viser ce marché, lorsque d'autres besoins sont apparus, certains développeurs ont donc logiquement décidé de créer des extensions à Wordpress plutôt que de créer de nouveaux outils adaptés.
Utilisez un marteau pour tout faire, et vous finirez par ne plus voir que des clous.
C'est ce contexte qui a donné lieu à la situation dans laquelle nous sommes maintenant : lorsque la plupart des gens ont un projet web, ils se tournent vers Wordpress, car il peut leur permettre de créer ce dont ils ont besoin. Mais est-il en réalité l'outil le plus efficace pour cette tâche ? Dans beaucoup de cas, la réponse est non.
Certes, il met à disposition des utilisateurs (qui ne sont pas forcément des développeurs) un moyen efficace de créer et de mettre en ligne de grandes quantités de contenus dynamiques ; cependant, c'est loin d'être le premier besoin de beaucoup d'entre eux. Et puisqu'il s'accompagne obligatoirement de sa complexité technique pour accomplir cette tâche, ces derniers seront exposés à une série d'inconvénients sans qu'ils bénéficient en retour de ses avantages :
- Une multitudes d'extensions peuvent étendre les fonctionnalités de Wordpress, mais elles ralentissent souvent le site web concerné et peuvent ouvrir des failles de sécurité.
- Le site web doit être constament mis à jour. Des extensions intallées peuvent alors cesser de fonctionner, ou entrer en conflit entre elles.
- Une multitude de thèmes existent, mais les adopter sera synonyme de s'adapter à eux et à leurs contraintes, sans pouvoir véritablement créer une identité propre. Les sites web finissent par tous se resssembler.
- Wordpress donnant la possibilité aux non développeurs de créer des sites, ces derniers peuvent adopter des pratiques non optimisées (référencement, ergonomie, accessibilité) puisqu'ils ne connaissent pas forcément toutes les implications. Même des prestataires peuvent être dans ce cas.
- Puisque Wordpress a le monopole, il est largement ciblé par les blackhats (pirates informatiques aux pratiques immorales et illégales), car le nombre de victimes potentielles est plus grand.
- Basée uniquement sur le langage PHP, l'interface de gestion de wordpress n'est pas fluide et recharge les pages à chaque action. L'expérience utilisateur est très perfectible.
- Il s'accompagne obligatoirement d'un serveur web et d'une base de données, qui impliquent une complexité et une lourdeur technique pas toujours nécessaires.
- le contenu est forcément servi dynamiquement, requérant des échanges serveurs permanents et un temps d'affichage des pages potentiellement plus long.
- De nombreux hébergeurs proposent un déploiement automatique de toute l'infrastructure, mais la location d'un tel serveur n'est pas la solution la moins chère.
Et la JamStack dans tout ça ?
La Jamstack (acronyme de Javascript API Markup) prend en compte ces inconvénients et tend à réféchir à la méthodologie employée pour déployer un projet web. La philosophie est d'opter pour des fondamentaux plus simples, plus personnalisables, plus rapides, plus agréables.
L'idée est de revenir à un hébergement de pages statiques comme aux premières heures du web, mais avec une étape de compilation de ces dernières pour y inclure des données dynamiques. Dans cette procédure, le front-end (le site visité) est complètement découplé du back-end (l'administration des données), donnant la possibilité d'utiliser les outils que l'on souhaite. L'avènement de technologies modernes est au coeur de cette petite révolution (frameworks front-end, Javascript côté serveur, ...). Si le cahier des charges du projet web se prête à l'emploi de la JamStack, les bénéfices sont multiples :
- Choix des technologies front-end et back-end parfaitement adaptées au besoin, aussi bien en terme d'efficacité que de facilité et plaisir d'utilisation. L'UX (expérience utilisateur) et la DX (expérience développeur) sont mis en avant.
- Aucune construction complète de pages par un serveur web lors de la consultation du site. Les pages sont compilées une seule fois en amont, d'où une rapidité de navigation et un temps chargement de ces dernières imbattables.
- Le site étant très rapidement accessible, il sera davantage mis en avant par les moteurs de recherche ; en d'autres termes, le SEO (search engine optimisation) est favorisé.
- L'hébergement est moins coûteux (voire gratuit) car il n'y a aucune ressource nécessaire en dehors de la compilation initiale.
- Sans serveur, la consommation électrique est moindre et irait logiquement dans le sens d'un hébergement plus écologique.
- La sécurité est, par nature, excellente car il n'y a aucun serveur ou base de donnée accessibles qui d'ordinaire, pourraient donner lieu à des attaques potentielles.
Conclusion
Encore en devenir, la JamStack a le vent en poupe et promet de tirer proffit de nombreux avantages pour les projets web qui s'y prêtent.
Les outils plus anciens ne sont pas en reste pour autant et sauront répondre à des objectifs spécifiques pour lesquels ils ont été conçus. Mais il existe désormais une panoplie de technologies plus large pour répondre à des problématiques de manière plus précise, en prenant en compte des paramètres d'efficacité et de plaisir d'utilisation.
Ainsi, comme souvent dans le monde du développement, une étape importante consiste à choisir les outils les plus adaptés pour effectuer une tâche donnée et à rester à l'affût des évolutions technologiques.
Si la mise en lumière de la JamStack par le biais de cet article a suscité votre intérêt pour la réalisation de votre site ou projet web, n'hésitez pas à me contacter ! Je me ferai un plaisir de l'analyser afin de déterminer la meilleure façon dont nous pourrions l'aborder.