<?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: Le Thanh Viet</title>
    <description>The latest articles on DEV Community by Le Thanh Viet (@lethanhvietctt5).</description>
    <link>https://dev.to/lethanhvietctt5</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F226194%2F0a592a53-af92-47a1-b9b7-5c0bb6c37892.jpg</url>
      <title>DEV Community: Le Thanh Viet</title>
      <link>https://dev.to/lethanhvietctt5</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/lethanhvietctt5"/>
    <language>en</language>
    <item>
      <title>I built a free, open-source system monitor for the macOS menu bar</title>
      <dc:creator>Le Thanh Viet</dc:creator>
      <pubDate>Fri, 02 Oct 2026 18:05:07 +0000</pubDate>
      <link>https://dev.to/lethanhvietctt5/i-built-a-free-open-source-system-monitor-for-the-macos-menu-bar-59h</link>
      <guid>https://dev.to/lethanhvietctt5/i-built-a-free-open-source-system-monitor-for-the-macos-menu-bar-59h</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;MoniMac&lt;/strong&gt; is a free, open-source system monitor for macOS. It keeps CPU, memory, GPU, network and temperature one glance away in your menu bar, and tells you the moment an app starts dragging your Mac down. It's a native Swift app, under 10 MB, with no account, no analytics and no paid tier.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🌐 Website: &lt;a href="https://moni-mac.vercel.app/" rel="noopener noreferrer"&gt;https://moni-mac.vercel.app/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;💻 Source: &lt;a href="https://github.com/lethanhvietctt5/moni-mac" rel="noopener noreferrer"&gt;https://github.com/lethanhvietctt5/moni-mac&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;⬇️ Download: &lt;a href="https://github.com/lethanhvietctt5/moni-mac/releases/latest/download/MoniMac.dmg" rel="noopener noreferrer"&gt;https://github.com/lethanhvietctt5/moni-mac/releases/latest/download/MoniMac.dmg&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6tiv2a4j3nzf1pjqpqjo.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6tiv2a4j3nzf1pjqpqjo.png" alt="MoniMac App" width="800" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What it does
&lt;/h2&gt;

&lt;h3&gt;
  
  
  A menu bar that adapts to you
&lt;/h3&gt;

&lt;p&gt;Each metric (CPU, memory, network, GPU, temperature) can live in the menu bar as its own item, in one of three styles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Value only&lt;/strong&gt;: compact numbers&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Graph only&lt;/strong&gt;: a 60-second sparkline&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Value + graph&lt;/strong&gt;: the most information, the most width&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When a metric runs hot, its item turns into a warning sign. Hover to see the cause, click to find the app behind it. Hold ⌘ and drag to reorder items, or drag one off the bar to hide it.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fodfv9g4otksn0qrgwm62.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fodfv9g4otksn0qrgwm62.png" alt="MoniMac Menu Bar" width="800" height="812"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  One click, the whole picture
&lt;/h3&gt;

&lt;p&gt;Click any item and a popover shows every metric at once, plus the apps working hardest right now. Tabs take you to CPU, memory, GPU, network, disk and battery, with live history, per-core load (P and E cores) and the top apps.&lt;/p&gt;

&lt;h3&gt;
  
  
  Every number, broken down by app
&lt;/h3&gt;

&lt;p&gt;CPU, memory, GPU, network, disk and power for each app, with helper processes grouped under the app they belong to. That last part matters more than it sounds: a browser or Electron app is dozens of processes, and a flat list hides the real culprit.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F73t51c7emx6f0bt8stnk.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F73t51c7emx6f0bt8stnk.png" alt="MoniMac Overview" width="800" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Alerts based on patterns, not spikes
&lt;/h3&gt;

&lt;p&gt;A single busy second isn't a problem, so MoniMac waits until a pattern holds:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CPU&lt;/strong&gt;: one app stays above your threshold for 2 minutes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Memory&lt;/strong&gt;: an app grows fast (+1 GB in 10 minutes may be a leak)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Disk&lt;/strong&gt;: sustained heavy writes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Network&lt;/strong&gt;: heavy uploads running in the background&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And the fix is one click away. The quit sheet lists the app &lt;em&gt;and every helper process&lt;/em&gt; with their CPU and memory, then asks apps to quit normally so you can save your work.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8r702lvzc46eq4wmfyn0.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8r702lvzc46eq4wmfyn0.png" alt="Monimac Alerts" width="800" height="781"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Beyond CPU and RAM
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Battery&lt;/strong&gt;: charge, health, cycle count, live power draw, and which apps drain it&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bluetooth&lt;/strong&gt;: AirPods left/right/case, keyboard, trackpad and mouse levels&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sound&lt;/strong&gt;: per-app volume, so you can mute the one that keeps chiming&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Temperature &amp;amp; fans&lt;/strong&gt;: read-only sensor temperatures and fan speeds&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  For developers: Projects
&lt;/h3&gt;

