<?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: Zulfikar Azmi Alghifari</title>
    <description>The latest articles on DEV Community by Zulfikar Azmi Alghifari (@zulfikarazmi).</description>
    <link>https://dev.to/zulfikarazmi</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%2F3511249%2F93df34e8-90ea-4746-97a5-074a2b951eb7.jpg</url>
      <title>DEV Community: Zulfikar Azmi Alghifari</title>
      <link>https://dev.to/zulfikarazmi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/zulfikarazmi"/>
    <language>en</language>
    <item>
      <title>Why I Switched from Create React App to Vite</title>
      <dc:creator>Zulfikar Azmi Alghifari</dc:creator>
      <pubDate>Thu, 18 Sep 2025 13:23:02 +0000</pubDate>
      <link>https://dev.to/zulfikarazmi/why-i-switched-from-create-react-app-to-vite-5d82</link>
      <guid>https://dev.to/zulfikarazmi/why-i-switched-from-create-react-app-to-vite-5d82</guid>
      <description>&lt;p&gt;When I first started learning React, I used &lt;strong&gt;Create React App (CRA)&lt;/strong&gt; — because that’s what everyone recommended.&lt;br&gt;&lt;br&gt;
But after trying &lt;strong&gt;Vite&lt;/strong&gt;, I knew there was no going back. Here’s why I made the switch.&lt;/p&gt;




&lt;h2&gt;
  
  
  Blazing Fast Dev Server
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CRA:&lt;/strong&gt; Takes ~20–30 seconds to start.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vite:&lt;/strong&gt; Starts in &lt;strong&gt;less than 1 second&lt;/strong&gt;.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That difference is massive. When you restart your server multiple times a day, those seconds add up and slow you down.&lt;br&gt;&lt;br&gt;
Vite feels instant — you save time and stay in the flow.&lt;/p&gt;




&lt;h2&gt;
  
  
  Seamless Hot Reload
&lt;/h2&gt;

&lt;p&gt;With CRA, I’ve experienced times where hot reload just… stops working, and I had to refresh manually.&lt;br&gt;&lt;br&gt;
Vite’s hot module replacement (HMR) is &lt;strong&gt;consistently fast and reliable&lt;/strong&gt; — every save gives instant feedback.  &lt;/p&gt;

&lt;p&gt;It sounds small, but it completely changes how fast you can iterate.&lt;/p&gt;




&lt;h2&gt;
  
  
  Easier Customization
&lt;/h2&gt;

&lt;p&gt;CRA hides a lot of config behind &lt;code&gt;react-scripts&lt;/code&gt;.&lt;br&gt;&lt;br&gt;
If you want to tweak Webpack, you have to &lt;strong&gt;eject&lt;/strong&gt;, which makes things messy and hard to maintain.  &lt;/p&gt;

&lt;p&gt;Vite uses &lt;strong&gt;Rollup&lt;/strong&gt; under the hood and has a &lt;strong&gt;clean, minimal config&lt;/strong&gt; that’s easy to extend.&lt;/p&gt;




&lt;h2&gt;
  
  
  Lightweight &amp;amp; Modern
&lt;/h2&gt;

&lt;p&gt;Vite uses &lt;strong&gt;native ES modules&lt;/strong&gt; for development and supports the latest JS features out of the box.&lt;br&gt;&lt;br&gt;
No heavy build step during dev — just fast, modern tooling.&lt;/p&gt;




&lt;h2&gt;
  
  
  Summary – CRA vs Vite
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;CRA&lt;/th&gt;
&lt;th&gt;Vite&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Dev Server Start&lt;/td&gt;
&lt;td&gt;~20–30s (Webpack)&lt;/td&gt;
&lt;td&gt;&amp;lt; 1s (esbuild)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hot Reload&lt;/td&gt;
&lt;td&gt;Sometimes Lags&lt;/td&gt;
&lt;td&gt;Instant &amp;amp; Smooth&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Config&lt;/td&gt;
&lt;td&gt;Eject Required&lt;/td&gt;
&lt;td&gt;Minimal Setup&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Developer Experience&lt;/td&gt;
&lt;td&gt;Slower Workflow&lt;/td&gt;
&lt;td&gt;Fast &amp;amp; Enjoyable&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Quick Start with Vite
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm create vite@latest my-app
&lt;span class="nb"&gt;cd &lt;/span&gt;my-app
npm &lt;span class="nb"&gt;install
&lt;/span&gt;npm run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Boom — you’re up and running in seconds.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;If you’re still using CRA for new projects, I’d highly recommend trying Vite.&lt;br&gt;&lt;br&gt;
The difference in speed and developer experience is &lt;strong&gt;hard to ignore&lt;/strong&gt;.  &lt;/p&gt;

&lt;p&gt;What about you — have you switched yet?&lt;br&gt;&lt;br&gt;
Drop your thoughts below, I’d love to hear how your experience compares.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>tooling</category>
      <category>react</category>
      <category>performance</category>
    </item>
  </channel>
</rss>
