<?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>Forem: Ega Prasetya</title>
    <description>The latest articles on Forem by Ega Prasetya (@egaprsty).</description>
    <link>https://forem.com/egaprsty</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%2F323863%2F7bb8e1c5-a9a1-4951-8e93-7f2302268892.jpeg</url>
      <title>Forem: Ega Prasetya</title>
      <link>https://forem.com/egaprsty</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/egaprsty"/>
    <language>en</language>
    <item>
      <title>Useful Cheat Sheets For Web Developers And Designers</title>
      <dc:creator>Ega Prasetya</dc:creator>
      <pubDate>Thu, 01 Oct 2020 20:47:33 +0000</pubDate>
      <link>https://forem.com/egaprsty/7-useful-cheat-sheets-for-web-developers-and-designers-2dp1</link>
      <guid>https://forem.com/egaprsty/7-useful-cheat-sheets-for-web-developers-and-designers-2dp1</guid>
      <description>&lt;h1&gt;
  
  
  Shortcuts Design
&lt;/h1&gt;

&lt;p&gt;is a small website that lists every shortcut a designer ever wants to know, all designapps in one place and in a simple and clear way.&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%2Fi%2Fy60emj98xcfqn29kiop9.JPG" 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%2Fi%2Fy60emj98xcfqn29kiop9.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://shortcuts.design/" rel="noopener noreferrer"&gt;https://shortcuts.design/&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Ultimate Flexbox Cheat Sheet
&lt;/h1&gt;

&lt;p&gt;Flexbox is a brand, spankin'new &lt;strong&gt;CSS Layout&lt;/strong&gt; module with suprisingly good browser support.&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%2Fi%2Fup0z2j3yolbfzts0315x.JPG" 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%2Fi%2Fup0z2j3yolbfzts0315x.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://sketchingwithcss.com/" rel="noopener noreferrer"&gt;https://sketchingwithcss.com/&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Web Developers SEO Cheat Sheet
&lt;/h1&gt;

&lt;p&gt;this free and downloadable document covers all of the important &lt;strong&gt;SEO Code&lt;/strong&gt; and best practices that are needed by online marketers and developers.&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%2Fi%2F204lfenzuier9ofx65m8.JPG" 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%2Fi%2F204lfenzuier9ofx65m8.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://moz.com/learn/seo/seo-cheat-sheet" rel="noopener noreferrer"&gt;https://moz.com/learn/seo/seo-cheat-sheet&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  CSS Grid Cheat Sheet
&lt;/h1&gt;

&lt;p&gt;Another helpful tool for using CSS Grid properties.&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%2Fi%2Fkcp8yuailqhx47b0jtpc.JPG" 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%2Fi%2Fkcp8yuailqhx47b0jtpc.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://alialaa.github.io/css-grid-cheat-sheet/" rel="noopener noreferrer"&gt;https://alialaa.github.io/css-grid-cheat-sheet/&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  ReactJS Cheat Sheet
&lt;/h1&gt;

&lt;p&gt;a very useful filterable cheat sheet for react made by michael chan.&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%2Fi%2Fuky7rj00c29o0fjk8z0j.JPG" 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%2Fi%2Fuky7rj00c29o0fjk8z0j.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://reactcheatsheet.com/" rel="noopener noreferrer"&gt;https://reactcheatsheet.com/&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Type Terms
&lt;/h1&gt;

&lt;p&gt;is the perfect tool for designers to learn the basics of typographic terminology.&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%2Fi%2Fi3l1cjtcgy6hrbm1pfl3.JPG" 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%2Fi%2Fi3l1cjtcgy6hrbm1pfl3.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.supremo.co.uk/typeterms/" rel="noopener noreferrer"&gt;https://www.supremo.co.uk/typeterms/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>react</category>
      <category>css</category>
      <category>design</category>
    </item>
    <item>
      <title>Tips And Tricks Write Less CSS</title>
      <dc:creator>Ega Prasetya</dc:creator>
      <pubDate>Thu, 01 Oct 2020 10:08:03 +0000</pubDate>
      <link>https://forem.com/egaprsty/tips-and-tricks-write-less-css-5c24</link>
      <guid>https://forem.com/egaprsty/tips-and-tricks-write-less-css-5c24</guid>
      <description>&lt;h1&gt;
  
  
  Background
