<?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: Lionnel Lubangi Mohamed</title>
    <description>The latest articles on DEV Community by Lionnel Lubangi Mohamed (@lubangi).</description>
    <link>https://dev.to/lubangi</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%2F998015%2Fe43ad986-da9f-4704-bd42-17474aadb319.png</url>
      <title>DEV Community: Lionnel Lubangi Mohamed</title>
      <link>https://dev.to/lubangi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/lubangi"/>
    <language>en</language>
    <item>
      <title>Learn different ways of deploying your React app in the cloud in 2023 [Part 2]</title>
      <dc:creator>Lionnel Lubangi Mohamed</dc:creator>
      <pubDate>Fri, 10 Feb 2023 06:59:52 +0000</pubDate>
      <link>https://dev.to/lubangi/learn-different-ways-of-deploying-your-react-app-in-the-cloud-in-2023-part-2-49b1</link>
      <guid>https://dev.to/lubangi/learn-different-ways-of-deploying-your-react-app-in-the-cloud-in-2023-part-2-49b1</guid>
      <description>&lt;p&gt;I'm continuing with our series of articles about deploying a react app in the cloud in 2023. in the &lt;a href="https://dev.to/lubangi/learn-different-ways-of-deploying-your-react-app-in-the-cloud-in-2023-part-1-25lf"&gt;previous articles that you can read here&lt;/a&gt;, we learned to deploy a React application on &lt;strong&gt;Vercel&lt;/strong&gt;, in this article, we will discuss deploying on &lt;strong&gt;AWS Amplify&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;So, we had our &lt;a href="https://github.com/lubangi/React-simple-Product-list.git" rel="noopener noreferrer"&gt;starter project that you can find here&lt;/a&gt;, you could also use your own react project, all we need is to push it into the cloud. I strongly recommend you take a look at the previous articles.&lt;/p&gt;

&lt;p&gt;The world of web development has evolved over the years.  There are now more and more tools and services that make development easy and reduce the time it takes to deploy a modern web app on the internet. &lt;/p&gt;

&lt;p&gt;Like many other services for deploying a web app, AWS Amplify is free to use, whereby you connect your GitHub repo from your Amplify console dashboard.&lt;/p&gt;

&lt;p&gt;Follow those steps to deploy your react app on AWS amplify:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Clone the &lt;a href="https://github.com/lubangi/React-simple-Product-list.git" rel="noopener noreferrer"&gt;starter project&lt;/a&gt; from my GitHub account (or use your project),&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Open the project in any editor of your choice (VsCode),&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;install the dependencies :&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

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

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

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Run the project :
&lt;/li&gt;
&lt;/ol&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;ol&gt;
&lt;li&gt;You should see the app in the browser:&lt;/li&gt;
&lt;/ol&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%2F9mf8x8142h0ijbabhf48.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%2F9mf8x8142h0ijbabhf48.png" alt="Image description" width="800" height="393"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Now that you have the app, it's time to &lt;a href="https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-new-repository" rel="noopener noreferrer"&gt;create your repository&lt;/a&gt; and &lt;a href="https://docs.github.com/en/get-started/importing-your-projects-to-github/importing-source-code-to-github/adding-locally-hosted-code-to-github" rel="noopener noreferrer"&gt;push&lt;/a&gt; the app on GitHub, if you followed me in the previous article, you don't need to create a new repository, you will use the same that you created before and your app should still be there unless you removed it. And if you get stuck when creating a repository or you can't push your project on GitHub, let me know in the comment below or my &lt;a href="https://twitter.com/LubangiLionnel" rel="noopener noreferrer"&gt;Twitter account&lt;/a&gt;, and I'll be happy to assist you.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;So go ahead and create a new repository on GitHub if needed, &lt;/p&gt;

