<?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: Burhan Haroon</title>
    <description>The latest articles on DEV Community by Burhan Haroon (@burhanharoon).</description>
    <link>https://dev.to/burhanharoon</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%2F751876%2F2fa3776b-8184-4b7a-bebc-f3c8940b5ca6.jpeg</url>
      <title>DEV Community: Burhan Haroon</title>
      <link>https://dev.to/burhanharoon</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/burhanharoon"/>
    <language>en</language>
    <item>
      <title>Deploying a Simple React.js Frontend with Docker Made Easy! 🚀</title>
      <dc:creator>Burhan Haroon</dc:creator>
      <pubDate>Thu, 25 Jan 2024 16:22:52 +0000</pubDate>
      <link>https://dev.to/burhanharoon/deploying-a-simple-reactjs-frontend-with-docker-made-easy-3c9g</link>
      <guid>https://dev.to/burhanharoon/deploying-a-simple-reactjs-frontend-with-docker-made-easy-3c9g</guid>
      <description>&lt;p&gt;Hey, fam! 👋 As junior developers, diving into the world of deployment might seem a bit daunting at first, but fear not! Today, I'm here to guide you through deploying a simple React.js frontend with Docker in a breeze. 🌐🐳&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Get Your React App Ready&lt;/strong&gt;&lt;br&gt;
Ensure your React app is ready for the big stage! If you don't have one yet, create a basic React app using &lt;code&gt;create-react-app&lt;/code&gt;. 🚀&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx create-react-app dockerized-react-app
&lt;span class="nb"&gt;cd &lt;/span&gt;my-react-app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 2: Dockerizing Your React App&lt;/strong&gt;&lt;br&gt;
Create a file named &lt;code&gt;Dockerfile&lt;/code&gt; in your project root. This file tells Docker how to build your app.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight docker"&gt;&lt;code&gt;&lt;span class="c"&gt;# Use an official Node.js runtime as a base image&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="s"&gt; node:14&lt;/span&gt;

&lt;span class="c"&gt;# Set the working directory&lt;/span&gt;
&lt;span class="k"&gt;WORKDIR&lt;/span&gt;&lt;span class="s"&gt; /usr/src/app&lt;/span&gt;

&lt;span class="c"&gt;# Copy package.json and package-lock.json to the working directory&lt;/span&gt;
&lt;span class="k"&gt;COPY&lt;/span&gt;&lt;span class="s"&gt; package*.json ./&lt;/span&gt;

&lt;span class="c"&gt;# Install app dependencies&lt;/span&gt;
&lt;span class="k"&gt;RUN &lt;/span&gt;yarn &lt;span class="nb"&gt;install&lt;/span&gt;

&lt;span class="c"&gt;# Copy the app source code&lt;/span&gt;
&lt;span class="k"&gt;COPY&lt;/span&gt;&lt;span class="s"&gt; . .&lt;/span&gt;

&lt;span class="c"&gt;# Expose the port your app will run on&lt;/span&gt;
&lt;span class="k"&gt;EXPOSE&lt;/span&gt;&lt;span class="s"&gt; 3000&lt;/span&gt;

&lt;span class="c"&gt;# Command to run your app&lt;/span&gt;
&lt;span class="k"&gt;CMD&lt;/span&gt;&lt;span class="s"&gt; ["yarn", "start"]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 3: Build the Docker Image&lt;/strong&gt;&lt;br&gt;
Open your terminal, navigate to your project directory, and run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker build &lt;span class="nt"&gt;-t&lt;/span&gt; dockerized-react-app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This command builds your Docker image with the name &lt;code&gt;dockerized-react-app&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4: Run Your Dockerized React App&lt;/strong&gt;&lt;br&gt;
Once the image is built, it's time to run your Docker container!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker run &lt;span class="nt"&gt;-p&lt;/span&gt; 8080:3000 dockerized-react-app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Your React app is now running in a Docker container, accessible at &lt;code&gt;http://localhost:8080&lt;/code&gt; in your browser. 🎉&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bonus Tip: Simplify Development with Docker Compose&lt;/strong&gt;&lt;br&gt;
Create a file named &lt;code&gt;docker-compose.yml&lt;/code&gt; in your project root:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;3'&lt;/span&gt;
&lt;span class="na"&gt;services&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;web&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;build&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;.&lt;/span&gt;
    &lt;span class="na"&gt;ports&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;8080:3000"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run your app with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker-compose up
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Voilà! Your React app is now deployed using Docker, and you're ready to share it with the world. 🚀&lt;/p&gt;

&lt;h1&gt;
  
  
  ReactJS #Docker #WebDevelopment #JuniorDevelopers #TechTips
&lt;/h1&gt;

