<?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: Saquib Hussain</title>
    <description>The latest articles on DEV Community by Saquib Hussain (@saquib_hussain_0d67ba0ead).</description>
    <link>https://dev.to/saquib_hussain_0d67ba0ead</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%2F1936780%2Fd121b59d-b265-4f3c-b49b-f23ad6d15e87.png</url>
      <title>DEV Community: Saquib Hussain</title>
      <link>https://dev.to/saquib_hussain_0d67ba0ead</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/saquib_hussain_0d67ba0ead"/>
    <language>en</language>
    <item>
      <title>Deploying Static React app on AWS S3 Bucket</title>
      <dc:creator>Saquib Hussain</dc:creator>
      <pubDate>Thu, 24 Oct 2024 12:19:54 +0000</pubDate>
      <link>https://dev.to/saquib_hussain_0d67ba0ead/deploying-static-react-app-on-aws-s3-bucket-gln</link>
      <guid>https://dev.to/saquib_hussain_0d67ba0ead/deploying-static-react-app-on-aws-s3-bucket-gln</guid>
      <description>&lt;h2&gt;
  
  
  This is the detailed procedure on how to create a static React application and deploy it on AWS S3 Bucket.
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Steps to create React Application:
&lt;/h2&gt;

&lt;h4&gt;
  
  
  1. Initialize React App
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx create-react-app todo-app
cd todo-app
npm start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will create a React app and start the development server on &lt;a href="http://localhost:3000/" rel="noopener noreferrer"&gt;http://localhost:3000/&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%2Fl6k1ufdvxa9cyrui1ykz.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%2Fl6k1ufdvxa9cyrui1ykz.png" alt="Image description" width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  2.Create the Components
&lt;/h4&gt;

&lt;p&gt;We'll need two components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;App.js – Main component&lt;/li&gt;
&lt;li&gt;ToDo.js – Individual task component.
Modify src/App.js:
Replace the contents of App.js with:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import React, { useState } from 'react';
import ToDo from './ToDo';
import './App.css';

function App() {
  const [todos, setTodos] = useState([]);
  const [input, setInput] = useState('');

  const addTodo = (e) =&amp;gt; {
    e.preventDefault();
    if (input.trim()) {
      setTodos([...todos, { text: input, completed: false }]);
      setInput('');
    }
  };

  const toggleComplete = (index) =&amp;gt; {
    const newTodos = [...todos];
    newTodos[index].completed = !newTodos[index].completed;
    setTodos(newTodos);
  };

  const deleteTodo = (index) =&amp;gt; {
    setTodos(todos.filter((_, i) =&amp;gt; i !== index));
  };

  return (
    &amp;lt;div className="app"&amp;gt;
      &amp;lt;h1&amp;gt;My To-Do List&amp;lt;/h1&amp;gt;
      &amp;lt;form onSubmit={addTodo}&amp;gt;
        &amp;lt;input
          value={input}
          onChange={(e) =&amp;gt; setInput(e.target.value)}
          placeholder="Add a task"
        /&amp;gt;
        &amp;lt;button type="submit"&amp;gt;Add&amp;lt;/button&amp;gt;
      &amp;lt;/form&amp;gt;
      &amp;lt;div className="todo-list"&amp;gt;
        {todos.map((todo, index) =&amp;gt; (
          &amp;lt;ToDo
            key={index}
            todo={todo}
            toggleComplete={() =&amp;gt; toggleComplete(index)}
            deleteTodo={() =&amp;gt; deleteTodo(index)}
          /&amp;gt;
        ))}
      &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
  );
}

export default App;

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

&lt;/div&gt;



&lt;p&gt;Create src/ToDo.js : Add a new file ToDo.js in the src folder&lt;br&gt;
&lt;/p&gt;

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

function ToDo({ todo, toggleComplete, deleteTodo }) {
  return (
    &amp;lt;div className={`todo ${todo.completed ? 'completed' : ''}`}&amp;gt;
      &amp;lt;span onClick={toggleComplete}&amp;gt;{todo.text}&amp;lt;/span&amp;gt;
      &amp;lt;button onClick={deleteTodo}&amp;gt;Delete&amp;lt;/button&amp;gt;
    &amp;lt;/div&amp;gt;
  );
}

