15 points par GN⁺ 2025-12-08 | Aucun commentaire pour le moment. | 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 600�0 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 600�0 pages sont actuellement indexées, et le code source sera publié une fois stabilisé

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.