<?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: Tim Bogdanov</title>
    <description>The latest articles on DEV Community by Tim Bogdanov (@timbogdanov).</description>
    <link>https://dev.to/timbogdanov</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%2F464760%2F6993109d-931d-4652-8c9b-52f25830c2ea.jpeg</url>
      <title>DEV Community: Tim Bogdanov</title>
      <link>https://dev.to/timbogdanov</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/timbogdanov"/>
    <language>en</language>
    <item>
      <title>Setting up Laravel Cashier (Managing Subscriptions)</title>
      <dc:creator>Tim Bogdanov</dc:creator>
      <pubDate>Sun, 11 Dec 2022 01:58:04 +0000</pubDate>
      <link>https://dev.to/timbogdanov/setting-up-laravel-cashier-managing-subscriptions-3jao</link>
      <guid>https://dev.to/timbogdanov/setting-up-laravel-cashier-managing-subscriptions-3jao</guid>
      <description>&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Install the Laravel Cashier package by running &lt;code&gt;composer require laravel/cashier&lt;/code&gt; in your terminal.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Add the &lt;code&gt;Laravel\Cashier\CashierServiceProvider::class&lt;/code&gt; to the providers array in your &lt;code&gt;config/app.php&lt;/code&gt; file.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Run the &lt;code&gt;php artisan vendor:publish --provider="Laravel\Cashier\CashierServiceProvider"&lt;/code&gt; command to publish the package's configuration file to your application.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Add the &lt;code&gt;Billable&lt;/code&gt; trait to your user model, which will give your users the ability to manage their subscriptions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Add the necessary columns to your users table by running the &lt;code&gt;php artisan migrate&lt;/code&gt; command.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In your user model, define a &lt;code&gt;plan&lt;/code&gt; attribute that specifies the name of the subscription plan your users can subscribe to.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In your application's subscription logic, you can use Laravel Cashier's methods to create subscriptions, manage plans, and handle billing. For example, you can use the &lt;code&gt;subscription()&lt;/code&gt; method to retrieve the user's current subscription, and the &lt;code&gt;newSubscription()&lt;/code&gt; method to create a new subscription for the user.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I hope this helps! Let me know if you have any other questions.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>github</category>
      <category>showdev</category>
      <category>career</category>
    </item>
    <item>
      <title>Show &amp; Hide Passwords with React</title>
      <dc:creator>Tim Bogdanov</dc:creator>
      <pubDate>Thu, 08 Oct 2020 21:07:08 +0000</pubDate>
      <link>https://dev.to/timbogdanov/show-hide-password-with-react-4mlk</link>
      <guid>https://dev.to/timbogdanov/show-hide-password-with-react-4mlk</guid>
      <description>&lt;h1&gt;
  
  
  Understanding React useState Hook
&lt;/h1&gt;

&lt;p&gt;To understand the work around of showing and hiding password string inside of an input field we must first understand the useState hook.&lt;/p&gt;

&lt;p&gt;Elements state inside of basic React apps is managed by something called a useState hook. Bodies of data like javascript objects, arrays, string, booleans, etc. can be stored inside of a useState variable. &lt;/p&gt;

&lt;h3&gt;
  
  
  For example:
&lt;/h3&gt;



&lt;div class="highlight js-code-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;showPassword&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;setShowPassword&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the example above we assign &lt;code&gt;showPassword&lt;/code&gt; to false by default. After that comes the setter variable. We can use that whenever someone clicks on a button/icon to reveal the password.&lt;/p&gt;

&lt;h3&gt;
  
  
  For example
&lt;/h3&gt;



&lt;div class="highlight js-code-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;showPassword&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;setShowPassword&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="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;togglePass&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&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;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;preventDefault&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;// Important! If you don't include this your page will refresh&lt;/span&gt;

  &lt;span class="nx"&gt;setShowPassword&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;showPassword&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="o"&gt;&amp;lt;&amp;gt;&lt;/span&gt;
  &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;form&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;input&lt;/span&gt; &lt;span class="nx"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;password&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="o"&gt;/&amp;gt;&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;onClick&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;togglePass&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;Toggle&lt;/span&gt; &lt;span class="nx"&gt;Password&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;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/form&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As you can see from the example above, we have a function that set the showPassword to the opposite of what it currently is -- if its true set it to false, if its false set it to true.&lt;/p&gt;

