<?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: Jacob Baker</title>
    <description>The latest articles on DEV Community by Jacob Baker (@thatonejakeb).</description>
    <link>https://dev.to/thatonejakeb</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%2F288498%2F59daac54-8ce8-4842-913a-7efa81d3cc93.jpg</url>
      <title>DEV Community: Jacob Baker</title>
      <link>https://dev.to/thatonejakeb</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/thatonejakeb"/>
    <language>en</language>
    <item>
      <title>What tech did you use to build your personal website/portfolio? 2020 Edition!</title>
      <dc:creator>Jacob Baker</dc:creator>
      <pubDate>Thu, 17 Dec 2020 10:26:03 +0000</pubDate>
      <link>https://dev.to/thatonejakeb/what-tech-did-you-use-to-build-your-personal-website-portfolio-2020-edition-eca</link>
      <guid>https://dev.to/thatonejakeb/what-tech-did-you-use-to-build-your-personal-website-portfolio-2020-edition-eca</guid>
      <description>&lt;p&gt;Exactly one year ago I asked the dev community what tech they used to build their personal website/portfolio and later compiled the answers.&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/thatonejakeb" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F288498%2F59daac54-8ce8-4842-913a-7efa81d3cc93.jpg" alt="thatonejakeb"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/thatonejakeb/dev-to-community-s-top-tech-to-build-a-website-portfolio-1e4a" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;dev.to community’s top tech to build a website/portfolio&lt;/h2&gt;
      &lt;h3&gt;Jacob Baker ・ Mar 1 '20&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#discuss&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#career&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#showdev&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;p&gt;So to carry on the tradition (tradition!): &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What tech did you use to build your personal website/portfolio?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Bonus question if you answered last year: has it changed?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Feel free to shamelessly plug your website/portfolio if you answer!&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>webdev</category>
      <category>career</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Typescript, React, Redux, Thunk, and Material-ui template -- now with less boilerplate!</title>
      <dc:creator>Jacob Baker</dc:creator>
      <pubDate>Mon, 16 Mar 2020 18:13:24 +0000</pubDate>
      <link>https://dev.to/thatonejakeb/typescript-react-redux-thunk-and-material-ui-template-now-with-less-boilerplate-1hjk</link>
      <guid>https://dev.to/thatonejakeb/typescript-react-redux-thunk-and-material-ui-template-now-with-less-boilerplate-1hjk</guid>
      <description>&lt;p&gt;&lt;strong&gt;tldr&lt;/strong&gt; &lt;em&gt;: I've forked the official Redux Typescript create react app template, switched it to use functional components and added &lt;a href="https://material-ui.com/"&gt;Material-UI&lt;/a&gt; support. Source code is &lt;a href="https://github.com/jacobbaker/cra-template-redux-typescript-mui"&gt;here&lt;/a&gt;, follow me on &lt;a href="https://twitter.com/thatonejakeb"&gt;Twitter&lt;/a&gt; for updates and nonsense, stay safe and &lt;a href="https://www.youtube.com/watch?v=dDHJW4r3elE&amp;amp;vl=en"&gt;wash your hands&lt;/a&gt; ❤️&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;Last week I wrote about the updated version of my Typescript, React, Redux, Thunk, and Material-UI skeleton app.&lt;/p&gt;

&lt;p&gt;Well, as is the case with most tech &lt;em&gt;stuff&lt;/em&gt;, it has been superseded by a new and improved version!&lt;/p&gt;

&lt;p&gt;In the comments of the previous post I was kindly pointed towards the official &lt;a href="https://github.com/reduxjs/cra-template-redux-typescript"&gt;Redux+Typescript CRA template&lt;/a&gt; by a maintainer which, amongst other things, uses Redux Toolkit to reduce the amount of boilerplate needed.&lt;/p&gt;

&lt;p&gt;Just as a brief example of just how much is cut out, in the original skeleton you have the following breakdown of files for each feature:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;actions.ts&lt;/li&gt;
&lt;li&gt;types.ts&lt;/li&gt;
&lt;li&gt;reducer.ts&lt;/li&gt;
&lt;li&gt;thunk.ts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Whereas using Redux Toolkit you end up with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;slice.ts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Equally nice is there is no more need for &lt;code&gt;connect&lt;/code&gt; or &lt;code&gt;mapStateToProps&lt;/code&gt; and the confusion they bring.&lt;/p&gt;

&lt;p&gt;So, for a concrete example, here's how I had the counter implemented without Redux Toolkit:&lt;/p&gt;

&lt;h4&gt;
  
  
  types.ts
&lt;/h4&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kr"&gt;interface&lt;/span&gt; &lt;span class="nx"&gt;ExampleState&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;isFetching&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;boolean&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;count&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;number&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;?:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;message&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;string&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;FETCH_EXAMPLE_REQUEST&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;example/FETCH_EXAMPLE_REQUEST&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;FETCH_EXAMPLE_SUCCESS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;example/FETCH_EXAMPLE_SUCCESS&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;FETCH_EXAMPLE_FAILURE&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;example/FETCH_EXAMPLE_FAILURE&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kr"&gt;interface&lt;/span&gt; &lt;span class="nx"&gt;FetchExampleRequestAction&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="k"&gt;typeof&lt;/span&gt; &lt;span class="nx"&gt;FETCH_EXAMPLE_REQUEST&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;payload&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nl"&gt;isFetching&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;boolean&lt;/span&gt;
        &lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="nl"&gt;message&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;string&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kr"&gt;interface&lt;/span&gt; &lt;span class="nx"&gt;FetchExampleSuccessAction&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="k"&gt;typeof&lt;/span&gt; &lt;span class="nx"&gt;FETCH_EXAMPLE_SUCCESS&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;payload&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nl"&gt;isFetching&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;boolean&lt;/span&gt;
        &lt;span class="nx"&gt;count&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;number&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kr"&gt;interface&lt;/span&gt; &lt;span class="nx"&gt;FetchExampleFailureAction&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="k"&gt;typeof&lt;/span&gt; &lt;span class="nx"&gt;FETCH_EXAMPLE_FAILURE&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;payload&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nl"&gt;isFetching&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;boolean&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="nl"&gt;message&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;string&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="nx"&gt;type&lt;/span&gt; &lt;span class="nx"&gt;ExampleActionTypes&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;FetchExampleRequestAction&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="nx"&gt;FetchExampleSuccessAction&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="nx"&gt;FetchExampleFailureAction&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h4&gt;
  
  
  action.ts
&lt;/h4&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;FETCH_EXAMPLE_REQUEST&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;FETCH_EXAMPLE_SUCCESS&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;FETCH_EXAMPLE_FAILURE&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;./types&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;fetchExampleRequest&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;FETCH_EXAMPLE_REQUEST&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;payload&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="na"&gt;isFetching&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="na"&gt;error&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;undefined&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;fetchExampleSuccess&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;count&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;number&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;FETCH_EXAMPLE_SUCCESS&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;payload&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="na"&gt;isFetching&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="nx"&gt;count&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;fetchExampleFailure&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;string&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;FETCH_EXAMPLE_FAILURE&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;payload&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="na"&gt;isFetching&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="na"&gt;error&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="nx"&gt;message&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h4&gt;
  
  
  reducer.ts
&lt;/h4&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;ExampleState&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;FETCH_EXAMPLE_REQUEST&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;FETCH_EXAMPLE_SUCCESS&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;FETCH_EXAMPLE_FAILURE&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;ExampleActionTypes&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;./types&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;initialState&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;ExampleState&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;isFetching&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;count&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;error&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;undefined&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;exampleReducer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="nx"&gt;state&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;initialState&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;action&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;ExampleActionTypes&lt;/span&gt;
&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="nx"&gt;ExampleState&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;switch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;action&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;type&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="nx"&gt;FETCH_EXAMPLE_REQUEST&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="nx"&gt;state&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="na"&gt;isFetching&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;action&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;payload&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;isFetching&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="na"&gt;error&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;action&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;payload&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;
            &lt;span class="p"&gt;};&lt;/span&gt;
        &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="nx"&gt;FETCH_EXAMPLE_SUCCESS&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="nx"&gt;state&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="na"&gt;isFetching&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;action&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;payload&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;isFetching&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="na"&gt;count&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;action&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;payload&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;count&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="nx"&gt;FETCH_EXAMPLE_FAILURE&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="nx"&gt;state&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="na"&gt;isFetching&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;action&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;payload&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;isFetching&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="na"&gt;error&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;action&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;payload&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="nl"&gt;default&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;state&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h4&gt;
  
  
  thunk.ts
&lt;/h4&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;Action&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;redux&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;ThunkAction&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;redux-thunk&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;fetchExampleRequest&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;fetchExampleSuccess&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;fetchExampleFailure&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;./actions&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;AppState&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;../&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;fetchExample&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="nx"&gt;count&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;number&lt;/span&gt;
&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="nx"&gt;ThunkAction&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;void&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;AppState&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Action&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;string&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="nx"&gt;dispatch&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;dispatch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;fetchExampleRequest&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;

  &lt;span class="nx"&gt;setTimeout&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;randomErrorNum&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;floor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;random&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nx"&gt;count&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;randomErrorNum&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="nx"&gt;count&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nx"&gt;dispatch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;fetchExampleFailure&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Unable to increment count.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nx"&gt;dispatch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;fetchExampleSuccess&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;count&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

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



&lt;p&gt;Which I might add is an incredibly small, novel, feature and that level of boilerplate is needed for each feature added. It can get quite irritating.&lt;/p&gt;

&lt;p&gt;Now on to the new implementation that takes advantage of &lt;a href="https://reactjs.org/docs/hooks-state.html"&gt;Redux Toolkit&lt;/a&gt;. &lt;/p&gt;

&lt;h4&gt;
  
  
  slice.ts
