15 points par GN⁺ 2025-12-08 | 1 commentaires | Partager sur WhatsApp
  • Création d’une extension de navigation web basée sur des flux RSS, permettant aux utilisateurs d’explorer et d’évaluer au hasard du contenu provenant de sites web indépendants
  • Un clic sur un bouton affiche un nouveau site, avec des fonctions J’aime · Je n’aime pas · Signaler pour former un système de recommandation communautaire
  • Backend conçu avec FastAPI et SQLite, en utilisant la liste RSS du small web de Kagi pour indexer environ 6000 pages
  • Sans publicité ni collecte de données utilisateur, l’expérience vise simplement à faire découvrir pendant un court moment du contenu web intéressant
  • Un projet expérimental personnel qui cherche à réduire la fatigue liée aux lecteurs RSS existants et à redécouvrir l’écosystème du petit web

Aperçu du projet

  • Le projet part du constat que l’expérience d’utilisation des lecteurs RSS peut être pesante
    • mise sous pression par l’accumulation d’articles non lus, et inefficacité d’une structure de contenu strictement chronologique
    • les utilisateurs expriment l’envie d’explorer au hasard des articles intéressants
  • Inspiré par le mode de recommandation de TikTok, le système a été conçu pour proposer aléatoirement du contenu de petits sites web
    • quand l’utilisateur évalue un contenu, sa fréquence d’affichage augmente selon le nombre de J’aime
    • application d’un algorithme de recommandation simple, sans publicité ni collecte de données personnelles

Fonctionnalités et parcours utilisateur

  • Proposé sous forme d’extension Firefox, téléchargeable sur timewasterpro.xyz
  • L’utilisateur reçoit un nouveau site en cliquant sur un bouton et l’évalue avec Upvote/Downvote/Report
  • Création de compte requise ; si un lien soumis devient populaire auprès des autres utilisateurs, il remonte dans le Leaderboard
  • Le backend explore régulièrement les flux RSS et les enregistre dans la base de données
    • vérification de 5 flux toutes les 600 secondes, avec une mise à jour à une fréquence inférieure ou égale à une fois par jour
    • les URL signalées sont déplacées vers une file d’attente de révision, et les nombres de J’aime/Je n’aime pas sont enregistrés

Stack technique

  • API écrite avec FastAPI, base de données gérée avec SQLAlchemy
  • Stockage des données avec SQLite
    • démarrage rapide et sauvegarde simple, ce qui le rend adapté à un projet hobby
  • Authentification via création de compte par e-mail puis vérification par lien
    • une connexion par passkey a aussi été testée, mais reste limitée à cause de l’instabilité des implémentations OSS
    • utilisation de l’authentification JWT, jugée toutefois peu efficace du point de vue de l’expérience utilisateur
  • La liste RSS du dépôt GitHub Kagi small web est utilisée comme source de données

Design et expérience utilisateur

  • Utilisation de la bibliothèque System.css pour reproduire un style Apple System OS des années 80–90
    • cela communique visuellement l’idée d’une « expérience personnelle » plutôt que d’un service professionnel
  • Impossible de distinguer les raccourcis clavier selon l’OS, donc la touche Alt a été imposée
  • Des difficultés ont été rencontrées avec la configuration de manifest.json de l’extension, notamment pour la définition d’identifiants selon le navigateur
  • Aucun outil d’analyse n’est intégré ; les retours utilisateurs sont donc collectés principalement à partir des problèmes signalés directement

Plans à venir

  • Prévoit d’organiser le contenu par catégories afin que les utilisateurs voient plus souvent les genres qu’ils préfèrent
  • Étudie une fonction permettant de déplacer dans une file séparée les contenus recevant trop de Downvotes
  • Nécessité de mettre en place une structure permettant aux nouveaux utilisateurs de voir d’abord les “bons contenus”
  • Souhaite élargir l’offre de sites web indépendants dans les domaines de la photo, de la science et de l’artisanat
  • Environ 6000 pages sont actuellement indexées, et le code source sera publié une fois stabilisé

