Vol. I · About
Comment Lantern lit le web pour toi · doc v0.6 · mise à jour 17 mai 2026
Edited by Q. Lecocq · Lille, FR
§ MéthodologiePourquoi · comment · pour qui

About & méthodo.

Lantern est un agrégateur AI. Il lit RSS, scrape quelques sites, score chaque article avec un LLM, et te livre une sélection digeste. Pas de pubs, pas de tracker, pas d'algorithme opaque. Cette page documente exactement ce qui se passe entre une URL source et l'article qui apparaît dans ton feed.

§ 01POURQUOI LANTERN

l'origine

~2 min

J'ouvrais Hacker News, Lobsters, dix flux RSS, et trois Substack le matin avec mon café. Soixante onglets. Je perdais une heure par jour à scroller, et je ratais quand même les bons articles parce qu'ils noyaient sous le bruit.

Lantern est ce que j'aurais voulu lire à la place. Une seule page, déjà filtrée. Un agent qui a déjà lu les 312 articles de la semaine pour moi, qui a viré les redites, scoré le reste, et qui me donne une sélection courte avec des résumés honnêtes — pas du marketing, pas du clickbait reformaté.

Je le construis seul, le soir et les weekends. C'est un projet d'auteur, pas une startup. Ça veut dire trois choses :

  • Pas de pubs, pas de tracker. Lantern ne te suit pas, ne vend pas tes données, et n'a aucun script tiers chargé.
  • Pas de growth hacking. Pas de notif push, pas de gamification, pas de "streak". Tu lis quand tu veux.
  • Curation explicite. Les sources sont publiques, le scoring est documenté ci-dessous, et tu peux toujours désactiver l'IA pour voir le feed brut.
§ 02LE PIPELINE

d'une URL au feed

5 étapes · ~9 min cumulées par article

Chaque article qui apparaît dans ton feed a traversé cinq étapes. La plupart prennent quelques secondes ; le scoring LLM est le goulot d'étranglement. Une exécution complète tourne toutes les 15 minutes pour les flux rapides (HN, Lobsters), toutes les heures pour le reste.

+-- 01 -----+    +-- 02 ------+    +-- 03 ------+    +-- 04 -----+    +-- 05 -----+
|  FETCH    | -> |  EXTRACT   | -> |  DEDUPE    | -> |  SCORE    | -> |  PUBLISH  |
+-----------+    +------------+    +------------+    +-----------+    +-----------+
RSS/scrape       readability       vector hash       gpt-5-nano     ranking + feed
   ~2s             ~0.4s             ~0.1s              ~7s            instant

Ce qui suit détaille chaque étape — ce qu'elle reçoit, ce qu'elle produit, et ce qu'elle peut rater.

01FETCH

Récupération brute du contenu

Un cron job visite les 52 sources via RSS, Atom, GitHub releases, et deux scrapers maison pour des sites sans flux. Chaque réponse est mise en cache 4h pour éviter de cogner les serveurs en aval.

02EXTRACT

Extraction du contenu propre

L'algorithme readability (port de Mozilla) sépare le contenu de la chrome (header, sidebar, related). Pour les flux RSS qui livrent déjà du markup propre, on saute cette étape. ~3% des extractions échouent — l'article est gardé mais marqué comme "extrait incomplet" dans le détail.

03DEDUPE

Déduplication sémantique

Un hash simhash est calculé sur les premiers 4000 caractères. Si un article ingéré dans les 14 derniers jours a un hash à distance < 8, on considère que c'est un cross-post (pareil sur HN et Lobsters, par exemple) et on garde la source la plus tôt — les autres sont marquées "alias".

04SCORE

Scoring LLM & tagging

GPT-5-nano reçoit le titre, l'extrait (max 2000 chars), et un prompt système court. Il retourne : un score de 1 à 5 sur 3 axes (depth, novelty, applicability), un type ([article] / [tool] / [agent] / [mcp]), 2 à 5 tags, et un résumé d'~80 mots. Voir §03 Comment je score pour le prompt complet.

05PUBLISH

Publication & ranking

L'article rejoint la base. Le ranking du feed combine score édito × récence × signal social (points HN si dispo). Les articles à score < 2 sont gardés mais cachés du feed par défaut (visibles via filtre "tout"). Une fois par semaine, le digest est recompilé à partir des 7 derniers jours.

§ 03COMMENT JE SCORE

le prompt, la grille

prompt v0.7 — stable depuis fév. 2026

Le scoring est le seul endroit où l'IA décide quelque chose à ta place. Pour que ce soit honnête, voici le prompt système exact, et la grille qu'il applique. Si tu n'es pas d'accord avec un score, tu peux le ré-évaluer toi-même sur la page article — ton score perso prime sur le score édito dans tes futurs digests.

La grille

  • 5 ★ — Indispensable. Soit un papier de fond, soit un outil qui change un workflow, soit un post de retour d'expérience rare.
  • 4 ★ — Très bon. Tu apprends quelque chose de neuf et applicable. La majorité du Pick of the Week vient d'ici.
  • 3 ★ — Solide mais déjà vu. Bien écrit, sujet familier. Quick hits viennent souvent d'ici.
  • 2 ★ — Marginal. Tutoriel basique, news sans angle, post promotionnel. Caché par défaut.
  • 1 ★ — Bruit. SEO bait, repost mal sourcé, hype-piece. Caché.