&lt;/h1&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%2Fi%2Fqxgbwubtd5lwm65i9ae7.JPG" 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%2Fi%2Fqxgbwubtd5lwm65i9ae7.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Font
&lt;/h1&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%2Fi%2Furvzw9vgf3mpv30asva5.JPG" 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%2Fi%2Furvzw9vgf3mpv30asva5.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Border
&lt;/h1&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%2Fi%2Fgpsp229gb6rxeghv2n4n.JPG" 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%2Fi%2Fgpsp229gb6rxeghv2n4n.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Outline
&lt;/h1&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%2Fi%2F46qocwmrw3jgjgo5y685.JPG" 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%2Fi%2F46qocwmrw3jgjgo5y685.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Margin
&lt;/h1&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%2Fi%2Fo4t0eds8k8el9ut2mqiw.JPG" 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%2Fi%2Fo4t0eds8k8el9ut2mqiw.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Padding
&lt;/h1&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%2Fi%2F2o0yk61clclfibfgozty.JPG" 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%2Fi%2F2o0yk61clclfibfgozty.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;So how many do you use?&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>css</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Shorthand Javascript Techniques</title>
      <dc:creator>Ega Prasetya</dc:creator>
      <pubDate>Wed, 30 Sep 2020 10:00:57 +0000</pubDate>
      <link>https://forem.com/egaprsty/shorthand-javascript-techniques-4m3g</link>
      <guid>https://forem.com/egaprsty/shorthand-javascript-techniques-4m3g</guid>
      <description>&lt;h1&gt;
  
  
  Declaring Variables
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--htiDOlgI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/weqrz75m29edvk5d3yql.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--htiDOlgI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/weqrz75m29edvk5d3yql.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Ternary Operators
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WuFoNreP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/qu64whf2wqogy6naevoz.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WuFoNreP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/qu64whf2wqogy6naevoz.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Assignment Operators
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Y1ppqXI8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/a6o82pwfjdasmbul5400.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Y1ppqXI8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/a6o82pwfjdasmbul5400.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Switch Case
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jWrdZ283--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/4wv5o2ylvn6q9574tk76.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jWrdZ283--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/4wv5o2ylvn6q9574tk76.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  If Presence
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--b17zSEMg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/7j6g3q5qhypblz67onm9.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--b17zSEMg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/7j6g3q5qhypblz67onm9.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Arrow Functions
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--AB4AG0oY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/tjxl8sfcw9ymmc2lotxf.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--AB4AG0oY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/tjxl8sfcw9ymmc2lotxf.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Object Array Notation
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OG9_EExW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/tetyip87zx9vafmxeknc.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OG9_EExW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/tetyip87zx9vafmxeknc.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Happy Coding!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>React Component Libraries</title>
      <dc:creator>Ega Prasetya</dc:creator>
      <pubDate>Tue, 29 Sep 2020 19:47:03 +0000</pubDate>
      <link>https://forem.com/egaprsty/react-component-libraries-3oa5</link>
      <guid>https://forem.com/egaprsty/react-component-libraries-3oa5</guid>
      <description>&lt;h1&gt;
  
  
  Material UI
&lt;/h1&gt;

&lt;p&gt;React components for faster and easier web development, based on material design.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DYx92epp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/z4srasrizd1610xt284h.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DYx92epp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/z4srasrizd1610xt284h.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://material-ui.com/"&gt;https://material-ui.com/&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Ant Design
&lt;/h1&gt;

&lt;p&gt;Open source design react ui library.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YJmwPsMq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/fr1xz37ixuhb2rpeypcd.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YJmwPsMq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/fr1xz37ixuhb2rpeypcd.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ant.design/"&gt;https://ant.design/&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  React Bootstrap
&lt;/h1&gt;

&lt;p&gt;bootstrap is rebuilt for React, include Bootstrap components.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4-zmfjkH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/z15cdlhl83o6z8huibgh.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4-zmfjkH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/z15cdlhl83o6z8huibgh.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://react-bootstrap.github.io/"&gt;https://react-bootstrap.github.io/&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Blueprint JS
&lt;/h1&gt;

&lt;p&gt;React-based UI toolkit for the web.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nc_D_0lf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/wr6bnvpforkwzh2in6b4.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nc_D_0lf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/wr6bnvpforkwzh2in6b4.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://blueprintjs.com/"&gt;https://blueprintjs.com/&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Semantic UI React
&lt;/h1&gt;