1 commentaires

 
GN⁺ 2025-12-08
Avis sur Hacker News
  • Penser qu’il faut tout lire est en fait un défaut de conception de l’interface du lecteur

    • Le problème vient de la façon dont les flux RSS sont présentés comme une « boîte de réception », à la manière des e-mails

    • Il faut plutôt les aborder sous la forme d’une « rivière d’actualités » (river of news), comme TikTok

    • L’essentiel est de jeter un rapide coup d’œil aux articles intéressants et de laisser passer le reste

    • Twitter avait lui aussi, au fond, une structure proche du RSS — on y faisait simplement défiler le flux sans indicateur de « non lu »

    • C’est pourquoi il vaut mieux désactiver le compteur d’« éléments non lus ». La vraie valeur du RSS réside dans ce que je choisis de lire

    • Et si un article est vraiment excellent, d’autres abonnés finiront bien par partager le lien

    • Moi, je préfère le modèle boîte de réception à celui de la « rivière »

      • Si les flux sont rangés par catégories, les marquer « tous lus » n’est pas difficile
      • En revanche, je me désabonne immédiatement des flux qui publient trop souvent. Je n’arrive pas à suivre les blogs qui publient tous les jours
    • J’ai moi aussi essayé un temps de créer un système qui trouverait automatiquement sur le web des contenus correspondant à mes goûts

      • J’ai fini par comprendre l’importance de sources de données de haute qualité, et je suis arrivé à la conclusion qu’il suffisait de s’abonner à un petit nombre de bonnes personnes
      • Puis, en y repensant depuis le début, je me suis rendu compte que c’était précisément le RSS — un concept déjà abouti en 2005
    • J’ai eu une révélation semblable il y a quelques années

      • Comme je ne voulais pas suivre ce que j’avais lu, j’ai créé un bot pour chaque flux RSS afin de le mirrorer sur Diaspora
      • Je suis passé à Mastodon depuis, mais le principe reste le même — simplement faire défiler et ne regarder que les articles intéressants
    • Twitter était un service comme ça, mais ce n’est plus le cas aujourd’hui

  • Certaines personnes semblent simplement mal utiliser leur lecteur RSS

    • Le RSS n’est pas un outil pour consommer tout le contenu comme une chaîne YouTube, mais pour lire uniquement les articles qui paraissent intéressants à partir des titres

    • TikTok, c’est même pire — c’est une structure pensée pour retenir les gens avec un flux de contenu sans fin

    • Pour ce genre de personne, une liste « à lire plus tard » serait probablement plus adaptée qu’un nouveau lecteur RSS

    • Le moteur de recommandation de TikTok est très efficace parce qu’il mesure la réaction au niveau d’un contenu individuel

      • À l’inverse, YouTube oblige à choisir parmi plusieurs miniatures, ce qui lui fait perdre l’information sur les 9 autres non cliquées
      • Ce n’est pas l’algorithme en soi qui est mauvais, le problème est ce qu’on cherche à optimiser
      • Mon lecteur affiche lui aussi un contenu à la fois comme TikTok, mais il est composé de publications scientifiques ou d’articles sur les LLM que j’ai moi-même soumis
    • Il n’y a pas besoin d’affirmer catégoriquement que quelqu’un « utilise mal » le RSS

      • La façon de consommer le contenu est simplement passée de « lire ce qui vient d’être publié » à « rattraper ce que j’ai accumulé »
      • On peut utiliser YouTube exactement selon le même principe
    • À l’époque où j’utilisais NetNewsWire, le badge des articles non lus me rendait anxieux

      • Si je m’y remettais aujourd’hui, je désactiverais les badges et je marquerais automatiquement comme lus les articles vieux de plus de deux jours
    • J’utilise une version 2005 de tt-rss que j’ai personnalisée

      • Certains flux, je les lis du début à la fin ; d’autres, je ne fais que les survoler de temps en temps
      • Plus tard, j’aimerais ajouter un flux algorithmique basé sur un système de recommandation
      • J’aimerais surtout expérimenter un flux de recommandation décentralisé fondé sur les « favoris/articles tagués » d’auteurs que j’aime lire
    • L’indicateur « non lu » de Google Reader donnait au tout un aspect proche de l’e-mail, ce qui le faisait ressembler à une « tâche à faire »

      • C’était une interface qui transformait le simple fait de parcourir des titres en une sorte de travail
  • Beaucoup de gens utilisent RSS comme nom générique pour les flux web

    • En pratique, la vraie question est de savoir s’il faut utiliser RSS, Atom ou JSON Feed

    • Les podcasts, eux, continuent de reposer sur RSS

    • Pour ma part, je n’utilise que JSON Feed

      • Grâce à sa structure simple, il fonctionne bien dans la plupart des lecteurs et se manipule facilement en programmation
      • Quand je génère un flux moi-même, j’utilise du JSON Feed à 100 %. Je n’ai jamais vraiment vu de raison d’utiliser Atom
  • La plupart des lecteurs de flux semblent avoir été conçus par des gens qui n’utilisent pas vraiment le RSS

    • Je gère 211 flux répartis dans une vingtaine de catégories, avec 13 000 éléments en cache

    • En pratique, je ne clique pour ouvrir l’article complet que dans 1 à 5 % des cas

    • Totalement d’accord. Beaucoup de lecteurs n’ont ni fonctions de filtrage ni structure adaptée pour traiter de gros volumes d’articles

  • L’avantage du RSS, c’est d’échapper à l’influence des algorithmes de recommandation

    • On n’y voit pas toujours les mêmes domaines mis en avant, et on peut consulter des articles variés de manière équilibrée
    • Cela donne l’impression d’un retour à un modèle traditionnel de flux d’information linéaire
  • Je suis ravi de voir ce genre de projet

    • J’adorais StumbleUpon à l’époque, donc ça me fait plaisir de voir apparaître un service similaire

    • J’aimerais que quelqu’un crée un successeur à DIGG

    • Entièrement d’accord. Ça rappelle la nostalgie de StumbleUpon, tout en permettant de choisir soi-même sur quel type de contenu se concentrer

    • Pour info, Digg a récemment été relancé en bêta

  • J’aime la curation non algorithmique du RSS, mais je ne veux pas d’une curation axée sur le « fun »

    • Je préfère éviter les structures qui poussent à l’« engagement », comme TikTok
    • Si je reviens au RSS, c’est pour être directement relié aux auteurs que j’apprécie
    • Si le volume de contenu augmente plus tard, une curation sous forme de newsletter hebdomadaire où l’algorithme compresse le contenu serait idéale
  • Le fait de préserver ou non l’ordre chronologique dépend du contexte

    • J’ai imaginé des solutions UX à ce problème pour les lecteurs RSS ou les podcasts, mais je n’ai pas encore trouvé de bonne réponse
  • Je recommande un service appelé Scour

    • Il classe les articles selon leur pertinence par rapport aux centres d’intérêt de l’utilisateur

    • Il permet d’importer des flux RSS ou d’effectuer des recherches parmi plus de 15 000 sources

    • Il a été conçu comme un outil qui sélectionne les bons articles et évite d’accumuler des milliers d’éléments « non lus »

    • Je trouve ça intéressant. Je me demande s’il existe une fonctionnalité permettant d’exclure certains flux via une blacklist

  • J’essaie de résoudre le problème de catégorisation du RSS

    • Comme beaucoup de flux n’utilisent pas le champ category, j’ai créé un crawler qui parse les hashtags dans la description

    • Pour conserver un « inbox zero » RSS au quotidien, je me désabonne des blogs qui publient trop souvent

    • Il semble exister une relation inverse entre fréquence de publication et qualité du contenu

    • J’utilise l’application Karakeep pour m’abonner à des flux RSS

      • Elle sauvegarde automatiquement les contenus et génère des tags avec une IA générative
      • On peut créer des flux RSS conditionnels, ce qui la rend pratique à utiliser avec un lecteur classique
    • Mon site web propose lui aussi plusieurs types de contenu, mais comme la plupart des lecteurs ne prennent pas en charge les tags category

      • j’ai fini par les distinguer en ajoutant un préfixe comme [Blog] dans le titre