En 2021, j’ai découvert la version lite de CBC.ca, disponible à la page https://cbc.ca/lite. Je me suis lancé le défi de créer une version équivalente pour le contenu de Radio-Canada.ca.
Le projet est en ligne depuis 2021 → https://rc-lite.xyz
Cet article présente le projet et fait un survol de quelques détails techniques.
Pourquoi faire ce site? #
L’objectif initial était d’apprendre à utiliser le générateur de site statique Eleventy tout en produisant un site utile et pertinent, autant pour moi que pour d’autres. Entre 2015 et 2017, j’avais exploré Hugo et Jekyll. Je voulais maintenant essayer quelque chose de nouveau.
L’expérience de navigation et de lecture sur Radio-Canada.ca me décevait depuis plusieurs mois, et j'avais envie d'améliorer les points suivants avec un site léger et minimaliste:
1. Omniprésence de la publicité: sans un bloqueur de publicités, Radio-Canada.ca est rempli de publicités (en images ou en vidéos). Les contenus publicitaires sont continuellement rechargés.
2. Lourdeur des pages: le chargement de toutes les images et de tous les modules d’une page sur Radio-Canada.ca peut prendre plusieurs secondes. La page d’accueil fait environ 3 Mb. 140 requêtes sont faites pendant le chargement.
3. Espace visuel surchargé: la lecture d’un texte ne se fait pas sans voir plusieurs fils de nouvelles divers, la liste des articles les plus lus, l’espace accordé aux commentaires, etc.
CBC Lite #
En 2021, CBC lançait la version lite de son site. Voici comment le projet est présenté:
The internet is getting bigger, and with it, the amount of information sent for each web page load continues to increase exponentially. For those of us lucky enough to have high-speed internet access, we’ve now been opened up to the options of high-definition video and audio streaming. Pages can load large, complicated components, and data can zip back and forth at lightning speeds.
Unfortunately these kinds of advances tend to leave others behind.
More than a million users in Canada access CBC.ca on dial-up internet speeds each month. This often results in wait times of 30-plus seconds (up to multiple minutes) for a single page load. When you factor in video and audio streams, many pages quickly become inaccessible. Besides dial-up, CBC.ca has more than 10 million users each month visiting using cellular data, and the majority of users are not on unlimited data plans. Large page sizes quickly eat up data, leading to poor experiences.
Radio-Canada, de son côté, n'a jamais lancé de projet similaire. J'ai donc profité de l'occasion pour me lancer dans le projet de reproduire, en quelques semaines, un site équivalent.
D’ailleurs, plusieurs autres projets similaires existent ailleurs sur le web:
- Version text-only de NPR
- Version lite de CNN
- Version skinny The Guardian
Quelle est la pertinence d’un site de ce genre en 2022? #
Avec la montée fulgurante des nouvelles technologies du web et des réseaux sociaux, avec la centralisation excessive des services vers les GAFAM, on pourrait croire que des sites légers (qui consomment peu de données) tels que CBC Lite sont maintenat désuets, inutiles. Qu’ils seraient des artéfacts du web d’avant, du petit web.
Il faut par contre rappeler que l’accès à Internet est un privilège, tout autant que l’accès à une connexion Internet de qualité. Dans un rapport publié en 2019, le CAC constatait l’écart de connectivité à travers le Canada:
Seulement 46% des ménages ruraux (et 35% des ménages dans les réserves des Premières Nations) avaient accès à des connexions Internet qui répondaient aux critères du gouvernement du Canada (50/10 illimité).[1]
Dans cette optique, ça devient pertinent — par souci d’accessibilité — d’offrir des sites légers, qui pourront s’afficher rapidement pour tous les ménages à connexion Internet réduite (ou dont la consommation en données est limitée).
Avantages #
Outre les points déjà mentionnés, voici d'autres aspects qui donnent de la pertinence au projet:
-
Épuré: L’interface est volontairement minimaliste. Retour à l’essentiel. Le texte est mis de l’avant, les images sont facultatives.
-
Sans publicités: Aucune publicité n’est ajoutée au site. Radio-Canada Lite ne rapporte aucun revenu.
-
Respect de la vie privée: Aucun trackers, aucun cookies. Le site ne récupère aucune information sur votre navigateur et votre configuration. La seule métrie qui est utilisée est celle disponible via Cloudflare (les statistiques de requêtes DNS).
-
Faible consommation de données: La page d’accueil de Radio-Canada.ca fait 3200 kb (3.2 MB), alors que Radio-Canada Lite et la plupart de ses pages font moins de 20 kb. Environ 160 fois moins de données sont consommées en visitant Radio-Canada Lite.
-
Empreinte carbone réduite: Radio-Canada Lite a une empreinte carbone exemplaire (source: WebsiteCarbon.com).
Particularités et inconvénients #
Je dois mentionner que le projet présente quelques inconvénients:
- Les articles ne sont pas archivés sur Radio-Canada Lite : on ne peut pas consulter d'anciens textes
- Un article qui se retrouve en 11e position d’une section ne sera pas disponible sur Radio-Canada Lite. Le site ne récupère pas plus de 10 textes par section
- Comme de nouveaux textes sont publiés chaque jour, les articles sont généralement disponibles sur Radio-Canada Lite pour une durée de 24h à 72h
Affiliation à CBC/Radio-Canada #
Radio-Canada Lite est un projet indépendant. Il s’agit d’un projet personnel mis en ligne sans aucune intervention de la société d’État.
Aspects techniques #
Quelques détails techniques sur le projet.
Le code source est publiquement accessible sur Github. Vercel fait les builds et héberge le rendu final du site.
Structure des données #
Dans le projet Eleventy, le dossier _data
contient tous les fichiers Javascript qui appellent les endpoints de l'API public de Radio-Canada (À la une, Politique, Arts, etc.). Chaque fichier Javascript réalise la série de tâches suivante:
- Fetch le endpoint du lineup, par exemple
https://services.radio-canada.ca/neuro/v1/lineups/771
- Récupérer les 10 premiers
items
(les articles) du lineup (page 1 du endpoint) - Filtre la liste des 10
items
pour exclure les documents atypiques (long format, redirection, etc.) - Fetch tous les articles à partir des URL récupérés (
https://services.radio-canada.ca/neuro/v1/news-stories/{ID}
) - Retourner un objet Javascript qui contient toutes les données de tous les articles du lineup (images, auteur-e-s, catégories, texte, etc.)
Je peux ensuite appeler les données d'une section dans un template Nunjucks en utilisant une boucle comme ceci:
{% for newsstories in economie %} ... {% endfor %}
Fréquence de mise à jour #
Le build du projet est lancé toutes les 30 minutes via Cron-job.org. Une requête POST est faite sur le webhook du projet sur Vercel, ce qui déclenche le build. Toutes les sections du site sont donc rafraichies à chaque 30 minutes.
À chaque fois que le build est relancé, toutes les pages et tous les articles sont recontruits. Ce qui rend les données du site très instables: un article consulté à 8h un jour X ne sera probablement plus disponible le lendemain à la même heure.
Je n'ai pas fouillé davantage ce problème, mais j'aimerais éventuellement y trouver une solution. Idéalement, toutes les pages construites resteraient disponibles pour toujours, mais ça ne me semble pas réaliste. Il faudrait voir si ce serait possible de conserver les articles un maximum de 30 jours, après quoi ils seraient détruits pour ne pas prendre trop d'espace disque.
Coûts #
Le site n'a demandé qu'une seule dépense: le nom de domaine. J'ai payé rc-lite.xyz
environ 1.50$ CAD en 2021. Le renouvellement devrait être aux alentours de 10$ CAD par an.
En tant que projet hobby, le site peut être hébergé chez Vercel gratuitement. Les seules limites de ce forfait gratuit qui pourraient poser problème sont le nombre de minutes de build par mois (6000 minutes) et la bande passante mensuelle (100 GB).
Statistiques #
Environ 1 mois après avoir fait le transfert du domaine chez Cloudflare, voyons voir quelques statistiques de visite.
Entre début janvier et début février, Cloudflare rapporte 1630 visites uniques. Quotidiennement, il y a eu au moins 71 visites sur le site, et au plus 180.
Il faut signaler que je n'ai pas vraiment fait de publicité pour le site. J'ai ajouté le projet sur https://250kb.club, https://512kb.club et https://1mb.club, qui sont des listes de sites web légers.
J'ai mentionné Radio-Canada Lite dans les commentaires de l'article A List Of Text-Only News Sites.
Sinon j'ai aussi mentionné le site à quelques reprises sur Twitter et dans la communauté autour du projet 11ty.
Rapport En attente de connexion: consulter les principales constations ↩︎