&lt;/h4&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;createSlice&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;PayloadAction&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@reduxjs/toolkit&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;AppThunk&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;RootState&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;../../app/store&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kr"&gt;interface&lt;/span&gt; &lt;span class="nx"&gt;CounterState&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;value&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;number&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;initialState&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;CounterState&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;value&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;slice&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;createSlice&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;counter&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;initialState&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;reducers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;increment&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;state&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nx"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;increment&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;incrementAsync&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;slice&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;actions&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;incrementAsync&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;():&lt;/span&gt; &lt;span class="nx"&gt;AppThunk&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;dispatch&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;setTimeout&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;dispatch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;increment&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;selectCount&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;state&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;RootState&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;counter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nx"&gt;slice&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;reducer&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

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



&lt;p&gt;And that's it for definitions! &lt;/p&gt;

&lt;p&gt;You would be right in asking where the &lt;code&gt;isFetching&lt;/code&gt; part went. In this example I've replaced it with a &lt;a href="https://reactjs.org/docs/hooks-state.html"&gt;State Hook&lt;/a&gt; in the component:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;isWorking&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;setIsWorking&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;useState&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// [.. snip...]&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;doAsyncIncrement&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;setIsWorking&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nx"&gt;dispatch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;incrementAsync&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;Number&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;incrementAmount&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)));&lt;/span&gt;

  &lt;span class="nx"&gt;setTimeout&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;setIsWorking&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="c1"&gt;// [... snip...]&lt;/span&gt;

&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Button&lt;/span&gt; 
  &lt;span class="nx"&gt;className&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;classes&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;button&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="nx"&gt;onClick&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;
    &lt;span class="nx"&gt;doAsyncIncrement&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nx"&gt;Increment&lt;/span&gt;
&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/Button&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;It such a nice way of working that I've forked the CRA Redux Template and ported my original skeleton app. I've added Material-UI support and switched it to use functional components.&lt;/p&gt;

&lt;p&gt;You can find the source here:&lt;/p&gt;

&lt;p&gt;Github: &lt;a href="https://github.com/jacobbaker/cra-template-redux-typescript-mui"&gt;https://github.com/jacobbaker/cra-template-redux-typescript-mui&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Or start a new project using it with:&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npx create-react-app my-app --template redux-typescript-mui&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;Let me know if you've any comments or questions here or &lt;a href="https://twitter.com/thatonejakeb"&gt;@thatonejakeb&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>showdev</category>
      <category>react</category>
      <category>typescript</category>
    </item>
    <item>
      <title>Loneliness in tech</title>
      <dc:creator>Jacob Baker</dc:creator>
      <pubDate>Mon, 16 Mar 2020 11:05:51 +0000</pubDate>
      <link>https://dev.to/thatonejakeb/loneliness-in-tech-4dng</link>
      <guid>https://dev.to/thatonejakeb/loneliness-in-tech-4dng</guid>
      <description>&lt;p&gt;I'll preface this with a quick bit about me: I've been a remote worker for just over 5 years now, typically I'll try to go to the office once a week. This is certainly something I have had to deal with.&lt;/p&gt;

&lt;p&gt;With recent world events looking to increase the number of people working from home, particularly with the added difficulty of lockdowns reducing opportunities for social interaction, this is a topic worth discussing.&lt;/p&gt;

&lt;p&gt;I'll list a couple of things I've done over the years to help with loneliness, but I'm really interested in hearing what tips and advice the community has to offer.&lt;/p&gt;

&lt;h4&gt;
  
  
  Join online communities
&lt;/h4&gt;

&lt;p&gt;I mean actively; not passively lurking. Be it Twitter, Reddit, dev.to, Slack, Discord, or anywhere. Start the conversation or join in. You're here, reading this! Drop something in the comments.&lt;/p&gt;

&lt;h4&gt;
  
  
  Get some fresh air
&lt;/h4&gt;

&lt;p&gt;I appreciate the irony in this. Usually my advice would be to seek out places you could work outside of a home office occasionally, e.g. co-working space or coffee shop; however, this becomes &lt;em&gt;much&lt;/em&gt; more difficult where everything but essential travel is restricted. &lt;/p&gt;

&lt;p&gt;Even if you have a garden space, no matter how small, it can help to get out and take in that fresh air. Even if it is just an open window.&lt;/p&gt;

&lt;h4&gt;
  
  
  Favour video rather than audio only
&lt;/h4&gt;

&lt;p&gt;Seems like a no-brainer but for the longest time meetings and informal chats were always audio only for me.&lt;/p&gt;




&lt;p&gt;What advice do you have for dealing with loneliness? What experiences have you had?&lt;/p&gt;




&lt;p&gt;I'm more than happy to have a natter on Twitter with anyone, about anything &lt;a href="https://twitter.com/thatonejakeb"&gt;@thatonejakeb&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>watercooler</category>
      <category>productivity</category>
      <category>remote</category>
    </item>
    <item>
      <title>Typescript, react, redux, thunk, and material-ui template</title>
      <dc:creator>Jacob Baker</dc:creator>
      <pubDate>Wed, 11 Mar 2020 23:26:24 +0000</pubDate>
      <link>https://dev.to/thatonejakeb/typescript-react-redux-thunk-and-mui-skeleton-app-jc9</link>
      <guid>https://dev.to/thatonejakeb/typescript-react-redux-thunk-and-mui-skeleton-app-jc9</guid>
      <description>&lt;p&gt;Over the past day I've revisited the skeleton application that I use as a bootstrap when creating projects. The last time I wrote one with this tech stack was 14 months ago, which in development years is a lifetime!&lt;/p&gt;

&lt;p&gt;The app includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;typescript&lt;/li&gt;
&lt;li&gt;react&lt;/li&gt;
&lt;li&gt;redux&lt;/li&gt;
&lt;li&gt;thunk&lt;/li&gt;
&lt;li&gt;material-ui&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Whenever I write a skeleton app I like to add a short, simple, example because without fail after not working with this tech stack for a while I'll forget how everything ties together.&lt;/p&gt;

&lt;p&gt;The example in this shows a simple button that adds 10 to a count after a short delay each time it is clicked. The function that adds 10 can (very rarely) intentionally fail to show how the error works.&lt;/p&gt;

&lt;p&gt;Feel free to use it, and if you've any questions or suggestions let me know!&lt;/p&gt;

&lt;p&gt;Github: &lt;a href="https://github.com/jacobbaker/skeleton-ts-react-redux-thunk-mui-2020"&gt;https://github.com/jacobbaker/skeleton-ts-react-redux-thunk-mui-2020&lt;/a&gt;&lt;br&gt;
Twitter: &lt;a href="https://twitter.com/thatonejakeb"&gt;@thatonejakeb&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  An update...
&lt;/h2&gt;

&lt;p&gt;Like I said; a lifetime in developer time.&lt;/p&gt;

&lt;p&gt;Since writing this the other day I was pointed toward the official &lt;a href="https://github.com/reduxjs/cra-template-redux-typescript"&gt;Redux+Typescript CRA template&lt;/a&gt; which, amongst other things, uses Redux Toolkit to nicely reduce the amount of boilerplate needed.&lt;/p&gt;

&lt;p&gt;It such a nice way of working that I've forked it and added Material-UI support which can be either be found here:&lt;/p&gt;

&lt;p&gt;Github: &lt;a href="https://github.com/jacobbaker/cra-template-redux-typescript-mui"&gt;https://github.com/jacobbaker/cra-template-redux-typescript-mui&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Or when creating a new app:&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npx create-react-app my-app --template redux-typescript-mui&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>showdev</category>
      <category>react</category>
      <category>typescript</category>
    </item>
    <item>
      <title>Musicians (and others!): the Box of Scales is now bigger</title>
      <dc:creator>Jacob Baker</dc:creator>
      <pubDate>Thu, 05 Mar 2020 20:07:11 +0000</pubDate>
      <link>https://dev.to/thatonejakeb/musicians-and-others-the-box-of-scales-is-now-bigger-2li5</link>
      <guid>https://dev.to/thatonejakeb/musicians-and-others-the-box-of-scales-is-now-bigger-2li5</guid>
      <description>&lt;p&gt;Goooood evening! Or good morning/afternoon, depending on where or when you are...&lt;/p&gt;

&lt;p&gt;Wanted to update you on my side project that started out as shuffling scales to practise.&lt;/p&gt;

&lt;p&gt;Box of Scales will now (on the fly) generate the notes (ascending and descending for melodic minor!), left/right hand finger patterns, and play the scale for you using Tone.js (based on WebAudio).&lt;/p&gt;

&lt;p&gt;On the technical side of things I've moved away from bootstrap and over to material-ui and what a difference it has made to ease of implementation. A little hiccup to start with having to convert my components from classes to FC's but I got there. &lt;/p&gt;