export default ToDo;

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

&lt;/div&gt;



&lt;h4&gt;
  
  
  3.Update CSS Styling
&lt;/h4&gt;

&lt;p&gt;Update App.css and create ToDo.css file in src folder for basic styling.&lt;br&gt;
src/App.css&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/* Global Styles */
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  font-family: 'Poppins', sans-serif;
}

body {
  background-color: #121212;
  color: #e4e6eb;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* App Container */
.app {
  background-color: #1e1e2f;
  width: 400px;
  padding: 30px;
  border-radius: 15px;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.8);
  text-align: center;
}

.app h1 {
  margin-bottom: 20px;
  font-size: 28px;
  color: #f8f9fa;
  letter-spacing: 1px;
  text-shadow: 1px 1px 2px #000;
}

/* Input and Add Button */
form {
  display: flex;
  margin-bottom: 20px;
}

input {
  flex: 1;
  padding: 12px;
  border-radius: 30px 0 0 30px;
  border: none;
  outline: none;
  background-color: #2b2b40;
  color: #fff;
}

button {
  background-color: #4caf50;
  border: none;
  border-radius: 0 30px 30px 0;
  color: white;
  width: 70px;
  cursor: pointer;
  font-weight: bold;
  transition: background-color 0.3s ease-in-out;
}

button:hover {
  background-color: #45a049;
}

/* Todo List */
.todo-list {
  max-height: 300px;
  overflow-y: auto;
  scrollbar-width: thin;
}

.todo-list::-webkit-scrollbar {
  width: 8px;
}

.todo-list::-webkit-scrollbar-thumb {
  background-color: #444457;
  border-radius: 5px;
}

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

&lt;/div&gt;



&lt;p&gt;src/ToDo.css&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.todo {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background-color: #2e2e42;
    margin: 10px 0;
    padding: 15px;
    border-radius: 10px;
    transition: transform 0.2s, box-shadow 0.2s;
  }

  .todo:hover {
    transform: scale(1.05);
    box-shadow: 0 0 15px rgba(0, 0, 0, 0.5);
  }

  .todo.completed span {
    text-decoration: line-through;
    color: #9e9e9e;
  }

  /* Todo Text */
  .todo span {
    flex-grow: 1;
    font-size: 18px;
    padding-right: 10px;
    cursor: pointer;
  }

  /* Delete Button */
  button {
    background-color: #ff5252;
    border: none;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    color: white;
    font-weight: bold;
    cursor: pointer;
    transition: background-color 0.3s ease-in-out;
  }

  button:hover {
    background-color: #ff1744;
  }

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

&lt;/div&gt;



&lt;h4&gt;
  
  
  4.Run the App
&lt;/h4&gt;



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

&lt;/div&gt;



&lt;p&gt;This will start the deployment server on &lt;a href="http://localhost:3000/" rel="noopener noreferrer"&gt;http://localhost:3000/&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%2F1fr61e0o81ld4ztaycnj.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%2F1fr61e0o81ld4ztaycnj.png" alt="Image description" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  5.Create a production build
&lt;/h4&gt;



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

&lt;/div&gt;



&lt;p&gt;This command will create a build folder.&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%2F1s3kgm3utgjsatyliku8.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%2F1s3kgm3utgjsatyliku8.png" alt="Image description" width="340" height="471"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Hosting a static website on AWS S3:
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Steps to upload build files on S3 and make the bucket publicly available.
&lt;/h2&gt;

&lt;p&gt;If you have a react app,you can ignore the previous steps and continue from here. &lt;br&gt;
Here in the S3 bucked I will be uploading the contents of the build folder.&lt;/p&gt;

&lt;h4&gt;
  
  
  1.Go to AWS S3 console and create a S3 bucket.
