<?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: Silivestir Assey</title>
    <description>The latest articles on DEV Community by Silivestir Assey (@silivestir_assey).</description>
    <link>https://dev.to/silivestir_assey</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%2F3615021%2F83286f4c-b796-4add-a8cc-4c5ab3c716ba.png</url>
      <title>DEV Community: Silivestir Assey</title>
      <link>https://dev.to/silivestir_assey</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/silivestir_assey"/>
    <language>en</language>
    <item>
      <title>hello</title>
      <dc:creator>Silivestir Assey</dc:creator>
      <pubDate>Sun, 15 Feb 2026 15:04:10 +0000</pubDate>
      <link>https://dev.to/silivestir_assey/hello-51h6</link>
      <guid>https://dev.to/silivestir_assey/hello-51h6</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/silivestir_assey" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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%2Fuser%2Fprofile_image%2F3615021%2F83286f4c-b796-4add-a8cc-4c5ab3c716ba.png" alt="silivestir_assey"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/silivestir_assey/say-goodbye-to-dev-headaches-meet-express-auto-frontend-2lh8" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Say Goodbye to Dev Headaches — Meet express-auto-frontend&lt;/h2&gt;
      &lt;h3&gt;Silivestir Assey ・ Feb 15&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#express&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#javascript&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#react&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#server&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>express</category>
      <category>javascript</category>
      <category>react</category>
      <category>server</category>
    </item>
    <item>
      <title>Say Goodbye to Dev Headaches — Meet express-auto-frontend</title>
      <dc:creator>Silivestir Assey</dc:creator>
      <pubDate>Sun, 15 Feb 2026 15:02:23 +0000</pubDate>
      <link>https://dev.to/silivestir_assey/say-goodbye-to-dev-headaches-meet-express-auto-frontend-2lh8</link>
      <guid>https://dev.to/silivestir_assey/say-goodbye-to-dev-headaches-meet-express-auto-frontend-2lh8</guid>
      <description>&lt;p&gt;What it Does&lt;/p&gt;

&lt;h2&gt;
  
  
  express auto  fontend  library
&lt;/h2&gt;

&lt;p&gt;Auto-detects your frontend framework or static files.&lt;/p&gt;

&lt;p&gt;Dev mode:&lt;/p&gt;

&lt;p&gt;Runs your frontend dev server automatically.&lt;/p&gt;