&lt;p&gt;This one is for the "that dev server from last week is still running" problem. Projects finds every local dev server (Next.js, Vite, Docker, FastAPI and more), groups them by repo, shows port, uptime and memory, flags the ones idle for days, and lets you stop them in one click.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fv7thdysbbylumkawhnmp.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fv7thdysbbylumkawhnmp.png" alt="MoniMac Projects" width="799" height="333"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How it compares
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Activity Monitor&lt;/th&gt;
&lt;th&gt;iStat Menus&lt;/th&gt;
&lt;th&gt;MoniMac&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Live metrics in menu bar&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Price&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;td&gt;Paid&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Open source&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;History&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅ [30 / 90 days, see note]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Alerts when an app misbehaves&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅ [verify]&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Local dev server finder&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;[Verify the iStat Menus cells before publishing, or delete the table and describe the difference in one paragraph. Stats is another free open-source alternative worth mentioning respectfully.]&lt;/p&gt;

&lt;h2&gt;
  
  
  Install
&lt;/h2&gt;

&lt;p&gt;Requirements: &lt;strong&gt;Apple silicon (M1 or later)&lt;/strong&gt; and &lt;strong&gt;macOS 14.2+&lt;/strong&gt;. Intel Macs aren't supported.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Download &lt;code&gt;MoniMac.dmg&lt;/code&gt; from &lt;a href="https://github.com/lethanhvietctt5/moni-mac/releases/latest" rel="noopener noreferrer"&gt;Releases&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Drag MoniMac into Applications.&lt;/li&gt;
&lt;li&gt;MoniMac isn't notarized by Apple yet, so macOS blocks it until you remove the quarantine flag. Run this once in Terminal:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;xattr &lt;span class="nt"&gt;-dr&lt;/span&gt; com.apple.quarantine /Applications/MoniMac.app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Updates install from inside the app.&lt;/p&gt;

&lt;h2&gt;
  
  
  Contributing &amp;amp; feedback
&lt;/h2&gt;

&lt;p&gt;MoniMac is at v0.1.1, so it's early and feedback matters. Issues, ideas and PRs are welcome: &lt;a href="https://github.com/lethanhvietctt5/moni-mac" rel="noopener noreferrer"&gt;https://github.com/lethanhvietctt5/moni-mac&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What would you want a menu bar monitor to tell you that Activity Monitor doesn't? Let me know in the comments 👇&lt;/p&gt;

</description>
      <category>macos</category>
      <category>opensource</category>
      <category>showdev</category>
      <category>swift</category>
    </item>
    <item>
      <title>I built an open-source, free alternative to CleanShotX</title>
      <dc:creator>Le Thanh Viet</dc:creator>
      <pubDate>Fri, 02 Oct 2026 17:56:21 +0000</pubDate>
      <link>https://dev.to/lethanhvietctt5/i-built-an-open-source-local-only-screenshot-screen-recorder-for-macos-11of</link>
      <guid>https://dev.to/lethanhvietctt5/i-built-an-open-source-local-only-screenshot-screen-recorder-for-macos-11of</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;I built &lt;strong&gt;Lightshot&lt;/strong&gt;, a free and open-source app for macOS that captures, annotates and records your screen, with a video editor built in. Everything runs on your Mac: no account, no cloud, no uploads.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🌐 Website: &lt;a href="https://lightshot-mac.vercel.app" rel="noopener noreferrer"&gt;https://lightshot-mac.vercel.app&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;💻 Source: &lt;a href="https://github.com/lethanhvietctt5/lightshot" rel="noopener noreferrer"&gt;https://github.com/lethanhvietctt5/lightshot&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What it does
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Capture&lt;/strong&gt;: grab a region, window or full screen.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Annotate&lt;/strong&gt;: mark up screenshots right after capturing to point at what matters.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Record&lt;/strong&gt;: record your screen when a still image isn't enough.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Edit video&lt;/strong&gt;: trim and polish recordings in a built-in editor, without opening another app.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local-only&lt;/strong&gt;: your files stay on your machine. No account, no telemetry, no uploads.&lt;/li&gt;
&lt;/ul&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftsfxphxz5e43tvvld15g.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftsfxphxz5e43tvvld15g.png" alt="ScreenShot Tools" width="800" height="597"&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flutyvhzfg8rh2gox8lg3.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flutyvhzfg8rh2gox8lg3.png" alt="Recording Studio" width="799" height="525"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Install
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Download the latest &lt;code&gt;.dmg&lt;/code&gt; from &lt;a href="https://github.com/lethanhvietctt5/lightshot/releases" rel="noopener noreferrer"&gt;Releases&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Drag the app to &lt;code&gt;Applications&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;On first launch, grant &lt;strong&gt;Screen Recording&lt;/strong&gt; permission in &lt;em&gt;System Settings -&amp;gt; Privacy &amp;amp; Security&lt;/em&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Contributing &amp;amp; feedback
&lt;/h2&gt;

