<?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: Milind Singh</title>
    <description>The latest articles on DEV Community by Milind Singh (@fbiopeningup).</description>
    <link>https://dev.to/fbiopeningup</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%2F3988615%2Fce9ccde3-0d4a-4d9c-a728-ec54c3c25dad.jpeg</url>
      <title>DEV Community: Milind Singh</title>
      <link>https://dev.to/fbiopeningup</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/fbiopeningup"/>
    <language>en</language>
    <item>
      <title>I built a native desktop dashboard because terminal tab hell was killing my vibe</title>
      <dc:creator>Milind Singh</dc:creator>
      <pubDate>Wed, 17 Jun 2026 08:48:03 +0000</pubDate>
      <link>https://dev.to/fbiopeningup/i-built-a-native-desktop-dashboard-because-terminal-tab-hell-was-killing-my-vibe-1hpc</link>
      <guid>https://dev.to/fbiopeningup/i-built-a-native-desktop-dashboard-because-terminal-tab-hell-was-killing-my-vibe-1hpc</guid>
      <description>&lt;p&gt;look, i’m a vibe coder. &lt;br&gt;
i don’t want to spend my limited brain cells opening 45 terminal tabs, cd-ing into 3 different directories, and running &lt;code&gt;npm run dev&lt;/code&gt;, &lt;code&gt;npm start&lt;/code&gt;, and &lt;code&gt;npm run build&lt;/code&gt; every time i want to work on a project. &lt;br&gt;
and i &lt;em&gt;definitely&lt;/em&gt; don’t want to deal with &lt;code&gt;EADDRINUSE: address already in use :::3000&lt;/code&gt; because some ghost process from last night refuses to die.&lt;br&gt;
i just want to write code and vibe. &lt;br&gt;
so, i built &lt;strong&gt;DevDash&lt;/strong&gt;—a native Windows desktop app that acts as a control center for all local projects.&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%2Fna0xl255y9j90v4bmcps.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%2Fna0xl255y9j90v4bmcps.png" alt="DevDash Screenshot" width="800" height="800"&gt;&lt;/a&gt;### 💡 What is this thing?&lt;br&gt;
instead of typing terminal commands, you just drag or add your project folders. DevDash parses your &lt;code&gt;package.json&lt;/code&gt; and gives you a nice clean GUI where you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;run scripts with one click&lt;/strong&gt;: click play to start &lt;code&gt;npm run dev&lt;/code&gt;, click stop to kill it.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;see logs in real-time&lt;/strong&gt;: it streams the console logs directly into a beautiful built-in terminal window.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;kill port conflicts instantly&lt;/strong&gt;: if a port is blocked, it shows a red alert and lets you kill whatever is blocking it with a single click.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;open in VS Code&lt;/strong&gt;: one button opens the project directory directly in code.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;edit .env files&lt;/strong&gt;: a simple, secure text editor built right into the dashboard.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;hide in tray&lt;/strong&gt;: click the close button and the app runs in the system tray, keeping local servers alive in the background without cluttering the screen.
### 🛠️ The Stack
i kept it simple but powerful:&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Electron&lt;/strong&gt;: for native desktop features, tray integration, and building a single portable &lt;code&gt;.exe&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;React + Vite&lt;/strong&gt;: for a snappy frontend.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Express + Socket.IO&lt;/strong&gt;: to manage the backend, run shell processes, and stream console output to the UI in real-time without polling.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Tailored Themes&lt;/strong&gt;: because aesthetics are everything, i added Dracula, Nord, Monokai, Light, and Dark modes.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  💀 The "Almost Gave Up" Moment: White Screen of Death
&lt;/h3&gt;

&lt;p&gt;everything worked perfectly on my machine in dev. but the moment i tried packaging the app into a single &lt;code&gt;.exe&lt;/code&gt; file, everything broke. &lt;br&gt;
i ran the app, and... &lt;strong&gt;blank white screen&lt;/strong&gt;. no errors, no logs, just vibes (bad ones). i was literally staring at a blank screen questioning my life choices.&lt;br&gt;
turns out electron packages all backend files into a read-only archive file called &lt;code&gt;.asar&lt;/code&gt;. my Express backend was trying to write project configurations to a file &lt;em&gt;inside&lt;/em&gt; that read-only package. the app got mad, crashed the server, and killed the frontend.&lt;br&gt;
i didn't really know how to fix it, so i did some digging and ended up passing electron's &lt;code&gt;app.getPath('userData')&lt;/code&gt; over to the express server. apparently that forces the server to save the project list in the native Windows &lt;code&gt;AppData&lt;/code&gt; folder instead of trying to write inside the packaged &lt;code&gt;.exe&lt;/code&gt;. &lt;br&gt;
honestly? i don't fully understand the black magic behind it, but the white screen is gone, it works, and your project settings don't get wiped when you update the app. we take those wins.&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 Try it out (it's free &amp;amp; open source)
&lt;/h3&gt;

&lt;p&gt;i just released &lt;strong&gt;v2.0.0&lt;/strong&gt; on GitHub. you don't even need to install it—just download the portable &lt;code&gt;.exe&lt;/code&gt; and run it.&lt;br&gt;
👉 &lt;strong&gt;&lt;a href="https://github.com/FBIopeningUPP/DevDash" rel="noopener noreferrer"&gt;Grab the portable .exe on GitHub&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;
i built this for myself to save my own sanity, but if you're a solo dev or just someone who hates managing terminal windows, i hope it helps you too. &lt;br&gt;
let me know what you think, what features i should add next, or if you found any bugs! ✌️&lt;/p&gt;

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