Logo

Small Web

Repenser notre vision d'internet pour devenir résilient face aux GAFAM.

Capture d'écran de l'article The Small Web 101 de マリウス
« The Small Web 101 » de マリウス contient de nombreuses ressources pour découvrir le Small Web

Le Small Web est une contre-culture d'internet privilégiant les sites personnels aux monstres impersonnels des géants. Les intentions de ses auteurs sont multiples, mais bien souvent, cela provient d'un lassement des institutions gouvernant internet.

Le Small Web se veut accessible, personnel et responsable, ce qui l'oppose frontalement au web moderne avec son JS à outrance, ses pages HTML excessivement lourdes et son tracking omniprésent. Toutes ces « nouvelles technologies » représentent des failles de sécurités énormes pour nos systèmes — il suffit de voir les failles CVE d'Astro, un générateur de site statique, ou de regarder les drames autour de NPM — tout en alourdissant la charge sur nos ordinateurs, oubliant ainsi les ordinateurs les plus vieux.

Le Small Web s'est construit en opposition à cette vision présentée comme innovante, donnant ainsi un site hautement personnel défendant une résilience et une durabilité peu présente dans le reste de la technologie.

Repenser notre vision d'internet

Internet est gouverné par les GAFAM. Il est impossible d'accéder à la majorité du web sans passer par les services de Google (moteur de recherches, technologies webs et hébergements), de Microsoft (moteur de recherches et hébergements) ou d'Amazon (hébergements).

Si n'importe laquelle de ces entreprises disparaissaient, une grande majorité du web deviendrait soudainement inaccessible : comment trouver un site sans passer par Google ou par Bing ?(Les moteurs de recherches alternatifs utilisent Bing.) Comment accéder à un site hébergé sur Amazon Web Services (AWS) sans passer par Amazon ? L'extrême majorité du contenu produit, regardé et partagé passe par une GAFAM. Sans elles, il serait impossible d'accéder à ce qui fait la pluralité d'internet.

Cela questionne notre vision d'internet : sa pluralité ne repose que sur une poignée d'acteur. Cette concentration est une grande faiblesse. Il suffit qu'un géant décide que vous n'avez plus le droit de vous exprimer ou, pire, choisit ce que vous devez lire, pour détruire toute la libre circulation de l'information.

Si ces géants n'avaient qu'un objectif économique, ils n'auraient aucun intérêt à le faire, je suis bien d'accord. Malheureusement, ce n'est pas le cas. Ces monstres du numérique travaillent avec Trump pour museler la démocratie américaine. Ces monstres technologiques amplifient des génocides. Ces monstres enregistrent tout ce que vous faites. Qui peut rationnellement croire qu'ils n'ont qu'un unique objectif économique après tout ça ?

Lutter contre ce contrôle est devenu un enjeu démocratique et souverain essentiel : nous ne pouvons plus laisser ces groupes surpuissants contrôler notre espace informationnel.

Le Small Web est le choix délibéré de s'émanciper de ces monstres en repensant notre vision d'internet.

Vers l'internet libre

La plus grande erreur de l'internet actuel est d'avoir accepté la centralisation des pouvoirs dans les mains d'un petit groupe. Sans cette centralisation, il serait tout à fait faisable de se passer de ces acteurs dangereux (puisqu'il en existerait d'autres).

La deuxième erreur est la course technologique effrénée : tout l'écosystème du web évolue bien trop vite et ne mûrie jamais. Il est impossible de construire des technologies fiables et résistantes dans un écosystème toujours plus complexe : il y a trop de choses à connaître, à apprendre et à vérifier pour garantir la fiabilité de l'écosystème. Les développeurs utilisent donc énormément des dépendances externes pour se simplifier la tâche. Or, ces dépendances ne sont pas toujours fiables (le code interne peut ne pas être à jour) et elles peuvent être compromises.