&lt;p&gt;UI components based off of the Semantic UI Framework.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--o_n0Xynt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/4k5s7nusp6u2blyblc35.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--o_n0Xynt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/4k5s7nusp6u2blyblc35.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://react.semantic-ui.com/"&gt;https://react.semantic-ui.com/&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Rebass
&lt;/h1&gt;

&lt;p&gt;React primitive UI components built with styled system.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BgdwUJ6K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/vo6tfg0x07dz3p8zhnp7.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BgdwUJ6K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/vo6tfg0x07dz3p8zhnp7.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://rebassjs.org/"&gt;https://rebassjs.org/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So, which one you use?&lt;/p&gt;

</description>
      <category>react</category>
      <category>javascript</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Top React Static Site Generators</title>
      <dc:creator>Ega Prasetya</dc:creator>
      <pubDate>Tue, 29 Sep 2020 10:28:31 +0000</pubDate>
      <link>https://forem.com/egaprsty/top-react-static-site-generators-44fe</link>
      <guid>https://forem.com/egaprsty/top-react-static-site-generators-44fe</guid>
      <description>&lt;p&gt;Because they are faster and flexible, static site generators are becoming increasingly popular. Have a look at some amazing &lt;strong&gt;React Static Site Generators&lt;/strong&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  Gatsby
&lt;/h1&gt;

&lt;p&gt;is one of the most popular static site generators for React. It is a free and open source framework that helps developers build blazing-fast websites and apps.&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%2Fi%2Fks9twol2igxs3i9xegx8.JPG" 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%2Fi%2Fks9twol2igxs3i9xegx8.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.gatsbyjs.com/" rel="noopener noreferrer"&gt;https://www.gatsbyjs.com/&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Next JS
&lt;/h1&gt;

&lt;p&gt;if you want a static site generator for you next React Project, next.js is definitely worth a look. &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%2Fi%2F7cvpzrgetpobdncpnm0r.JPG" 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%2Fi%2F7cvpzrgetpobdncpnm0r.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://nextjs.org/" rel="noopener noreferrer"&gt;https://nextjs.org/&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Jekyll With React
&lt;/h1&gt;

&lt;p&gt;is another great static site generator for React which is built on top of Ruby.&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%2Fi%2Ffe0dxn84unebe7076ju6.JPG" 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%2Fi%2Ffe0dxn84unebe7076ju6.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://jekyllrb.com/" rel="noopener noreferrer"&gt;https://jekyllrb.com/&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  React Static
&lt;/h1&gt;

&lt;p&gt;is a progressive static site generator based on React and its ecosystem. Because it is powerful, lightweight, and fast, it will be a great option for your next React app.&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%2Fi%2Fqva2ktgh0zvg3nrba48u.JPG" 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%2Fi%2Fqva2ktgh0zvg3nrba48u.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.staticgen.com/react-static" rel="noopener noreferrer"&gt;https://www.staticgen.com/react-static&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  UmiJS
&lt;/h1&gt;

&lt;p&gt;is a scalable enterprise-class React Framework that provides out-of-the-box tools and plugins to aid the rapid development of scalable 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%2Fi%2F29t4j253p2wfgxxdi5zu.JPG" 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%2Fi%2F29t4j253p2wfgxxdi5zu.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://umijs.org/" rel="noopener noreferrer"&gt;https://umijs.org/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So, which one you use?&lt;/p&gt;

</description>
      <category>react</category>
      <category>javascript</category>
      <category>webdev</category>
    </item>
    <item>
      <title>7 Javascript Tips and Tricks</title>
      <dc:creator>Ega Prasetya</dc:creator>
      <pubDate>Sat, 26 Sep 2020 09:27:16 +0000</pubDate>
      <link>https://forem.com/egaprsty/7-javascript-tips-and-tricks-3d2o</link>
      <guid>https://forem.com/egaprsty/7-javascript-tips-and-tricks-3d2o</guid>
      <description>&lt;h1&gt;
  
  
  Filter Unique Values
&lt;/h1&gt;

&lt;p&gt;The &lt;strong&gt;Set&lt;/strong&gt; object type was introduced in ES6, and along with (...), the &lt;strong&gt;spread operator&lt;/strong&gt;, we can use it to create a new array with only the unique values.&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%2Fi%2Fcfki7p7uw7xz5nc1ozjs.JPG" 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%2Fi%2Fcfki7p7uw7xz5nc1ozjs.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Every and Some
&lt;/h1&gt;

