[{"data":1,"prerenderedAt":493},["ShallowReactive",2],{"post-\u002Ffr\u002Fposts\u002Fenhancing-engagement-enabling-comments-on-my-articles":3,"post-link-fr-8c14b61c-fdf9-443a-924b-050b1395910a":249},{"id":4,"title":5,"body":6,"contentId":237,"date":238,"description":239,"extension":240,"meta":241,"navigation":86,"path":242,"rawbody":243,"robots":244,"schemaOrg":244,"seo":245,"sitemap":246,"stem":247,"__hash__":248},"posts\u002Ffr\u002Fposts\u002Fenhancing-engagement-enabling-comments-on-my-articles.md","Améliorer l'Engagement : Les Commentaires sur Mes Articles",{"type":7,"value":8,"toc":231},"minimark",[9,24],[10,11,12,13,18,19,23],"p",{},"La semaine dernière, j'ai présenté la première phase d'un projet important : ",[14,15,17],"a",{"href":16},".\u002Fenhancing-engagement-enabling-comments-on-my-articles","ajouter des réactions à mes articles",". Aujourd'hui, je suis ravi de dévoiler la deuxième phase : ",[20,21,22],"strong",{},"activer les commentaires sur mes articles",".",[25,26,28,33,36,50,54,67,70],"callout-read-more",{"id":27},"8c14b61c-fdf9-443a-924b-050b1395910a",[29,30,32],"h2",{"id":31},"une-deuxième-phase","Une Deuxième Phase",[10,34,35],{},"Dans l'article précédent, j'ai détaillé l'approche progressive que je poursuis pour améliorer mon site personnel. Pas à pas, je vise à introduire des fonctionnalités pour interagir avec vous, et créer une plateforme avec des interactions autour de toutes les connaissances que je partage.",[10,37,38,39,45,46],{},"C'est un processus progressif parce que je crois que c'est le moyen le plus efficace de livrer, plutôt que d'attendre de tout terminer d'un coup. En même temps, cela me garde motivé et concentré en atteignant de petites victoires et en recevant des retours. Et comme j'apprends ",[14,40,44],{"href":41,"rel":42},"https:\u002F\u002Flaravel.com",[43],"nofollow","Laravel",", cela m'évite de me sentir impuissant face à la potentielle complexité du projet. ",[47,48,49],"em",{},"Finalement, c'est un scénario gagnant-gagnant.",[29,51,53],{"id":52},"limportance-des-commentaires","L'Importance des Commentaires",[10,55,56,57,62,63,66],{},"Récemment, j'ai posté sur X ",[14,58,61],{"href":59,"rel":60},"https:\u002F\u002Fx.com\u002Fsoubiran_\u002Fstatus\u002F1842987889216672223",[43],"un fil de discussion sur les \"singleton composables\"",". Rapidement, j'ai reçu des commentaires, des suggestions et des idées qui m'ont fait réaliser que je pouvais me tromper. ",[47,64,65],{},"Je me suis trompé."," Et je suis reconnaissant d'avoir eu l'opportunité d'apprendre des retours des autres.",[10,68,69],{},"Il y a deux semaines, j'ai également publié un article sur la méthode la plus simple pour créer une bibliothèque de composants Vue.js. À un moment dans l'article, il y avait deux approches pour construire la bibliothèque. J'en ai choisi une, la jugeant la plus simple, mais à travers les commentaires, les gens auraient pu partager leurs pensées et leurs expériences, ce qui aurait pu aider d'autres à prendre de meilleures décisions et à apprendre les uns des autres.",[25,71,73,76,80,83,93,99,151,157,160,203,206,217,220,226],{"id":72},"75df6bff-de40-4056-af23-fae2401cd21a",[10,74,75],{},"Les commentaires sont précieux car ils nous permettent d'exprimer nos pensées, de poser des questions et de participer à des discussions. Ils nous permettent d'apprendre les uns des autres, d'élargir nos connaissances et de grandir collectivement. C'est dans cet esprit que j'ai décidé de mettre en place la possibilité de commenter mes articles.",[29,77,79],{"id":78},"passer-à-la-deuxième-étape","Passer à la Deuxième Étape",[10,81,82],{},"Et nous y voilà, la fonctionnalité de commentaires a été développée et lancée.",[84,85,87,88],"video",{"autoPlay":86,"loop":86,"muted":86,"playsInline":86},true,"\n  ",[89,90],"source",{"src":91,"type":92},"https:\u002F\u002Fimages.soubiran.dev\u002Fposts\u002Fenhancing-engagement-enabling-comments-on-my-articles\u002Fdemo.mp4","video\u002Fmp4",[10,94,95,96],{},"Cette phase a posé plus de défis que la première. J'ai dû prendre en compte divers facteurs et prendre des décisions tout au long du processus. ",[47,97,98],{},"Il est fascinant d'observer comment la même fonctionnalité peut être mise en œuvre de différentes manières. Au final, il s'agit de trouver un équilibre, cherchant à choisir la meilleure solution pour votre scénario spécifique en fonction de vos besoins et contraintes comme le temps, les ressources et l'expertise.",[100,101,102,109,115,124,130,136,142],"ul",{},[103,104,105,108],"li",{},[20,106,107],{},"Quel éditeur utiliser ?"," Comme Notion, Markdown ou WYSIWYG ?",[103,110,111,114],{},[20,112,113],{},"Comment rendre l'éditeur ?"," EasyMDE, CKEditor, Quill ou une simple zone de texte ?",[103,116,117,120,121],{},[20,118,119],{},"Comment mettre en surbrillance les blocs de code ?"," Prism.js, Highlight.js ou Shiki ? ",[47,122,123],{},"C'est crucial pour mes articles techniques.",[103,125,126,129],{},[20,127,128],{},"Comment prévisualiser les commentaires ?"," En temps réel, à la demande ou dans le navigateur ?",[103,131,132,135],{},[20,133,134],{},"Une réponse est-elle un commentaire ?"," Les commentaires peuvent avoir des réponses, mais les réponses doivent-elles être considérées comme des commentaires ?",[103,137,138,141],{},[20,139,140],{},"La suppression d'un commentaire supprime-t-elle les réponses ?"," Si un commentaire est supprimé, les réponses doivent-elles être supprimées également ?",[103,143,144,147,148],{},[20,145,146],{},"Qui peut commenter ?"," Tout le monde, utilisateurs authentifiés ou seulement moi ? ",[47,149,150],{},"Ce serait étrange si je suis le seul à pouvoir commenter mes articles.",[10,152,153,154],{},"Le bénéfice de construire le projet de manière incrémentale est que ce sont les seules décisions que j'ai dû prendre. ",[47,155,156],{},"Je n'ai pas eu à me soucier de l'ensemble du projet, juste de la fonctionnalité de commentaires.",[10,158,159],{},"Pour répondre à ces questions, j'ai effectué des recherches, expérimenté et fait des compromis.",[100,161,162,180,197],{},[103,163,164,167,168,173,174,179],{},[20,165,166],{},"Recherche"," : J'ai essayé de trouver des articles sur les meilleures pratiques, mais je n'ai rien trouvé de particulièrement utile. J'ai donc plongé dans ",[14,169,172],{"href":170,"rel":171},"https:\u002F\u002Fdocs.github.com\u002Fen\u002Fdiscussions",[43],"GitHub Discussions"," et ",[14,175,178],{"href":176,"rel":177},"https:\u002F\u002Flaracasts.com\u002Fdiscuss",[43],"Laracasts Forum",". J'ai découvert des modèles et des idées intéressants que je pouvais exploiter.",[103,181,182,185,186,173,191,196],{},[20,183,184],{},"Expérience"," : Dans des projets précédents, j'ai utilisé ",[14,187,190],{"href":188,"rel":189},"https:\u002F\u002Fgithub.com\u002FIonaru\u002Feasy-markdown-editor",[43],"EasyMDE",[14,192,195],{"href":193,"rel":194},"https:\u002F\u002Fquilljs.com\u002F",[43],"Quill",". J'ai également examiné les éditeurs des plateformes mentionnées plus tôt, et mon choix final pourrait vous surprendre. 🫣",[103,198,199,202],{},[20,200,201],{},"Compromis"," : Choisir la simplicité plutôt que la complexité. C'est mon principe directeur, et toutes mes décisions en sont informées. Cependant, la simplicité peut être assez complexe et ne signifie pas faire des compromis sur les fonctionnalités ou l'expérience utilisateur.",[10,204,205],{},"Toutes ces décisions ont été prises en pensant à l'utilisateur. J'aspire à rendre l'expérience de commentaire aussi fluide et agréable que possible, vous encourageant à partager vos pensées, poser des questions et participer à des discussions.",[10,207,208,209,212,213,216],{},"Parfois je me trompe, et parfois il existe de meilleures solutions, et ce sont ces moments où ",[20,210,211],{},"j'ai besoin de vos retours",". Avec cette nouvelle fonctionnalité de commentaires, il est désormais plus facile que jamais de partager vos pensées et ",[20,214,215],{},"d'aider tout le monde à apprendre et à grandir",". 💜",[218,219],"hr",{},[10,221,222,225],{},[20,223,224],{},"Souhaitez-vous approfondir la manière dont j'ai développé la fonctionnalité de commentaires ?"," Faites-le moi savoir dans les commentaires ci-dessous. ⬇️",[10,227,228],{},[47,229,230],{},"Je songe à écrire une série d'articles sur ce projet, de l'idéation au développement, avec de nombreux extraits de code et explications.",{"title":232,"searchDepth":233,"depth":233,"links":234},"",2,[235,236],{"id":31,"depth":233,"text":32},{"id":52,"depth":233,"text":53},"d88a0c79-e6a6-48ea-acbd-b003176b3ba6","2024-10-09","Deuxième phase d'un projet clé en permettant aux lecteurs de commenter mes articles pour favoriser les conversations et les discussions constructives.","md",{},"\u002Ffr\u002Fposts\u002Fenhancing-engagement-enabling-comments-on-my-articles","---\ncontentId: d88a0c79-e6a6-48ea-acbd-b003176b3ba6\ntitle: \"Améliorer l'Engagement : Les Commentaires sur Mes Articles\"\ndescription: Deuxième phase d'un projet clé en permettant aux lecteurs de commenter mes articles pour favoriser les conversations et les discussions constructives.\ndate: 2024-10-09\n---\n\nLa semaine dernière, j'ai présenté la première phase d'un projet important : [ajouter des réactions à mes articles](.\u002Fenhancing-engagement-enabling-comments-on-my-articles.md). Aujourd'hui, je suis ravi de dévoiler la deuxième phase : **activer les commentaires sur mes articles**.\n\n\u003CCalloutReadMore id=\"8c14b61c-fdf9-443a-924b-050b1395910a\" \u002F>\n\n## Une Deuxième Phase\n\nDans l'article précédent, j'ai détaillé l'approche progressive que je poursuis pour améliorer mon site personnel. Pas à pas, je vise à introduire des fonctionnalités pour interagir avec vous, et créer une plateforme avec des interactions autour de toutes les connaissances que je partage.\n\nC'est un processus progressif parce que je crois que c'est le moyen le plus efficace de livrer, plutôt que d'attendre de tout terminer d'un coup. En même temps, cela me garde motivé et concentré en atteignant de petites victoires et en recevant des retours. Et comme j'apprends [Laravel](https:\u002F\u002Flaravel.com), cela m'évite de me sentir impuissant face à la potentielle complexité du projet. _Finalement, c'est un scénario gagnant-gagnant._\n\n## L'Importance des Commentaires\n\nRécemment, j'ai posté sur X [un fil de discussion sur les \"singleton composables\"](https:\u002F\u002Fx.com\u002Fsoubiran_\u002Fstatus\u002F1842987889216672223). Rapidement, j'ai reçu des commentaires, des suggestions et des idées qui m'ont fait réaliser que je pouvais me tromper. _Je me suis trompé._ Et je suis reconnaissant d'avoir eu l'opportunité d'apprendre des retours des autres.\n\nIl y a deux semaines, j'ai également publié un article sur la méthode la plus simple pour créer une bibliothèque de composants Vue.js. À un moment dans l'article, il y avait deux approches pour construire la bibliothèque. J'en ai choisi une, la jugeant la plus simple, mais à travers les commentaires, les gens auraient pu partager leurs pensées et leurs expériences, ce qui aurait pu aider d'autres à prendre de meilleures décisions et à apprendre les uns des autres.\n\n\u003CCalloutReadMore id=\"75df6bff-de40-4056-af23-fae2401cd21a\" \u002F>\n\nLes commentaires sont précieux car ils nous permettent d'exprimer nos pensées, de poser des questions et de participer à des discussions. Ils nous permettent d'apprendre les uns des autres, d'élargir nos connaissances et de grandir collectivement. C'est dans cet esprit que j'ai décidé de mettre en place la possibilité de commenter mes articles.\n\n## Passer à la Deuxième Étape\n\nEt nous y voilà, la fonctionnalité de commentaires a été développée et lancée.\n\n\u003Cvideo autoplay loop muted playsinline>\n  \u003Csource src=\"https:\u002F\u002Fimages.soubiran.dev\u002Fposts\u002Fenhancing-engagement-enabling-comments-on-my-articles\u002Fdemo.mp4\" type=\"video\u002Fmp4\">\n\u003C\u002Fvideo>\n\nCette phase a posé plus de défis que la première. J'ai dû prendre en compte divers facteurs et prendre des décisions tout au long du processus. _Il est fascinant d'observer comment la même fonctionnalité peut être mise en œuvre de différentes manières. Au final, il s'agit de trouver un équilibre, cherchant à choisir la meilleure solution pour votre scénario spécifique en fonction de vos besoins et contraintes comme le temps, les ressources et l'expertise._\n\n- **Quel éditeur utiliser ?** Comme Notion, Markdown ou WYSIWYG ?\n- **Comment rendre l'éditeur ?** EasyMDE, CKEditor, Quill ou une simple zone de texte ?\n- **Comment mettre en surbrillance les blocs de code ?** Prism.js, Highlight.js ou Shiki ? _C'est crucial pour mes articles techniques._\n- **Comment prévisualiser les commentaires ?** En temps réel, à la demande ou dans le navigateur ?\n- **Une réponse est-elle un commentaire ?** Les commentaires peuvent avoir des réponses, mais les réponses doivent-elles être considérées comme des commentaires ?\n- **La suppression d'un commentaire supprime-t-elle les réponses ?** Si un commentaire est supprimé, les réponses doivent-elles être supprimées également ?\n- **Qui peut commenter ?** Tout le monde, utilisateurs authentifiés ou seulement moi ? _Ce serait étrange si je suis le seul à pouvoir commenter mes articles._\n\nLe bénéfice de construire le projet de manière incrémentale est que ce sont les seules décisions que j'ai dû prendre. _Je n'ai pas eu à me soucier de l'ensemble du projet, juste de la fonctionnalité de commentaires._\n\nPour répondre à ces questions, j'ai effectué des recherches, expérimenté et fait des compromis.\n\n- **Recherche** : J'ai essayé de trouver des articles sur les meilleures pratiques, mais je n'ai rien trouvé de particulièrement utile. J'ai donc plongé dans [GitHub Discussions](https:\u002F\u002Fdocs.github.com\u002Fen\u002Fdiscussions) et [Laracasts Forum](https:\u002F\u002Flaracasts.com\u002Fdiscuss). J'ai découvert des modèles et des idées intéressants que je pouvais exploiter.\n- **Expérience** : Dans des projets précédents, j'ai utilisé [EasyMDE](https:\u002F\u002Fgithub.com\u002FIonaru\u002Feasy-markdown-editor) et [Quill](https:\u002F\u002Fquilljs.com\u002F). J'ai également examiné les éditeurs des plateformes mentionnées plus tôt, et mon choix final pourrait vous surprendre. 🫣\n- **Compromis** : Choisir la simplicité plutôt que la complexité. C'est mon principe directeur, et toutes mes décisions en sont informées. Cependant, la simplicité peut être assez complexe et ne signifie pas faire des compromis sur les fonctionnalités ou l'expérience utilisateur.\n\nToutes ces décisions ont été prises en pensant à l'utilisateur. J'aspire à rendre l'expérience de commentaire aussi fluide et agréable que possible, vous encourageant à partager vos pensées, poser des questions et participer à des discussions.\n\nParfois je me trompe, et parfois il existe de meilleures solutions, et ce sont ces moments où **j'ai besoin de vos retours**. Avec cette nouvelle fonctionnalité de commentaires, il est désormais plus facile que jamais de partager vos pensées et **d'aider tout le monde à apprendre et à grandir**. 💜\n\n---\n\n**Souhaitez-vous approfondir la manière dont j'ai développé la fonctionnalité de commentaires ?** Faites-le moi savoir dans les commentaires ci-dessous. ⬇️\n\n_Je songe à écrire une série d'articles sur ce projet, de l'idéation au développement, avec de nombreux extraits de code et explications._\n",null,{"title":5,"description":239},{"loc":242},"fr\u002Fposts\u002Fenhancing-engagement-enabling-comments-on-my-articles","AwemN2gBlUkr9uIt3sOVYHBWS6jIQV4CKvvFMrbODO8",{"id":250,"title":251,"body":252,"contentId":27,"date":484,"description":485,"extension":240,"meta":486,"navigation":86,"path":487,"rawbody":488,"robots":244,"schemaOrg":244,"seo":489,"sitemap":490,"stem":491,"__hash__":492},"posts\u002Ffr\u002Fposts\u002Fenhancing-engagement-adding-reactions-to-my-articles.md","Améliorer l'Engagement : Ajouter des Réactions aux Articles",{"type":7,"value":253,"toc":478},[254,257,261,273],[10,255,256],{},"Salut ! J'espère que vous allez bien. Je suis ravi de partager avec toi le début d'un projet significatif qui m'accompagnera dans les mois à venir.",[29,258,260],{"id":259},"introduction","Introduction",[10,262,263,264,269,270],{},"En mars 2024, j'ai annoncé la refonte de mon site personnel pour la quatrième fois, cette fois en utilisant ",[14,265,268],{"href":266,"rel":267},"https:\u002F\u002Fvitepress.dev\u002F",[43],"VitePress",". Cette décision a été guidée par le désir d'un outil à la fois simplifié et robuste, qui me permet d'écrire facilement et rapidement tout en conservant le contrôle sur le design et les fonctionnalités. ",[47,271,272],{},"VitePress est vraiment exceptionnel à cet égard.",[25,274,276,280,287,293,302,319,323,334,337,343,347,365,370,373,455,461,470,475],{"id":275},"a06fbfe1-6283-4eed-b3ec-e1d454613b9a",[29,277,279],{"id":278},"explorer-de-nouveaux-horizons","Explorer de Nouveaux Horizons",[10,281,282,283,286],{},"En juin 2024, j'ai commencé à apprendre ",[14,284,44],{"href":41,"rel":285},[43]," pour deux raisons.",[10,288,289,290],{},"Tout d'abord, je cherchais à élargir mon expertise et mes compétences en développement web. Je veux créer des applications de A à Z, transformer des idées en réalité sans trop dépendre des services externes. ",[47,291,292],{},"Et je travaille déjà sur mon premier SaaS 🤫.",[10,294,295,296,301],{},"Deuxièmement, je voulais plus de flexibilité dans mes options de carrière. Depuis le début de mon parcours professionnel, j'ai utilisé ",[14,297,300],{"href":298,"rel":299},"https:\u002F\u002Fangular.dev\u002F",[43],"Angular"," comme principal outil. Je cherche à explorer de nouvelles voies car Angular ne me procure plus la même satisfaction.",[10,303,304],{},[47,305,306,307,312,313,318],{},"J'ai envisagé ",[14,308,311],{"href":309,"rel":310},"https:\u002F\u002Frubyonrails.org\u002F",[43],"Rails",", mais une fois que vous avez expérimenté la documentation de Laravel et ",[14,314,317],{"href":315,"rel":316},"https:\u002F\u002Flaracasts.com\u002Freferral\u002FBarbapapazes",[43],"Laracasts",", le choix devient évident.",[29,320,322],{"id":321},"progresser-par-étapes","Progresser par Étapes",[10,324,325,326],{},"S'attaquer à la première raison nécessite un temps et un effort considérables. C'est une initiative à long terme que je perçois comme un défi majeur. Bien que je ne sache peut-être pas exactement par où commencer ou comment le parcours se déroulera, je suis clair sur mon objectif ultime. Comme pour tous les défis, la meilleure approche est de les décomposer en tâches plus petites et gérables, de les résoudre individuellement, puis d'intégrer les solutions. ",[47,327,328,329,23],{},"C'est l'essence du ",[14,330,333],{"href":331,"rel":332},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FDivide-and-conquer_algorithm",[43],"diviser pour régner",[10,335,336],{},"Je crois profondément que le moyen le plus efficace d'apprendre est à travers des projets concrets. Pas juste une simple to-do app, mais quelque chose de fonctionnel avec un vrai but.",[10,338,339,340],{},"Dans le même temps, j'aimerai faciliter l'engagement sur mon site. C'est beaucoup plus agréable de partager et de converser, d'avoir des interactions avec les autres. Pendant des mois, j'ai réfléchi à des ajouts pour mon site mais j'ai eu du mal à trouver une idée pratique, engageante et utile. ",[47,341,342],{},"Jusqu'à présent.",[29,344,346],{"id":345},"faire-le-premier-pas","Faire le Premier Pas",[10,348,349,350,353,354,357,358],{},"Nous y sommes. J'ai décidé de mettre en pace une fonctionnalité permettant de ",[20,351,352],{},"réagir à mes articles en utilisant des emoji prédéfinis",", propulsée par une API développée avec ",[14,355,44],{"href":41,"rel":356},[43],". ",[47,359,360,361,23],{},"Et le front-end continue d'être réalisé avec ",[14,362,268],{"href":363,"rel":364},"https:\u002F\u002Fvitepress.dev",[43],[84,366,87,367],{"autoPlay":86,"loop":86,"muted":86,"playsInline":86},[89,368],{"src":369,"type":92},"https:\u002F\u002Fimages.soubiran.dev\u002Fposts\u002Fenhancing-engagement-adding-reactions-to-my-articles\u002Fdemo.mp4",[10,371,372],{},"Au départ, cela peut sembler être une fonctionnalité mineure, et c'est vrai ; ce n'est pas si grand, mais pour un premier pas, cela suffit. Dans ce processus, j'ai abordé de nombreux concepts différents :",[100,374,375,383,391,410,418,426,435,443],{},[103,376,377,382],{},[14,378,381],{"href":379,"rel":380},"https:\u002F\u002Flaravel.com\u002Fdocs\u002Fsocialite",[43],"Laravel Socialite"," pour l'authentification GitHub.",[103,384,385,390],{},[14,386,389],{"href":387,"rel":388},"https:\u002F\u002Flaravel.com\u002Fdocs\u002Fsanctum",[43],"Laravel Sanctum"," pour l'authentification API.",[103,392,393,398,399,398,404,409],{},[14,394,397],{"href":395,"rel":396},"https:\u002F\u002Flaravel.com\u002Fdocs\u002Fpint",[43],"Laravel Pint",", ",[14,400,403],{"href":401,"rel":402},"https:\u002F\u002Fphpstan.org\u002F",[43],"PHPStan",[14,405,408],{"href":406,"rel":407},"https:\u002F\u002Fgetrector.org\u002F",[43],"Rector"," pour l'assurance qualité du code.",[103,411,412,417],{},[14,413,416],{"href":414,"rel":415},"https:\u002F\u002Fforge.laravel.com\u002F",[43],"Laravel Forge"," pour le déploiement.",[103,419,420,425],{},[14,421,424],{"href":422,"rel":423},"https:\u002F\u002Fwww.hetzner.com\u002F",[43],"Hetzner"," pour l'infrastructure serveur.",[103,427,428,429,434],{},"Commande personnalisée pour les sauvegardes de base de données et ",[14,430,433],{"href":431,"rel":432},"https:\u002F\u002Fwww.cloudflare.com\u002Fdeveloper-platform\u002Fr2\u002F",[43],"R2"," pour leur stockage.",[103,436,437,442],{},[14,438,441],{"href":439,"rel":440},"https:\u002F\u002Ffilamentphp.com\u002F",[43],"Filament"," pour la gestion du tableau de bord.",[103,444,445,446],{},"Couverture de tests à 100%. ",[47,447,448,449,454],{},"Réaliser avec aisance en utilisant Laravel et ",[14,450,453],{"href":451,"rel":452},"https:\u002F\u002Fpestphp.com\u002F",[43],"Pest",". 💫",[10,456,457,458],{},"Et c'est à peu près tout. ",[47,459,460],{},"Pas mal pour cinq jours de travail !",[10,462,463,464],{},"La lecture de tout le code source de ",[465,466,469],"git-hub-link",{"repo":467,"name":468},"pinkary-project\u002Fpinkary.com","Pinkary Project"," a considérablement amélioré ma compréhension de ces outils et du processus de construction d'une application Laravel.",[10,471,472],{},[47,473,474],{},"Un des aspects majeurs de cette étape est de poser les bases pour plus de fonctionnalités sur mon site et de nombreux articles pour partager ce que j'ai appris.",[10,476,477],{},"Alors, qu'en pensez-vous ? ⬇️",{"title":232,"searchDepth":233,"depth":233,"links":479},[480,481,482,483],{"id":259,"depth":233,"text":260},{"id":278,"depth":233,"text":279},{"id":321,"depth":233,"text":322},{"id":345,"depth":233,"text":346},"2024-10-01","Phase initiale mais cruciale d'un projet important qui m'accompagnera dans les mois à venir en ouvrant la possibilité de réagir à mes articles.",{},"\u002Ffr\u002Fposts\u002Fenhancing-engagement-adding-reactions-to-my-articles","---\ncontentId: 8c14b61c-fdf9-443a-924b-050b1395910a\ntitle: \"Améliorer l'Engagement : Ajouter des Réactions aux Articles\"\ndescription: Phase initiale mais cruciale d'un projet important qui m'accompagnera dans les mois à venir en ouvrant la possibilité de réagir à mes articles.\ndate: 2024-10-01\n---\n\nSalut ! J'espère que vous allez bien. Je suis ravi de partager avec toi le début d'un projet significatif qui m'accompagnera dans les mois à venir.\n\n## Introduction\n\nEn mars 2024, j'ai annoncé la refonte de mon site personnel pour la quatrième fois, cette fois en utilisant [VitePress](https:\u002F\u002Fvitepress.dev\u002F). Cette décision a été guidée par le désir d'un outil à la fois simplifié et robuste, qui me permet d'écrire facilement et rapidement tout en conservant le contrôle sur le design et les fonctionnalités. _VitePress est vraiment exceptionnel à cet égard._\n\n\u003CCalloutReadMore id=\"a06fbfe1-6283-4eed-b3ec-e1d454613b9a\" \u002F>\n\n## Explorer de Nouveaux Horizons\n\nEn juin 2024, j'ai commencé à apprendre [Laravel](https:\u002F\u002Flaravel.com) pour deux raisons.\n\nTout d'abord, je cherchais à élargir mon expertise et mes compétences en développement web. Je veux créer des applications de A à Z, transformer des idées en réalité sans trop dépendre des services externes. _Et je travaille déjà sur mon premier SaaS 🤫._\n\nDeuxièmement, je voulais plus de flexibilité dans mes options de carrière. Depuis le début de mon parcours professionnel, j'ai utilisé [Angular](https:\u002F\u002Fangular.dev\u002F) comme principal outil. Je cherche à explorer de nouvelles voies car Angular ne me procure plus la même satisfaction.\n\n_J'ai envisagé [Rails](https:\u002F\u002Frubyonrails.org\u002F), mais une fois que vous avez expérimenté la documentation de Laravel et [Laracasts](https:\u002F\u002Flaracasts.com\u002Freferral\u002FBarbapapazes), le choix devient évident._\n\n## Progresser par Étapes\n\nS'attaquer à la première raison nécessite un temps et un effort considérables. C'est une initiative à long terme que je perçois comme un défi majeur. Bien que je ne sache peut-être pas exactement par où commencer ou comment le parcours se déroulera, je suis clair sur mon objectif ultime. Comme pour tous les défis, la meilleure approche est de les décomposer en tâches plus petites et gérables, de les résoudre individuellement, puis d'intégrer les solutions. _C'est l'essence du [diviser pour régner](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FDivide-and-conquer_algorithm)._\n\nJe crois profondément que le moyen le plus efficace d'apprendre est à travers des projets concrets. Pas juste une simple to-do app, mais quelque chose de fonctionnel avec un vrai but.\n\nDans le même temps, j'aimerai faciliter l'engagement sur mon site. C'est beaucoup plus agréable de partager et de converser, d'avoir des interactions avec les autres. Pendant des mois, j'ai réfléchi à des ajouts pour mon site mais j'ai eu du mal à trouver une idée pratique, engageante et utile. _Jusqu'à présent._\n\n## Faire le Premier Pas\n\nNous y sommes. J'ai décidé de mettre en pace une fonctionnalité permettant de **réagir à mes articles en utilisant des emoji prédéfinis**, propulsée par une API développée avec [Laravel](https:\u002F\u002Flaravel.com). _Et le front-end continue d'être réalisé avec [VitePress](https:\u002F\u002Fvitepress.dev)._\n\n\u003Cvideo autoplay loop muted playsinline>\n  \u003Csource src=\"https:\u002F\u002Fimages.soubiran.dev\u002Fposts\u002Fenhancing-engagement-adding-reactions-to-my-articles\u002Fdemo.mp4\" type=\"video\u002Fmp4\">\n\u003C\u002Fvideo>\n\nAu départ, cela peut sembler être une fonctionnalité mineure, et c'est vrai ; ce n'est pas si grand, mais pour un premier pas, cela suffit. Dans ce processus, j'ai abordé de nombreux concepts différents :\n\n- [Laravel Socialite](https:\u002F\u002Flaravel.com\u002Fdocs\u002Fsocialite) pour l'authentification GitHub.\n- [Laravel Sanctum](https:\u002F\u002Flaravel.com\u002Fdocs\u002Fsanctum) pour l'authentification API.\n- [Laravel Pint](https:\u002F\u002Flaravel.com\u002Fdocs\u002Fpint), [PHPStan](https:\u002F\u002Fphpstan.org\u002F), [Rector](https:\u002F\u002Fgetrector.org\u002F) pour l'assurance qualité du code.\n- [Laravel Forge](https:\u002F\u002Fforge.laravel.com\u002F) pour le déploiement.\n- [Hetzner](https:\u002F\u002Fwww.hetzner.com\u002F) pour l'infrastructure serveur.\n- Commande personnalisée pour les sauvegardes de base de données et [R2](https:\u002F\u002Fwww.cloudflare.com\u002Fdeveloper-platform\u002Fr2\u002F) pour leur stockage.\n- [Filament](https:\u002F\u002Ffilamentphp.com\u002F) pour la gestion du tableau de bord.\n- Couverture de tests à 100%. _Réaliser avec aisance en utilisant Laravel et [Pest](https:\u002F\u002Fpestphp.com\u002F). 💫_\n\nEt c'est à peu près tout. _Pas mal pour cinq jours de travail !_\n\nLa lecture de tout le code source de \u003CGitHubLink repo=\"pinkary-project\u002Fpinkary.com\" name=\"Pinkary Project\" \u002F> a considérablement amélioré ma compréhension de ces outils et du processus de construction d'une application Laravel.\n\n_Un des aspects majeurs de cette étape est de poser les bases pour plus de fonctionnalités sur mon site et de nombreux articles pour partager ce que j'ai appris._\n\nAlors, qu'en pensez-vous ? ⬇️\n",{"title":251,"description":485},{"loc":487},"fr\u002Fposts\u002Fenhancing-engagement-adding-reactions-to-my-articles","oiTcCfUTIJYVnsflsj6VK9zGk2MF3DhXd7FO_THoOmk",1790086903973]