<?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: Sett Yan Naung</title>
    <description>The latest articles on DEV Community by Sett Yan Naung (@settyannaung).</description>
    <link>https://dev.to/settyannaung</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%2F928571%2F45f6f74b-1afe-4282-bd2e-98c726ed71ab.jpg</url>
      <title>DEV Community: Sett Yan Naung</title>
      <link>https://dev.to/settyannaung</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/settyannaung"/>
    <language>en</language>
    <item>
      <title>I cloned dev.to with react, firebase, chakraui and more...</title>
      <dc:creator>Sett Yan Naung</dc:creator>
      <pubDate>Thu, 02 Mar 2023 17:38:35 +0000</pubDate>
      <link>https://dev.to/settyannaung/i-cloned-devto-with-react-firebase-chakraui-and-more-h1o</link>
      <guid>https://dev.to/settyannaung/i-cloned-devto-with-react-firebase-chakraui-and-more-h1o</guid>
      <description>&lt;p&gt;&lt;a href="https://dev-community-clone.vercel.app/"&gt;click to preview&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/zwelhtetyan/dev-community"&gt;repo here&lt;/a&gt; &lt;code&gt;You could drop a star on my repo if you love it.&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I get an idea to clone dev.to 🤔
&lt;/h3&gt;

&lt;p&gt;At first, I intended to make a &lt;strong&gt;simple comment section&lt;/strong&gt; to practice &lt;strong&gt;&lt;a href="https://reactjs.org/"&gt;react&lt;/a&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;a href="https://firebase.google.com/"&gt;firebase&lt;/a&gt;&lt;/strong&gt;. But while searching some inspirations on google, I found dev.to and I decided to clone it. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Although I used &lt;a href="https://styled-components.com/"&gt;styled components&lt;/a&gt; for styling , I was too lazy to make some styles on my own , so I switched to &lt;a href="https://chakra-ui.com/"&gt;ChakraUI&lt;/a&gt; (A React UI component library).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;code&gt;NOTE: Sorry for using the official logo and copying the random posts on dev.to&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Features:
&lt;/h3&gt;

&lt;h3&gt;
  
  
  1. CRUD 🫠
&lt;/h3&gt;

&lt;p&gt;Users can &lt;strong&gt;create&lt;/strong&gt;, &lt;strong&gt;read&lt;/strong&gt;, &lt;strong&gt;update&lt;/strong&gt; and &lt;strong&gt;delete&lt;/strong&gt; an article.&lt;/p&gt;

&lt;p&gt;Even though all users can read all articles , only authenticated users can &lt;strong&gt;create&lt;/strong&gt;, &lt;strong&gt;update&lt;/strong&gt; and &lt;strong&gt;delete&lt;/strong&gt; article.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I prepared some tags with it's logo. So when you try to add tag in the editor it will show you tag suggesstions. The tag that I haven't prepared will start with &lt;code&gt;#&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

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

&lt;p&gt;I used &lt;a href="https://www.npmjs.com/package/react-mde"&gt;reactMDE&lt;/a&gt; for markdown editor. And I customized it's default style and added 2 custom commands.&lt;/p&gt;

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

&lt;p&gt;The first one inside red border is used for adding &lt;code&gt;code block&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;By defaut, image command takes &lt;code&gt;photo url&lt;/code&gt; but I replace my second custom command inside red border to &lt;code&gt;upload local image&lt;/code&gt;. So if you want to add &lt;code&gt;photo url&lt;/code&gt;, you can cancel popup or using the syntax below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;![img_description](image_url)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Saved all contents in localStorage when creating or editing article. So, Your contents will not be lost even if you reload the page.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  2. Social authentication 🔒
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;You can login with 4 options (&lt;em&gt;github&lt;/em&gt;, &lt;em&gt;twitter&lt;/em&gt;, &lt;em&gt;google&lt;/em&gt; and &lt;em&gt;facebook&lt;/em&gt;)&lt;/p&gt;
&lt;/blockquote&gt;

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

&lt;blockquote&gt;
&lt;p&gt;Your username will be auto generated after login but you can change it in customize profile page.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  3. Giving reactions to articles ❤️‍🔥
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;(&lt;em&gt;heart&lt;/em&gt;, &lt;em&gt;unicorn&lt;/em&gt;, &lt;em&gt;save&lt;/em&gt; and &lt;em&gt;social share buttons&lt;/em&gt;)&lt;/p&gt;
&lt;/blockquote&gt;

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