&lt;p&gt;After that we have a simple form field with one input and a button. The onClick on the button is set the the togglePass function. So whenever you click on the button it will perform the simple task of switching it from true to false and vice-versa.&lt;/p&gt;

&lt;p&gt;This is where the magic happens. As you probably noticed, we hard coded the type on input in the code above. Lets fix that.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-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;showPassword&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;setShowPassword&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="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;togglePass&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&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;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;preventDefault&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;// Important! If you don't include this your page will refresh&lt;/span&gt;

  &lt;span class="nx"&gt;setShowPassword&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;showPassword&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="o"&gt;&amp;lt;&amp;gt;&lt;/span&gt;
  &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;form&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;input&lt;/span&gt; &lt;span class="nx"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;showPassword&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;password&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;text&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&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;onClick&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;togglePass&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;Toggle&lt;/span&gt; &lt;span class="nx"&gt;Password&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;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/form&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Using a ternary operation we can set a conditional statment. In plain English it reads as follows:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;If showPassword is true, then set the input type to password. If it is not true (false), then set the input type to text.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;With these few lines of code we can easily create a show and hide for a password form field in React!&lt;/p&gt;

</description>
      <category>react</category>
      <category>signup</category>
      <category>authentication</category>
      <category>form</category>
    </item>
    <item>
      <title>The 5 Best Code Editors For Web Development</title>
      <dc:creator>Tim Bogdanov</dc:creator>
      <pubDate>Tue, 22 Sep 2020 03:58:14 +0000</pubDate>
      <link>https://dev.to/timbogdanov/the-5-best-code-editors-for-web-development-315c</link>
      <guid>https://dev.to/timbogdanov/the-5-best-code-editors-for-web-development-315c</guid>
      <description>&lt;h1&gt;
  
  
  Panic
&lt;/h1&gt;

&lt;p&gt;Recently Panic released their new text editor called &lt;a href="https://nova.app/?ref=producthunt"&gt;Nova&lt;/a&gt; which reminded me of a short period of time at some point when I had a chance to use one of their text editors called &lt;a href="https://panic.com/coda/"&gt;Coda 2&lt;/a&gt;. Which prompted me to look back and remember all the text editors that I've had a chance to interact with. This is that list.&lt;/p&gt;

&lt;p&gt;Based on a report from &lt;a href="https://www.software.com/src/ranking-the-top-5-code-editors-2019"&gt;software.com&lt;/a&gt; these are the rating gives to 3 of the 5 text editors that I mention in this article.&lt;/p&gt;

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

&lt;h2&gt;
  
  
  1 &lt;a href="https://code.visualstudio.com/"&gt;Visual Studio Code&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;This has got to be my favorite by far, and unless someone creates something that absolutely outgrowns the VS Code community, I do not plan on switching anytime soon.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rTy68vrD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/x7ofl8oqpdpwrtvtl873.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rTy68vrD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/x7ofl8oqpdpwrtvtl873.png" alt="Alt Text" width="880" height="252"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2 &lt;a href="https://www.sublimetext.com/"&gt;Sublime Text 3&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;This text editor for quite a long time was my go to. I've tried every popular package there is but unfortunately support for then does not live up to my and many others standards, which is why I made the switch over 6 months ago.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Br7Zn4zq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/0digcs4bhfglniuocv68.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Br7Zn4zq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/0digcs4bhfglniuocv68.png" alt="Alt Text" width="880" height="252"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3 &lt;a href="https://atom.io/"&gt;Atom by Github&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;I've tried Atom for about a month, but for some reason it just didn't work out for me. Something about it felt odd.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Sxc9dd1n--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/23i4vx782kpuzwgcpanj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Sxc9dd1n--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/23i4vx782kpuzwgcpanj.png" alt="Alt Text" width="880" height="252"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  4 &lt;a href="https://nova.app/?ref=producthunt"&gt;Nova by Panic&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Way back when I was first introduced to web development, I was shown Code 2 by my brother. I had no clue what I was doing when I was creating those HTML and CSS files but it quickly sparked my interest. Panic has come out with a new Text editor a few days ago called Nova, and I'll definitely be giving it a try.&lt;/p&gt;

