Pourquoi toutes les landing pages Cursor disent la même chose
Une landing page Cursor a tendance à se lire comme toutes les autres parce que Cursor est un éditeur, pas un outil de design : il transmet votre demande à l'un d'une poignée de modèles, et quand on leur demande une landing page sans contraintes, ces modèles se rabattent sur les mêmes choix par défaut, souvent Next.js avec Tailwind et shadcn/ui, un hero en dégradé, trois cartes de fonctionnalités et un texte du genre « Simplifiez votre workflow ». Comme le code vous appartient, la plupart des corrections aussi. IntentGrid s'occupe d'une seule partie : il réécrit les mots pour chaque visiteur et laisse le code tranquille.
Dernière mise à jour le 28 septembre 2026.
Pourquoi les landing pages construites avec Cursor convergent
Cursor vous donne bien plus de contrôle qu'un générateur d'applications à partir d'un prompt, et le résultat converge quand même, pour des raisons qui se situent en amont de l'éditeur.
- Le designer, c'est le modèle. Cursor envoie votre demande à un modèle que vous choisissez dans une courte liste, et ce sont les mêmes quelques modèles qui écrivent la plupart des nouvelles landing pages du web. Ils partagent les mêmes choix par défaut.
- La stack par défaut est la stack populaire. Quand on leur demande une landing page, les modèles prennent ce qu'ils ont le plus vu : Next.js ou React, Tailwind, shadcn/ui, les icônes lucide. De bons outils, un résultat identique.
- L'agent comble les vides. Demandez « une landing page pour mon API » et il décide des sections, de leur ordre et de chaque mot, en choisissant chaque fois la réponse la plus courante.
- Le texte provisoire survit. Le « Construisez plus vite. Livrez plus intelligemment. » du premier jet devait être remplacé, et sur beaucoup de sites en ligne, il ne l'a jamais été.
Le code est souvent bon. La page reste interchangeable, parce que les décisions qui rendent une page spécifique n'ont jamais été prises par personne.
Ce qu'IntentGrid fait et ne fait pas pour un site construit avec Cursor
IntentGrid réécrit les mots pour chaque visiteur : titres, corps de texte, descriptions de fonctionnalités et libellés des boutons, selon la façon dont ce visiteur est arrivé (source de trafic, campagne, ville approximative, appareil, langue, heure locale). Il part du texte que vous avez déjà, et les noms de marque, les prix, les dates et les chiffres sont sur une liste à ne pas toucher.
Il ne touche pas à votre dépôt. Il n'y a rien à installer pour la démo, aucun changement à vos composants, à votre CSS, à votre mise en page ni à votre build, et rien que Cursor ait à fusionner. Il ne corrigera pas une mise en page générique et il ne vous amènera pas de trafic.
La partie qui fonctionne aujourd'hui est une démo qui affiche une copie réécrite de n'importe quelle URL publique dans un bac à sable sur intentgrid.ai. L'adaptation sur votre domaine est en accès anticipé, mise en place site par site à la main. Comment ça marche donne les détails.
Rendu serveur ou non : ce que la démo peut lire
Ce que voit la démo dépend de ce que vous avez demandé à Cursor de construire. Un site Next.js pré-rend ses pages ou les rend côté serveur par défaut, donc le HTML contient déjà votre texte et la démo a de quoi réécrire. Une application React monopage construite avec Vite envoie à la place un élément racine vide et un script ; le texte n'apparaît qu'une fois le JavaScript exécuté, et comme la démo retire les scripts, l'aperçu peut revenir presque vide.
Vous pouvez vérifier le vôtre en dix secondes : utilisez « Afficher le code source de la page » (pas « Inspecter ») et cherchez votre titre. S'il manque, la démo a peu de matière, et c'est aussi le cas de tout robot qui n'exécute pas le JavaScript, dont beaucoup de robots d'IA. Pour une page marketing, cela vaut la peine d'être corrigé de toute façon, et la génération statique de la route de la landing page est en général un petit changement.
Un avant/après pour illustrer
- Par défaut, identique pour tout le monde
- Surveillez vos API grâce à des insights puissants en temps réel
- Arrivé depuis un fil Hacker News, sur un portable, tard le soir
- Des vérifications de disponibilité que vous configurez dans un fichier YAML, pas dans un tableau de bord
- A cliqué sur une annonce pour la recherche « page de statut »
- Une page de statut publique qui se met à jour toute seule quand une vérification échoue
Même mise en page, mêmes prix, mêmes promesses. Chaque version n'utilise que ce que la page d'origine dit déjà : dans ce cas inventé, une configuration en YAML et une page de statut qui se met à jour automatiquement.
Ce que vous pouvez corriger vous-même dans Cursor
Comme le code vous appartient, vous pouvez corriger l'essentiel dans l'éditeur, et plusieurs de ces points ne prennent que quelques minutes.
- Mettez les contraintes dans un fichier de règles. Les règles de projet vivent dans .cursor/rules et peuvent s'appliquer à chaque demande : écrivez donc une fois les règles de design et de texte, une seule couleur d'accent, pas de hero en dégradé, pas de rangée de trois cartes, une liste de formules interdites.
- Regroupez le texte dans un seul fichier. Gardez chaque titre, sous-titre et libellé de bouton dans un seul module de contenu plutôt qu'éparpillés dans le JSX. Vous réécrirez les mots bien plus souvent quand ils sont tous au même endroit.
- Bannissez les formules moyennes : « simplifier », « fluide », « débloquer », « révolutionner », « booster », « nouvelle génération ». Puis demandez à Cursor de trouver chaque phrase de la page qui pourrait figurer sur le site d'un concurrent.
- Écrivez le titre vous-même, avec les mots qu'un utilisateur a écrits dans une issue, un e-mail au support ou une réponse sur un forum, plutôt qu'avec ceux que le modèle a proposés.
- Faites à la main une variante par canal. Si l'essentiel du trafic vient de deux endroits, lisez le paramètre utm_source et changez le titre pour chacun. Gardez la version par défaut pour tous les autres, robots compris, et gardez une seule URL.
- Rendez la landing page côté serveur. Si le code source de la page ne montre aucun texte, rendez les routes marketing statiques. Cela aide autant les robots que la démo IntentGrid.
La moitié design est traitée plus en détail dans pourquoi les sites vibe codés se ressemblent.
Questions sur Cursor
IntentGrid demande-t-il un package ou un SDK dans mon projet Cursor ?
Pas pour la démo, qui fonctionne sur n'importe quelle URL publique sans rien installer. L'adaptation sur votre domaine est conçue pour ne demander ni reconstruction, ni SDK, ni intégration framework, votre page actuelle servant de base par défaut. C'est un accès anticipé, mis en place site par site à la main, donc la façon dont cela s'installe sera publiée quand ce sera livré plutôt que promise maintenant.
IntentGrid va-t-il changer mon code ou mon design ?
Non. Il réécrit le texte visible de la page que reçoit un visiteur. Votre dépôt, vos composants, vos classes Tailwind, votre mise en page et vos prix restent intacts. Dans la démo, il ajoute par-dessus un bandeau de bienvenue, un panneau personnalisé, une surbrillance sur le titre et un petit badge IntentGrid.
Je ne peux pas simplement le faire moi-même avec des paramètres UTM ?
Pour deux ou trois canaux, si, et c'est une bonne idée : lisez utm_source, changez le titre, gardez une seule URL et une version par défaut pour tous les autres. Cela se complique à mesure que les sources se multiplient et que vous maintenez une variante écrite à la main par canal. IntentGrid est conçu pour écrire la variante correspondant à la provenance du visiteur, quelle qu'elle soit, et en échange, vous relisez des mots écrits par un modèle.