&lt;p&gt;It's fully open source, so issues, ideas and PRs are welcome: &lt;a href="https://github.com/lethanhvietctt5/lightshot" rel="noopener noreferrer"&gt;https://github.com/lethanhvietctt5/lightshot&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What's the one feature you'd want in a screenshot tool? Tell me in the comments 👇&lt;/p&gt;

</description>
      <category>macos</category>
      <category>opensource</category>
      <category>showdev</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Clone Spotify ReactJS</title>
      <dc:creator>Le Thanh Viet</dc:creator>
      <pubDate>Fri, 02 Jul 2021 14:22:35 +0000</pubDate>
      <link>https://dev.to/lethanhvietctt5/clone-spotify-reactjs-2m0n</link>
      <guid>https://dev.to/lethanhvietctt5/clone-spotify-reactjs-2m0n</guid>
      <description>&lt;p&gt;I have complete cloning Spotify using ReactJS and NextJS&lt;br&gt;
Here is my source and I hope it will help everyone who is learning React and want to clone Spotify&lt;br&gt;
Video demo: &lt;a href="https://youtu.be/REwB-8QaHLc"&gt;https://youtu.be/REwB-8QaHLc&lt;/a&gt;&lt;br&gt;
Github: &lt;a href="https://github.com/lethanhvietctt5/react-spotify"&gt;https://github.com/lethanhvietctt5/react-spotify&lt;/a&gt;&lt;br&gt;
Facebook: &lt;a href="https://www.facebook.com/thanhviet.le.ctt5/"&gt;https://www.facebook.com/thanhviet.le.ctt5/&lt;/a&gt;&lt;br&gt;
Email: &lt;a href="mailto:lethanhviet7c@gmail.com"&gt;lethanhviet7c@gmail.com&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TwySBVQA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v4nh9hzs5u3qmz2zh61e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TwySBVQA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v4nh9hzs5u3qmz2zh61e.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--t74WkuPr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9pde0c8rku2ow30ashut.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--t74WkuPr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9pde0c8rku2ow30ashut.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YjPdgqgS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wj2pxkxd4w6z8hi4b8rb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YjPdgqgS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wj2pxkxd4w6z8hi4b8rb.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>nextjs</category>
      <category>tailwindcss</category>
      <category>redux</category>
    </item>
    <item>
      <title>ReactJS, Socket video chat app</title>
      <dc:creator>Le Thanh Viet</dc:creator>
      <pubDate>Fri, 02 Jul 2021 04:55:41 +0000</pubDate>
      <link>https://dev.to/lethanhvietctt5/reactjs-socket-video-chat-app-coi</link>
      <guid>https://dev.to/lethanhvietctt5/reactjs-socket-video-chat-app-coi</guid>
      <description>&lt;p&gt;I have complete my video call and chat real-time app by using ReacJS, Socket.IO, PeerJS. I want to share it with everyone who is learning React and Socket.&lt;br&gt;
Link: &lt;a href="https://room-call-chat-app.herokuapp.com"&gt;https://room-call-chat-app.herokuapp.com&lt;/a&gt;&lt;br&gt;
Github: &lt;a href="https://github.com/lethanhvietctt5/video-chat-app"&gt;https://github.com/lethanhvietctt5/video-chat-app&lt;/a&gt;&lt;br&gt;
Facebook: &lt;a href="https://www.facebook.com/thanhviet.le.ctt5/"&gt;https://www.facebook.com/thanhviet.le.ctt5/&lt;/a&gt;&lt;br&gt;
Email: &lt;a href="mailto:lethanhviet7c@gmail.com"&gt;lethanhviet7c@gmail.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>socket</category>
      <category>tailwindcss</category>
      <category>peerjs</category>
    </item>
  </channel>
</rss>