&lt;p&gt;Now go to the &lt;a href="https://us-east-1.console.aws.amazon.com/" rel="noopener noreferrer"&gt;official website of Amazon Web Services&lt;/a&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://us-east-1.console.aws.amazon.com/" rel="noopener noreferrer"&gt;https://us-east-1.console.aws.amazon.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The first step is to create a new AWS account if you don't have one (You can login if you already have an account) :&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%2F7oue9n63umz3r5qi1ksc.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%2F7oue9n63umz3r5qi1ksc.png" alt="Image description" width="800" height="433"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Provide all pieces of information needed :&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%2F36fqr1suiuzysnsn96ui.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%2F36fqr1suiuzysnsn96ui.png" alt="Image description" width="800" height="521"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After confirming your address,you will see something like this on your browser:&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%2F14xhvoqkincecqn1im16.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%2F14xhvoqkincecqn1im16.png" alt="Image description" width="800" height="547"&gt;&lt;/a&gt;&lt;br&gt;
The next step is to provide your personal information:&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%2Fj518cxk8diw1748vn2sm.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%2Fj518cxk8diw1748vn2sm.png" alt="Image description" width="800" height="569"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next, you have to register your bank card:&lt;/p&gt;

&lt;p&gt;Note that AWS will not take your momney, they just want to certify that you can pay their service in the future,that is why they say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;We will not charge you for usage below AWS Free Tier limits. We may temporarily hold up to $1 USD (or an equivalent amount in local currency) as a pending transaction for 3-5 days to verify your identity.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&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%2Fff7kruma5fga9lhg9chv.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%2Fff7kruma5fga9lhg9chv.png" alt="Image description" width="800" height="497"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now go ahead and fill in all your information, once you are done, you should be able to access the AWS console :&lt;/p&gt;

&lt;p&gt;Type &lt;strong&gt;&lt;em&gt;Amplify&lt;/em&gt;&lt;/strong&gt; in the search bar , then click on Amplify:&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%2F4pa43d7sby03f932woxq.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%2F4pa43d7sby03f932woxq.png" alt="Image description" width="800" height="384"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then, you will see two options on the right side of your dashboard, select  the appropriate option as shown in this screenshot: &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%2Fdhi9bm84y8wb0oopt9ru.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%2Fdhi9bm84y8wb0oopt9ru.png" alt="Image description" width="800" height="339"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next, select your source, and click on GitHub:&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%2Fpn4g49g2w4731lxwl8j5.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%2Fpn4g49g2w4731lxwl8j5.png" alt="Image description" width="800" height="468"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next, authorize the connection to your GitHub account :&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%2Ftjdvo8rhkrdkho1tvaqr.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%2Ftjdvo8rhkrdkho1tvaqr.png" alt="Image description" width="800" height="724"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next, select the repository from your GitHub account  in the dropdown menu :&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%2F7203d4u3wt9tkui9zg1z.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%2F7203d4u3wt9tkui9zg1z.png" alt="Image description" width="800" height="1019"&gt;&lt;/a&gt;&lt;br&gt;
Next Amplify will be building your app,  click on Next to continue:&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%2Fnzl511g16sh9ot0bfdvq.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%2Fnzl511g16sh9ot0bfdvq.png" alt="Image description" width="800" height="619"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next, click on Save and Deploy to deploy your app :&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%2Fikls3hirli4voc42oyb3.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%2Fikls3hirli4voc42oyb3.png" alt="Image description" width="800" height="633"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Finally, your application is in the cloud, click on the link you see at the bottom to view your application in the browser and share your link with whoever you want. &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%2Fi0w394bexy81b2u5uo05.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%2Fi0w394bexy81b2u5uo05.png" alt="Image description" width="800" height="363"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the real world, you could associate your app with a custom domain such as asdf.com or asdf.net or anything else,&lt;a href="https://docs.aws.amazon.com/amplify/latest/userguide/to-add-a-custom-domain-managed-by-a-third-party-dns-provider.html" rel="noopener noreferrer"&gt;this guide &lt;/a&gt;could help you.&lt;/p&gt;

&lt;p&gt;So dear friends, thank you for reading, I will meet you in the next article of our series when we will learn to deploy the same app using AWS S3 and CloudFront.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://main.d15ke48xjiy7p7.amplifyapp.com/" rel="noopener noreferrer"&gt;Live preview&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/LubangiLionnel" rel="noopener noreferrer"&gt;Lionnel Lubangi &lt;/a&gt;, Developer.&lt;/p&gt;