Une autre erreur est d'avoir oublié les anciens ordinateurs : avoir une structure HTML toujours plus complexe, avec toujours plus de JS, de CSS, d'images et de vidéos rend le travail de rendu pénible pour les ordinateurs modernes (regardez juste le temps de chargement de YouTube pour vous en rendre compte) et impossible pour les anciens. Cette absence de considération pour les anciennes machines est complètement déconnectée de la réalité écologique : souvent, on change de matériel car les applications courantes ont des problèmes de performances. Ces problèmes ne sont souvent pas liés à un hardware défaillant, mais bien à une absence d'optimisation pour les anciennes machines. Les utilisateurs sont donc obligés de racheter du nouveau matériel pour continuer à avoir une utilisation normale, ce qui n'est absolument pas écologique.(Je n'évoquerai pas le désastre provoqué par la fin du support de Windows 10.)

Heureusement, avec l'avancé des technologies, il devient de plus en plus facile de créer des applications résilientes, optimisées et décentralisées. Cela demande une approche différente de la programmation que les entreprises ne considèrent jamais, faute de volontés et de retombées économiques.

Le Small Web souhaite résoudre ces trois défis en construisant des technologies low tech libres de toutes dépendances extérieures.

Exemple concret : ce site

Ce site est ma contribution au Small Web. Il n'utilise que du JS optionnel conçu pour être simple et le CSS est limité au strict minimum. Il dépend de 4 dépendances en runtime (deux pour la configuration, deux pour le serveur HTTP) en plus de celle optionnelle en JS.

Pour les limiter, je fais du rendu côté serveur en utilisant la lib builtin de Go (html/template et text/template) et j'ai écrit mon propre parser markdown.

La partie la plus délicate fut de gérer le CSS pour limiter le nombre de media queries et de classes.

Pour éviter d'utiliser énormément de classes, j'ai dû organiser mon HTML avec des balises possédant un sens, comme<article>, <section> ou encore <figcaption>, au lieu des courantes <div>. Cela donne un sens à l'HTML : un simple sélecteur sur les tags suffit pour styliser une bonne partie de la page. Le code HTML devient ainsi plus plaisant à lire, ce qui limite aussi l'utilité du CSS.


<section>
  <h2>logs</h2>
  <p>« Un log est un historique des événements. Il enregistre les problèmes, les erreurs et les informations générales sur les opérations en cours. »</p>
  <article> 
    <article>
      <h3><a href="/logs/small-web">Small Web</a></h3>
      <figure>
        <a href="/logs/small-web"><img src="/static/logs/small-web.jpg" alt="Capture d&#39;écran de l&#39;article The Small Web 101 de マリウス" /></a>
        <figcaption>« The Small Web 101 » de マリウス contient de nombreuses ressources pour découvrir le Small Web</figcaption>
      </figure>
      <p>Repenser notre vision d&#39;internet pour devenir résilient face aux GAFAM.</p>
    </article>
  </article>
</section>

Pour diminuer les media queries, j'ai dû utiliser les fonctions natives min et max pour adapter dynamiquement la taille du contenu en fonction de la place disponible. Cela permet, entre autre, d'avoir une image dans le header qui n'est ni trop grande, ni trop petite, peu importe la taille de notre écran.


header img {
  height: 100%;
  width: max(33%, 128px);
  margin: 0 auto;
}

Cela rajoute aussi un côté très fluide fortement agréable quand on change dynamiquement la taille de la fenêtre.

Pour l'instant, j'utilise 6 classes et 4 media queries (dont 2 pour le thème dynamique).

Seul bémol en terme de rétrocompatibilité, j'utilise les variables CSS qui sont présentes dans tous les grands navigateurs depuis 2018 pour garder un code plus lisible (les variables SCSS ne sont pas suffisantes).

Concernant l'hébergement, ce site est sur un VPS chez Infomaniak, une société suisse indépendante. Il ne dépend pas d'une architecture particulière et peut tourner partout : le site peut être compilé pour tout les systèmes d'exploitation (y compris les BSD) et ne demande aucune dépendance runtime après la compilation. De plus, il est extrêmement léger et peut gérer des milliers de requêtes par minute (ce qui est complètement overkill). Ainsi, si mon hébergeur ne me convient plus, je peux de suite changer sans devoir le redévelopper en partie. La migration est encore plus triviale comme le contenu est écrit en fichier markdown, ce qui ne dépend d'aucune architecture et d'aucun logiciel particulier (même si certaines features que j'utilise sont exclusives à mon implémentation).

Bref, l'approche du design Small Web est bien différente de celle utilisée par la majorité des entreprises. En plus d'être indépendante, résiliente et écologique, elle renouvelle l'expérience de développement en proposant des nouveaux défis techniques.

Découvrir le Small Web (en anglais).