Stella

Un site léger en 2020

Aujourd’hui nous allons parler du site sur lequel vous êtes en train de lire ces lignes et des outils que nous avons utilisés pour le créer.

De quoi avions-nous besoin ?

Nous voulions avoir un site simple, rapide et léger. Hors de question donc d’utiliser des outils tels que Bootstrap et ses 156 ko de CSS (minifié), ou des librairies JavaScript. D’ailleurs pourquoi mettre du JavaScript alors que nous n’avions besoin que de deux pages ?

C’est ainsi que nous décidâmes de développer notre site uniquement avec du vieux HTML et CSS. Quoi de plus rapide que des pages statiques servies directement avec le strict minimum ?

Nous étions alors plutôt satisfaits de nos deux pages. Certes le header et le footer se trouvaient dupliqués. Mais bon, s’il fallait les changer, ce n’était que dans deux fichiers HTML. Ça va.

Puis nous voulûmes rajouter un blog…

De nouveaux besoins

Avec un blog, ça n’allait plus être juste deux pages et donc deux fichiers. Non. Potentiellement ça allait être une infinité de pages et donc de fichiers. Ce n’était pas raisonnable de dupliquer du contenu autant de fois.

Il nous fallait alors quelque chose qui nous permette d’utiliser des templates. Et pourquoi pas en utilisant un framework web ?

Hugo, Jekyll, Pelican, ColdCMS… Le choix est large. Tous ces frameworks proposent de nombreuses fonctionnalités et sont plutôt faciles à utiliser. C’est bien, c’est souvent pratique. Mais ce n’est pas ce qui nous convenait.

Nous voulions un outil puissant, modulable et qui nous permettrait de faire ce que nous voudrions plus tard sans être contraints par un modèle de base. Nous pensâmes alors à Flask.

Cette idée semblait plutôt intéressante et simple. Mais avec Flask, contrairement aux autres outils, ce ne serait plus des pages statiques servies directement. Adieu la rapidité.

Nous nous tournâmes alors vers Frozen-Flask.

Frozen-Flask

Cet outil permet de générer les fichiers statiques correspondants à une application Flask. Nous étions sauvés ! Nous n’avions plus qu’à transformer notre site en application Flask et à nous les fichiers statiques !

Grâce à la magie des templates, plus de duplication de header et de footer. Ils sont bien rangés dans un seul et unique template ; ce qui est bien plus facile à maintenir ;)

Et il est lourd comment ?

Toujours sans aucun JavaScript et uniquement en statique, aller sur la page d’accueil du site ne coûtera que 312 ko de bande passante. Alors que d’après l’écoIndex, la médiane est à 1.41Mo…

Si vous souhaitez en savoir plus sur les entrailles de notre site, le code est en libre accès sur GitLab.