Constat du problème

Plusieurs utilisateurs d'Ask HN signalent que la page Ask HN ne montre plus que 15 postes, alors que le comportement historique affichait 30 entrées avec un bouton more pour charger la suite. Les témoignages varient : certains voient 14, d’autres 15, d’autres encore 30 selon le navigateur (Chrome, mode incognito) ou le statut de connexion. Aucun message d’erreur n’est affiché, mais le fil se termine brusquement, ce qui suggère une modification du mécanisme de pagination côté serveur ou client.

Architecture de la pagination sur Hacker News

Hacker News utilise une API interne qui renvoie les identifiants de postes sous forme de tableau JSON, limité par un paramètre limit et un curseur offset. Le front‑end JavaScript itère sur ce tableau et injecte chaque poste dans le DOM. Historiquement, la valeur limit était fixée à 30, et le bouton more déclenchait une requête supplémentaire avec un offset incrémenté. Si le serveur renvoie un tableau de 15 éléments, le client ne crée pas de bouton more, ce qui correspond exactement aux observations des utilisateurs.

Hypothèses techniques

Plusieurs scénarios plausibles expliquent la réduction soudaine du nombre d’éléments :

1. Modification du paramètre de limite côté serveur. Une mise à jour du code backend (par exemple un commit « vibecoded » mentionné dans les commentaires) aurait pu changer la valeur par défaut de limit de 30 à 15 pour réduire la charge de rendu ou tester un nouveau modèle de pagination.

2. Cache ou CDN mal synchronisé. Si un CDN délivre une version mise en cache d’une réponse JSON tronquée à 15 éléments, tous les clients recevront la même taille de page, indépendamment du navigateur ou de la session.

3. A/B testing ou feature flag. L’équipe pourrait activer un flag expérimental limitant la page à 15 postes pour un sous‑ensemble d’utilisateurs afin d’évaluer l’impact sur le temps de chargement. Les commentaires indiquent que certains voient 30, ce qui correspond à une segmentation aléatoire.

4. Bug de rendu JavaScript. Une régression dans le script qui calcule la longueur du tableau pourrait tronquer la liste à 15 éléments avant d’ajouter le bouton more. Le fait que le problème persiste en mode incognito suggère que le bug n’est pas lié aux cookies ou à l’état de connexion.

Implications et pistes de résolution

Du point de vue de la performance, réduire la taille de la page diminue le temps de rendu et la consommation de bande passante, mais cela pénalise l’expérience utilisateur en limitant la visibilité des discussions. Pour confirmer la cause, il faut intercepter les requêtes réseau (outil Network du navigateur) et comparer le corps JSON retourné avec les valeurs attendues (30 identifiants). Si le tableau contient 15 entrées, le problème est serveur ; si le tableau en contient 30 mais que le DOM n’affiche que 15, le problème est client.

En l’absence de communication officielle, la meilleure démarche reste de contacter hn@ycombinator.com via le lien de contact indiqué en bas de page, comme le suggèrent plusieurs commentateurs. Une fois le problème identifié, le correctif consistera soit à restaurer la valeur limit à 30, soit à corriger le script de rendu, soit à ajuster la configuration du CDN.