&lt;/h4&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%2F9csv0zyglb19gqrufoww.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%2F9csv0zyglb19gqrufoww.png" alt="Image description" width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The bucket name should be universally unique.&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%2F9fwmecqi325q5h7672y0.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%2F9fwmecqi325q5h7672y0.png" alt="Image description" width="800" height="422"&gt;&lt;/a&gt;&lt;br&gt;
Uncheck the "Block all public access".&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%2F6797a01u9mto72sfwq60.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%2F6797a01u9mto72sfwq60.png" alt="Image description" width="800" height="422"&gt;&lt;/a&gt;&lt;br&gt;
Scroll down and click on &lt;strong&gt;create bucket&lt;/strong&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  2.Uploading the contents of build folder to S3
&lt;/h4&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%2Futzuc1yo22moqk0tt3oj.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%2Futzuc1yo22moqk0tt3oj.png" alt="Image description" width="800" height="422"&gt;&lt;/a&gt;&lt;br&gt;
Copy all the contents on build folder into the s3 bucket and click on upload.&lt;br&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%2Fiaqplwdzarz0qdinwng6.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%2Fiaqplwdzarz0qdinwng6.png" alt="Image description" width="800" height="423"&gt;&lt;/a&gt;&lt;br&gt;
In the properties tab,click on &lt;strong&gt;Edit&lt;/strong&gt; on Static website hosting.&lt;br&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%2Fsc45fwacfwmfa1wure6w.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%2Fsc45fwacfwmfa1wure6w.png" alt="Image description" width="800" height="422"&gt;&lt;/a&gt;&lt;br&gt;
Enable the Static website hosting and give the entry file as &lt;strong&gt;index.html&lt;/strong&gt;&lt;br&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%2Ftjp9ngg3ixg36ql8grr1.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%2Ftjp9ngg3ixg36ql8grr1.png" alt="Image description" width="800" height="422"&gt;&lt;/a&gt;&lt;br&gt;
And save changes.&lt;/p&gt;

&lt;h4&gt;
  
  
  3.Attaching policies to the S3 bucket.
&lt;/h4&gt;

&lt;p&gt;Now in the permissions tab, click on Edit bucket policy.&lt;br&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%2F73k6jcjufbs7z43n37qx.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%2F73k6jcjufbs7z43n37qx.png" alt="Image description" width="800" height="422"&gt;&lt;/a&gt;&lt;br&gt;
copy the Amazon resource number and click on &lt;strong&gt;Policy generate&lt;/strong&gt;&lt;br&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%2Fef6btitdwu15c0mwne3s.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%2Fef6btitdwu15c0mwne3s.png" alt="Image description" width="800" height="402"&gt;&lt;/a&gt;&lt;br&gt;
This will redirect you to AWS Policy Generator&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Select Policy Type :- S3 Bucket Policy&lt;/li&gt;
&lt;li&gt;Add Statements :- Principle - &lt;em&gt;, Actions - GetObject, ARN - paste the ARN which was copied before.
Click on **Add Statement *&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Generate Policy :- Click on Generate Policy.This will generate you the policy for the S3 bucket.
&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%2Fyjoma4posri3wkatspn4.png" alt="Image description" width="800" height="418"&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%2F65bnuk3hpnodgcwpp8u8.png" alt="Image description" width="800" height="419"&gt;
&lt;strong&gt;Example policy&lt;/strong&gt;,
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
    "Version": "2012-10-17",
    "Id": "Policy1729763909895",
    "Statement": [
        {
            "Sid": "Stmt1729763901560",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::demoreactdeploy/*"
        }
    ]
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add &lt;strong&gt;/&lt;/strong&gt;* at the end of the bucket name.&lt;br&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%2Ffdzhq9obwmm0la0bl7ui.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%2Ffdzhq9obwmm0la0bl7ui.png" alt="Image description" width="800" height="392"&gt;&lt;/a&gt;&lt;br&gt;
In the permission section click on the Bucket website endpoint.&lt;br&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%2Fjl93ucgftil91z0bnn42.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%2Fjl93ucgftil91z0bnn42.png" alt="Image description" width="800" height="402"&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%2Fep5eso5jaxd5n6pvrkt4.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%2Fep5eso5jaxd5n6pvrkt4.png" alt="Image description" width="800" height="423"&gt;&lt;/a&gt;&lt;br&gt;
Congratulations you have successfully deployed your first React static website on AWS S3. &lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