&lt;p&gt;And yes the project at the moment is &lt;em&gt;very much&lt;/em&gt; taking function over form at the moment (a polite way of saying it is ugly as sin... but at least responsive), but this is now the second project (personal website is the other, but that's a post for another day...) I've switched to using mui and it's just a revelation. &lt;/p&gt;

&lt;p&gt;On the topic of developer religious experiences, I'll also be moving the hosting over to Netlify after again revisiting my workflow on another project. I'm used to spinning up and managing servers, but it has been a joy to use Netlify with the git push continuous deployment. So easy to use.&lt;/p&gt;

&lt;p&gt;For those interested in the full tech stack its:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;TypeScript&lt;/li&gt;
&lt;li&gt;react&lt;/li&gt;
&lt;li&gt;redux&lt;/li&gt;
&lt;li&gt;redux-thunk&lt;/li&gt;
&lt;li&gt;material-ui&lt;/li&gt;
&lt;li&gt;Netlify (just need to switch DNS this evening)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I've almost got the codebase how I'd like it in order to open source it.&lt;/p&gt;

&lt;p&gt;So far it has been a nice change of pace in the evenings from what I work on in my day job (essentially IoT &lt;em&gt;stuff&lt;/em&gt;) and the really neat thing is there are piano teachers actively using it with their students daily. &lt;/p&gt;

&lt;p&gt;Anyway, enough ramblepost, here's some links if you're interested or the least bit curious. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Website:&lt;/strong&gt; &lt;a href="https://boxofscales.com"&gt;https://boxofscales.com&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Twitter:&lt;/strong&gt; @boxofscales&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>offtopic</category>
      <category>watercooler</category>
    </item>
    <item>
      <title>Musicians! I made a random scale picker: Box of Scales</title>
      <dc:creator>Jacob Baker</dc:creator>
      <pubDate>Sun, 01 Mar 2020 15:57:59 +0000</pubDate>
      <link>https://dev.to/thatonejakeb/musicians-i-made-a-random-scale-picker-box-of-scales-1819</link>
      <guid>https://dev.to/thatonejakeb/musicians-i-made-a-random-scale-picker-box-of-scales-1819</guid>
      <description>&lt;p&gt;&lt;strong&gt;Website:&lt;/strong&gt;    &lt;a href="https://boxofscales.com"&gt;https://boxofscales.com&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Twitter:&lt;/strong&gt;    &lt;a href="https://twitter.com/boxofscales"&gt;@boxofscales&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Made this initially for my own personal use for practising scales for exams. Figured it might be useful to others so I've unleashed it upon the internet so you too can improve your daily scale practice (that you definitely do, oh yes, every day...).&lt;/p&gt;

&lt;p&gt;Just select what you want included and it will shuffle all combinations.&lt;/p&gt;

&lt;p&gt;The only mildly interesting technical part is the example of the scale is dynamically generated each time rather than being a static image.&lt;/p&gt;

&lt;p&gt;I will at some point open source it, but as is usually the case with unplanned projects it could do with a tidy up first.&lt;/p&gt;

&lt;p&gt;If anyone uses it and finds an issue please do &lt;a href="https://twitter.com/thatonejakeb"&gt;Tweet/DM&lt;/a&gt; or message me here and let me know. Equally, if it is of use and you've any feature requests let me know!&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>offtopic</category>
      <category>watercooler</category>
    </item>
    <item>
      <title>dev.to community’s top tech to build a website/portfolio</title>
      <dc:creator>Jacob Baker</dc:creator>
      <pubDate>Sun, 01 Mar 2020 13:35:37 +0000</pubDate>
      <link>https://dev.to/thatonejakeb/dev-to-community-s-top-tech-to-build-a-website-portfolio-1e4a</link>
      <guid>https://dev.to/thatonejakeb/dev-to-community-s-top-tech-to-build-a-website-portfolio-1e4a</guid>
      <description>&lt;p&gt;Just before Christmas I asked the community what tech they used to develop their own personal website/portfolio.&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/thatonejakeb" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--C8p4oSSA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--I6Hd3eRs--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/288498/59daac54-8ce8-4842-913a-7efa81d3cc93.jpg" alt="thatonejakeb image"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/thatonejakeb/what-tech-did-you-use-to-build-your-personal-website-portfolio-55i" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;What tech did you use to build your personal website/portfolio?&lt;/h2&gt;
      &lt;h3&gt;Jacob Baker ・ Dec 17 '19 ・ 1 min read&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#discuss&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#career&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;p&gt;With the best of intentions I had planned to compile this write-up just after New Year, but as happens life just gets in the way!&lt;/p&gt;

&lt;p&gt;So, without further ado, in no particular order, here’s the most popular tech used by the dev.to community and some example stacks in use.&lt;/p&gt;

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

&lt;h1&gt;
  
  
  Languages
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://www.codecademy.com/catalog/language/html-css"&gt;HTML &amp;amp; CSS&lt;/a&gt;&lt;br&gt;
Go together like a horse and carriage.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://sass-lang.com/"&gt;SCSS&lt;/a&gt;&lt;br&gt;
An extension of CSS3. Sassy.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.javascript.com/"&gt;JavaScript&lt;/a&gt;&lt;br&gt;
Is not related to Java.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.typescriptlang.org/"&gt;TypeScript&lt;/a&gt;&lt;br&gt;
Is related to JavaScript. Adds static typing, classes, interfaces and more.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.python.org/"&gt;Python&lt;/a&gt;&lt;br&gt;
Not related to snakes.&lt;/p&gt;



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

&lt;p&gt;&lt;a href="https://reactjs.org/"&gt;React&lt;/a&gt;&lt;br&gt;
Open source JavaScript UI library typically used for Single Page Applications.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.gatsbyjs.org/"&gt;Gatsby&lt;/a&gt;&lt;br&gt;
An open source static site generator based on React.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://vuejs.org/"&gt;vue.js&lt;/a&gt;&lt;br&gt;
Open source JavaScript framework for developing UIs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://wordpress.com/"&gt;WordPress&lt;/a&gt;&lt;br&gt;
PHP based open source CMS.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://jekyllrb.com/"&gt;Jekyll&lt;/a&gt;&lt;br&gt;
Static site generator. The engine behind Github pages.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://gulpjs.com/"&gt;Gulp&lt;/a&gt;&lt;br&gt;
Task runner used to automate development tasks.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://gridsome.org/"&gt;Gridsome&lt;/a&gt;&lt;br&gt;
vue.js based framework for generating static sites.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/emotion-js/emotion"&gt;Emotion&lt;/a&gt;&lt;br&gt;
Library for writing CSS in Javascript.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://laravel.com/"&gt;Laravel&lt;/a&gt;&lt;br&gt;
PHP based MVC framework.&lt;/p&gt;



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

&lt;p&gt;&lt;a href="https://www.markdownguide.org/getting-started/"&gt;Markdown&lt;/a&gt;&lt;br&gt;
Lightweight markup language.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://asciidoctor.org/docs/what-is-asciidoc/"&gt;AsciiDoc&lt;/a&gt;&lt;br&gt;
Another lightweight markup language.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ejs.co/"&gt;EJS&lt;/a&gt;&lt;br&gt;
Templating language that generates HTML with Javascript&lt;/p&gt;

&lt;p&gt;&lt;a href="https://mdxjs.com/"&gt;MDX&lt;/a&gt;&lt;br&gt;
Allows the use of JSX in Markdown.&lt;/p&gt;



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

&lt;p&gt;&lt;a href="https://pages.github.com/"&gt;Github Pages&lt;/a&gt;&lt;br&gt;
Pages hosted from their Github repository.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.netlify.com/"&gt;Netlify&lt;/a&gt;&lt;br&gt;
All in one hosting and automation. Has a whole bunch of useful &lt;em&gt;stuff&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://aws.amazon.com/s3/"&gt;AWS S3&lt;/a&gt;&lt;br&gt;
AWS S3 can be used to host static sites.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://circleci.com/"&gt;Circle CI&lt;/a&gt;&lt;br&gt;
Continuous integration and delivery platform.&lt;/p&gt;



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

&lt;p&gt;&lt;a href="//iamdeveloper.com/thanks/"&gt;iamdeveloper.com/thanks/&lt;/a&gt;&lt;br&gt;
React, TypeScript, Gatsby &lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__user ltag__user__id__9597"&gt;
  
    .ltag__user__id__9597 .follow-action-button {
      background-color: #fb4881 !important;
      color: #FFFFFF !important;
      border-color: #fb4881 !important;
    }
  
    &lt;a href="/nickytonline" class="ltag__user__link profile-image-link"&gt;
      &lt;div class="ltag__user__pic"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BmhzwLSV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--zhsA-ZEm--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/9597/68d6245f-3152-4ed2-a245-d015fca4160b.jpeg" alt="nickytonline image"&gt;
      &lt;/div&gt;
    &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
&lt;a class="ltag__user__link" href="/nickytonline"&gt;Nick Taylor (he/him)&lt;/a&gt;
&lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a class="ltag__user__link" href="/nickytonline"&gt;Senior software developer at DEV. Caught the live coding bug on Twitch at doingdevfordev.com&lt;/a&gt;
    &lt;/div&gt;
    &lt;p class="ltag__user__social"&gt;
        &lt;a href="https://twitter.com/nickytonline" rel="noopener"&gt;
          &lt;img class="icon-img" alt="twitter logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--oEHrSmvE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-logo.svg"&gt;nickytonline
        &lt;/a&gt;
        &lt;a href="https://github.com/nickytonline" rel="noopener"&gt;
          &lt;img class="icon-img" alt="github logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--C74Jn3f1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo.svg"&gt;nickytonline
        &lt;/a&gt;
        &lt;a href="https://www.iamdeveloper.com" rel="noopener"&gt;
          &lt;img class="icon-img" alt="external link icon" src="https://res.cloudinary.com/practicaldev/image/fetch/s--WsHTbjfA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/link.svg"&gt;https://www.iamdeveloper.com
        &lt;/a&gt;
    &lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;





&lt;p&gt;&lt;a href="//traekwells.com"&gt;traekwells.com&lt;/a&gt;&lt;br&gt;
Plain-old HTML, CSS, and JavaScript &lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__user ltag__user__id__235230"&gt;
  
    .ltag__user__id__235230 .follow-action-button {
      background-color: #093656 !important;
      color: #dce9f3 !important;
      border-color: #093656 !important;
    }
  
    &lt;a href="/traekwells" class="ltag__user__link profile-image-link"&gt;
      &lt;div class="ltag__user__pic"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QYtogvCs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--GnycZi8d--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/235230/ea03a86d-35d5-41b6-8ed4-6fe5807a397c.jpeg" alt="traekwells image"&gt;
      &lt;/div&gt;
    &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
&lt;a class="ltag__user__link" href="/traekwells"&gt;Traek Wells&lt;/a&gt;
&lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a class="ltag__user__link" href="/traekwells"&gt;I'm a Front-End Web Developer who cares about people more than tools. Pixel peddler, animal lover, Mortal Kombat enthusiast. I believe people have a responsibility to help each other. #WebDevelopment&lt;/a&gt;
    &lt;/div&gt;
    &lt;p class="ltag__user__social"&gt;
        &lt;a href="https://twitter.com/TraekWells" rel="noopener"&gt;
          &lt;img class="icon-img" alt="twitter logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--oEHrSmvE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-logo.svg"&gt;TraekWells
        &lt;/a&gt;
        &lt;a href="https://github.com/TraekWells" rel="noopener"&gt;
          &lt;img class="icon-img" alt="github logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--C74Jn3f1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo.svg"&gt;TraekWells
        &lt;/a&gt;
        &lt;a href="https://traekwells.com/" rel="noopener"&gt;
          &lt;img class="icon-img" alt="external link icon" src="https://res.cloudinary.com/practicaldev/image/fetch/s--WsHTbjfA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/link.svg"&gt;https://traekwells.com/
        &lt;/a&gt;
    &lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;





&lt;p&gt;&lt;a href="//Drewtown.dev"&gt;Drewtown.dev&lt;/a&gt;&lt;br&gt;
Vue, Gridsome, Tailwind CSS, hosted on Netlify &lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__user ltag__user__id__164639"&gt;
  
    .ltag__user__id__164639 .follow-action-button {
      background-color: #CC1F1A !important;
      color: #FFFFFF !important;
      border-color: #CC1F1A !important;
    }
  
    &lt;a href="/drewtownchi" class="ltag__user__link profile-image-link"&gt;
      &lt;div class="ltag__user__pic"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Kjn8-Cg4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--RvrwSqB3--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/164639/b9d69904-b0c9-401f-8392-ab934441eb63.jpg" alt="drewtownchi image"&gt;
      &lt;/div&gt;
    &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
&lt;a class="ltag__user__link" href="/drewtownchi"&gt;Drew Town&lt;/a&gt;
&lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a class="ltag__user__link" href="/drewtownchi"&gt;I'm Drew Town a web developer and systems engineer in Colorado. Always learning, traveling and exploring. Sharing updates, trials and tribulations in tech and life. &lt;/a&gt;
    &lt;/div&gt;
    &lt;p class="ltag__user__social"&gt;
        &lt;a href="https://twitter.com/drewtown_chi" rel="noopener"&gt;
          &lt;img class="icon-img" alt="twitter logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--oEHrSmvE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-logo.svg"&gt;drewtown_chi
        &lt;/a&gt;
        &lt;a href="https://github.com/drewtownchi" rel="noopener"&gt;
          &lt;img class="icon-img" alt="github logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--C74Jn3f1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo.svg"&gt;drewtownchi
        &lt;/a&gt;
        &lt;a href="http://www.drewtown.dev" rel="noopener"&gt;
          &lt;img class="icon-img" alt="external link icon" src="https://res.cloudinary.com/practicaldev/image/fetch/s--WsHTbjfA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/link.svg"&gt;http://www.drewtown.dev
        &lt;/a&gt;
    &lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;





&lt;p&gt;&lt;a href="//saurabhdaware.in"&gt;saurabhdaware.in&lt;/a&gt;&lt;br&gt;
Plain-old HTML, CSS, JavaScript &lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__user ltag__user__id__174161"&gt;
  
    .ltag__user__id__174161 .follow-action-button {
      background-color: #a4dcf6 !important;
      color: #444444 !important;
      border-color: #a4dcf6 !important;
    }
  
    &lt;a href="/saurabhdaware" class="ltag__user__link profile-image-link"&gt;
      &lt;div class="ltag__user__pic"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JH_BTelj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--Vua_D3Y4--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/174161/138a8e30-14f9-4d70-849a-5279f10f1c63.jpg" alt="saurabhdaware image"&gt;
      &lt;/div&gt;
    &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
&lt;a class="ltag__user__link" href="/saurabhdaware"&gt;Saurabh Daware 🌻&lt;/a&gt;
&lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a class="ltag__user__link" href="/saurabhdaware"&gt;21, JavaScript Fanboi. 
Building Abell, A new static-site-generator.
also sunflower is my favorite emoji🌻
(He/Him)&lt;/a&gt;
    &lt;/div&gt;
    &lt;p class="ltag__user__social"&gt;
        &lt;a href="https://twitter.com/saurabhcodes" rel="noopener"&gt;
          &lt;img class="icon-img" alt="twitter logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--oEHrSmvE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-logo.svg"&gt;saurabhcodes
        &lt;/a&gt;
        &lt;a href="https://github.com/saurabhdaware" rel="noopener"&gt;
          &lt;img class="icon-img" alt="github logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--C74Jn3f1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo.svg"&gt;saurabhdaware
        &lt;/a&gt;
        &lt;a href="https://saurabhdaware.in" rel="noopener"&gt;
          &lt;img class="icon-img" alt="external link icon" src="https://res.cloudinary.com/practicaldev/image/fetch/s--WsHTbjfA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/link.svg"&gt;https://saurabhdaware.in
        &lt;/a&gt;
    &lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;





&lt;p&gt;&lt;a href="https://waqasali.dev/"&gt;https://waqasali.dev/&lt;/a&gt;&lt;br&gt;
Jekyll hosted on Github pages&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__user ltag__user__id__277980"&gt;
  
    .ltag__user__id__277980 .follow-action-button {
      background-color: #19063A !important;
      color: #dce9f3 !important;
      border-color: #19063A !important;
    }
  
    &lt;a href="/totally_waqas" class="ltag__user__link profile-image-link"&gt;
      &lt;div class="ltag__user__pic"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--szRdJxN6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--PRwFwYwP--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/277980/62b35546-8456-488a-80db-c8a6edd99dff.jpg" alt="totally_waqas image"&gt;
      &lt;/div&gt;
    &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
&lt;a class="ltag__user__link" href="/totally_waqas"&gt;Waqas&lt;/a&gt;
&lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a class="ltag__user__link" href="/totally_waqas"&gt;A undergrad working on a social network for students (studentbase.app)&lt;/a&gt;
    &lt;/div&gt;
    &lt;p class="ltag__user__social"&gt;
        &lt;a href="https://twitter.com/totally_waqas" rel="noopener"&gt;
          &lt;img class="icon-img" alt="twitter logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--oEHrSmvE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-logo.svg"&gt;totally_waqas
        &lt;/a&gt;
        &lt;a href="https://waqasali.dev" rel="noopener"&gt;
          &lt;img class="icon-img" alt="external link icon" src="https://res.cloudinary.com/practicaldev/image/fetch/s--WsHTbjfA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/link.svg"&gt;https://waqasali.dev
        &lt;/a&gt;
    &lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;





&lt;p&gt;&lt;a href="//fullstackstanley.com"&gt;fullstackstanley.com&lt;/a&gt; &lt;br&gt;
Middleman hosted on Netlify &lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__user ltag__user__id__63099"&gt;
  
    .ltag__user__id__63099 .follow-action-button {
      background-color: #1C0BBA !important;
      color: #FFFFFF !important;
      border-color: #1C0BBA !important;
    }
  
    &lt;a href="/mitchartemis" class="ltag__user__link profile-image-link"&gt;
      &lt;div class="ltag__user__pic"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HXD_GHVu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--RNrtUj05--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/63099/ca83dc38-d373-4396-b531-03e4ef5e4a4b.jpg" alt="mitchartemis image"&gt;
      &lt;/div&gt;
    &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
&lt;a class="ltag__user__link" href="/mitchartemis"&gt;Mitch Stanley&lt;/a&gt;
&lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a class="ltag__user__link" href="/mitchartemis"&gt;Developer of Snipline and other cool stuff.&lt;/a&gt;
    &lt;/div&gt;
    &lt;p class="ltag__user__social"&gt;
        &lt;a href="https://twitter.com/mitchartemis" rel="noopener"&gt;
          &lt;img class="icon-img" alt="twitter logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--oEHrSmvE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-logo.svg"&gt;mitchartemis
        &lt;/a&gt;
        &lt;a href="https://github.com/acoustep" rel="noopener"&gt;
          &lt;img class="icon-img" alt="github logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--C74Jn3f1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo.svg"&gt;acoustep
        &lt;/a&gt;
        &lt;a href="https://snipline.io" rel="noopener"&gt;
          &lt;img class="icon-img" alt="external link icon" src="https://res.cloudinary.com/practicaldev/image/fetch/s--WsHTbjfA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/link.svg"&gt;https://snipline.io
        &lt;/a&gt;
    &lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;





&lt;p&gt;&lt;a href="//factualsearch.news"&gt;factualsearch.news&lt;/a&gt;&lt;br&gt;
React (TypeScript), Plop, and AWS S3 for hosting&lt;br&gt;&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__user ltag__user__id__236482"&gt;
  
    .ltag__user__id__236482 .follow-action-button {
      background-color: #0D4D4B !important;
      color: #fdf9f3 !important;
      border-color: #0D4D4B !important;
    }
  
    &lt;a href="/drmikecrowe" class="ltag__user__link profile-image-link"&gt;
      &lt;div class="ltag__user__pic"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ARodcH5d--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--4JCZEj2---/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/236482/461a5f5c-6342-4928-a444-57e99a32b97a.png" alt="drmikecrowe image"&gt;
      &lt;/div&gt;
    &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
&lt;a class="ltag__user__link" href="/drmikecrowe"&gt;drmikecrowe&lt;/a&gt;
&lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a class="ltag__user__link" href="/drmikecrowe"&gt;A lifelong geek who loves solving problems and discovering new technologies&lt;/a&gt;
    &lt;/div&gt;
    &lt;p class="ltag__user__social"&gt;
        &lt;a href="https://github.com/drmikecrowe" rel="noopener"&gt;
          &lt;img class="icon-img" alt="github logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--C74Jn3f1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo.svg"&gt;drmikecrowe
        &lt;/a&gt;
    &lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;





&lt;p&gt;&lt;a href="//maksumrifai.netlify.com"&gt;maksumrifai.netlify.com&lt;/a&gt; &lt;br&gt;
material-ui kit, GitHub, and Netlify for deployment &lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__user ltag__user__id__246969"&gt;
  
    .ltag__user__id__246969 .follow-action-button {
      background-color: #000000 !important;
      color: #c9d2dd !important;
      border-color: #000000 !important;
    }
  
    &lt;a href="/maksumrifai" class="ltag__user__link profile-image-link"&gt;
      &lt;div class="ltag__user__pic"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--AA92B1o9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--jAvVWQPt--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/246969/9511508e-ae36-47fc-b5f7-2db5e34dd354.png" alt="maksumrifai image"&gt;
      &lt;/div&gt;
    &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
&lt;a class="ltag__user__link" href="/maksumrifai"&gt;Maksum Rifai&lt;/a&gt;
&lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a class="ltag__user__link" href="/maksumrifai"&gt;Hello, I am Maksum Rifai from indonesia. interest in Programming, Copywriting, Teaching.
Founder of MaxsumWeb &amp;amp; DesainerHub&lt;/a&gt;
    &lt;/div&gt;
    &lt;p class="ltag__user__social"&gt;
        &lt;a href="https://twitter.com/MaksumRifai" rel="noopener"&gt;
          &lt;img class="icon-img" alt="twitter logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--oEHrSmvE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-logo.svg"&gt;MaksumRifai
        &lt;/a&gt;
        &lt;a href="https://github.com/MaksumRifai" rel="noopener"&gt;
          &lt;img class="icon-img" alt="github logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--C74Jn3f1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo.svg"&gt;MaksumRifai
        &lt;/a&gt;
        &lt;a href="https://desainerhub.com" rel="noopener"&gt;
          &lt;img class="icon-img" alt="external link icon" src="https://res.cloudinary.com/practicaldev/image/fetch/s--WsHTbjfA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/link.svg"&gt;https://desainerhub.com
        &lt;/a&gt;
    &lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;





&lt;p&gt;&lt;a href="https://desiremcarmona.com/#/"&gt;https://desiremcarmona.com/#/&lt;/a&gt; &lt;br&gt;
vue.js and SCSS &lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__user ltag__user__id__222379"&gt;
  
    .ltag__user__id__222379 .follow-action-button {
      background-color: #121212 !important;
      color: #9f45d6 !important;
      border-color: #121212 !important;
    }
  
    &lt;a href="/helleworld_" class="ltag__user__link profile-image-link"&gt;
      &lt;div class="ltag__user__pic"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--244IectM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--FRg2cs_J--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/222379/bb98b58c-be96-4b8a-bef3-357b4f3366b3.jpg" alt="helleworld_ image"&gt;
      &lt;/div&gt;
    &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
&lt;a class="ltag__user__link" href="/helleworld_"&gt;Desiré 👩‍🎓👩‍🏫&lt;/a&gt;
&lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a class="ltag__user__link" href="/helleworld_"&gt;Create and connect. She/her. Worked in Smart City development for the European Union. Instructor in LinkedIn Learning.&lt;/a&gt;
    &lt;/div&gt;
    &lt;p class="ltag__user__social"&gt;
        &lt;a href="https://twitter.com/helleworld_" rel="noopener"&gt;
          &lt;img class="icon-img" alt="twitter logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--oEHrSmvE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-logo.svg"&gt;helleworld_
        &lt;/a&gt;
        &lt;a href="https://desiremcarmona.com/" rel="noopener"&gt;
          &lt;img class="icon-img" alt="external link icon" src="https://res.cloudinary.com/practicaldev/image/fetch/s--WsHTbjfA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/link.svg"&gt;https://desiremcarmona.com/
        &lt;/a&gt;
    &lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;





&lt;p&gt;&lt;a href="https://www.upyoura11y.com/"&gt;https://www.upyoura11y.com/&lt;/a&gt;&lt;br&gt;
Gatsby&lt;br&gt;&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__user ltag__user__id__197075"&gt;
  
    .ltag__user__id__197075 .follow-action-button {
      background-color: #fdbfaf !important;
      color: #000000 !important;
      border-color: #fdbfaf !important;
    }
  
    &lt;a href="/s_aitchison" class="ltag__user__link profile-image-link"&gt;
      &lt;div class="ltag__user__pic"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZE3JVmq0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--aLsTFlVj--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/197075/65d62be4-9926-418b-9568-a5d55fe13fcc.jpg" alt="s_aitchison image"&gt;
      &lt;/div&gt;
    &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
&lt;a class="ltag__user__link" href="/s_aitchison"&gt;Suzanne Aitchison (she/her)&lt;/a&gt;
&lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a class="ltag__user__link" href="/s_aitchison"&gt;Software developer based in Edinburgh, with particular experience in React and creating accessible web experiences.&lt;/a&gt;
    &lt;/div&gt;
    &lt;p class="ltag__user__social"&gt;
        &lt;a href="https://twitter.com/s_aitchison" rel="noopener"&gt;
          &lt;img class="icon-img" alt="twitter logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--oEHrSmvE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-logo.svg"&gt;s_aitchison
        &lt;/a&gt;
        &lt;a href="https://github.com/aitchiss" rel="noopener"&gt;
          &lt;img class="icon-img" alt="github logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--C74Jn3f1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo.svg"&gt;aitchiss
        &lt;/a&gt;
        &lt;a href="https://www.upyoura11y.com" rel="noopener"&gt;
          &lt;img class="icon-img" alt="external link icon" src="https://res.cloudinary.com/practicaldev/image/fetch/s--WsHTbjfA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/link.svg"&gt;https://www.upyoura11y.com
        &lt;/a&gt;
    &lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;





&lt;p&gt;&lt;a href="//byteschool.io"&gt;byteschool.io&lt;/a&gt;&lt;br&gt;
Headless WordPress, Gatsby, running on Netlify&lt;br&gt;&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__user ltag__user__id__261044"&gt;
  
    .ltag__user__id__261044 .follow-action-button {
      background-color: #ffb813 !important;
      color: #040404 !important;
      border-color: #ffb813 !important;
    }
  
    &lt;a href="/marcbeaujean" class="ltag__user__link profile-image-link"&gt;
      &lt;div class="ltag__user__pic"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gWbsYWIB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--pPzdco6n--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/261044/1edebe41-5a5f-4d9c-86c6-0ea1b701b9c6.jpg" alt="marcbeaujean image"&gt;
      &lt;/div&gt;
    &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
&lt;a class="ltag__user__link" href="/marcbeaujean"&gt;Marc Philippe Beaujean&lt;/a&gt;
&lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a class="ltag__user__link" href="/marcbeaujean"&gt;Frequent writer of code and articles.&lt;/a&gt;
    &lt;/div&gt;
    &lt;p class="ltag__user__social"&gt;
        &lt;a href="https://twitter.com/MarcBeaujean" rel="noopener"&gt;
          &lt;img class="icon-img" alt="twitter logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--oEHrSmvE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-logo.svg"&gt;MarcBeaujean
        &lt;/a&gt;
        &lt;a href="https://github.com/marcphilippebeaujean-abertay" rel="noopener"&gt;
          &lt;img class="icon-img" alt="github logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--C74Jn3f1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo.svg"&gt;marcphilippebeaujean-abertay
        &lt;/a&gt;
        &lt;a href="https://byteschool.io/" rel="noopener"&gt;
          &lt;img class="icon-img" alt="external link icon" src="https://res.cloudinary.com/practicaldev/image/fetch/s--WsHTbjfA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/link.svg"&gt;https://byteschool.io/
        &lt;/a&gt;
    &lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;





&lt;p&gt;&lt;a href="https://www.danaottaviani.com/"&gt;https://www.danaottaviani.com/&lt;/a&gt; &lt;br&gt;
vue.js and Gridsome &lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__user ltag__user__id__188922"&gt;
  
    .ltag__user__id__188922 .follow-action-button {
      background-color: #4de2ea !important;
      color: #ffffff !important;
      border-color: #4de2ea !important;
    }
  
    &lt;a href="/dana94" class="ltag__user__link profile-image-link"&gt;
      &lt;div class="ltag__user__pic"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4uho672B--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--io8NrvX6--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/188922/8c3dcce2-6d79-4599-a11e-9a87a3ab29ec.jpeg" alt="dana94 image"&gt;
      &lt;/div&gt;
    &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
&lt;a class="ltag__user__link" href="/dana94"&gt;Dana Ottaviani&lt;/a&gt;
&lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a class="ltag__user__link" href="/dana94"&gt;I'm a software developer with a main focus on the front-end. She/Her&lt;/a&gt;
    &lt;/div&gt;
    &lt;p class="ltag__user__social"&gt;
        &lt;a href="https://github.com/Dana94" rel="noopener"&gt;
          &lt;img class="icon-img" alt="github logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--C74Jn3f1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo.svg"&gt;Dana94
        &lt;/a&gt;
        &lt;a href="https://www.danaottaviani.com/" rel="noopener"&gt;
          &lt;img class="icon-img" alt="external link icon" src="https://res.cloudinary.com/practicaldev/image/fetch/s--WsHTbjfA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/link.svg"&gt;https://www.danaottaviani.com/
        &lt;/a&gt;
    &lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;





&lt;p&gt;&lt;a href="https://shushugah.com/"&gt;https://shushugah.com/&lt;/a&gt; &lt;br&gt;
NetlifyCMS and Jekyll hosted on GitHub or Netlify &lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__user ltag__user__id__196514"&gt;
  
    .ltag__user__id__196514 .follow-action-button {
      background-color: #060C38 !important;
      color: #FFFFFF !important;
      border-color: #060C38 !important;
    }
  
    &lt;a href="/shushugah" class="ltag__user__link profile-image-link"&gt;
      &lt;div class="ltag__user__pic"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--icnLIKTm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--OgOkDHIp--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/196514/1c80a785-aafc-448a-a111-e06ed4bc30e8.jpg" alt="shushugah image"&gt;
      &lt;/div&gt;
    &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
&lt;a class="ltag__user__link" href="/shushugah"&gt;shushugah&lt;/a&gt;
&lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a class="ltag__user__link" href="/shushugah"&gt;Passionate about human rights, community, Ruby and caffeine&lt;/a&gt;
    &lt;/div&gt;
    &lt;p class="ltag__user__social"&gt;
        &lt;a href="https://twitter.com/shushugah" rel="noopener"&gt;
          &lt;img class="icon-img" alt="twitter logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--oEHrSmvE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-logo.svg"&gt;shushugah
        &lt;/a&gt;
        &lt;a href="https://github.com/shushugah" rel="noopener"&gt;
          &lt;img class="icon-img" alt="github logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--C74Jn3f1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo.svg"&gt;shushugah
        &lt;/a&gt;
        &lt;a href="https://shushugah.com" rel="noopener"&gt;
          &lt;img class="icon-img" alt="external link icon" src="https://res.cloudinary.com/practicaldev/image/fetch/s--WsHTbjfA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/link.svg"&gt;https://shushugah.com
        &lt;/a&gt;
    &lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;





&lt;p&gt;&lt;a href="https://gergely.polonkai.eu/"&gt;https://gergely.polonkai.eu/&lt;/a&gt;&lt;br&gt;
Pelican &lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__user ltag__user__id__86806"&gt;
  
    .ltag__user__id__86806 .follow-action-button {
      background-color: #010C1F !important;
      color: #FFFFFF !important;
      border-color: #010C1F !important;
    }
  
    &lt;a href="/gergelypolonkai" class="ltag__user__link profile-image-link"&gt;
      &lt;div class="ltag__user__pic"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--txZG4ePA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--aPaF-uxG--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/86806/f743a71f-03e2-4a99-8922-e1b84fb050ce.png" alt="gergelypolonkai image"&gt;
      &lt;/div&gt;
    &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
&lt;a class="ltag__user__link" href="/gergelypolonkai"&gt;Gergely Polonkai&lt;/a&gt;
&lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a class="ltag__user__link" href="/gergelypolonkai"&gt;&lt;/a&gt;
    &lt;/div&gt;
    &lt;p class="ltag__user__social"&gt;
        &lt;a href="https://twitter.com/GergelyPolonkai" rel="noopener"&gt;
          &lt;img class="icon-img" alt="twitter logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--oEHrSmvE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-logo.svg"&gt;GergelyPolonkai
        &lt;/a&gt;
        &lt;a href="https://github.com/gergelypolonkai" rel="noopener"&gt;
          &lt;img class="icon-img" alt="github logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--C74Jn3f1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo.svg"&gt;gergelypolonkai
        &lt;/a&gt;
        &lt;a href="https://gergely.polonkai.eu/" rel="noopener"&gt;
          &lt;img class="icon-img" alt="external link icon" src="https://res.cloudinary.com/practicaldev/image/fetch/s--WsHTbjfA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/link.svg"&gt;https://gergely.polonkai.eu/
        &lt;/a&gt;
    &lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;





&lt;p&gt;&lt;a href="//chadalen.com"&gt;chadalen.com&lt;/a&gt;&lt;br&gt;
React, Gatsby, React Material UI, Disqus and Netlify&lt;br&gt;&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__user ltag__user__id__94831"&gt;
  
    .ltag__user__id__94831 .follow-action-button {
      background-color: #19063A !important;
      color: #FFFFFF !important;
      border-color: #19063A !important;
    }
  
    &lt;a href="/chadalen" class="ltag__user__link profile-image-link"&gt;
      &lt;div class="ltag__user__pic"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--a5l4s7ts--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--syqC2zHP--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/94831/01be8b8d-6a08-47e2-a94d-85e0b047ab3a.png" alt="chadalen image"&gt;
      &lt;/div&gt;
    &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
&lt;a class="ltag__user__link" href="/chadalen"&gt;Chad Alen&lt;/a&gt;
&lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a class="ltag__user__link" href="/chadalen"&gt;I'm a full stack developer with a passion for building web, mobile and desktop apps.&lt;/a&gt;
    &lt;/div&gt;
    &lt;p class="ltag__user__social"&gt;
        &lt;a href="https://github.com/chadalen" rel="noopener"&gt;
          &lt;img class="icon-img" alt="github logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--C74Jn3f1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo.svg"&gt;chadalen
        &lt;/a&gt;
        &lt;a href="https://chadalen.com" rel="noopener"&gt;
          &lt;img class="icon-img" alt="external link icon" src="https://res.cloudinary.com/practicaldev/image/fetch/s--WsHTbjfA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/link.svg"&gt;https://chadalen.com
        &lt;/a&gt;
    &lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;





&lt;p&gt;&lt;a href="//ophasnoname.de"&gt;ophasnoname.de&lt;/a&gt;&lt;br&gt;
Laravel and Markdown &lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__user ltag__user__id__9513"&gt;
  
    .ltag__user__id__9513 .follow-action-button {
      background-color: #160604 !important;
      color: #ffffff !important;
      border-color: #160604 !important;
    }
  
    &lt;a href="/ophasnoname" class="ltag__user__link profile-image-link"&gt;
      &lt;div class="ltag__user__pic"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aPwOzgeJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--ks3z0PrO--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/9513/1StoOkzg.jpg" alt="ophasnoname image"&gt;
      &lt;/div&gt;
    &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
&lt;a class="ltag__user__link" href="/ophasnoname"&gt;Arne&lt;/a&gt;
&lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a class="ltag__user__link" href="/ophasnoname"&gt;Former PHP Developer now exploring the funky DevOps world.&lt;/a&gt;
    &lt;/div&gt;
    &lt;p class="ltag__user__social"&gt;
        &lt;a href="https://twitter.com/opHASnoNAME" rel="noopener"&gt;
          &lt;img class="icon-img" alt="twitter logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--oEHrSmvE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-logo.svg"&gt;opHASnoNAME
        &lt;/a&gt;
        &lt;a href="https://github.com/opHASnoNAME" rel="noopener"&gt;
          &lt;img class="icon-img" alt="github logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--C74Jn3f1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo.svg"&gt;opHASnoNAME
        &lt;/a&gt;
    &lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;





&lt;p&gt;&lt;a href="https://caughtmyeye.dev/"&gt;https://caughtmyeye.dev/&lt;/a&gt;&lt;br&gt;
CloudCannon, Jekyll, Liquid, JavaScript, SCSS&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__user ltag__user__id__272844"&gt;
  
    .ltag__user__id__272844 .follow-action-button {
      background-color: #1b1b1b !important;
      color: #e2e2e2 !important;
      border-color: #1b1b1b !important;
    }
  
    &lt;a href="/marklchaves" class="ltag__user__link profile-image-link"&gt;
      &lt;div class="ltag__user__pic"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--58eyYcPZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--NFs1dLen--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/272844/5ded69be-69cd-4d2f-809f-852b83fe40fa.jpeg" alt="marklchaves image"&gt;
      &lt;/div&gt;
    &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
&lt;a class="ltag__user__link" href="/marklchaves"&gt;mark l chaves&lt;/a&gt;
&lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a class="ltag__user__link" href="/marklchaves"&gt;freelance web developer in bali indonesia. i feed stray cats &amp;amp; dogs.&lt;/a&gt;
    &lt;/div&gt;
    &lt;p class="ltag__user__social"&gt;
        &lt;a href="https://github.com/marklchaves" rel="noopener"&gt;
          &lt;img class="icon-img" alt="github logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--C74Jn3f1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo.svg"&gt;marklchaves
        &lt;/a&gt;
        &lt;a href="https://www.caughtmyeye.cc" rel="noopener"&gt;
          &lt;img class="icon-img" alt="external link icon" src="https://res.cloudinary.com/practicaldev/image/fetch/s--WsHTbjfA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/link.svg"&gt;https://www.caughtmyeye.cc
        &lt;/a&gt;
    &lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;





&lt;p&gt;&lt;a href="https://workalicious.com/"&gt;https://workalicious.com/&lt;/a&gt;&lt;br&gt;
vue.js and Foundation CSS Framework &lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__user ltag__user__id__286306"&gt;
  
    .ltag__user__id__286306 .follow-action-button {
      background-color: #093656 !important;
      color: #ffffff !important;
      border-color: #093656 !important;
    }
  
    &lt;a href="/workalicious_yo" class="ltag__user__link profile-image-link"&gt;
      &lt;div class="ltag__user__pic"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FXO2zz2y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--JRhmbKLR--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/286306/018c132d-6e3d-4a63-adeb-3b28b7ddfc16.jpeg" alt="workalicious_yo image"&gt;
      &lt;/div&gt;
    &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
&lt;a class="ltag__user__link" href="/workalicious_yo"&gt;David Kaplan&lt;/a&gt;
&lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a class="ltag__user__link" href="/workalicious_yo"&gt;I'm a visual designer web developer. I'm an older guy, started as a graphic designer. I like to make bread and pizza!&lt;/a&gt;
    &lt;/div&gt;
    &lt;p class="ltag__user__social"&gt;
        &lt;a href="https://twitter.com/workalicious_yo" rel="noopener"&gt;
          &lt;img class="icon-img" alt="twitter logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--oEHrSmvE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-logo.svg"&gt;workalicious_yo
        &lt;/a&gt;
        &lt;a href="https://github.com/kaplan" rel="noopener"&gt;
          &lt;img class="icon-img" alt="github logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--C74Jn3f1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo.svg"&gt;kaplan
        &lt;/a&gt;
    &lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;





&lt;p&gt;&lt;a href="https://bonfiglioalessio.github.io/"&gt;https://bonfiglioalessio.github.io/&lt;/a&gt;&lt;br&gt;
React, Reactstrap, Bootstrap &lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__user ltag__user__id__271343"&gt;
  
    .ltag__user__id__271343 .follow-action-button {
      background-color: #ffcb13 !important;
      color: #000000 !important;
      border-color: #ffcb13 !important;
    }
  
    &lt;a href="/bonfiglioalessio" class="ltag__user__link profile-image-link"&gt;
      &lt;div class="ltag__user__pic"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aNm0kXa0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--HoXYNYxh--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/271343/932dd98c-57c4-4822-b5b3-46f6a34a8768.jpeg" alt="bonfiglioalessio image"&gt;
      &lt;/div&gt;
    &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
&lt;a class="ltag__user__link" href="/bonfiglioalessio"&gt;&amp;lt;A.BONFIGLIO/&amp;gt;&lt;/a&gt;
&lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a class="ltag__user__link" href="/bonfiglioalessio"&gt;I'm a Junior Frontend Developer!&lt;/a&gt;
    &lt;/div&gt;
    &lt;p class="ltag__user__social"&gt;
        &lt;a href="https://github.com/bonfiglioalessio" rel="noopener"&gt;
          &lt;img class="icon-img" alt="github logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--C74Jn3f1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo.svg"&gt;bonfiglioalessio
        &lt;/a&gt;
        &lt;a href="https://www.labstuff.it/alessio/portfolio" rel="noopener"&gt;
          &lt;img class="icon-img" alt="external link icon" src="https://res.cloudinary.com/practicaldev/image/fetch/s--WsHTbjfA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/link.svg"&gt;https://www.labstuff.it/alessio/portfolio
        &lt;/a&gt;
    &lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;





&lt;p&gt;&lt;a href="https://ogaston.com/knowme/"&gt;https://ogaston.com/knowme/&lt;/a&gt;&lt;br&gt;
Gatsby&lt;br&gt;&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__user ltag__user__id__115159"&gt;
  
    .ltag__user__id__115159 .follow-action-button {
      background-color: #1C0BBA !important;
      color: #FFFFFF !important;
      border-color: #1C0BBA !important;
    }
  
    &lt;a href="/ogaston" class="ltag__user__link profile-image-link"&gt;
      &lt;div class="ltag__user__pic"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XeHgc1ub--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s---iqGCNFE--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/115159/e43f621d-0e74-48eb-b9e2-fde4c50f1437.jpeg" alt="ogaston image"&gt;
      &lt;/div&gt;
    &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
&lt;a class="ltag__user__link" href="/ogaston"&gt;Omar Gaston Chalas&lt;/a&gt;
&lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a class="ltag__user__link" href="/ogaston"&gt;Hi, i met Javascript and fall in love!&lt;/a&gt;
    &lt;/div&gt;
    &lt;p class="ltag__user__social"&gt;
        &lt;a href="https://twitter.com/ogastonc" rel="noopener"&gt;
          &lt;img class="icon-img" alt="twitter logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--oEHrSmvE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-logo.svg"&gt;ogastonc
        &lt;/a&gt;
        &lt;a href="https://github.com/ogaston" rel="noopener"&gt;
          &lt;img class="icon-img" alt="github logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--C74Jn3f1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo.svg"&gt;ogaston
        &lt;/a&gt;
        &lt;a href="https://ogaston.com/" rel="noopener"&gt;
          &lt;img class="icon-img" alt="external link icon" src="https://res.cloudinary.com/practicaldev/image/fetch/s--WsHTbjfA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/link.svg"&gt;https://ogaston.com/
        &lt;/a&gt;
    &lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;





&lt;p&gt;&lt;a href="https://shayaulman.netlify.com/"&gt;https://shayaulman.netlify.com/&lt;/a&gt;&lt;br&gt;
vue.js and Gridsome &lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__user ltag__user__id__169959"&gt;
  
    .ltag__user__id__169959 .follow-action-button {
      background-color: #319795 !important;
      color: #ffffff !important;
      border-color: #319795 !important;
    }
  
    &lt;a href="/shayaulman" class="ltag__user__link profile-image-link"&gt;
      &lt;div class="ltag__user__pic"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mOXd31QY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--skT9wWDy--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/169959/cf5b6a68-29d0-4263-869c-0cf5a17bf5f4.png" alt="shayaulman image"&gt;
      &lt;/div&gt;
    &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
&lt;a class="ltag__user__link" href="/shayaulman"&gt;Shaya Ulman&lt;/a&gt;
&lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a class="ltag__user__link" href="/shayaulman"&gt;&lt;/a&gt;
    &lt;/div&gt;
    &lt;p class="ltag__user__social"&gt;
        &lt;a href="https://github.com/shayaulman" rel="noopener"&gt;
          &lt;img class="icon-img" alt="github logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--C74Jn3f1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo.svg"&gt;shayaulman
        &lt;/a&gt;
    &lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;





&lt;p&gt;&lt;a href="https://vbelolapotkov.com/"&gt;https://vbelolapotkov.com/&lt;/a&gt;&lt;br&gt;
Gatsby, Netlify CMS, Gitlab Pages for hosting&lt;br&gt;&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__user ltag__user__id__261387"&gt;
  
    .ltag__user__id__261387 .follow-action-button {
      background-color: #61122f !important;
      color: #ffffff !important;
      border-color: #61122f !important;
    }
  
    &lt;a href="/vbelolapotkov" class="ltag__user__link profile-image-link"&gt;
      &lt;div class="ltag__user__pic"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GJSaJJP---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--OMAEIzOJ--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/261387/43ed1a96-1e2a-447b-89d3-ebf6459320f6.jpeg" alt="vbelolapotkov image"&gt;
      &lt;/div&gt;
    &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
&lt;a class="ltag__user__link" href="/vbelolapotkov"&gt;Vasily Belolapotkov&lt;/a&gt;
&lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a class="ltag__user__link" href="/vbelolapotkov"&gt;&lt;/a&gt;
    &lt;/div&gt;
    &lt;p class="ltag__user__social"&gt;
        &lt;a href="https://github.com/vbelolapotkov" rel="noopener"&gt;
          &lt;img class="icon-img" alt="github logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--C74Jn3f1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo.svg"&gt;vbelolapotkov
        &lt;/a&gt;
    &lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;





&lt;p&gt;&lt;a href="https://heyayush.com/"&gt;https://heyayush.com/&lt;/a&gt;&lt;br&gt;
Gatsby, Netlify, and Circle-CI &lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__user ltag__user__id__181720"&gt;
  
    .ltag__user__id__181720 .follow-action-button {
      background-color: #093656 !important;
      color: #FFFFFF !important;
      border-color: #093656 !important;
    }
  
    &lt;a href="/hey_ayush" class="ltag__user__link profile-image-link"&gt;
      &lt;div class="ltag__user__pic"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UAsOxErm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--B1HW_mEo--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/181720/1d46f4f0-801d-44ef-81b5-70afd69b1bb9.png" alt="hey_ayush image"&gt;
      &lt;/div&gt;
    &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
&lt;a class="ltag__user__link" href="/hey_ayush"&gt;Ayush Sharma&lt;/a&gt;
&lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a class="ltag__user__link" href="/hey_ayush"&gt;Full-stack developer, front-end specialist&lt;/a&gt;
    &lt;/div&gt;
    &lt;p class="ltag__user__social"&gt;
        &lt;a href="https://github.com/heyayush" rel="noopener"&gt;
          &lt;img class="icon-img" alt="github logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--C74Jn3f1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo.svg"&gt;heyayush
        &lt;/a&gt;
        &lt;a href="https://heyayush.com" rel="noopener"&gt;
          &lt;img class="icon-img" alt="external link icon" src="https://res.cloudinary.com/practicaldev/image/fetch/s--WsHTbjfA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/link.svg"&gt;https://heyayush.com
        &lt;/a&gt;
    &lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;





&lt;p&gt;&lt;a href="http://www.cpuremake.tv/"&gt;http://www.cpuremake.tv/&lt;/a&gt;&lt;br&gt;
HTML, CSS, JS&lt;br&gt;&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__user ltag__user__id__201503"&gt;
  
    .ltag__user__id__201503 .follow-action-button {
      background-color: #ffffff !important;
      color: #fb6a6a !important;
      border-color: #fb6a6a !important;
    }
  
    &lt;a href="/courtneypure" class="ltag__user__link profile-image-link"&gt;
      &lt;div class="ltag__user__pic"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--AAwciI4H--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--eL8Z9Oh_--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/201503/1f9e1adb-4880-44cd-9532-1c24243b5305.jpeg" alt="courtneypure image"&gt;
      &lt;/div&gt;
    &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
&lt;a class="ltag__user__link" href="/courtneypure"&gt;C. Pure&lt;/a&gt;
&lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a class="ltag__user__link" href="/courtneypure"&gt;Your friendly neighborhood Animator that's learning web dev!&lt;/a&gt;
    &lt;/div&gt;
    &lt;p class="ltag__user__social"&gt;
        &lt;a href="https://twitter.com/CourtneyPure" rel="noopener"&gt;
          &lt;img class="icon-img" alt="twitter logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--oEHrSmvE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-logo.svg"&gt;CourtneyPure
        &lt;/a&gt;
        &lt;a href="https://github.com/courtneypure" rel="noopener"&gt;
          &lt;img class="icon-img" alt="github logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--C74Jn3f1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo.svg"&gt;courtneypure
        &lt;/a&gt;
        &lt;a href="http://CPureMake.tv" rel="noopener"&gt;
          &lt;img class="icon-img" alt="external link icon" src="https://res.cloudinary.com/practicaldev/image/fetch/s--WsHTbjfA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/link.svg"&gt;http://CPureMake.tv
        &lt;/a&gt;
    &lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;





&lt;p&gt;If any of the examples I’ve linked are out of date, or you have one you would like added, let me know and I’ll update/add them!&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>webdev</category>
      <category>career</category>
      <category>showdev</category>
    </item>
    <item>
      <title>What tech did you use to build your personal website/portfolio?</title>
      <dc:creator>Jacob Baker</dc:creator>
      <pubDate>Tue, 17 Dec 2019 10:02:39 +0000</pubDate>
      <link>https://dev.to/thatonejakeb/what-tech-did-you-use-to-build-your-personal-website-portfolio-55i</link>
      <guid>https://dev.to/thatonejakeb/what-tech-did-you-use-to-build-your-personal-website-portfolio-55i</guid>
      <description>&lt;p&gt;Over the festive period I'm planning to redo my personal website.&lt;/p&gt;

&lt;p&gt;So, for a hit of inspiration, what tech did you use to build yours?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;And feel free to shamelessly plug it if you answer!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>career</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Dev Christmas Songs</title>
      <dc:creator>Jacob Baker</dc:creator>
      <pubDate>Sun, 15 Dec 2019 20:27:31 +0000</pubDate>
      <link>https://dev.to/thatonejakeb/dev-christmas-songs-5eo8</link>
      <guid>https://dev.to/thatonejakeb/dev-christmas-songs-5eo8</guid>
      <description>&lt;p&gt;The festive period is upon us, let’s here your cheesy developer versions of classic songs!&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>offtopic</category>
      <category>watercooler</category>
      <category>christmas</category>
    </item>
    <item>
      <title>3 More Common Beginner Python Mistakes</title>
      <dc:creator>Jacob Baker</dc:creator>
      <pubDate>Sat, 14 Dec 2019 12:01:03 +0000</pubDate>
      <link>https://dev.to/thatonejakeb/3-more-common-beginner-python-mistakes-3g8k</link>
      <guid>https://dev.to/thatonejakeb/3-more-common-beginner-python-mistakes-3g8k</guid>
      <description>&lt;p&gt;Another year, another set of bright-eyed enthusiastic students.&lt;/p&gt;

&lt;p&gt;Now we're coming to the end of the first semester, here is 3 more common mistakes I've come across whilst teaching beginners.&lt;/p&gt;

&lt;h4&gt;
  
  
  Copying and Pasting Code
&lt;/h4&gt;

&lt;p&gt;This is a bugbear more than anything; however, it does have some potentially serious side effects. It is slightly different to the classic copying and pasting from a source without understanding what the code is doing&lt;/p&gt;

&lt;p&gt;Without fail this crops up every year, a completely random error in perfectly fine looking code.&lt;/p&gt;

&lt;p&gt;Take a look at this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="err"&gt;‏‏‎&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;

&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;If I copy and paste that snippet in to Visual Code and try to run it I get:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight python"&gt;&lt;code&gt;    &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="err"&gt;‏‏‎&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;
      &lt;span class="o"&gt;^&lt;/span&gt;
&lt;span class="nb"&gt;SyntaxError&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;invalid&lt;/span&gt; &lt;span class="n"&gt;syntax&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Uhhh, what? I'm &lt;em&gt;pretty sure&lt;/em&gt; that is how you assign a value to a variable...&lt;/p&gt;

&lt;p&gt;So why does it fail...? Because I've added a hidden character to it.&lt;/p&gt;

&lt;p&gt;The problem here is I've had new developers sit and stare at their screen in frustration for longer than they care to admit because they can't figure out why this seemingly simple piece of code doesn't run.&lt;/p&gt;

&lt;p&gt;Just &lt;em&gt;be careful&lt;/em&gt; when copying code from PDFs, online, or wherever because quite often you'll run in to random errors &lt;strong&gt;but more importantly&lt;/strong&gt; you may even end up copying something &lt;a href="https://security.stackexchange.com/questions/39118/how-can-i-protect-myself-from-this-kind-of-clipboard-abuse"&gt;malicious&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Of course you could end up with someone doing it on purpose like a certain lecturer I had at University to &lt;em&gt;force&lt;/em&gt; us to write the code out...&lt;/p&gt;

&lt;h4&gt;
  
  
  Variable Scope
&lt;/h4&gt;

&lt;p&gt;What does this snippet print?&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;foo&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;

    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;foo&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Those that said &lt;code&gt;20&lt;/code&gt; then &lt;code&gt;5&lt;/code&gt; give yourself a pat on the back.&lt;/p&gt;

&lt;p&gt;We had just introduced the concept of functions to the students, and how to use them to eliminate repeated parts of their code, and all of a sudden it was acting weird.&lt;/p&gt;

&lt;p&gt;What the above snippet demonstrates is local function v.s. global scope. &lt;code&gt;x&lt;/code&gt; here is defined inside the function as a local variable &lt;em&gt;to that function&lt;/em&gt; that &lt;a href="https://en.wikipedia.org/wiki/Variable_shadowing"&gt;shadows&lt;/a&gt; the global variable named &lt;code&gt;x&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Python uses the LEGB (Local, Enclosed, Global, Built-in) rule when resolving variable scope. This is the snippet I use to show students how scope bubbles up:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;math&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;pi&lt;/span&gt;

&lt;span class="c1"&gt;#pi = 10
&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;foo&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="c1"&gt;#pi = 20
&lt;/span&gt;    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"local: "&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pi&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;bar&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
        &lt;span class="c1"&gt;#pi = 30
&lt;/span&gt;        &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"enclosed: "&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pi&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;bar&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;foo&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"global: "&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pi&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Which gives&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;local:  3.141592653589793
enclosed:  3.141592653589793
global:  3.141592653589793
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Or with the &lt;code&gt;pi&lt;/code&gt; variable declarations uncommented:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;local:  20
enclosed:  30
global:  10
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;So what is the output when I try this next snippet?&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;foo&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;

    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;foo&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;2? No… 7? Nope… &lt;code&gt;UnboundLocalError&lt;/code&gt;? Yep.&lt;/p&gt;

&lt;p&gt;But why? The other example quite happily gave us &lt;code&gt;10&lt;/code&gt; when just printing!&lt;/p&gt;

&lt;p&gt;There are some &lt;a href="https://nbviewer.jupyter.org/github/rasbt/python_reference/blob/master/tutorials/scope_resolution_legb_rule.ipynb"&gt;good&lt;/a&gt; and &lt;a href="https://eli.thegreenplace.net/2011/05/15/understanding-unboundlocalerror-in-python"&gt;in-depth&lt;/a&gt; explanations as to why this is the case and do a much better job of explaining the &lt;em&gt;why&lt;/em&gt; than I could here.&lt;/p&gt;

&lt;p&gt;Nonetheless, the solution to this is adding the &lt;code&gt;global&lt;/code&gt; definition so that Python knows where to find the value of &lt;code&gt;x&lt;/code&gt; before assignment:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;foo&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;global&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;
    &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;

    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;foo&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h4&gt;
  
  
  Redefining Built-in Functions
&lt;/h4&gt;

&lt;p&gt;This really is a follow on from the previous point about scope and how it can crop up in other places.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="p"&gt;...&lt;/span&gt; &lt;span class="n"&gt;snip&lt;/span&gt;&lt;span class="p"&gt;...&lt;/span&gt;

&lt;span class="nb"&gt;input&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Continue? (Y/N): "&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="p"&gt;...&lt;/span&gt; &lt;span class="n"&gt;snip&lt;/span&gt;&lt;span class="p"&gt;...&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;A fair number of students had this in their code where they had accidentally redefined the input function in the program, then tried to use it later on.&lt;/p&gt;

&lt;p&gt;As the &lt;code&gt;pi&lt;/code&gt; example demonstrated what has happened is &lt;code&gt;input&lt;/code&gt; now has the value of that string rather than being the built-in &lt;code&gt;input&lt;/code&gt; function.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>python</category>
      <category>codenewbie</category>
      <category>programming</category>
    </item>
    <item>
      <title>I still have to Google...</title>
      <dc:creator>Jacob Baker</dc:creator>
      <pubDate>Fri, 13 Dec 2019 23:15:39 +0000</pubDate>
      <link>https://dev.to/thatonejakeb/i-still-have-to-google-2ghh</link>
      <guid>https://dev.to/thatonejakeb/i-still-have-to-google-2ghh</guid>
      <description>&lt;p&gt;Javascript foreach loop syntax.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nx"&gt;y&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;No...&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;foreach&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="nx"&gt;y&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Nope...&lt;/p&gt;

&lt;p&gt;&lt;em&gt;... checks...&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;forEach&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;y&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;That’s the one I’m after!&lt;/p&gt;

&lt;p&gt;Hi, I’m Jake, a lead developer. I’ve been programming for 15 years, 10 of those professionally.&lt;/p&gt;

&lt;p&gt;This is something I continually try to get over to students/new developers. Even after all these years there are things I can’t remember and have to look up.&lt;/p&gt;

&lt;p&gt;So, what do you have to google?&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>programming</category>
      <category>codenewbie</category>
      <category>beginners</category>
    </item>
    <item>
      <title>What tech &amp; dev related podcasts should I listen to?</title>
      <dc:creator>Jacob Baker</dc:creator>
      <pubDate>Wed, 11 Dec 2019 23:04:15 +0000</pubDate>
      <link>https://dev.to/thatonejakeb/what-tech-dev-related-podcasts-should-i-listen-to-4447</link>
      <guid>https://dev.to/thatonejakeb/what-tech-dev-related-podcasts-should-i-listen-to-4447</guid>
      <description>&lt;p&gt;Lately I’m finding myself catching the train to work more often and as a result having extra time to zone out.&lt;/p&gt;

&lt;p&gt;There is a distinct tech and dev shaped hole in my podcast library that I would really like to fill— so, what podcasts would you recommend?&lt;/p&gt;

&lt;p&gt;I’m a full-stack lead developer in my day job so I’m open to any topics relating to tech or the industry!&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>podcast</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