&lt;h2&gt;
  
  
  5 &lt;a href="http://brackets.io/"&gt;Brackets&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Years ago while still learning to code I somehow came across brackets and as far as I can remember, their tag line was 'made completely in javascript' (at the time I had not the slightest clue was this javascript was, but I liked the sound of it).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://icons8.com/illustrations"&gt;Vector Illustration&lt;/a&gt;&lt;/p&gt;

</description>
      <category>editor</category>
      <category>webdev</category>
      <category>sublime</category>
      <category>vscode</category>
    </item>
    <item>
      <title>Dribbble Giveaway</title>
      <dc:creator>Tim Bogdanov</dc:creator>
      <pubDate>Mon, 21 Sep 2020 17:52:19 +0000</pubDate>
      <link>https://dev.to/timbogdanov/1-dribbble-invite-57i4</link>
      <guid>https://dev.to/timbogdanov/1-dribbble-invite-57i4</guid>
      <description>&lt;p&gt;I recently received a dribbble invite to give away. I'll be giving it away tomorrow. If you'd like a chance to win it, please send me an email to &lt;em&gt;&lt;a href="mailto:tim.the.bogdanov@gmail.com"&gt;tim.the.bogdanov@gmail.com&lt;/a&gt;&lt;/em&gt; with 1 or more pieces of your work to be considered.&lt;/p&gt;

</description>
      <category>dribbble</category>
      <category>invite</category>
      <category>giveaway</category>
    </item>
    <item>
      <title>Multi-Step Sign Up Process with React</title>
      <dc:creator>Tim Bogdanov</dc:creator>
      <pubDate>Fri, 18 Sep 2020 21:22:22 +0000</pubDate>
      <link>https://dev.to/timbogdanov/multi-step-sign-up-process-with-react-43od</link>
      <guid>https://dev.to/timbogdanov/multi-step-sign-up-process-with-react-43od</guid>
      <description>&lt;p&gt;Finished result: &lt;a href="https://multi-page-signup.vercel.app/"&gt;Multi-Step Sign Up Process&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Setting up the UserForm container
&lt;/h1&gt;

&lt;p&gt;I usually start all my react projects by running&lt;br&gt;
&lt;code&gt;npx create-react-app my-app&lt;/code&gt;. After I've taken care of that I'll start by creating a UserForm.js file. this will house all of our components for each step in the multi-step sign up process.&lt;/p&gt;

&lt;p&gt;if you have &lt;a href="https://marketplace.visualstudio.com/items?itemName=dsznajder.es7-react-js-snippets"&gt;ES7 React/Redux/GraphQL/React-Native snippets&lt;br&gt;
&lt;/a&gt; installed, just type &lt;code&gt;rafce&lt;/code&gt; and hit tab. This will create a simple react arrow function component template. Like so:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;React&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;react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;UserForm&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="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;

    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&lt;/span&gt;&lt;span class="err"&gt;&amp;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="k"&gt;default&lt;/span&gt; &lt;span class="nx"&gt;UserForm&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once that is set up, lets start by create a state object that will hold out step number and each detail we'd like to collect. Like so:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;initialState&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// Step counter will start at step 1 by default&lt;/span&gt;
  &lt;span class="na"&gt;step&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;

  &lt;span class="na"&gt;companyName&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;companyEmail&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;companyPhone&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;

  &lt;span class="na"&gt;cardholderName&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;cardNumber&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;expMonth&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;expYear&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;securityCode&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;address&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;address2&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;city&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;state&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;zip&lt;/span&gt;&lt;span class="p"&gt;:&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And inside the UserForm component set the state:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Initialize form state with initialState object&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;form&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;setForm&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="nx"&gt;initialState&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Next we'll need 2 functions that will handle the button click of &lt;code&gt;Next Step&lt;/code&gt; and &lt;code&gt;Previous Step&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;  &lt;span class="c1"&gt;// Proceed to the next step&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;nextStep&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&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;setForm&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="nx"&gt;form&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;step&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;form&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;step&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="p"&gt;};&lt;/span&gt;

  &lt;span class="c1"&gt;// Go back to previous step&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;previousStep&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;setForm&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="nx"&gt;form&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;step&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;form&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;step&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="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Next we need to use the switch and case and set up a sase statement for each step.:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// You can create as many steps as your like and store them in separate components.&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;form&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;step&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="mi"&gt;1&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="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;FromUserDetails&lt;/span&gt;
          &lt;span class="nx"&gt;nextStep&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;nextStep&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
          &lt;span class="nx"&gt;handleInput&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;handleInput&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
          &lt;span class="nx"&gt;form&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;form&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;      &lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="mi"&gt;2&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="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;FormPersonalDetails&lt;/span&gt;
          &lt;span class="nx"&gt;nextStep&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;nextStep&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
          &lt;span class="nx"&gt;previousStep&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;previousStep&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
          &lt;span class="nx"&gt;handleInput&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;handleInput&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
          &lt;span class="nx"&gt;form&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;form&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;      &lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
      &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;FormSuccess&lt;/span&gt; &lt;span class="o"&gt;/&amp;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="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;Make sure to pass in the nextStep and previousStep functions into each step component. Also don't forget to create a Finished Component to let the user know that they completed the process.&lt;/p&gt;