Le prompt système (extrait)

# role: editor
You are an editor for a tech newsletter aimed at experienced devs
and AI engineers. Score the following article on a 1-5 scale based
on technical depth, novelty, and applicability.

# anti-patterns (auto -1)
- listicle without substance ("10 X you must know")
- pure news without analysis
- vendor-pushed content without independent angle
- AI-generated prose (detect via burstiness + perplexity)

# bonus (auto +1, max once)
- post-mortem with concrete numbers
- benchmark against alternatives
- author has hands-on production experience

Return strict JSON: { depth, novelty, applicability, type, tags, summary }

Le prompt complet est versionné et figé pour 3 mois minimum, pour que les scores restent comparables entre semaines. Quand on bump (rare), c'est noté dans le changelog.

Ce que je ne fais pas

  • Pas de personnalisation par utilisateur. Tout le monde voit le même score édito. Lantern n'apprend pas de tes clics.
  • Pas de A/B test sur les titres. Le titre affiché est celui de la source, point.
  • Pas de boost commercial. Aucune source ne paie pour apparaître. Aucune source n'est exclue parce qu'elle nous critique.
§ 04FAQ

les questions habituelles

7 entrées

Q.01Lantern est gratuit. C'est quoi le piège ?

Pas de piège. C'est un projet perso, le coût d'infra (~$25/mois) reste gérable solo. Si l'audience grossit, j'ouvrirai sûrement un tier "supporter" optionnel pour aider à payer le compute LLM, mais le cœur restera gratuit. Pas de freemium déguisé, pas de paywall qui apparaît un jour.

Q.02Pourquoi pas une appli mobile ?

Le site est responsive et lit correctement sur mobile. Une appli native demanderait un store, des reviews, un cycle de release — pour un projet solo, c'est trop. Si tu veux un truc à toi sur l'écran d'accueil, ajoute le site comme PWA depuis Safari/Chrome.

Q.03Comment proposer une source ?

Depuis la page Sources, en bas, "Ajouter une source". Tu colles l'URL, je vérifie manuellement (qualité, fréquence, pertinence) et j'ajoute si ça colle au feed. Tu peux aussi me ping sur X ou par mail.

Q.04Mes données sont-elles partagées ?

Non. Pas de tracker tiers, pas de pixel, aucun script third-party chargé sur le site. Aucune analytique n'est en place pour l'instant — j'en ajouterai sûrement une (Plausible ou auto-hébergée) le jour où ce sera utile, et ce sera anonyme et documenté ici. Côté stockage, tes favoris et notes sont en base Postgres (Neon, hébergé en Europe), accessibles uniquement par toi via ton email magic link. Aucun tiers n'a accès. Tu peux exporter en JSON depuis /favorites et tout supprimer à tout moment.

Q.05Pourquoi un seul modèle au lieu de switcher ?

Parce que le score doit rester comparable d'une semaine à l'autre. Switcher de modèle change subtilement la grille, et pollue les comparaisons historiques. Je benchmark le modèle contre les concurrents tous les 3 mois ; je ne migre que si l'écart de qualité est clair, et je note la migration dans le changelog.

Q.06Le digest est-il généré par IA ?

La sélection est éditoriale (j'ouvre les 70 articles à 4★+ de la semaine et j'en garde 7 à la main). Le résumé court sur le Pick of the Week est généré par LLM — c'est marqué [SYNTH] dans la page. Tout le reste est écrit ou compilé manuellement.

Q.07Lantern peut-il rater un article important ?

Oui. Trois cas de figure : (1) la source n'est pas couverte — si l'auteur poste sur un blog perso pas indexé par Lantern, je ne le verrai pas (proposer une source via la page Sources reste le meilleur fix) ; (2) le LLM sous-évalue — un post court mais dense, ou un papier académique sec, peut sortir à 3★ alors qu'il méritait 4 (cf §03 sur l'écart médian de 0.4★) ; (3) un cross-post est rangé en alias — si Lantern voit le même article sur HN et Lobsters, il garde la première source vue et marque l'autre comme alias. Pour ces trois cas, le filtre "tout afficher" du feed remonte aussi les articles cachés ou aliasés. Lantern n'est pas exhaustif — il est filtré. Si tu veux la totale, garde Feedly à côté.

§ 05CHANGELOG

ce qui a bougé

8 entrées récentes
v0.602 maiFEATUREPage About + sign-in 2-col éditorial — refonte UI, design tokens partagés.
v0.501 maiREFACTORPipeline modulaire — séparation extract/dedupe/score/publish, schémas split (articles/scores/sources).
v0.430 avr.SOURCEÉlargissement sources dev front+back.
v0.3.129 avr.FEATUREDigest hebdo lancé via gpt-5 + admin dashboard /admin (7 sections).
v0.329 avr.MIGRATIONSwitch ingestion : opencode zen → OpenAI gpt-5-nano (qualité + coût).
v0.227 avr.FEATUREWeb content fetcher (Readability) + sources GitHub Trending RSS.
v0.126 avr.RELEASEBootstrap Lantern — Next.js 16, Drizzle/Neon, Auth.js magic link, scoring LLM, cron Vercel.
v0.026 avr.INITInitial commit — scaffold Next.js + structure feature-based.