<?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>Forem: Sabareeswaran Chandrasekar</title>
    <description>The latest articles on Forem by Sabareeswaran Chandrasekar (@sabareeswaran_chandraseka).</description>
    <link>https://forem.com/sabareeswaran_chandraseka</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%2F3359403%2Fe6704bc0-45e6-41e3-a42b-7cd29554d549.jpg</url>
      <title>Forem: Sabareeswaran Chandrasekar</title>
      <link>https://forem.com/sabareeswaran_chandraseka</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/sabareeswaran_chandraseka"/>
    <language>en</language>
    <item>
      <title>MicroFrontend with Module Federation (Full Configuration)</title>
      <dc:creator>Sabareeswaran Chandrasekar</dc:creator>
      <pubDate>Wed, 23 Jul 2025 11:39:19 +0000</pubDate>
      <link>https://forem.com/sabareeswaran_chandraseka/microfrontend-with-module-federation-full-configuration-2d48</link>
      <guid>https://forem.com/sabareeswaran_chandraseka/microfrontend-with-module-federation-full-configuration-2d48</guid>
      <description>&lt;p&gt;&lt;strong&gt;MicroFrontend:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;An architectural style where a frontend application is split into smaller, semi-independent "&lt;strong&gt;micro-apps&lt;/strong&gt;", each built, tested, and deployed by independent teams. It's the &lt;strong&gt;frontend version of microservices&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Build Time Integration:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It to the approach where microfrontends are integrated into the main application at the time of compilation, typically using npm packages, monorepos, or direct imports. All microfrontends are bundled together during the build process before deployment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Run Time Integration:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It means the main application loads microfrontends on the fly, usually from a remote URL, after the application starts in the browser.&lt;/p&gt;

&lt;p&gt;The concept of &lt;strong&gt;&lt;em&gt;Module Federation&lt;/em&gt;&lt;/strong&gt; occurs here only.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Module Federation:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It is a feature introduced in &lt;strong&gt;Webpack 5&lt;/strong&gt; that allows multiple applications to share and load code from each other at runtime—without bundling all the code together during the build.&lt;/p&gt;

&lt;p&gt;It is the core technology behind Runtime Integration in Microfrontends.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Configuration:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Create the host and remote apps.&lt;/p&gt;

&lt;p&gt;Check here for how to create the apps:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/sabareeswaran_chandraseka/create-a-reactjs-webpack-project-manually-without-create-react-app-59p1"&gt;https://dev.to/sabareeswaran_chandraseka/create-a-reactjs-webpack-project-manually-without-create-react-app-59p1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In &lt;strong&gt;Remote App&lt;/strong&gt;,&lt;/p&gt;

&lt;p&gt;&lt;code&gt;webpack.config.js:&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const { ModuleFederationPlugin } = require('webpack').container;