&lt;p&gt;Inside of each step component you can set up the inputs and handle changes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://icons8.com/illustrations"&gt;Vector Illustration&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Full-Stack Youtubers to Follow 🏃 — From Beginner Expert</title>
      <dc:creator>Tim Bogdanov</dc:creator>
      <pubDate>Fri, 18 Sep 2020 06:22:03 +0000</pubDate>
      <link>https://dev.to/timbogdanov/youtubers-to-follow-1oj7</link>
      <guid>https://dev.to/timbogdanov/youtubers-to-follow-1oj7</guid>
      <description>&lt;h1&gt;
  
  
  Everyone Starts Somewhere
&lt;/h1&gt;

&lt;p&gt;Everyone single one of us had a beginning. Learning to code can be tough and frustrating. My journey started in 2014 when I learned about a youtube channel that would change my life forever. This is a life of the Youtubers that guided me along in discovering new technologies and learning them from the ground up.&lt;/p&gt;

&lt;p&gt;This list does not in anyway reflect the order of my least and most favorite.&lt;/p&gt;

&lt;h3&gt;
  
  
  #1 &lt;a href="https://www.youtube.com/user/thenewboston" rel="noopener noreferrer"&gt;TheNewBoston&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpuu.sh%2FGtSJo%2Fb02f995cb8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpuu.sh%2FGtSJo%2Fb02f995cb8.png" alt="Alt Image"&gt;&lt;/a&gt;&lt;br&gt;
I guess you could say &lt;code&gt;Bucky Roberts&lt;/code&gt; introduced me to Web Development. For the longest time I'd follow every single one of his videos and frankly he deserves everything that has brought be to where I am today.&lt;/p&gt;