&lt;p&gt;Feel free to reach out if you have any questions or need further guidance. Happy coding! 💻✨&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to generate /sitemap.xml route in Remix framework</title>
      <dc:creator>Burhan Haroon</dc:creator>
      <pubDate>Wed, 20 Jul 2022 11:26:24 +0000</pubDate>
      <link>https://dev.to/burhanharoon/how-to-generate-sitemapxml-route-in-remix-framework-25dc</link>
      <guid>https://dev.to/burhanharoon/how-to-generate-sitemapxml-route-in-remix-framework-25dc</guid>
      <description>&lt;p&gt;According to &lt;strong&gt;google.com&lt;/strong&gt; &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A sitemap is a file where you provide information about the pages, videos, and other files on your site, and the relationships between them. Search engines like Google read this file to crawl your site more efficiently.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;First of all we are going to need the help of this very powerful package named &lt;strong&gt;Remix SEO&lt;/strong&gt;. So, install it by using the following command.&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="nx"&gt;npm&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;balavishnuvj&lt;/span&gt;&lt;span class="sr"&gt;/remix-se&lt;/span&gt;&lt;span class="err"&gt;o
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then make a new file named &lt;code&gt;sitemapRoutes.server.ts&lt;/code&gt; within our app/ directory. After creating the file paste the following code there.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="kd"&gt;type&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;EntryContext&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@remix-run/node&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;generateSitemap&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@balavishnuvj/remix-seo&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;siteUrl&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;
  &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ENVIRONMENT&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;production&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
    &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://yourProductionWebsiteUrl.com&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
    &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;http://localhost:3000&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;type&lt;/span&gt; &lt;span class="nx"&gt;Handler&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;Request&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;remixContext&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;EntryContext&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;Promise&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Response&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;otherRootRoutes&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;Record&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Handler&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/sitemap.xml&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="k"&gt;async &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;remixContext&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="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;generateSitemap&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;remixContext&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nx"&gt;siteUrl&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;otherRootRouteHandlers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;Array&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Handler&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
  &lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="nb"&gt;Object&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;entries&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;otherRootRoutes&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(([&lt;/span&gt;&lt;span class="nx"&gt;path&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;handler&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="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="na"&gt;request&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;Request&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;remixContext&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;EntryContext&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="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;URL&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;url&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;pathname&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; &lt;span class="nx"&gt;path&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

      &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;handler&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;remixContext&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&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 it for the &lt;code&gt;sitemapRoutes.server.ts&lt;/code&gt; file. Now head to the &lt;code&gt;entry.server.tsx&lt;/code&gt; file in the app/ directory and make the following changes there:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight diff"&gt;&lt;code&gt;&lt;span class="p"&gt;import type { EntryContext } from "@remix-run/node";
import { RemixServer } from "@remix-run/react";
import { renderToString } from "react-dom/server";
&lt;/span&gt;&lt;span class="gi"&gt;+ import { otherRootRouteHandlers } from "./sitemapRoutes.server";
&lt;/span&gt;&lt;span class="err"&gt;

&lt;/span&gt;&lt;span class="gd"&gt;- export default function handleRequest(
&lt;/span&gt;&lt;span class="gi"&gt;+ export default async function handleRequest(
&lt;/span&gt;  request: Request,
  responseStatusCode: number,
  responseHeaders: Headers,
  remixContext: EntryContext
) {
&lt;span class="gi"&gt;+  for (const handler of otherRootRouteHandlers) {
+    const otherRouteResponse = await handler(request, remixContext);
+    if (otherRouteResponse) return otherRouteResponse;
+  }
&lt;/span&gt;  const markup = renderToString(
    &amp;lt;RemixServer context={remixContext} url={request.url} /&amp;gt;
  );
&lt;span class="err"&gt;
&lt;/span&gt;  responseHeaders.set("Content-Type", "text/html");
&lt;span class="err"&gt;
&lt;/span&gt;  return new Response("&amp;lt;!DOCTYPE html&amp;gt;" + markup, {
    status: responseStatusCode,
    headers: responseHeaders,
  });
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and now you're done! Congratulations you did it ;)&lt;br&gt;
Now you just have to goto &lt;code&gt;http://localhost:3000/sitemap.xml&lt;/code&gt; link and you'll see the sitemap generated like this:&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%2Feho33j3h9lbxax9vmdmk.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%2Feho33j3h9lbxax9vmdmk.png" alt="sitemap.xml" width="800" height="589"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>remix</category>
      <category>typescript</category>
      <category>sitemap</category>
      <category>seo</category>
    </item>
    <item>
      <title>Why should you use Tailwind CSS with React/Next JS?</title>
      <dc:creator>Burhan Haroon</dc:creator>
      <pubDate>Sat, 26 Feb 2022 18:26:58 +0000</pubDate>
      <link>https://dev.to/burhanharoon/why-should-you-use-tailwind-css-with-reactnext-js-3j3h</link>
      <guid>https://dev.to/burhanharoon/why-should-you-use-tailwind-css-with-reactnext-js-3j3h</guid>
      <description>&lt;p&gt;&lt;strong&gt;&amp;gt; Tailwind is a CSS framework that drastically drops your time developing a web application.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let me tell you some problems, that I have faced myself with CSS.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;It is long and boring.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It can be, sometimes, very hard to maintain.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It's even hard imaging to scale a website whose CSS is not written "professionally" and without following some perfect writing styles.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;There're too many devices in the world. Making your website look perfect on all devices is a complete headache. And CSS just blows your mind off while doing that.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;React is a JavaScript library that helps you build single-page applications easily. With the help of Tailwind, you can drastically reduce the development time and can easily focus on business ideas.&lt;/p&gt;

&lt;p&gt;Here are some websites that I have created using Tailwind CSS.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://burhandev.me/campus/" rel="noopener noreferrer"&gt;Campus Landing Page&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://internship-ashy.vercel.app/" rel="noopener noreferrer"&gt;Ecommerce Website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://burhandev.me/Clappys-Website/" rel="noopener noreferrer"&gt;Clappys Website&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Not to brag me here, but these websites were completely built on Tailwind CSS and they are looking fantastic! With Tailwind CSS I could easily manage my CSS and design and focus more on my business idea. So I would suggest y'all start using Tailwind with all your projects.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>tailwindcss</category>
      <category>css</category>
    </item>
  </channel>
</rss>