&lt;p&gt;Proxies API calls (/api/*) to Express.&lt;/p&gt;

&lt;p&gt;Proxies frontend requests (/*) to the frontend server.&lt;/p&gt;

&lt;p&gt;Hot reload works out of the box.&lt;/p&gt;

&lt;p&gt;Production mode:&lt;/p&gt;

&lt;p&gt;Serves the static frontend build automatically.&lt;/p&gt;

&lt;p&gt;Supports SPA routing (index.html fallback).&lt;/p&gt;

&lt;p&gt;/api/* still goes to Express.&lt;/p&gt;

&lt;p&gt;Installation&lt;br&gt;
npm install express-auto-frontend&lt;/p&gt;

&lt;p&gt;Usage Example&lt;br&gt;
const express = require('express');&lt;br&gt;
const include = require('express-auto-frontend');&lt;/p&gt;

&lt;p&gt;const app = express();&lt;br&gt;
const PORT = 3001;&lt;/p&gt;

&lt;p&gt;// API route&lt;br&gt;
app.get('/api/message', (req, res) =&amp;gt; {&lt;br&gt;
    res.json({ message: 'Hello from backend!' });&lt;br&gt;
});&lt;/p&gt;

&lt;p&gt;// Include frontend automatically&lt;br&gt;
include(app, '../frontend'); // path to your frontend folder&lt;/p&gt;

&lt;p&gt;app.listen(PORT, () =&amp;gt; console.log(&lt;code&gt;Server running on http://localhost:${PORT}&lt;/code&gt;));&lt;/p&gt;

&lt;p&gt;✅ In dev, you get unified URL + automatic proxying.&lt;br&gt;
✅ In prod, Express serves the built frontend with SPA support.&lt;/p&gt;

&lt;p&gt;Optional Config&lt;br&gt;
include(app, '../frontend', {&lt;br&gt;
    backendPort: 3001,  // required for proxying&lt;br&gt;
    devPort: 8080,      // frontend dev port override&lt;br&gt;
    buildDir: 'build',  // frontend build folder&lt;br&gt;
    devScript: 'start'  // npm script for dev&lt;br&gt;
});&lt;/p&gt;

&lt;p&gt;Supported Frontends&lt;/p&gt;

&lt;p&gt;React (Vite, CRA)&lt;/p&gt;

&lt;p&gt;Vue (CLI, Nuxt)&lt;/p&gt;

&lt;p&gt;Angular&lt;/p&gt;

&lt;p&gt;Svelte / SvelteKit&lt;/p&gt;

&lt;p&gt;Static HTML / Pug&lt;/p&gt;

&lt;p&gt;Why Use It&lt;/p&gt;

&lt;p&gt;No CORS headaches.&lt;/p&gt;

&lt;p&gt;Single server URL for dev &amp;amp; prod.&lt;/p&gt;

&lt;p&gt;Zero-config proxy setup.&lt;/p&gt;

&lt;p&gt;Works across all major frontend frameworks.&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%2F5z5uwhnh6svsgxs9x7qr.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%2F5z5uwhnh6svsgxs9x7qr.png" alt=" " width="800" height="1200"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>express</category>
      <category>javascript</category>
      <category>react</category>
      <category>server</category>
    </item>
    <item>
      <title>Magic behind express auto frontend library</title>
      <dc:creator>Silivestir Assey</dc:creator>
      <pubDate>Mon, 17 Nov 2025 12:02:45 +0000</pubDate>
      <link>https://dev.to/silivestir_assey/magic-behind-express-auto-frontend-library-258g</link>
      <guid>https://dev.to/silivestir_assey/magic-behind-express-auto-frontend-library-258g</guid>
      <description>&lt;p&gt;Hey devs 👋,&lt;/p&gt;

&lt;p&gt;I’ve been building full-stack apps for years, and one thing always annoyed me:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why are we still manually setting up proxies, fixing CORS, remembering build folders, and running two servers… just to connect a frontend and backend?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So I built a solution.&lt;/p&gt;




&lt;h1&gt;
  
  
  ⚡ express-auto-frontend — Zero-Config Frontend + Express Integration
&lt;/h1&gt;

&lt;p&gt;This small library automatically connects &lt;strong&gt;any modern frontend&lt;/strong&gt; (React, Vite, Vue, Angular, Svelte, Nuxt, or even static HTML) to your Express backend — in both &lt;strong&gt;development and production&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;👉 No proxy configs&lt;br&gt;
👉 No CORS issues&lt;br&gt;
👉 No remembering build paths&lt;br&gt;
👉 No custom scripts&lt;br&gt;
👉 No double-server headaches&lt;/p&gt;

&lt;p&gt;Just one line:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nf"&gt;include&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;../frontend&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;…and everything works.&lt;/p&gt;




&lt;h1&gt;
  
  
  🎯 Why I Built It
&lt;/h1&gt;

&lt;p&gt;I kept seeing the same frustrations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Frontend on 5173, backend on 3001&lt;/li&gt;
&lt;li&gt;Vite proxy issues&lt;/li&gt;
&lt;li&gt;Random CORS errors&lt;/li&gt;
&lt;li&gt;Different dev vs production setups&lt;/li&gt;
&lt;li&gt;Confusing deployment steps&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I wanted something that &lt;em&gt;just works&lt;/em&gt;, with &lt;strong&gt;one unified URL&lt;/strong&gt; during development and a clean production flow.&lt;/p&gt;

&lt;p&gt;Now it does.&lt;/p&gt;




&lt;h1&gt;
  
  
  💡 What It Automatically Handles
&lt;/h1&gt;

&lt;h3&gt;
  
  
  ✅ Development Mode
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Detects your frontend framework&lt;/li&gt;
&lt;li&gt;Starts the frontend dev server automatically&lt;/li&gt;
&lt;li&gt;Proxies &lt;code&gt;/api/*&lt;/code&gt; requests to Express&lt;/li&gt;
&lt;li&gt;Sends all other routes to the frontend dev server&lt;/li&gt;
&lt;li&gt;Full HMR support&lt;/li&gt;
&lt;li&gt;Eliminates CORS completely&lt;/li&gt;
&lt;li&gt;One single origin for the entire stack&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ✅ Production Mode
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Detects your &lt;code&gt;dist&lt;/code&gt; / &lt;code&gt;build&lt;/code&gt; folder&lt;/li&gt;
&lt;li&gt;Serves the optimized frontend build&lt;/li&gt;
&lt;li&gt;Handles SPA routing (&lt;code&gt;index.html&lt;/code&gt; fallback)&lt;/li&gt;
&lt;li&gt;Express continues serving your API normally&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Zero config. Zero stress.&lt;/p&gt;




&lt;h1&gt;
  
  
  🧪 Example (Complete App in 20 Seconds)
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;express&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;express&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;include&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;express-auto-frontend&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;express&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;PORT&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;3001&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/api/message&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;message&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Hello from the backend!&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="nf"&gt;include&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;../frontend&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;listen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;PORT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Server running at http://localhost:&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;PORT&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That’s &lt;em&gt;literally&lt;/em&gt; all you need.&lt;/p&gt;




&lt;h1&gt;
  
  
  🌐 Supported Frameworks
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;React (Vite + CRA)&lt;/li&gt;
&lt;li&gt;Vue (CLI + Nuxt)&lt;/li&gt;
&lt;li&gt;Angular&lt;/li&gt;
&lt;li&gt;Svelte / SvelteKit&lt;/li&gt;
&lt;li&gt;Static HTML or Pug&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  📦 NPM
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm i express-auto-frontend
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Package: &lt;strong&gt;express-auto-frontend&lt;/strong&gt;&lt;br&gt;
Current version: &lt;strong&gt;1.0.2&lt;/strong&gt;&lt;br&gt;
Published: &lt;strong&gt;15 hours ago&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  ❤️ Final Words
&lt;/h1&gt;

&lt;p&gt;I built this because full-stack development should feel &lt;strong&gt;smooth&lt;/strong&gt;, not painful.&lt;br&gt;
If you’re tired of manually setting up proxies, fighting CORS, and juggling two servers, give it a try.&lt;/p&gt;

&lt;p&gt;If you want to reach out, collaborate, or share feedback, contact me at:&lt;br&gt;
📩 &lt;strong&gt;&lt;a href="mailto:silivestirassey@gmx.com"&gt;silivestirassey@gmx.com&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Happy hacking! ⚡&lt;br&gt;
— &lt;em&gt;Silivestir / splannes&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devs</category>
      <category>express</category>
    </item>
  </channel>
</rss>
