Rédacteur Show HN — Édition appuyée par les données
Cette compétence rédige des posts HN en utilisant des schémas extraits de 250 posts réels les mieux classés. Chaque règle ci-dessous provient de données observées, pas de conventions.
Ce que disent les données (à internaliser avant d'écrire quoi que ce soit)
Voici les résultats de l'analyse de 250 posts HN les mieux classés, collectés le 18 avril 2026. Ils remplacent toute sagesse reçue sur l'écriture pour HN.
La longueur du titre est le prédicteur le plus fort du score.
- Moins de 40 caractères : moyenne 248 pts (n=82)
- 40–59 caractères : moyenne 192 pts (n=68)
- 60–79 caractères : moyenne 150 pts (n=91)
- 80+ caractères : moyenne 131 pts (n=9) Objectif par défaut : moins de 40 caractères. Plafond dur : 60.
Le corps du texte n'affecte pas le score. 90 % des posts n'avaient pas de corps. Moyenne avec corps : 189. Moyenne sans corps : 193. Statistiquement identique. Un corps ne vaut la peine d'être écrit que si vous avez un détail technique vraiment intéressant qui ne tient pas dans le titre. N'écrivez jamais un corps pour paraître crédible.
Le préfixe Show HN réduit le score. Les posts Show HN ont une moyenne de 94 pts contre 186+ pour les déclarations simples. Le label signale « Je veux des retours sur mon truc » ce qui déclenche une lecture plus sceptique. N'utilisez « Show HN : » que lorsque le projet est véritablement novateur. Proposez toujours une alternative sans préfixe.
Les titres à la première personne surpassent les déclarations anonymes. Première personne (« J'ai… », « Mon… », « Nous… ») : moyenne 291 pts (n=9). Déclaration simple : moyenne 186 pts (n=126). Si le point de vue du créateur fait partie de l'histoire, commencez par là.
Les questions génèrent plus de commentaires que de votes. Les titres sous forme de question ont un ratio commentaires/score moyen supérieur à 1,0×. Meilleurs pour les discussions, pas pour le score brut. Demandez à l'utilisateur pour quel objectif il optimise avant d'écrire.
Les thèmes qui performent systématiquement :
- Sécurité / backdoor / brèche : moyenne 308 pts
- Vie privée / surveillance / données : moyenne 282 pts
- IA / sorties LLM : moyenne 266 pts (42 posts — plus grande catégorie)
- Sorties open source : moyenne 485 pts (petit n, mais signal fort)
Les titres les plus performants partagent un trait : ce sont des histoires, pas des sujets. « Quelqu'un a acheté 30 plugins WordPress et a planté une backdoor dans chacun d'eux » — 1192 pts. « Google a brisé sa promesse envers moi – maintenant ICE a mes données » — 1688 pts. Un sujet, c'est « Sécurité des plugins WordPress ». Une histoire a un acteur, une action et des enjeux.
Étape 1 : Poser une question à l'utilisateur avant toute chose
Avant de rédiger, demandez :
« Deux petites questions :
- Optimisez-vous pour le score (portée) ou les commentaires (discussion) ?
- Que fait le projet — une phrase, technique, sans adjectifs ? »
Ne continuez pas tant que vous n'avez pas les deux réponses.
Étape 2 : Déterminer le type de post approprié
En fonction du projet et de l'objectif, choisissez le format à utiliser :
Titre simple (recommandé par défaut) Pas de préfixe. Juste ce que c'est ou ce qui s'est passé. Score moyen le plus élevé. À utiliser pour : partager une sortie, un article, un outil ou un événement.
Préfixe Show HN : (à utiliser avec parcimonie) À utiliser uniquement quand : le projet est une démo fonctionnelle, le créateur est présent pour répondre aux questions, et l'implémentation technique est la partie intéressante. Le score moyen est bas (94), mais il signale l'authenticité quand le projet est véritablement novateur. Toujours rédiger aussi une alternative sans préfixe pour comparaison.
Préfixe Ask HN : À utiliser quand : l'objectif est la discussion, pas la promotion. Ratio d'engagement moyen > 1,0×. Meilleur pour les posts « Qui utilise X ? » ou « Devrais-je faire Y ? ».
Préfixe Tell HN : Lancement d'alerte, responsabilisation ou divulgation. Un point de données à 819 pts. À utiliser uniquement si le post est factuel, vérifiable et que le créateur est nommé.
Étape 3 : Rédiger le titre
Le titre est l'intégralité du post. Considérez le corps comme facultatif.
Règles dérivées des données :
- Visez moins de 40 caractères. Chaque 20 caractères supplémentaires coûte environ 30 points de moyenne.
- Écrivez une histoire, pas une catégorie. Acteur + action + enjeux bat les groupes nominaux.
- La première personne (« J'ai… ») ajoute ~100 pts de moyenne par rapport à une déclaration simple quand le point de vue du créateur compte.
- Pas d'adjectifs marketing. Pas « rapide », « simple », « puissant », « léger » sauf s'il s'agit d'une spécification littérale (ex. « 35B-A3B » est une spécification, « puissant » non).
- La spécificité bat la généralité. « 30 plugins WordPress » bat « plugins CMS populaires ».
- L'année entre parenthèses signale un intérêt durable : (2008), (1956). À utiliser pour du contenu plus ancien qui a bien vieilli.
- Tiret cadratin (–) pour le format sous-titre : « Nom du produit – ce qu'il fait ». Pas un trait d'union (-).
Rédigez trois variantes :
- La plus courte possible (visez moins de 35 caractères) — retirez tout ce qui n'est pas essentiel
- Angle histoire — acteur + action + enjeux
- Angle technique — commencez par la décision d'ingénierie intéressante
Ensuite, appliquez le test de longueur : comptez les caractères de chaque variante. Signalez toute variante dépassant 60.
Étape 4 : Décider s'il faut écrire un corps
Demandez-vous : l'implémentation technique a-t-elle un détail qui ne tient pas dans le titre et que les ingénieurs de HN trouveraient vraiment intéressant ?
Si oui : écrivez un corps (voir Étape 5). Si non : arrêtez-vous au titre. Pas de corps vaut mieux qu'un corps artificiel.
Les données montrent que les corps n'augmentent pas le score. La seule raison d'en écrire un est si l'implémentation est suffisamment intéressante pour que les ingénieurs demandent « comment ça marche ? » et que vous souhaitiez répondre par avance.
Étape 5 : Rédiger le corps (uniquement si l'Étape 4 a dit oui)
Structure — restez concis :
Ligne 1 : Une phrase. Ce que vous avez construit et pourquoi. À la première personne. Pas « Présentation de X. » Pas « X est un outil qui. » Juste : « J'ai construit X parce que Y. »
Lignes 2–4 : La vraie raison. Honnête. Spécifique. Était-ce un problème que vous avez rencontré vous-même ? Quelque chose de frustrant au travail ? Une curiosité ? « J'étais agacé que… » est mieux que « Les développeurs ont souvent du mal avec… ». La voix du créateur est le point essentiel.
Lignes 5–8 : Comment ça marche concrètement. C'est ce que HN lit. Nommez les choix technologiques spécifiques. Indiquez les compromis que vous avez faits et pourquoi. Une décision d'ingénierie intéressante vaut plus qu'une liste de fonctionnalités.
Ligne 9 : État actuel en une phrase. Open source ? Gratuit ? Alpha ? En solo ? Depuis combien de temps vous travaillez dessus.
Ligne 10 : Une phrase de conclusion invitant aux retours ou aux questions. « Heureux de répondre aux questions sur l'implémentation. » / « Les critiques sont les bienvenues. » Ne demandez jamais de votes, de partages ou d'inscriptions.
Règles strictes :
- 150–300 mots. Moins de 200 est généralement mieux.
- Première personne tout du long.
- Pas de listes à puces. Pas d'en-têtes. Pas de gras.
- Pas de liens dans le corps. L'URL va dans le champ de soumission.
- Pas de mots marketing : révolutionnaire, puissant, robuste, transparent, innovant, meilleur de sa catégorie, simplifier, exploiter, transformer, de pointe.
Étape 6 : Auto-vérification avant de présenter
Parcourez cette liste. Corrigez tout ce qui ne va pas avant d'afficher.
Titre :
- Moins de 60 caractères (comptez-les)
- Pas d'adjectifs marketing
- Est-ce une histoire ou un sujet ? (histoire = mieux)
- Première personne si le point de vue du créateur ajoute quelque chose
- Pas de points d'exclamation
Corps (si écrit) :
- Commence par « J'ai construit… » ou « Depuis N mois… »
- Contient au moins un nom de technologie spécifique ou une décision d'architecture
- Moins de 300 mots
- Pas de liens
- Se termine par une invitation aux retours, pas un appel à l'action
- Zéro mot marketing (vérifiez la liste de l'Étape 5)
Type de post :
- Si utilisation du préfixe Show HN : une alternative sans préfixe est-elle aussi rédigée ?
- Si l'objectif est les commentaires : est-ce une question ou un cadrage clivant ?
- Si l'objectif est le score : est-ce une déclaration, pas une question ?
Étape 7 : Présenter le résultat
Formatez exactement comme suit. Aucun commentaire avant ou après.
## Post HN
### Titre recommandé
[titre — la variante la plus courte et la plus forte]
### Titres alternatifs
1. [variante 2]
2. [variante 3]
---
### Corps
[texte du corps, ou « Non recommandé — le titre suffit. » si l'Étape 4 a dit non]
---
### Notes
- Objectif : [score / commentaires] — basé sur la réponse de l'utilisateur à l'Étape 1
- Type de post utilisé : [simple / Show HN / Ask HN / Tell HN]
- Longueur du titre : [N caractères]
- Meilleur moment pour poster : mardi–jeudi, 8–10 h US Eastern
- Après publication : répondez à chaque commentaire dans les deux premières heures
- Ne partagez le lien ailleurs qu'après 24 heures — HN pénalise les réseaux de votes
Étape 8 : Facultatif — scraper les meilleurs posts HN actuels pour le contexte
Si l'utilisateur veut vérifier si des posts similaires ont été soumis récemment, ou voir ce qui performe dans leur catégorie en ce moment, exécutez le scraper :
import requests
from concurrent.futures import ThreadPoolExecutor
HN_API = "https://hacker-news.firebaseio.com/v0"
def fetch_item(id_):
try:
r = requests.get(f"{HN_API}/item/{id_}.json", timeout=10)
return r.json() if r.ok else None
except Exception:
return None
ids = requests.get(f"{HN_API}/topstories.json").json()[:250]
with ThreadPoolExecutor(max_workers=20) as ex:
items = [i for i in ex.map(fetch_item, ids) if i]
# Filtrer par mot-clé pertinent pour le projet de l'utilisateur
keyword = "VOTRE_MOT_CLÉ_ICI"
matches = [i for i in items if keyword.lower() in i.get("title","").lower()]
for i, item in enumerate(matches, 1):
score = item.get("score", 0)
title = item.get("title", "")
by = item.get("by", "")
print(f"{i:>2}. [{score:>4}pts] {title} — {by}")
print(f"\nTotal correspondant : {len(matches)}")
Utilisez les résultats pour :
- Vérifier si un post quasi identique a été soumis au cours des 48 dernières heures (éviter les doublons)
- Voir quels schémas de titres fonctionnent dans cette catégorie en ce moment
- Identifier le plancher de score pour ce sujet
Les résultats sont également ajoutés automatiquement à hn_log.csv si le scraper complet est utilisé.
Référence : meilleurs performeurs observés dans le jeu de données
Voici des posts réels du top 250. Étudiez les schémas de titres.
| Score | Titre |
|---|---|
| 1941 | Claude Opus 4.7 |
| 1688 | Google broke its promise to me – now ICE has my data |
| 1244 | Qwen3.6-35B-A3B: Agentic coding power, now open to all |
| 1192 | Someone bought 30 WordPress plugins and planted a backdoor in all of them |
| 1141 | DaVinci Resolve – Photo |
| 990 | Codex for almost everything |
| 982 | Stop Flock |
| 909 | A new spam policy for "back button hijacking" |
| 893 | GitHub Stacked PRs |
| 819 | Tell HN: Fiverr left customer files public and searchable |
| 668 | I wrote to Flock's privacy contact to opt out of their domestic spying program |
| 619 | Measuring Claude 4.7's tokenizer costs |
| 561 | God sleeps in the minerals |
| 503 | Want to write a compiler? Just read these two papers (2008) |
Meilleurs titres Show HN (par score) : 341 | Show HN: Smol machines – subsecond coldstart, portable virtual machines 199 | Show HN: PanicLock – Close your MacBook lid disable TouchID → password unlock 187 | Show HN: Every CEO and CFO change at US public companies, live from SEC 177 | Show HN: I made a calculator that works over disjoint sets of intervals 152 | Show HN: MacMind – A transformer neural network in HyperCard on a 1989 Macintosh
Meilleurs ratios commentaires/score (pour les posts optimisés pour la discussion) : 1,91× | Why is IPv6 so complicated? 1,43× | Ask HN: Building a solo business is impossible? 1,20× | Ohio prison inmates built computers and hid them in ceiling 1,13× | Ask HN: Who is using OpenClaw? 1,05× | The future of everything is lies, I guess: Where do we go from here?