</description>
      <category>fintech</category>
      <category>productivity</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Learn different ways of deploying your React app in the cloud in 2023 [Part 1]</title>
      <dc:creator>Lionnel Lubangi Mohamed</dc:creator>
      <pubDate>Thu, 09 Feb 2023 21:33:40 +0000</pubDate>
      <link>https://dev.to/lubangi/learn-different-ways-of-deploying-your-react-app-in-the-cloud-in-2023-part-1-25lf</link>
      <guid>https://dev.to/lubangi/learn-different-ways-of-deploying-your-react-app-in-the-cloud-in-2023-part-1-25lf</guid>
      <description>&lt;p&gt;In this serie of articles, I will show you more than 9 ways of deploying your react application for free. For this tutorial, we are not going to dig far into the process of creating an application, rather, we will focus on the main topic which is the deployment. I will provide you with a GitHub &lt;a href="https://github.com/lubangi/React-simple-Product-list.git"&gt;link&lt;/a&gt; that you could clone from my repository and then follow along with me. But, you don't need to do that, if you have any react application on your local machine, open it in the editor and follow the different steps below:&lt;/p&gt;

&lt;p&gt;Summary :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Vercel
2.1 AWS Amplify
2.2 AWS S3 + CloudFront
3.3 AWS EC2&lt;/li&gt;
&lt;li&gt;Firebase&lt;/li&gt;
&lt;li&gt;Netlify&lt;/li&gt;
&lt;li&gt;GitHub Pages&lt;/li&gt;
&lt;li&gt;Heroku&lt;/li&gt;
&lt;li&gt;Surge&lt;/li&gt;
&lt;li&gt;Render&lt;/li&gt;
&lt;li&gt;GitLab Pages&lt;/li&gt;
&lt;/ol&gt;

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