&lt;p&gt;All users can share the article but only authenticated users can react to the article by giving heart and unicorn. They can also save the article.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. User profile 👻
&lt;/h3&gt;

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

&lt;h3&gt;
  
  
  5. Customize profile 🫣
&lt;/h3&gt;

&lt;p&gt;Customizing a personal profile with your data, website, social links and brand color.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  6. Dashboard 🫠
&lt;/h3&gt;

&lt;p&gt;You can manage your posts, drafts, following tags, followers and following users.&lt;/p&gt;

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

&lt;blockquote&gt;
&lt;p&gt;You can also pin the posts to your profile 📌&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  7. Top tags 🏷
&lt;/h3&gt;

&lt;p&gt;It will display most used tags in every article and limit is 30 tags.&lt;/p&gt;

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

&lt;blockquote&gt;
&lt;p&gt;You can filter posts by tag or search by keyword.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You can also follow the tags and It will show the article related with the tags that you follow in the home page.&lt;/p&gt;

&lt;h3&gt;
  
  
  8. Comments and nested replies 💬
&lt;/h3&gt;

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

&lt;blockquote&gt;
&lt;p&gt;You can add comments and also reply to other comments.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  9. Edit comment
&lt;/h3&gt;

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

&lt;h3&gt;
  
  
  10. Delete Comment
&lt;/h3&gt;

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

&lt;h3&gt;
  
  
  11. Reading List 📚
&lt;/h3&gt;

&lt;p&gt;It will show your saved posts and archives.&lt;/p&gt;

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

&lt;blockquote&gt;
&lt;p&gt;You can filter your saved posts with specific tag or search by keyword.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  12. Apperance 🎨
&lt;/h3&gt;

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

&lt;blockquote&gt;
&lt;p&gt;You can change light and dark mode &lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Tech Stacks:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://reactjs.org/"&gt;React&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://chakra-ui.com/"&gt;Chakra UI&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://redux-toolkit.js.org/"&gt;Redux toolkit&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://firebase.google.com/"&gt;Firebase&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://reactrouter.com/en/main"&gt;React router&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.npmjs.com/package/react-mde"&gt;React MDE&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;I would love to hear your feedbacks and suggestions&lt;/em&gt; 🫡&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Feel free to test it out 🤗&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Thanks for your time 🤩&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Happy Coding&lt;/strong&gt; 👩‍💻👨‍💻&lt;/p&gt;

</description>
      <category>react</category>
      <category>firebase</category>
      <category>redux</category>
      <category>chakraui</category>
    </item>
    <item>
      <title>test</title>
      <dc:creator>Sett Yan Naung</dc:creator>
      <pubDate>Thu, 22 Sep 2022 16:34:57 +0000</pubDate>
      <link>https://dev.to/settyannaung/test-584d</link>
      <guid>https://dev.to/settyannaung/test-584d</guid>
      <description>&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;         modifiedComments = comments.map((comment) =&amp;gt;
            comment.commentId === commentId ||
            Object.values(comment.replies).find(
               (cmt) =&amp;gt; cmt.commentId === commentId
            )
               ? {
                    ...comment,
                    replies: {
                       ...comment.replies,
                       [nanoid()]: {
                          ...newComment,
                          repliedUserId,
                          repliedCommentId: commentId,
                       },
                    },
                 }
               : comment
         );
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;del&gt;fdhdsgfhfgdh&lt;/del&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;hgjfgjfgj&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://dev.tofdsfdf"&gt;sdfad&lt;/a&gt;&lt;/p&gt;

</description>
      <category>zwel</category>
    </item>
    <item>
      <title>I am testing.</title>
      <dc:creator>Sett Yan Naung</dc:creator>
      <pubDate>Mon, 19 Sep 2022 08:53:59 +0000</pubDate>
      <link>https://dev.to/settyannaung/i-am-testing-3bh7</link>
      <guid>https://dev.to/settyannaung/i-am-testing-3bh7</guid>
      <description>&lt;p&gt;testing...&lt;/p&gt;

</description>
      <category>zw</category>
      <category>htet</category>
      <category>yan</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