&lt;p&gt;The &lt;strong&gt;every&lt;/strong&gt; function returns a boolean. If all elements in the array pass the test, true will be returned. The some function tests whether at least one element in the array passes the test implemented.&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%2Fi%2F6yfmu2rc3u3xblgd71l2.JPG" 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%2Fi%2F6yfmu2rc3u3xblgd71l2.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Convert to Boolean
&lt;/h1&gt;

&lt;p&gt;Besides the regular &lt;strong&gt;boolean&lt;/strong&gt; values true and false, Javascript also treats all other values as either 'truthy' or 'falsy'.&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%2Fi%2F5j89f1m4ci9gqbcxx358.JPG" 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%2Fi%2F5j89f1m4ci9gqbcxx358.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Convert to String
&lt;/h1&gt;

&lt;p&gt;The quickly convert a number to a string, we can use the concatenation operator + followed by an empty set of quatation marks.&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%2Fi%2Fq57im26ojnc56fxj9if5.JPG" 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%2Fi%2Fq57im26ojnc56fxj9if5.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Convert to Number
&lt;/h1&gt;

&lt;p&gt;The opposite can be quickly achieved using the &lt;strong&gt;addition operator +&lt;/strong&gt;&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%2Fi%2Fpc7sj3xvly6ckrfcgpuk.JPG" 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%2Fi%2Fpc7sj3xvly6ckrfcgpuk.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Quick Float to Integer
&lt;/h1&gt;

&lt;p&gt;if you want to convert a float to an integer, you can use &lt;strong&gt;Math.floor(), Math.ceil(), or Math.round()&lt;/strong&gt;. But there is also faster way to truncate a float to an integer using &lt;strong&gt;|&lt;/strong&gt;, the bitwise OR operator.&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%2Fi%2Fquzg0fc1wahu4sllwb6r.JPG" 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%2Fi%2Fquzg0fc1wahu4sllwb6r.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Format JSON Code
&lt;/h1&gt;