&lt;h3&gt;
  
  
  #2 &lt;a href="https://www.youtube.com/user/phpacademy" rel="noopener noreferrer"&gt;Codecourse (Formally Php Academy)&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpuu.sh%2FGtSM8%2F8b7012a3c5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpuu.sh%2FGtSM8%2F8b7012a3c5.png" alt="Alt Image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  #3 &lt;a href="https://www.youtube.com/c/adamthedev/videos" rel="noopener noreferrer"&gt;adamthedev&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpuu.sh%2FGtSN0%2F018e5aa584.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpuu.sh%2FGtSN0%2F018e5aa584.png" alt="Alt Image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  #4 &lt;a href="https://www.youtube.com/channel/UC-8QAzbLcRglXeN_MY9blyw" rel="noopener noreferrer"&gt;Ben Awad&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpuu.sh%2FGtSTm%2Fd7f7f91dc1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpuu.sh%2FGtSTm%2Fd7f7f91dc1.png" alt="Alt Image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  #5 &lt;a href="https://www.youtube.com/c/ColtSteeleCode/videos" rel="noopener noreferrer"&gt;Colt Steele&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpuu.sh%2FGtSP1%2F99dac18099.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpuu.sh%2FGtSP1%2F99dac18099.png" alt="Alt Image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  #6 &lt;a href="https://www.youtube.com/channel/UClb90NQQcskPUGDIXsQEz5Q" rel="noopener noreferrer"&gt;Dev Ed&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpuu.sh%2FGtSPP%2Ff0006747e3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpuu.sh%2FGtSPP%2Ff0006747e3.png" alt="Alt Image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  #7 &lt;a href="https://www.youtube.com/c/AngularFirebase/videos" rel="noopener noreferrer"&gt;Fireship&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpuu.sh%2FGtSQF%2Fcbd3c76e63.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpuu.sh%2FGtSQF%2Fcbd3c76e63.png" alt="Alt Image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  #8 &lt;a href="https://www.youtube.com/channel/UC8butISFwT-Wl7EV0hUK0BQ" rel="noopener noreferrer"&gt;freeCodeCamp.org&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpuu.sh%2FGtSRE%2F73999be934.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpuu.sh%2FGtSRE%2F73999be934.png" alt="Alt Image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  #9 &lt;a href="https://www.youtube.com/c/hswolff/videos" rel="noopener noreferrer"&gt;Harry Wolff&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpuu.sh%2FGtSSh%2F3a84797fd0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpuu.sh%2FGtSSh%2F3a84797fd0.png" alt="Alt Image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  #10 &lt;a href="https://www.youtube.com/c/ChandlerKeyes/videos" rel="noopener noreferrer"&gt;CodingWithChandler&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpuu.sh%2FGtSVK%2F57972c4e94.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpuu.sh%2FGtSVK%2F57972c4e94.png" alt="Alt Image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://icons8.com/illustrations" rel="noopener noreferrer"&gt;Vector Illustration&lt;/a&gt;&lt;/p&gt;

</description>
      <category>youtube</category>
      <category>educational</category>
      <category>react</category>
      <category>node</category>
    </item>
    <item>
      <title>Custom VS Code Theme</title>
      <dc:creator>Tim Bogdanov</dc:creator>
      <pubDate>Fri, 18 Sep 2020 04:59:47 +0000</pubDate>
      <link>https://dev.to/timbogdanov/custom-vs-code-theme-3agi</link>
      <guid>https://dev.to/timbogdanov/custom-vs-code-theme-3agi</guid>
      <description>&lt;p&gt;Recently I came across an article on Dev.to talking about how to create your own VS Code Extensions. This was somewhat news to me, in the back of my mind I understood that most extensions are created by a community but I never looked into the process.&lt;/p&gt;

&lt;p&gt;This is where &lt;a href="https://marketplace.visualstudio.com/items?itemName=TimBogdanov.black-sand"&gt;Black Sand&lt;/a&gt; was born. For over 40 hours of tinkering and playing around with the VS Code Theme JSON file.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pmOLIA9v--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://puu.sh/GtHgs/5a45a6cfd7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pmOLIA9v--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://puu.sh/GtHgs/5a45a6cfd7.png" alt="Alt Image" width="880" height="655"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feel free to &lt;a href="https://marketplace.visualstudio.com/items?itemName=TimBogdanov.black-sand"&gt;Download&lt;/a&gt; and &lt;a href="https://github.com/timbogdanov/Black-Sand-VS-Code-Theme"&gt;Contribute&lt;/a&gt;!&lt;/p&gt;

&lt;h2&gt;
  
  
  React JS
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--U769_yjX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://puu.sh/GtH9h/f736906525.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--U769_yjX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://puu.sh/GtH9h/f736906525.png" alt="Alt Image" width="880" height="669"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  HTML
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zli7qzQW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://puu.sh/GtHh9/d67c2dd655.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zli7qzQW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://puu.sh/GtHh9/d67c2dd655.png" alt="Alt Image" width="880" height="628"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  CSS
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lHKn1b5I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://puu.sh/GtHcE/e6af187ebb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lHKn1b5I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://puu.sh/GtHcE/e6af187ebb.png" alt="Alt Image" width="880" height="992"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://icons8.com/illustrations"&gt;Vector Illustration&lt;/a&gt;&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>customtheme</category>
      <category>microsoft</category>
      <category>visualstudio</category>
    </item>
    <item>
      <title>Why VS Code? (Setup)</title>
      <dc:creator>Tim Bogdanov</dc:creator>
      <pubDate>Wed, 16 Sep 2020 21:15:03 +0000</pubDate>
      <link>https://dev.to/timbogdanov/why-vs-code-setup-50el</link>
      <guid>https://dev.to/timbogdanov/why-vs-code-setup-50el</guid>
      <description>&lt;h2&gt;
  
  
  Why VS Code?