module.exports = {
  // other config...
  plugins: [
    new ModuleFederationPlugin({
      name: 'remoteApp',
      filename: 'remoteEntry.js',
      exposes: {
        './LoginForm': './src/components/LoginForm',
      },
      shared: ['react', 'react-dom'],
    });
  ],
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In &lt;strong&gt;Host App&lt;/strong&gt;,&lt;/p&gt;

&lt;p&gt;&lt;code&gt;webpack.config.js:&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const { ModuleFederationPlugin } = require('webpack').container;


module.exports = {
  // other config...
  plugins: [
    new ModuleFederationPlugin({
     remotes: {
      remoteApp: 'remoteApp@http://localhost:3001/remoteEntry.js',
     },
     shared: ['react', 'react-dom'],
    });
 ],
};

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Use it anywhere like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const LoginForm = React.lazy(() =&amp;gt; import('remoteApp/LoginForm'));

&amp;lt;Suspense fallback={&amp;lt;div&amp;gt;Loading...&amp;lt;/div&amp;gt;}&amp;gt;
  &amp;lt;LoginForm /&amp;gt;
&amp;lt;/Suspense&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it.&lt;/p&gt;

</description>
      <category>microfrontend</category>
      <category>react</category>
      <category>modulefederation</category>
      <category>webpack</category>
    </item>
    <item>
      <title>Create a ReactJs Webpack project manually without create-react-app</title>
      <dc:creator>Sabareeswaran Chandrasekar</dc:creator>
      <pubDate>Tue, 22 Jul 2025 12:04:18 +0000</pubDate>
      <link>https://forem.com/sabareeswaran_chandraseka/create-a-reactjs-webpack-project-manually-without-create-react-app-59p1</link>
      <guid>https://forem.com/sabareeswaran_chandraseka/create-a-reactjs-webpack-project-manually-without-create-react-app-59p1</guid>
      <description>&lt;p&gt;&lt;strong&gt;Step 01:&lt;/strong&gt; Initialize the Project&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir RW
cd RW
npm init -y
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 02:&lt;/strong&gt; Install Dependencies&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install react react-dom
npm install --save-dev webpack webpack-cli webpack-dev-server
npm install --save-dev babel-loader @babel/core @babel/preset-env @babel/preset-react
npm install --save-dev html-webpack-plugin
npm install --save-dev css-loader style-loader

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 03:&lt;/strong&gt; Create Project Structure&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir public
cd public/
touch index.html
cd ..
mkdir src
cd src
touch index.js
touch App.js
cd ..
touch .babelrc
touch webpack.config.js
touch package.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;public/index.html&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang="en"&amp;gt;
&amp;lt;head&amp;gt;
  &amp;lt;meta charset="UTF-8" /&amp;gt;
  &amp;lt;title&amp;gt;React App&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
  &amp;lt;div id="root"&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;src/index.js&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';

ReactDOM.render(&amp;lt;App /&amp;gt;, document.getElementById('root'));
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;src/App.js&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import React from 'react';

const App = () =&amp;gt; {
  return &amp;lt;h1&amp;gt;Hello React with Webpack!&amp;lt;/h1&amp;gt;;
};

export default App;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;.babelrc&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "presets": ["@babel/preset-env", "@babel/preset-react"]
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;webpack.config.js&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
  entry: './src/index.js',
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'bundle.js',
    clean: true,
  },
  mode: 'development',
  module: {
    rules: [
      {
        test: /\.js$/,
        exclude: /node_modules/,
        use: 'babel-loader',
      },
      {
        test: /\.css$/i,
        use: ['style-loader', 'css-loader'],
      }
    ],
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: './public/index.html',
    })
  ],
  devServer: {
    static: path.join(__dirname, 'dist'),
    compress: true,
    port: 3000,
    open: true,
  },
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Update &lt;code&gt;package.json&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"scripts": {
  "start": "webpack serve --mode development",
  "build": "webpack --mode production"
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Run:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Your React app will be available at &lt;code&gt;http://localhost:3000&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;That's it.&lt;/p&gt;

</description>
      <category>react</category>
      <category>webpack</category>
      <category>frontend</category>
    </item>
    <item>
      <title>React + Vite + TypeScript + TailwindCSS</title>
      <dc:creator>Sabareeswaran Chandrasekar</dc:creator>
      <pubDate>Thu, 17 Jul 2025 06:26:20 +0000</pubDate>
      <link>https://forem.com/sabareeswaran_chandraseka/react-vite-typescript-tailwindcss-1655</link>
      <guid>https://forem.com/sabareeswaran_chandraseka/react-vite-typescript-tailwindcss-1655</guid>
      <description>&lt;p&gt;A step-by-step guide to manually set up a &lt;strong&gt;React + Vite + TypeScript + TailwindCSS&lt;/strong&gt; project without using create-react-app:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Initialize a Project&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir RVTT
cd RVTT/
npm init -y
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Install Vite, React, TypeScript&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install react react-dom
npm install -D vite typescript @types/react @types/react-dom @types/node
npm install -D @vitejs/plugin-react
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; Create the Vite + TypeScript Setup&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npx tsc --init&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Once done edit like below,&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "compilerOptions": {
    "target": "ESNext",
    "module": "ESNext",
    "jsx": "react-jsx",
    "moduleResolution": "Node",
    "esModuleInterop": true,
    "strict": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true,
    "resolveJsonModule": true,
    "isolatedModules": true,
    "noEmit": true
  },
  "include": ["src"]
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After adding the above content you will get error in that file like something below, just ignore it at this level:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;No inputs were found in config file '......./RVTT/tsconfig.json'. Specified 'include' paths were '["src"]' and 'exclude' paths were '[]'.ts
Windsurf: Explain Problem

JSON schema for the TypeScript compiler's configuration file
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step: 4&lt;/strong&gt; Create &lt;code&gt;vite.config.ts&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'

export default defineConfig({
  plugins: [react()],
})
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 5:&lt;/strong&gt; Create Folder Structure&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir src
touch index.html
touch src/main.tsx src/App.tsx src/index.css
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;index.html&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang="en"&amp;gt;
  &amp;lt;head&amp;gt;
    &amp;lt;meta charset="UTF-8" /&amp;gt;
    &amp;lt;title&amp;gt;React Vite App&amp;lt;/title&amp;gt;
  &amp;lt;/head&amp;gt;
  &amp;lt;body&amp;gt;
    &amp;lt;div id="root"&amp;gt;&amp;lt;/div&amp;gt;
    &amp;lt;script type="module" src="/src/main.tsx"&amp;gt;&amp;lt;/script&amp;gt;
  &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;src/main.tsx&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import React from 'react'
import ReactDOM from 'react-dom/client'
import App from './App'
import './index.css'

ReactDOM.createRoot(document.getElementById('root')!).render(
  &amp;lt;React.StrictMode&amp;gt;
    &amp;lt;App /&amp;gt;
  &amp;lt;/React.StrictMode&amp;gt;
)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;src/App.tsx&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const App = () =&amp;gt; {
  return (
    &amp;lt;div className="text-center mt-10 text-2xl text-blue-500"&amp;gt;
      Hello from React + Vite + Typescript + TailwindCSS
    &amp;lt;/div&amp;gt;
  )
}

export default App
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 6:&lt;/strong&gt; Configure TailwindCSS&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install -D tailwindcss postcss autoprefixer @tailwindcss/postcss
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Create &lt;code&gt;tailwind.config.ts&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/** @type {import('tailwindcss').Config} */
module.exports = {
  content: ["./index.html", "./src/**/*.{js,ts,jsx,tsx}"],
  theme: {
    extend: {},
  },
  plugins: [],
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Create &lt;code&gt;postcss.config.ts&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;module.exports = {
  plugins: {
    '@tailwindcss/postcss': {},
    autoprefixer: {},
  },
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Edit &lt;code&gt;src/index.css&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;@tailwind base;
@tailwind components;
@tailwind utilities;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 7:&lt;/strong&gt; Update Scripts in &lt;code&gt;package.json&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"scripts": {
  "dev": "vite",
  "build": "vite build",
  "preview": "vite preview"
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 8:&lt;/strong&gt; Run&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npm run dev&lt;/code&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%2Fu1ci44eux927baw9xqqe.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%2Fu1ci44eux927baw9xqqe.png" alt=" " width="800" height="268"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Final &lt;code&gt;package.json&lt;/code&gt; file:&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%2F0spwkjz74cyjih3ij81t.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%2F0spwkjz74cyjih3ij81t.png" alt=" " width="800" height="1190"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That's it.&lt;/p&gt;

</description>
      <category>react</category>
      <category>vite</category>
      <category>typescript</category>
      <category>tailwindcss</category>
    </item>
    <item>
      <title>Create a ReactJs Vite project manually without create-react-app</title>
      <dc:creator>Sabareeswaran Chandrasekar</dc:creator>
      <pubDate>Wed, 16 Jul 2025 09:53:06 +0000</pubDate>
      <link>https://forem.com/sabareeswaran_chandraseka/create-a-reactjs-vite-project-without-create-react-app-1h7p</link>
      <guid>https://forem.com/sabareeswaran_chandraseka/create-a-reactjs-vite-project-without-create-react-app-1h7p</guid>
      <description>&lt;p&gt;&lt;strong&gt;Step:01&lt;/strong&gt; Create project folder&lt;br&gt;
&lt;em&gt;terminal&lt;/em&gt;: &lt;code&gt;mkdir React19&lt;/code&gt;&lt;br&gt;
&lt;em&gt;terminal&lt;/em&gt;: &lt;code&gt;cd React19&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step:02&lt;/strong&gt; Initialize &lt;code&gt;package.json&lt;/code&gt;&lt;br&gt;
&lt;em&gt;terminal&lt;/em&gt;: &lt;code&gt;npm init -y&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step:03&lt;/strong&gt; Install required Dependencies&lt;br&gt;
&lt;em&gt;terminal&lt;/em&gt;: &lt;code&gt;npm install react react-dom&lt;/code&gt;&lt;br&gt;
&lt;em&gt;terminal&lt;/em&gt;: &lt;code&gt;npm install --save-dev vite @vitejs/plugin-react&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step:04&lt;/strong&gt; Update Scripts in &lt;code&gt;package.json&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"scripts": {
  "dev": "vite",
  "build": "vite build",
  "preview": "vite preview"
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step:05&lt;/strong&gt; Create &lt;code&gt;index.html&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang="en"&amp;gt;
  &amp;lt;head&amp;gt;
    &amp;lt;meta charset="UTF-8" /&amp;gt;
    &amp;lt;title&amp;gt;My Vite React App&amp;lt;/title&amp;gt;
  &amp;lt;/head&amp;gt;
  &amp;lt;body&amp;gt;
    &amp;lt;div id="root"&amp;gt;&amp;lt;/div&amp;gt;
    &amp;lt;script type="module" src="/src/main.jsx"&amp;gt;&amp;lt;/script&amp;gt;
  &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step:06&lt;/strong&gt; Create &lt;code&gt;vite.config.js&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';

export default defineConfig({
  plugins: [react()]
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step:07&lt;/strong&gt; Create &lt;code&gt;src/main.jsx&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App';

ReactDOM.createRoot(document.getElementById('root')).render(&amp;lt;App /&amp;gt;);

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step:08&lt;/strong&gt; Create &lt;code&gt;src/App.jsx&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import React from 'react';

function App() {
  return &amp;lt;h1&amp;gt;Hello from Vite + React!&amp;lt;/h1&amp;gt;;
}

export default App;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step:09&lt;/strong&gt; Run&lt;br&gt;
&lt;em&gt;terminal&lt;/em&gt;: &lt;code&gt;npm run dev&lt;/code&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%2Fky6yp460fibdtco7sphn.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%2Fky6yp460fibdtco7sphn.png" alt=" " width="694" height="124"&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%2Fpa66hifcvuapebr9qrz2.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%2Fpa66hifcvuapebr9qrz2.png" alt=" " width="664" height="238"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That's it. Enjoy!!&lt;/p&gt;

</description>
      <category>react</category>
      <category>javascript</category>
      <category>vite</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