&lt;ul&gt;
&lt;li&gt;Node.js&lt;/li&gt;
&lt;li&gt;A react application (&lt;a href="https://github.com/lubangi/React-simple-Product-list.git"&gt;https://github.com/lubangi/React-simple-Product-list.git&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;A GitHub account&lt;/li&gt;
&lt;li&gt;Git&lt;/li&gt;
&lt;li&gt;A terminal&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let's get started&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1 Vercel&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steps to follow:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the &lt;a href="https://github.com/lubangi/React-simple-Product-list.git"&gt;project&lt;/a&gt; cloned in your IDE(VsCode),&lt;/li&gt;
&lt;li&gt;Open the terminal and install the dependencies:
&lt;/li&gt;
&lt;/ol&gt;

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

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Start the project :
&lt;/li&gt;
&lt;/ol&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;ol&gt;
&lt;li&gt;You should see the app in your browser :&lt;/li&gt;
&lt;/ol&gt;

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

&lt;p&gt;Vercel is a revolutionary serverless deployment service designed for React, Angular, Vue, and other JavaScript libraries. You can easily import projects from GitLab or Bitbucket with Vercel. Automatic SSL is one of the many cool features it offers.&lt;/p&gt;

&lt;p&gt;To deploy Vercel, create a new account. You can quickly log in using OAuth.&lt;/p&gt;

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

&lt;p&gt;next click on authorize:&lt;/p&gt;

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

&lt;p&gt;At this point, you should see a popup as shown in the image below:&lt;/p&gt;

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

&lt;p&gt;Select your GitHub repository and click on &lt;strong&gt;install&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;In the next step, click on import to import your project :&lt;/p&gt;

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

&lt;p&gt;Here, you can leave the default selection, but if you created your app with a framework other than CRA, then choose the appropriate framework in the dropdown menu.&lt;/p&gt;

&lt;p&gt;Then click on Deploy:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--p3o8cg-c--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4pvz1sb8cn6z10o9v67w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--p3o8cg-c--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4pvz1sb8cn6z10o9v67w.png" alt="Image description" width="880" height="399"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You will see that Vercel is processing, wait until it finishes:&lt;/p&gt;

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

&lt;p&gt;And my application is ready :&lt;/p&gt;

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

&lt;p&gt;Click on continue :&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jN-vlzJt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8iqr15emh26zcdqzao4d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jN-vlzJt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8iqr15emh26zcdqzao4d.png" alt="Image description" width="612" height="642"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now you should see your App with two links:&lt;/p&gt;

&lt;p&gt;The first is your domain, the second is the link to your GitHub repository.&lt;/p&gt;

&lt;p&gt;And if I click on the first link, my App will open in a new tab, here's the screenshot:&lt;/p&gt;

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

&lt;p&gt;Congratulations, you have finished the first part of this Tutorial, i will continue tomorrow with AWS.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://react-simple-product-list-lubangi.vercel.app/"&gt;Preview the app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thank you for reading!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/LubangiLionnel"&gt;Lionnel Lubangi Mohamed&lt;/a&gt;, Developer.&lt;/p&gt;

&lt;p&gt;Firebase&lt;br&gt;
Netlify&lt;br&gt;
GitHub Pages&lt;br&gt;
Heroku&lt;br&gt;
Surge&lt;br&gt;
Render&lt;br&gt;
GitLab Pages&lt;/p&gt;

</description>
      <category>aws</category>
      <category>react</category>
      <category>lionnellubangi</category>
      <category>deployreact2023</category>
    </item>
    <item>
      <title>Learn how to set up your React 18 project with Tailwind 3.x in 2023.</title>
      <dc:creator>Lionnel Lubangi Mohamed</dc:creator>
      <pubDate>Wed, 08 Feb 2023 00:50:37 +0000</pubDate>
      <link>https://dev.to/lubangi/learn-how-to-set-up-your-react-18-project-with-tailwind-3x-in-2023-29lg</link>
      <guid>https://dev.to/lubangi/learn-how-to-set-up-your-react-18-project-with-tailwind-3x-in-2023-29lg</guid>
      <description>&lt;p&gt;Hi everyone, my name is Lionnel Lubangi, I'm a full-stack developer and I'm passionate about writing tech articles. I used to publish on other platforms, but I have discovered that dev.to is one of the best platforms built for developers, so I'll be submitting a couple of articles here. &lt;br&gt;
By the way, let's get back to the main topic. In this tutorial, I'm going to show you the right way of setting up your react project with Tailwind 3.x.&lt;/p&gt;

&lt;p&gt;If you don't have any experience with Tailwind, don't mind, because I'll start with an overview of both react and tailwind. I will tell you what React and Tailwind are as well as telling you the relationship between them. with all that in mind, let's get started.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;what's react?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;React is a JavaScript library for building user interfaces, this definition comes from the official website of react. In another way, React is a library for helping developers build user interfaces (UIs) as a tree of small pieces called components. As for react, a component is a mixture of HTML and JavaScript that captures all of the logic required to display a small section of a larger UI. Each of these components can be built up into successively complex parts of an app. To illustrate what are components in react, let's look at the bellow screenshot.&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%2F96dt5mc68by2l5r3vd27.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%2F96dt5mc68by2l5r3vd27.png" alt="Image description" width="800" height="392"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here, you can see that we have three columns, from the left to the right:&lt;/p&gt;

&lt;p&gt;A column that I can call a &lt;strong&gt;Menu&lt;/strong&gt; which contains different icons such as the Twitter icons, the home icon, the Tag icons, and so on..;&lt;/p&gt;

&lt;p&gt;In the second column, I can name &lt;strong&gt;Posts&lt;/strong&gt;, we have different posts from people that I follow on Twitter;&lt;/p&gt;

&lt;p&gt;Eventually, in the third column, I can name &lt;strong&gt;Suggestions&lt;/strong&gt; we have some suggestions for Twitter accounts that I could be interested in.&lt;/p&gt;

&lt;p&gt;So in react, those are called components, you understand now that a component is nothing but a small part of the UI of an application.&lt;/p&gt;

&lt;p&gt;And if you look well, you'll quickly realize that those three components can also be subdivided into other smaller components. I'm not going to dig far because this is not the react course. Are you angry? why then, take a look at the main topic, and you'll see that I'm right (lol). So that's all about components in react.&lt;/p&gt;

&lt;p&gt;Now that you have an idea of react's components, a common question we could ask is how are we syling those components to make our application beautiful?&lt;/p&gt;

&lt;p&gt;Right, there are so many options to choose from when it comes to styling a react application, the natural option being to use vanilla CSS. &lt;/p&gt;

&lt;p&gt;So what are others possibles options? Right, there are plenty of CSS frameworks and tools based on CSS that you can use including Bootstrap, Sass, and Tailwind to name a few.&lt;/p&gt;

&lt;p&gt;For this tutorial, we will only talk about Tailwind.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's Tailwind?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Tailwind CSS, as per their website is a "utility-first CSS framework" which provides several utility classes that you can use directly inside your markup to design an element.&lt;/p&gt;

&lt;p&gt;There are so many utility classes that Tailwind provide, I don't know if there's someone who knows all of them, but the best part is, we do not have to write these utility classes ourselves and keep them in any global CSS file. We directly get them from Tailwind. if you have never worked with tailwind before, I promise you that you will see it in action in this tutorial after learning to set up the project.&lt;/p&gt;

&lt;p&gt;Now I think you have learned what react and Tailwind are, now it's time to set up our project using react and Tailwind.&lt;/p&gt;

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

&lt;p&gt;Before installing React and Tailwind, there are some prerequisites:&lt;/p&gt;

&lt;p&gt;You must have node installed on your computer, if you don't, this &lt;a href="https://radixweb.com/blog/installing-npm-and-nodejs-on-windows-and-mac" rel="noopener noreferrer"&gt;article&lt;/a&gt; could help you.&lt;/p&gt;

&lt;p&gt;If you are not sure that you have node installed, open your terminal on Mac or Linux and type&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;node --version
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You should see the version of node in the termial.&lt;/p&gt;

&lt;p&gt;now that you have node installed, you are ready for the next step.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to the Tailwind &lt;a href="https://tailwindcss.com/" rel="noopener noreferrer"&gt;website &lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Once on the landing page, click get started as shown in the below image.&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%2Fbnraeuszd9tocmsboese.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%2Fbnraeuszd9tocmsboese.png" alt="Image description" width="800" height="372"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Now in the left navigation panel, click on installation, then Framework guides to the right.&lt;/li&gt;
&lt;/ol&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%2F8xyy2ojte6y8jwgyh7dc.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%2F8xyy2ojte6y8jwgyh7dc.png" alt="Image description" width="800" height="353"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Now you have two options depending on the framework you want to use to create your react-app. Keep in mind that there are different ways of starting a new react project. the popular way is to use the framework CRA which stands for Create React App. But there are some complaints from developers including me who think that the CRA framework takes much times to configure a new application. Depending on your device performance, it could take you up to 8 minutes to set up a new project. Also, with CRA, react installs many packages behind the scene ( webpack, babel, axios and so on) so you will be working with those packages not because you need them, but because react has decided so. For that, some developers choose the CRA alternative such as &lt;a href="https://vitejs.dev/" rel="noopener noreferrer"&gt;Vite&lt;/a&gt;. That's what I'm showing you in the below screenshot, so if you want to work with CRA, click on the green rectangle, if you want to work with vite, choose the red rectangle.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;As for this tutorial, I'm using CRA, so if you want to follow along with me, go ahead and click on Create React App.&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%2Fbu9oc696gpe7m3syxmp5.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%2Fbu9oc696gpe7m3syxmp5.png" alt="Image description" width="800" height="432"&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Now, it's time to open your IDE, there are so many and I don't know which one you are using, but I recommend Visual Studio code. Create a new folder and name it as you want then drag it into your editor.&lt;br&gt;
if you are using VsCode, please hit Ctrl+Backtick to open your terminal, you can also use the menu &lt;strong&gt;Terminal&lt;/strong&gt;, &lt;strong&gt;New terminal&lt;/strong&gt; from VsCode.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;From now you should follow the instructions provided on the tailwind website as shown in this screenshot:&lt;/p&gt;&lt;/li&gt;
&lt;/ol&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%2Fjjqx0hgqe06c8oaju5oy.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%2Fjjqx0hgqe06c8oaju5oy.png" alt="Image description" width="800" height="481"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;In your terminal, type the following command:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Please notice that &lt;strong&gt;my-project&lt;/strong&gt; is the name of your project so feel free to name it as you want:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx create-react-app my-project
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I named my project 'react18-tailwind3x', so my command is as follows:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx create-react-app react18-tailwind3x
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2F0l4oizukg14rhh3agcr8.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%2F0l4oizukg14rhh3agcr8.png" alt="Image description" width="800" height="207"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As I told you early, this could take a couple of minutes depending on your computer performance and the speed of your internet connection.&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%2Fpiyq3wgx3vmyc1lulory.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%2Fpiyq3wgx3vmyc1lulory.png" alt="Image description" width="800" height="204"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If everything goes well, you should see the created application : &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%2Ffeemjnpepobcvxgfcdcx.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%2Ffeemjnpepobcvxgfcdcx.png" alt="Image description" width="758" height="694"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now navigate to your application like this :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd react18-tailwind3x

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

&lt;/div&gt;



&lt;p&gt;You have your react app installed, let's move to the next step and Install tailwind css via npm, and then run the init command to generate your &lt;strong&gt;tailwind.config.js&lt;/strong&gt; file.:&lt;/p&gt;

&lt;p&gt;Start with the first command, then run the second.&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
npx tailwindcss init

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

&lt;/div&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%2F0vf75szyihu49ka2l5aj.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%2F0vf75szyihu49ka2l5aj.png" alt="Image description" width="800" height="253"&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%2Fwj9aym0h41c2oywuyivy.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%2Fwj9aym0h41c2oywuyivy.png" alt="Image description" width="800" height="225"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now check your application's files, you will see a file named  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;tailwind.config.js&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Alright, we are about to finish, one more thing, open your &lt;strong&gt;tailwind.config.js&lt;/strong&gt; file, and you will see an object with a couple of properties, I will explain to you the purpose of each one of them, as for now, let's focus on the &lt;strong&gt;content&lt;/strong&gt; property. This is to tell Tailwind to look for every react file located in your &lt;strong&gt;src&lt;/strong&gt; folder and to apply the style when needed. ( By default, when working with CRA, every component will have the extension. JS, but as you could know, react use a particular syntax called JSX, so the components could also have the .JSX extension. It's up to you as a Developer to choose what you want, as for me, I prefer the .JSX extension for components and .JS for regular Javascript functions).&lt;/p&gt;

&lt;p&gt;It's also possible to use Typescript in react, now I'm not going to teach you Typescript yet, maybe later, I could submit an article on how to use react and Typescript. When you see something like .ts or .tsx, that's Typescript. So, if you are working with react and Typescript, your components could have the extension .ts or .tsx.&lt;/p&gt;

&lt;p&gt;Again, it's up to you to decide which extension you prefer, that's one of the qualities of react as compared to other frameworks and libraries like Angular, the freedom!&lt;/p&gt;

&lt;p&gt;Now, in the below code, copy everything in the array of the content property and paste it into the corresponding array of the &lt;strong&gt;tailwind.config.js&lt;/strong&gt; in your project. You can also delete everything in the file you have currently, copy the bellow code, and paste it there.&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: [
   ** "./src/**/*.{js,jsx,ts,tsx}",**
  ],
  theme: {
    extend: {},
  },
  plugins: [],
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Now open the index.css in your project and past those directives :
&lt;/li&gt;
&lt;/ol&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;The purpose of those directives is to help you better organize your CSS. Tailwind provides a great guide on this topic, take a look at that if you want to learn more &lt;a href="https://tailwindcss.com/docs/adding-custom-styles#using-css-and-layer" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Now everything is ok, just run
&lt;/li&gt;
&lt;/ol&gt;

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

&lt;/div&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%2Fq2dmkw2img6gw0wsr47c.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%2Fq2dmkw2img6gw0wsr47c.png" alt="Image description" width="800" height="435"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That's it, you have your react and Tailwind project ready.&lt;/p&gt;

&lt;p&gt;Now, how to use Tailwind?&lt;/p&gt;

&lt;p&gt;Let's create a small app that lists the blog's authors.&lt;/p&gt;

&lt;p&gt;in your project created early, open the src folder, inside that folder, create a new component called Author.js, then past the following code:&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 Author = () =&amp;gt; {
  return (
    &amp;lt;div&amp;gt;
      &amp;lt;h1&amp;gt;List of authors&amp;lt;/h1&amp;gt;
        &amp;lt;div&amp;gt;
            &amp;lt;h1&amp;gt;Author name: Lionnel&amp;lt;/h1&amp;gt;

          &amp;lt;div&amp;gt;
              &amp;lt;p&amp;gt;Title&amp;lt;/p&amp;gt;
              &amp;lt;img src=''/&amp;gt;
              &amp;lt;link&amp;gt;&amp;lt;/link&amp;gt;
          &amp;lt;/div&amp;gt;

        &amp;lt;/div&amp;gt;
        &amp;lt;div&amp;gt;
            &amp;lt;h1&amp;gt;Author name: Lubangi&amp;lt;/h1&amp;gt;

          &amp;lt;div&amp;gt;
              &amp;lt;p&amp;gt;Title&amp;lt;/p&amp;gt;
              &amp;lt;img src=''/&amp;gt;
              &amp;lt;link&amp;gt;&amp;lt;/link&amp;gt;
          &amp;lt;/div&amp;gt;

        &amp;lt;/div&amp;gt;
        &amp;lt;div&amp;gt;
            &amp;lt;h1&amp;gt;Author name: Mohamed&amp;lt;/h1&amp;gt;

          &amp;lt;div&amp;gt;
              &amp;lt;p&amp;gt;Title&amp;lt;/p&amp;gt;
              &amp;lt;img src=''/&amp;gt;
              &amp;lt;link&amp;gt;&amp;lt;/link&amp;gt;
          &amp;lt;/div&amp;gt;

        &amp;lt;/div&amp;gt;

    &amp;lt;/div&amp;gt;
  )
}

export default Author

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

&lt;/div&gt;



&lt;p&gt;We have a basic page with a div containing a heading and three others div that list 3 authors.&lt;/p&gt;

&lt;p&gt;Now, go into App.js, remove everything between the parentheses located in the return keywords, and put the Author component inside:&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%2F8w30sim1fig2hv5by2yf.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%2F8w30sim1fig2hv5by2yf.png" alt="Image description" width="800" height="471"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now run your app :&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;You should see the following screenshot in your browser&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%2F5siniz7jzqefc46agztt.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%2F5siniz7jzqefc46agztt.png" alt="Image description" width="800" height="478"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Until now, react has done its job, which is to render the author component to the browser, styling it is your job. You can do it using plain CSS or Tailwind, since we are talking about Tailwind, let's style it using the tailwind classes.&lt;/p&gt;

&lt;p&gt;As I told you before, you don't need to memorize all the tailwind classes in your head, as you are working with Tailwind, you could memorize some of them, but you should always use the Tailwind Documentation to copy and paste the provided classes.&lt;/p&gt;

&lt;p&gt;For example, if you want to change the background, the width, and the height of a div, in plain css, you will do something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; div {
   background-color : #FFF333;
   width: 100%;
   height: 800 px;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now let's use Tailwind to do the same job :&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;div className = " bg-[#FFF333] w-full h-4/5 "&amp;gt;
    My content
  &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now to achieve our author's app, I'm going to provide you with the GitHub link where you can find the source code. There are so many resources online you can use to learn React and Tailwind, I don't want to provide the udemy link because it could sound like I'm doing affiliate marketing, just go ahead and search.&lt;/p&gt;

&lt;p&gt;The purpose of this tutorial was to show you how you can set up React and Tailwind in your project.&lt;/p&gt;

&lt;p&gt;If you have any questions, please ask in the comment, and I'll be happy to answer you. You can also follow me on &lt;a href="https://twitter.com/LubangiLionnel" rel="noopener noreferrer"&gt;Twitter &lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/LubangiLionnel" rel="noopener noreferrer"&gt;Lionnel Lubangi&lt;/a&gt; , full-stack Developer.&lt;/p&gt;

</description>
      <category>devto</category>
      <category>announcement</category>
      <category>offers</category>
    </item>
  </channel>
</rss>
