<?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: mahiuddinTuhin</title>
    <description>The latest articles on DEV Community by mahiuddinTuhin (@mahiuddintuhin).</description>
    <link>https://dev.to/mahiuddintuhin</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%2F934643%2F0ddf4ba7-8c32-4a96-9563-83abe3d76692.jpeg</url>
      <title>DEV Community: mahiuddinTuhin</title>
      <link>https://dev.to/mahiuddintuhin</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mahiuddintuhin"/>
    <language>en</language>
    <item>
      <title>Understanding the File Upload Middleware with Cloudinary in Node.js</title>
      <dc:creator>mahiuddinTuhin</dc:creator>
      <pubDate>Thu, 22 Feb 2024 04:53:22 +0000</pubDate>
      <link>https://dev.to/mahiuddintuhin/understanding-the-file-upload-middleware-with-cloudinary-in-nodejs-5a8g</link>
      <guid>https://dev.to/mahiuddintuhin/understanding-the-file-upload-middleware-with-cloudinary-in-nodejs-5a8g</guid>
      <description>&lt;p&gt;In this article, we will explore a middleware for file uploads in a Node.js application, which leverages Cloudinary for image storage. The middleware is written in TypeScript and uses the &lt;code&gt;multer&lt;/code&gt; library for handling &lt;code&gt;multipart/form-data&lt;/code&gt;, which is primarily used for uploading files.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setting Up Cloudinary
&lt;/h2&gt;

&lt;p&gt;Cloudinary is a cloud-based service that provides an end-to-end solution for image and video management, including uploads, storage, manipulations, optimizations, and delivery.  &lt;/p&gt;