&lt;/h2&gt;

&lt;p&gt;VS Code is one &lt;em&gt;of&lt;/em&gt; if not &lt;strong&gt;the&lt;/strong&gt; most poplular free text editor on the market. In a survey done in 2019, over 4.9 million developers use VS Code.&lt;/p&gt;

&lt;p&gt;In the past, when I was just introduced to web development I quickly learned about Sublime Text 2. Sublime was ok, it was my go to text editor for a long time, &lt;em&gt;but&lt;/em&gt; it lacked a community. Sure there was something called the &lt;strong&gt;&lt;a href="https://packagecontrol.io/" rel="noopener noreferrer"&gt;Sublime Package Control&lt;/a&gt;&lt;/strong&gt; but it was quite limited and still is. And often you'd find a package you like only to find out that the package has not been updated for the paste 2-3 years.&lt;/p&gt;

&lt;p&gt;About a half year ago I learned about VS Code. I've heard about it before that but for some reason I refused to look at it. I am a macOS user and hearing about a Microsoft product did not resonate with me.&lt;/p&gt;

&lt;p&gt;I enjoy using VS Code for 3 simple reasons.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;VS Code is Free.&lt;/li&gt;
&lt;li&gt;VS Code offers integrations with GitHub.&lt;/li&gt;
&lt;li&gt;VS Code has an enormous library of community create packages, themes, etc.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  My VS Code Setup
&lt;/h2&gt;

&lt;p&gt;My theme for choice for a while now has been &lt;a href="https://marketplace.visualstudio.com/items?itemName=siddharthkp.codesandbox-black" rel="noopener noreferrer"&gt;CodeSandbox Black&lt;/a&gt; this theme tries to replicate the default theme for &lt;a href="http://codesandbox.io/" rel="noopener noreferrer"&gt;CodeSandbox&lt;/a&gt;. I'm a sucker for dark themes! 😜&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fuser-images.githubusercontent.com%2F1863771%2F89527703-10a83680-d7ea-11ea-920a-402e8005df92.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fuser-images.githubusercontent.com%2F1863771%2F89527703-10a83680-d7ea-11ea-920a-402e8005df92.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As Many of you, I use over 10 - 15 VS Code extensions on a daily basis. Here are a few of them.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;a href="https://marketplace.visualstudio.com/items?itemName=formulahendry.auto-close-tag" rel="noopener noreferrer"&gt;Auto Close Tag&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;By default VS Code doesn't close your HTML/XML tags for you, which quickly became frustrating. This extension closes your tags for you.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F2d7zqngqrd9p1dbfde0n.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F2d7zqngqrd9p1dbfde0n.gif" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;a href="https://marketplace.visualstudio.com/items?itemName=formulahendry.auto-rename-tag" rel="noopener noreferrer"&gt;Auto Rename Tag&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;Brought to you by the same Developer of Auto Close Tag. This extension changes the name of the closing tag for you.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fxlyql3matteleyil612k.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fxlyql3matteleyil612k.gif" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;a href="https://marketplace.visualstudio.com/items?itemName=CoenraadS.bracket-pair-colorizer-2" rel="noopener noreferrer"&gt;Bracket Pair Colorizer 2&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;When working with large files containing large amounts of code, it becomes &lt;strong&gt;very&lt;/strong&gt; easy to get lost. Bracket Pair Colorizer 2 creates a clear colored line before a start of a code block and the end.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpuu.sh%2FGtnAw%2Fc4f0d31759.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpuu.sh%2FGtnAw%2Fc4f0d31759.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;a href="https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens" rel="noopener noreferrer"&gt;GitLens - Git supercharged&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;If you're not familiar with GitLens, go and add it to your extensions now!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpuu.sh%2FGtnMn%2F2c3740cf1d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpuu.sh%2FGtnMn%2F2c3740cf1d.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This extension allows you to see line by line, who the owner is, when it was committed, and what the commit message was.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;While there are many other worthy mentions, I'll keep this list short. If you'd like a full list of my extensions, feel free to ask.&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>react</category>
      <category>node</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
