La montée en puissance des sites statiques

De plus en plus de développeurs font le choix de développer des sites internet dit statiques et c’est d’ailleurs devenu une de mes premières recommandations lorsque le projet du client s’y prête. Mais tout d’abord qu’est-ce qu’un site statique ? C’est en quelque sorte un phénomène qui revient aux sources de la conception de site web. Eh oui, lors de l’apparition du web, la grande majorité des sites internet n’étaient que de simples fichiers HTML. ASP, PHP, Node.js n’ont fait leur essor que bien plus tard dans les technologies utilisées.

Pourquoi ce choix ?

Ce choix est logique avec le besoin de plus en plus important d’obtenir des bonnes performances (temps de chargement) mais également d’être beaucoup plus sûr qu’un site dynamique. Le statique est performant car il ne nécessite pas de calculs côté serveur pour générer les pages web. Il est sûr car c’est justement cette absence de calculs qui permet de figer la page, de n’accepter aucune modification provenant du côté client. Ainsi, les risques de se faire hacker sont plus limités. On pourra me rétorquer que pour contourner les faiblesses du dynamique sur la performance, on pourra mettre en place un système de cache côté serveur (de type Varnish par exemple) et que les requêtes en base de données pourront être également stockées en mémoire (Memcached notamment). Le souci est que la gestion de ce type d’organisation est très contraignante, qu’elle peut parfois générer des effets indésirables (ex. j’ai mis à jour le contenu d’un article, il faut que je regénère les pages ou apparaissent les derniers articles du site)

N’est-ce pas un bon en arrière ?

Il est évident que les techniques de conception de sites web statiques de l’époque ne sont plus adaptées à nos modes de publication actuels. Il serait par exemple très compliqué de mettre en place un blog (imaginez la pagination à recréer à chaque nouvel article, les tags et j’en passe…). Aujourd’hui, nous disposons d’outils qui permettent de générer le site statique. De Node.js, à Go en passant par Ruby, chaque langage de programmation dispose d’outils de génération de site web statique.

Faut-il enterrer le site web dynamique ?

La réponse est NON bien évidemment. Un site web statique ne pourra pas répondre à toutes les problématiques même si aujourd’hui, il existe de plus en plus de solutions qui permettent de “dynamiser” le site web statique. On pourra par exemple ajouter un moteur de commentaires sur son blog avec Disqus. Il sera même possible de proposer un site e-commerce avec Snipcart. Mais bien évidemment, ces solutions ont leurs limites :

  • Le fait de recourir à ses solutions nous limite dans les possibilités de personnalisation,
  • Nous sommes obligés de nous soumettre à leur conditions d’utilisations,
  • Les données personnelles des utilisateurs sont partagées avec ces services
  • Il est impossible de résoudre un bug inhérent à l’application (seul recours, un ticket au support technique…)

Lorsque nous y sommes confrontés, ces contraintes plaident donc largement en faveur du site web dynamique. D’ailleurs, je trouve toujours autant de plaisir à travailler avec Wordpress et il répond aujourd’hui à 2/3 des problématiques de mes clients. Les CMS ont encore de beaux jours devant eux mais il faut être capable d’évaluer s’ils sont indispensables à un projet.

Etude de cas

J’ai récemment mis en ligne le site Sensor Instruments, expert en mesure en mesure optique dont l’offre produit va du capteur couleur au micromètre laser. Voici le cahier des charges simplifié des fonctionnalités souhaitées par le client :

  • Permettre la mise en ligne de produits composés d’un titre, texte enrichi, galerie photos
  • Assurer la mise en ligne d’applications de ces produits avec texte et photo
  • Disposer d’un espace actualités avec là encore texte et photo
  • Mettre en place un formulaire de contact général ainsi que des formulaires de demande d’information sur les fiches produits
  • Créer une médiathèque qui reprendra les contenus du site internet Sensor Instruments allemand.

À l’étude du projet, 80% de agences ou freelances aurait recommandé de passer par Wordpress pour répondre à ces besoins. J’ai choisi de proposer au client une solution statique basée sur Roots.

Je vous vois déjà venir : “Oui mais comment il administre ? Un client ne sait pas coder !”. C’est là ou les nouvelles technologies de conception de sites statiques sont géniales. En effet, en utilisant un langage de programmation dynamique pour générer ces sites web, on profite ainsi de l’ensemble de leurs avantages. Roots permet très simplement de créer des extensions basées sur Coffeescript (et donc interprétées par Node.js).

Pour l’administration des produits, applications et actualités, j’ai fais le choix du service web Contentful qui permet de configurer une interface d’administration personnalisée. Le contenu créé par cette interface est envoyé au format JSON et peut donc être récupéré très simplement par de multiples supports (Application mobile, logiciel…). Roots dispose déjà d’une extension Contentful, cela a bien simplifié la tâche.

Pour la mise en place de la médiathèque, j’ai créé ma propre extension qui va récupérer le contenu HTML des pages web du site internet Sensor Instruments allemand. L’application Cheerio (qui est en fait un jQuery version serveur) m’a permis de parser le contenu de la page et de créer des flux d’informations qui seront interprétés dans les templates de Roots.

Enfin, pour la gestion des formulaires de contact, je me suis simplement reposé sur le système développé par Netlify, l’hébergeur spécialisé en sites web statiques. Cette solution ne nécessite que l’ajout d’attributs sur le code HTML du formulaire et rien de plus. La gestion des spams, le traitement des champs dans le mail de destination, tout est géré. On peut même aller très loin avec leur connecteur avec le service d’automatisation Zapier.

Processus de déploiement du site Sensor Instruments

Pour conclure

Le choix de toute technologie doit se faire avec objectivité et en fonction de plusieurs contraintes : les fonctionnalités souhaitées, le budget du client, les perspectives d’évolution. Il ne s’agit aucunement de préconiser une solution dont on est “fan”. Wordpress est un outil qui me plaît particulièrement sur bien des aspects. Mais se cantonner à une seule solution vous ferme énormément de portes, vous empêche d’évoluer et vous incite parfois à la proposer coûte que coûte même si elle n’est pas la solution idéale.

Voici quelques liens intéressants sur le sujet :