<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: geoffreyg81</title>
    <description>The latest articles on DEV Community by geoffreyg81 (@geoffreyg81).</description>
    <link>https://dev.to/geoffreyg81</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3688951%2Fb5b85ffc-c2d3-4a2a-940a-562aeebf326b.png</url>
      <title>DEV Community: geoffreyg81</title>
      <link>https://dev.to/geoffreyg81</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/geoffreyg81"/>
    <language>en</language>
    <item>
      <title>J'ai codé un jeu de bluff multijoueur (Poker) avec la MERN Stack</title>
      <dc:creator>geoffreyg81</dc:creator>
      <pubDate>Wed, 14 Jan 2026 16:59:20 +0000</pubDate>
      <link>https://dev.to/geoffreyg81/jai-code-un-jeu-de-bluff-multijoueur-poker-avec-la-mern-stack-5355</link>
      <guid>https://dev.to/geoffreyg81/jai-code-un-jeu-de-bluff-multijoueur-poker-avec-la-mern-stack-5355</guid>
      <description>&lt;p&gt;Salut les devs ! &lt;/p&gt;

&lt;p&gt;Je bosse depuis quelques semaines sur mon side-project : Peekr. C'est une Web App de bluff social où il faut poster des anecdotes anonymes et parier des points pour retrouver les auteurs.&lt;/p&gt;

&lt;p&gt;La Tech Stack 🛠️ Je voulais éviter React Native pour voir jusqu'où je pouvais pousser le Web Mobile :&lt;/p&gt;

&lt;p&gt;Front : React + Vite (Design Glassmorphism custom)&lt;/p&gt;

&lt;p&gt;Back : Node.js / Express&lt;/p&gt;

&lt;p&gt;DB : MongoDB Atlas&lt;/p&gt;

&lt;p&gt;Realtime : Socket.io (pour gérer les votes et le chat en direct)&lt;/p&gt;

&lt;p&gt;Le Challenge, le plus dur a été de gérer la latence des sockets sur mobile et de faire en sorte que l'UI reste fluide comme une application native (navigation, transitions).&lt;/p&gt;

&lt;p&gt;C'est gratuit, open pour le fun, et j'aimerais beaucoup avoir vos retours techniques (surtout sur l'UX mobile).&lt;/p&gt;

&lt;p&gt;Le lien : &lt;a href="https://peekr-black.vercel.app" rel="noopener noreferrer"&gt;https://peekr-black.vercel.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Merci !&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F11l6qw5a32dn6n92nl3p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F11l6qw5a32dn6n92nl3p.png" alt=" " width="800" height="399"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0jxc9yhxg4q9snpttser.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0jxc9yhxg4q9snpttser.png" alt=" " width="800" height="438"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F26605ttws4093806xcmv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F26605ttws4093806xcmv.png" alt=" " width="800" height="379"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbwi629bxmd8mg3as63cf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbwi629bxmd8mg3as63cf.png" alt=" " width="800" height="387"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu5xwt8u4n31aekth1h6g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu5xwt8u4n31aekth1h6g.png" alt=" " width="800" height="396"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>webdev</category>
      <category>react</category>
      <category>news</category>
    </item>
    <item>
      <title>How I handled real-time notifications in a MERN stack using a Socket.io Singleton</title>
      <dc:creator>geoffreyg81</dc:creator>
      <pubDate>Thu, 01 Jan 2026 20:59:05 +0000</pubDate>
      <link>https://dev.to/geoffreyg81/how-i-handled-real-time-notifications-in-a-mern-stack-using-a-socketio-singleton-701</link>
      <guid>https://dev.to/geoffreyg81/how-i-handled-real-time-notifications-in-a-mern-stack-using-a-socketio-singleton-701</guid>
      <description>&lt;p&gt;Hi Dev Community! 👋&lt;/p&gt;

&lt;p&gt;I recently built Peekr, an anonymous social network, and I wanted to share a quick tip on handling WebSockets in React.&lt;/p&gt;

&lt;p&gt;The Problem: My notification bell was re-rendering and creating multiple socket connections, leading to memory leaks and ghost notifications.&lt;/p&gt;

&lt;p&gt;The Fix: I implemented a Singleton pattern for the socket instance. By centralizing the connection in one file, I ensure that the app uses only one socket across the entire lifecycle.&lt;/p&gt;

&lt;p&gt;The Stack: MongoDB, Express, React, Node.js + Socket.io.&lt;/p&gt;

&lt;p&gt;Feel free to check the live demo here (it's my first big MERN project!): &lt;a href="https://peekr-seven.vercel.app" rel="noopener noreferrer"&gt;https://peekr-seven.vercel.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fugljicisx52sgk75x6in.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fugljicisx52sgk75x6in.png" alt=" " width="800" height="399"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fle22csy2hy12ipoopmv1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fle22csy2hy12ipoopmv1.png" alt=" " width="800" height="379"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>node</category>
      <category>showdev</category>
      <category>react</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