&lt;p&gt;The Cloudinary configuration is set up at the beginning of the code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cloudinary.config({
  cloud_name: config.CLOUD_NAME,
  api_key: process.env.API_KEY,
  api_secret: process.env.API_SECRET,
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;cloud_name&lt;/code&gt; is your unique Cloudinary account identifier. The &lt;code&gt;api_key&lt;/code&gt; and &lt;code&gt;api_secret&lt;/code&gt; are your Cloudinary account credentials, which should be kept secure and not exposed in your code.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Upload Function
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;uploadToCloudinary&lt;/code&gt; function is responsible for uploading a file to Cloudinary:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const uploadToCloudinary = (path: string, imageName: string) =&amp;gt; {
  // ...
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This function takes two parameters: the local path of the image to be uploaded (&lt;code&gt;path&lt;/code&gt;) and the desired public ID for the image on Cloudinary (&lt;code&gt;imageName&lt;/code&gt;). If the &lt;code&gt;path&lt;/code&gt; is not provided, an error is thrown.&lt;/p&gt;

&lt;p&gt;The function returns a Promise that resolves with the result of the upload or rejects with an error. After the upload is complete, the local file is deleted using the &lt;code&gt;fs.unlink&lt;/code&gt; function.&lt;/p&gt;

&lt;h2&gt;
  
  
  Multer Middleware
&lt;/h2&gt;

&lt;p&gt;Multer is a middleware for handling &lt;code&gt;multipart/form-data&lt;/code&gt;, which is primarily used for uploading files. It is used to process the incoming request and store the uploaded files in the local filesystem.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;storage&lt;/code&gt; object defines where to store the uploaded files and how to name them:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const storage = multer.diskStorage({
  destination: function (req, file, cb) {
    cb(null, process.cwd() + "/uploads/");
  },
  filename: function (req, file, cb) {
    const uniqueSuffix = Date.now() + "-" + Math.round(Math.random() *  1e9);
    cb(null, file.fieldname + "-" + uniqueSuffix);
  },
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;destination&lt;/code&gt; function determines the folder where the uploaded files will be stored. The &lt;code&gt;filename&lt;/code&gt; function generates a unique name for each uploaded file.&lt;/p&gt;

&lt;p&gt;Finally, the &lt;code&gt;upload&lt;/code&gt; middleware is created using the defined &lt;code&gt;storage&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;export const upload = multer({ storage: storage });
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This middleware can now be used in an Express route to handle file uploads. When a file is uploaded, it will be stored in the specified directory and then uploaded to Cloudinary.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code at a glance
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/* eslint-disable @typescript-eslint/no-explicit-any */
/* eslint-disable @typescript-eslint/no-var-requires */
import { v2 as cloudinary } from "cloudinary";
import multer from "multer";
import config from "../config";
import AppError from "../errors/customError";
const fs = require("fs");

cloudinary.config({
  cloud_name: config.CLOUD_NAME,
  api_key: process.env.API_KEY,
  api_secret: process.env.API_SECRET,
});

const uploadToCloudinary = (path: string, imageName: string) =&amp;gt; {
  if (!path) {
    throw new AppError("File path does not found!", 400);
  }

  return new Promise((resolve, reject) =&amp;gt; {
    try {
      cloudinary.uploader.upload(
        path, //local image path
        { public_id: imageName },
        function (error, result) {
          if (error) {
            reject(error);
          }
          resolve(result);

          // removing image file from 'path' of image
          fs.unlink(path, (err: any) =&amp;gt; {
            if (err) {
              throw new AppError("Error in deleting file after uploads", 400);
            }
          });
        },
      );
    } catch (error: any) {
      throw new AppError(error.message, 400);
    }
  });
};

export default uploadToCloudinary;

const storage = multer.diskStorage({
  destination: function (req, file, cb) {
    cb(null, process.cwd() + "/uploads/");
  },
  filename: function (req, file, cb) {
    const uniqueSuffix = Date.now() + "-" + Math.round(Math.random() * 1e9);
    cb(null, file.fieldname + "-" + uniqueSuffix);
  },
});

export const upload = multer({ storage: storage });

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

&lt;/div&gt;



&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;This middleware provides a robust solution for handling file uploads in a Node.js application. By integrating Cloudinary, it offloads the responsibility of storing and serving images, allowing the application to focus on other tasks. The use of Promises and async/await makes the code easier to read and understand, and the use of &lt;code&gt;multer&lt;/code&gt; simplifies the handling of file uploads.&lt;/p&gt;

</description>
      <category>multer</category>
      <category>express</category>
      <category>node</category>
      <category>backenddevelopment</category>
    </item>
    <item>
      <title>Understanding The Sharding in MongoDB</title>
      <dc:creator>mahiuddinTuhin</dc:creator>
      <pubDate>Sun, 31 Dec 2023 14:00:00 +0000</pubDate>
      <link>https://dev.to/mahiuddintuhin/understanding-the-sharding-in-mongodb-3id6</link>
      <guid>https://dev.to/mahiuddintuhin/understanding-the-sharding-in-mongodb-3id6</guid>
      <description>&lt;p&gt;Before understanding sharding, we need to understand the vertical and horizontal scaling of the Database.&lt;/p&gt;

&lt;p&gt;Suppose your data collection has a big growth and now you must extend your database server. If you extend the capacity of your database server eg. RAM, ROM or CPU then it would be called verticle scaling of the database. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--M98ntec5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5hb30psrkmw9qc5rsvma.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--M98ntec5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5hb30psrkmw9qc5rsvma.png" alt="Image description" width="800" height="525"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But if you increase the number of servers to divide the data into chunks and distribute data into those multiple small servers, that would be called horizontal scaling of the database.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NP2AsCSm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/brmflaiu4kvsq0br8i23.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NP2AsCSm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/brmflaiu4kvsq0br8i23.png" alt="Image description" width="800" height="346"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, let's come to the Sharding in MongoDB. Sharding in MongoDB is a method or approach for distributing or partitioning data across multiple machines, that is the horizontal scaling of the MongoDB database. It is beneficial when a single machine can't handle properly large modern-day workloads or data(eg. ~100 million of data) anymore. Then enabling horizontal scaling of the database by distributing chunks of data. This means you are adding several server machines into your server rack so that all the data can be shared with the data set and loaded within all the servers of the rack. Horizontal scaling allows us for near-limitless scaling to handle big data and intense and massive workloads.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--q1p60DDr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ul941t28knh3hfhjiko8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--q1p60DDr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ul941t28knh3hfhjiko8.png" alt="Image description" width="700" height="671"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>mongodb</category>
      <category>sharding</category>
      <category>backend</category>
      <category>database</category>
    </item>
    <item>
      <title>Best Tailwind Component</title>
      <dc:creator>mahiuddinTuhin</dc:creator>
      <pubDate>Tue, 04 Apr 2023 03:57:19 +0000</pubDate>
      <link>https://dev.to/mahiuddintuhin/best-tailwind-component-mik</link>
      <guid>https://dev.to/mahiuddintuhin/best-tailwind-component-mik</guid>
      <description>&lt;p&gt;*&lt;em&gt;When it comes about front end development with tailwind then  we feel some pre-made component. But installing third-party library sometimes is really pain and tough to customize also. Here I'm sharing few best tailwind components without installing third party library. *&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://www.floatui.com/components" rel="noopener noreferrer"&gt;FloatUI&lt;/a&gt;:
&lt;/h2&gt;

&lt;p&gt;UI components for React and Vue (soon) with Tailwind CSS, every example support both directions LTR and RTL. Also it has some free templates.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fc0zy89cdzmtgz1gzvdmy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fc0zy89cdzmtgz1gzvdmy.png" alt="FloatUI react tailwind component"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://www.hyperui.dev/" rel="noopener noreferrer"&gt;HyperUI&lt;/a&gt;:
&lt;/h2&gt;

&lt;p&gt;HyperUI is a collection of free Tailwind CSS components that can be used in your next project. With a range of components, you can build your next marketing website, admin dashboard, eCommerce store and much more.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fcwe44xdg2ylla3t8e3ze.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fcwe44xdg2ylla3t8e3ze.png" alt="HyperUI react tailwind component"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://merakiui.com/components" rel="noopener noreferrer"&gt;Merakiui&lt;/a&gt;:
&lt;/h2&gt;

&lt;p&gt;Streamline your web development process with our comprehensive solution. Our form layouts, tables, and modal dialogs are expertly crafted to help you build beautiful and responsive web applications effortlessly.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2F6fn44wmsxv2a1uh5ajij.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F6fn44wmsxv2a1uh5ajij.png" alt="react tailwind component"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://kitwind.io/products/kometa/components" rel="noopener noreferrer"&gt;kitwind&lt;/a&gt;:
&lt;/h2&gt;

&lt;p&gt;kitwindare giving away our first UI kit for free. It includes over 130 sections, built with TailwindCSS, for your awesome projects.&lt;/p&gt;

&lt;p&gt;All the sections are fully responsive and available in HTML, VueJS, and React. You can use them on unlimited personal and commercial projects.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2F2x7i2an3zem3nh1y83vk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F2x7i2an3zem3nh1y83vk.png" alt="react tailwind component"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://tailblocks.cc/" rel="noopener noreferrer"&gt;tailblocks&lt;/a&gt;:
&lt;/h2&gt;

&lt;p&gt;Tailblocks is a website that provides a collection of free, open-source Tailwind CSS blocks. These blocks can be used to quickly create complex UI components.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Ff2liujib1lbjttgk9j2e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Ff2liujib1lbjttgk9j2e.png" alt="react tailwind component"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://www.mambaui.com/components/hero" rel="noopener noreferrer"&gt;Mambaui&lt;/a&gt;:
&lt;/h2&gt;

&lt;p&gt;Mamba UI is a free, open-source collection of UI components&lt;br&gt;
and templates based on Tailwind CSS.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2F6x2wthvylpjx0dfhoyb5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F6x2wthvylpjx0dfhoyb5.png" alt="react tailwind component"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://windstatic.com/" rel="noopener noreferrer"&gt;Windstatic&lt;/a&gt;:
&lt;/h2&gt;

&lt;p&gt;A set of 161 elements &amp;amp; layouts made with Tailwind CSS and Alpine.js Skillfully designed with an eye for aesthetics, offering an excellent starting point for your upcoming project.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fdnnayu4t6z3dwnll8e41.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fdnnayu4t6z3dwnll8e41.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://tailus.io/" rel="noopener noreferrer"&gt;Tailus&lt;/a&gt;:
&lt;/h2&gt;

&lt;p&gt;Easy to customize UI components, blocks and templates built on top of modern frontend tools to make your ideas stand out.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Flc39klemd6iydqvs2t00.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Flc39klemd6iydqvs2t00.png" alt="react tailwind component"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://wickedblocks.dev/" rel="noopener noreferrer"&gt;Wickedblocks&lt;/a&gt;:
&lt;/h2&gt;

&lt;p&gt;Over 120 fully responsive component and blocks you can copy paste into your Tailwind projects. Use it in as many projects you want to and as many times you need too.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fzf9it090qbw8bhsq0ao1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fzf9it090qbw8bhsq0ao1.png" alt="react tailwind component"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://www.tailwind-kit.com/components" rel="noopener noreferrer"&gt;Tailwind-kit&lt;/a&gt;:
&lt;/h2&gt;

&lt;p&gt;Tail-kit gives you access to over 250 free components and free templates, based on Tailwind CSS 3.0. It's all compatible with React, VueJS and Angular application.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fa9we5yno4ix4tfgcvynw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fa9we5yno4ix4tfgcvynw.png" alt="react tailwind component"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://flowrift.com/c/banner" rel="noopener noreferrer"&gt;Flowrift&lt;/a&gt;:
&lt;/h2&gt;

&lt;p&gt;A library filled with Tailwind CSS UI blocks, components &amp;amp; templates. Browse an ever-growing UI kit inside a highly optimized app. View / copy / customize.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Ftaw9i70svd6z45trvcyb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Ftaw9i70svd6z45trvcyb.png" alt="react tailwind component"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://treact.owaiskhan.me/" rel="noopener noreferrer"&gt;Treact Owaiskhan&lt;/a&gt;:
&lt;/h2&gt;

&lt;p&gt;Treact Owaiskhan provides 52 components along with the premade landing pages so you can create your own landing page within minutes as you see fit. You can combine these components to create 1000s of unique attractive web pages.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2F223kuowlbeorch297bkd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F223kuowlbeorch297bkd.png" alt="react tailwind component"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://kutty.netlify.app/components/" rel="noopener noreferrer"&gt;Kutty&lt;/a&gt;:
&lt;/h2&gt;

&lt;p&gt;Kutty is a tailwind plugin for building web applications. It has a set of accessible and reusable components that are commonly used in web applications.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fc3cxips3mq5b5vrqbpqr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fc3cxips3mq5b5vrqbpqr.png" alt="react tailwind component"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://www.gust-ui.com/components" rel="noopener noreferrer"&gt;Gust UI&lt;/a&gt;:
&lt;/h2&gt;

&lt;p&gt;Gust UI is an assortment of components, elements, and pages constructed using Tailwind CSS in order to make your development process easier and web apps elegant.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fkd9665a2cgd1d1nbelt1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fkd9665a2cgd1d1nbelt1.png" alt="react tailwind component"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://mynaui.com/" rel="noopener noreferrer"&gt;Mynaui&lt;/a&gt;:
&lt;/h2&gt;

&lt;p&gt;Mynaui contains UI Components and Elements made with Tailwind CSS ✨ Free · Open Source · Accessible · With Figma · Other Buzzwords&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fhq4mna8x3tycefs22wwr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fhq4mna8x3tycefs22wwr.png" alt="react tailwind component"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://tailgrids.com/components" rel="noopener noreferrer"&gt;Tailgrids&lt;/a&gt;:
&lt;/h2&gt;

&lt;p&gt;Wide range of 500+ free &amp;amp; premium Tailwind CSS UI components, blocks, sections, examples and templates to create beautiful web user interface for your web projects fast. High-quality UI elements handcrafted to solve your design and coding challenges for making your web project closer to launch.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fna93j6iutqjvxdi6iv6w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fna93j6iutqjvxdi6iv6w.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That's all from side. It will be great if there needs any correction or other components to add, please share with with me.&lt;/p&gt;

</description>
      <category>tailwindcss</category>
      <category>react</category>
      <category>frontend</category>
    </item>
  </channel>
</rss>