&lt;p&gt;the &lt;strong&gt;stringify()&lt;/strong&gt; method takes two optional parameters: a replacer function, which you can use to filter the JSON that is displayed, and a space value.&lt;br&gt;
The space value takes an interger for the number of spaces you want or a string (such as '\t' to insert tabs), and it can make it a lot easier to read fetched JSON data.&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%2Fi%2F1d33q6e7iiqfv08rzwc2.JPG" 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%2Fi%2F1d33q6e7iiqfv08rzwc2.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Happy Coding!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Build Instagram Clone with MERN Stack Free Source Code</title>
      <dc:creator>Ega Prasetya</dc:creator>
      <pubDate>Fri, 25 Sep 2020 18:12:22 +0000</pubDate>
      <link>https://forem.com/egaprsty/build-instagram-clone-with-mern-stack-free-source-code-4484</link>
      <guid>https://forem.com/egaprsty/build-instagram-clone-with-mern-stack-free-source-code-4484</guid>
      <description>&lt;p&gt;This is full source code how to build instagram clone with MERN Stack, just to download or clone on my github.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/lheartz/lheartz-insta"&gt;https://github.com/lheartz/lheartz-insta&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Happy Coding!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>mern</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Fullstack Javascript Ebook Free</title>
      <dc:creator>Ega Prasetya</dc:creator>
      <pubDate>Fri, 25 Sep 2020 10:28:08 +0000</pubDate>
      <link>https://forem.com/egaprsty/fullstack-javascript-ebook-free-2mg9</link>
      <guid>https://forem.com/egaprsty/fullstack-javascript-ebook-free-2mg9</guid>
      <description>&lt;p&gt;So i have fullstack Javascript Ebook free for you, just to download or clone on my github. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/lheartz/FullstackJs-Ebook"&gt;https://github.com/lheartz/FullstackJs-Ebook&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Happy Coding!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>fullstack</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Realtime Chat App - Golang</title>
      <dc:creator>Ega Prasetya</dc:creator>
      <pubDate>Wed, 23 Sep 2020 21:06:50 +0000</pubDate>
      <link>https://forem.com/egaprsty/realtime-chat-app-golang-5498</link>
      <guid>https://forem.com/egaprsty/realtime-chat-app-golang-5498</guid>
      <description>&lt;p&gt;So in this chapter, we will to learn how to create chat app with Gorilla web socket, u should to download library with &lt;strong&gt;go get -u github.com/gorilla/websocket&lt;/strong&gt;. So let`s do it.&lt;/p&gt;

&lt;h1&gt;
  
  
  BACKEND
&lt;/h1&gt;

&lt;p&gt;Create file main.go, we will to create Socket Server first.&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%2Fi%2Fmjf7urybfik4dxnx5cru.JPG" 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%2Fi%2Fmjf7urybfik4dxnx5cru.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next create 3 struct like this.&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%2Fi%2Flry588luasek8wcei9vw.JPG" 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%2Fi%2Flry588luasek8wcei9vw.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next, create function main() its contents display template view &lt;strong&gt;index.html&lt;/strong&gt;.&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%2Fi%2F3bv2hrk7wx2ho8b1g12k.JPG" 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%2Fi%2F3bv2hrk7wx2ho8b1g12k.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next, create function handleIO()&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%2Fi%2Fbfc1xfixmmnonwlkm4xk.JPG" 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%2Fi%2Fbfc1xfixmmnonwlkm4xk.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Last, create function ejectConnection() &amp;amp; broadcastMessage().&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%2Fi%2F8jg4uvhr5kobizokr7sx.JPG" 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%2Fi%2F8jg4uvhr5kobizokr7sx.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  FRONTEND
&lt;/h1&gt;

&lt;p&gt;Create file index.html and follow this code&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%2Fi%2Flg9xtu6yjohvyuzwxqi8.JPG" 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%2Fi%2Flg9xtu6yjohvyuzwxqi8.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next, we also to add style 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%2Fi%2Famkjggn2tdo7wn3fyov6.JPG" 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%2Fi%2Famkjggn2tdo7wn3fyov6.JPG" alt="Alt Text"&gt;&lt;/a&gt;&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%2Fi%2Famkjggn2tdo7wn3fyov6.JPG" 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%2Fi%2Famkjggn2tdo7wn3fyov6.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And then last add also javascript.&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%2Fi%2Fnr70mw78ksc1l9qbjfzd.JPG" 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%2Fi%2Fnr70mw78ksc1l9qbjfzd.JPG" alt="Alt Text"&gt;&lt;/a&gt;&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%2Fi%2Fwagfw33bkkwcl6mzy3xj.JPG" 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%2Fi%2Fwagfw33bkkwcl6mzy3xj.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  TESTING
&lt;/h1&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%2Fi%2Fsr3dyxgeayt2ll3pqrcw.JPG" 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%2Fi%2Fsr3dyxgeayt2ll3pqrcw.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/lheartz/ChatAppGolang" rel="noopener noreferrer"&gt;Full Source Code in here&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>go</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Echo Go - Middleware </title>
      <dc:creator>Ega Prasetya</dc:creator>
      <pubDate>Thu, 17 Sep 2020 17:39:06 +0000</pubDate>
      <link>https://forem.com/egaprsty/echo-go-middleware-5h4e</link>
      <guid>https://forem.com/egaprsty/echo-go-middleware-5h4e</guid>
      <description>&lt;p&gt;Middleware is a block code when we call it before or after http request in proccess. Middleware usually made per functions, example: Middleware authentication, logging, and gzip compression, etc.&lt;/p&gt;

&lt;h1&gt;
  
  
  Custom Middleware
&lt;/h1&gt;

&lt;p&gt;Middleware making in go is very simple, just used method .Use() belong object echo for middleware registrations.&lt;/p&gt;

&lt;p&gt;Ok so create new folder project main.go, and follow this code&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%2Fi%2F4d96bkzjk0liopzpcnfa.JPG" 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%2Fi%2F4d96bkzjk0liopzpcnfa.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next, create two middleware, middlewareOne &amp;amp; middlewareTwo, it displays log.&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%2Fi%2Fetpsmtx00fgp406qx598.JPG" 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%2Fi%2Fetpsmtx00fgp406qx598.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Registration two middlewares in above, this is example code.&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%2Fi%2Femyqmq6ez3pj5dq9lnuy.JPG" 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%2Fi%2Femyqmq6ez3pj5dq9lnuy.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Testing&lt;/em&gt;&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%2Fi%2Fzz55z8yrkpj65djscd7a.JPG" 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%2Fi%2Fzz55z8yrkpj65djscd7a.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Finally! Grats.&lt;/p&gt;

</description>
      <category>go</category>
      <category>google</category>
      <category>backend</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Echo Go - Template Rendering</title>
      <dc:creator>Ega Prasetya</dc:creator>
      <pubDate>Sun, 13 Sep 2020 01:41:44 +0000</pubDate>
      <link>https://forem.com/egaprsty/echo-go-template-rendering-509l</link>
      <guid>https://forem.com/egaprsty/echo-go-template-rendering-509l</guid>
      <description>&lt;p&gt;Essentially parsing and rendering template proccess is not to handle with echo but handle with API from package html/template. So way render template in echo is same like a real applications used go.&lt;/p&gt;

&lt;h1&gt;
  
  
  PRACTICE
&lt;/h1&gt;

&lt;p&gt;Ok so to make it easier to understand go to practice right now and create file main.go on your text editor.&lt;/p&gt;

&lt;p&gt;First step, we need import package html/template, io, and echo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BbMgYWAA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/64k70ks94qzqaifksaer.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BbMgYWAA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/64k70ks94qzqaifksaer.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Create struct Renderer, this struct have a 3 property and 2 method.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hp6nl4KD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/vu05ytplnayme01ln1fb.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hp6nl4KD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/vu05ytplnayme01ln1fb.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here`s the assignment and explanation of the third property above.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Property .template accountable for parsing and rendering template.&lt;/li&gt;
&lt;li&gt;Property .location direct to path folder when file template stand.&lt;/li&gt;
&lt;li&gt;Property .debug relocate type a bool.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Next, create function NewRenderer() for easier inisialitation objek renderer.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mMqPEVuF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/mwqhtnezear1arr13lni.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mMqPEVuF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/mwqhtnezear1arr13lni.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Create 2 method for struct Renderer is .ReloadTemplates() and .Render()&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7ybNeouE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/dj6kbznee8xi6qifro26.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7ybNeouE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/dj6kbznee8xi6qifro26.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next, create echo router, override property and create a route.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8RNR7wnX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/h8kg1b4p5f3s4vuh3w8w.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8RNR7wnX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/h8kg1b4p5f3s4vuh3w8w.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When we call newRenderer() used ./*.html to lead for all html file in current folder. Create index.html&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--u2i5RXvZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/hogke14d9t89orwpfyg8.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--u2i5RXvZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/hogke14d9t89orwpfyg8.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Testing
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dSlviaC4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/icclaeg8y830sptm9i9g.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dSlviaC4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/icclaeg8y830sptm9i9g.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Finally! Try at home.&lt;/p&gt;

</description>
      <category>go</category>
      <category>echo</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Echo Go - Parsing HTTP Request Payload</title>
      <dc:creator>Ega Prasetya</dc:creator>
      <pubDate>Fri, 11 Sep 2020 20:36:14 +0000</pubDate>
      <link>https://forem.com/egaprsty/echo-go-parsing-http-request-payload-260g</link>
      <guid>https://forem.com/egaprsty/echo-go-parsing-http-request-payload-260g</guid>
      <description>&lt;p&gt;So in this chapter we will to learn how to parsing variation request payload in echo go, so let`s do it.&lt;/p&gt;

&lt;p&gt;In payload HTTP Request can to send various forms. We will to learn how to handle 3 this payload.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Form Data&lt;/li&gt;
&lt;li&gt;JSON Payload&lt;/li&gt;
&lt;li&gt;XML Payload&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Parsing Request Payload
&lt;/h1&gt;

&lt;p&gt;Way parsing request payload in echo is very simple, whatever the type of payload, API used for parsing is same.&lt;/p&gt;

&lt;p&gt;So create main.go and follow this code.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_Zx71Awb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/hkdh5a339tgf5cqq6ils.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_Zx71Awb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/hkdh5a339tgf5cqq6ils.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  TESTING
&lt;/h1&gt;

&lt;p&gt;i use POSTMAN for the testing, u can use CURL or anything.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Form Data&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--G03Kz7pj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/578j0xr5piflh1e1esuo.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--G03Kz7pj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/578j0xr5piflh1e1esuo.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;JSON Payload &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--G03Kz7pj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/578j0xr5piflh1e1esuo.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--G03Kz7pj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/578j0xr5piflh1e1esuo.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;XML Payload&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dwTwO8rZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/lcyndy2qdqe7yponl3fy.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dwTwO8rZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/lcyndy2qdqe7yponl3fy.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Finally! Try at home.&lt;/p&gt;

</description>
      <category>go</category>
      <category>echo</category>
      <category>backend</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
