Jamstack ou pas Jamstack ?

Par:
ftonic

lun, 26/04/2021 - 19:38

Peut-être êtes-vous déjà adepte du Jamstack ? Cette tendance technologique remonte au milieu des années 2010 et peut être vue comme du Low-Tech pour le développement web. L’idée de départ est de proposer un ensemble technique plus simple à installer, à déployer et à coder, avec de bonnes performances et avec les fonctionnalités essentielles et nécessaires. On peut comparer la Jamstack à LAMP. Jam est l’abréviation de JavaScript, API, Markup. JS est donc la base de développement même si on peut trouver autre chose comme du Ruby. API, car les API permettent de connecter les services et enfin le markup car un site JamStack est avant tout un site web statique. Eh oui comme il y a 20 ans :-)

Théoriquement, la Jamstack propose des avantages indéniables :

  • performance : car on réduit les couches et les frameworks
  • sécurité : en réduisant la multitude de couches, on réduit théoriquement la surface d’attaque. 
  • coût : solutions moins onéreuses que des CMS. De nombreuses solutions sont gratuites et open source. Mais attention : il y a toujours le temps de développement et on est plus les mains dans le code.

Pour le développeur front-end, le Jamstack lui redonne la main et permet de prototyper rapidement un site. Mais attention une approche Jamstack ne peut rivaliser avec un CMS de type Wordpress ou Drupal. Ce n’est pas l’objectif. Par contre, est-il nécessaire de déployer un CMS ultra complet pour un site léger, avec peu d’interactivité ou de contenus ? 

Quand on passe par du Jamstack, deux possibilités techniques sont possibles :

  • les générateurs de site web
  • les CMS légers

Les générateurs sont là pour développer et générer le site. Il est en effet impératif de générer et déployer le site. Les commandes changent, un peu, selon la solution choisie. Car finalement, ce n’est pas un simple site web. Les pages HTML finales peuvent être créées avec Markdown ou Liquid, HTML, CSS. Un site statique est plus léger et est plus modulaire. 

Typiquement, pour utiliser un site generator, on va :

1 installer la stack sur sa machine de développement, avec les dépendances nécessaires (par exemple Ruby)

2 on crée un nouveau site via la CLI

3 on modifie, on crée les pages (ne pas oublier les templates)

4 on exécute le site via une commande CLI

5 on déploie sur un hébergeur compatible si besoin

Par exemple, en Next.js :

npm install next react react-dom
npx create-next-app nextjsblog
cd nextjsblog
npm run dev

Pour afficher, on récupère l’IP / URL fourni pour afficher le site sur son navigateur. 

Si vous êtes habitué à designer les pages ou à utiliser un CMS, l’approche Jamstack déroute. Car nous sommes très proches du code. Mais il est vrai que le démarrage est ultra rapide : -5 minutes pour installer une stack de type Hugo, Jekyll ou Next.js. Selon la stack choisie, les prérequis ne sont pas identiques. Par exemple, Jekyll repose sur Ruby. D’autres nécessitent d’installer Node.js.

Pour déployer les sites, vous pouvez naturellement le faire votre propre serveur ou passer par un hébergeur supportant le Jamstack. Des hébergeurs dédiés existent. Un des plus connus est Netlify. Il propose différents plans : starter pour tester et les petits sites, Pro à 19 $, Business à 99 $. Vous pouvez aussi déployer votre site statique directement sur un cloud public de type Azure via Azure Static web Apps. 

De ce dernier exemple, regardez ce qui est officiellement support. En janvier, Azure supportait Gatsby, Hugo, VuePress, Next.js et Nuxt.js. 

Il faut bien garder à l’esprit qu’une approche Jamstack n’est pas destinée à prendre la place d’un CMS ou de développement plus lourds pour des sites complexes et dynamiques. Avez-vous besoin du dernier PC gamer avec la dernière carte GPU si un PC standard suffit ? C’est un peu la même chose avec l’approche Jam. Inutile de sortir les monstrueuses configurations quand on sait qu’une configuration « standard » suffira largement pour un site vitrine, un site commercial avec un trafic relativement faible ou tout simplement pour un site ayant peu de contenus et changeant peu souvent. 

Et vous, quel est votre avis sur le Jamstack ? N'hésitez pas à partager vos avis, vos REX. Contact : 

ftonic@programmez.com