<?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: DX Knight</title>
    <description>The latest articles on DEV Community by DX Knight (@seyyedkhandon).</description>
    <link>https://dev.to/seyyedkhandon</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%2F406231%2F2864bc12-4055-4d05-8f96-b22855e351ab.jpg</url>
      <title>DEV Community: DX Knight</title>
      <link>https://dev.to/seyyedkhandon</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/seyyedkhandon"/>
    <language>en</language>
    <item>
      <title>The Best VSCode Git Extension Pack</title>
      <dc:creator>DX Knight</dc:creator>
      <pubDate>Sun, 28 May 2023 14:10:16 +0000</pubDate>
      <link>https://dev.to/seyyedkhandon/the-best-vscode-git-extension-pack-4k1l</link>
      <guid>https://dev.to/seyyedkhandon/the-best-vscode-git-extension-pack-4k1l</guid>
      <description>&lt;p&gt;It Automatically set the &lt;strong&gt;best configurations&lt;/strong&gt; of these extensions for you and it has 2 commands for manually activate/deactivate. &lt;/p&gt;

&lt;p&gt;Features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Supercharge the Git capabilities built into Visual Studio Code — Visualize code authorship at a glance via Git blame annotations and code lens, seamlessly navigate and explore Git repositories, gain valuable insights via powerful comparison commands, and so much more&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Story mode Browsing history and files in any git repository&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Conventional Commits for VSCode.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Checkpoints - Checkpoints(using ctrl+alt+s) used in between commits for keeping a local short-term history of work in progress files, like bookmarks in you undo-stack.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hope to be useful for you. Please support us with GitHub star, LinkedIn ❤️&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=SeyyedKhandon.gpack"&gt;&lt;strong&gt;Visual Studio Code marketplace&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/SeyyedKhandon/gpack"&gt;&lt;strong&gt;GitHub&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To see other developer experienced based extensions:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/publishers/SeyyedKhandon"&gt;https://marketplace.visualstudio.com/publishers/SeyyedKhandon&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>The Best VSCode Frontend Extension Pack</title>
      <dc:creator>DX Knight</dc:creator>
      <pubDate>Fri, 19 May 2023 07:16:42 +0000</pubDate>
      <link>https://dev.to/seyyedkhandon/vscode-frontend-essentials-extension-pack-fpack-7000-5eh</link>
      <guid>https://dev.to/seyyedkhandon/vscode-frontend-essentials-extension-pack-fpack-7000-5eh</guid>
      <description>&lt;p&gt;It Automatically set the &lt;strong&gt;best configurations&lt;/strong&gt; of these extensions for you and it has 2 commands for manually activate/deactivate. &lt;/p&gt;

&lt;p&gt;Features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prettier&lt;/li&gt;
&lt;li&gt;HTMLHint &lt;/li&gt;
&lt;li&gt;HTML CSS Support &lt;/li&gt;
&lt;li&gt;Auto Rename Tag&lt;/li&gt;
&lt;li&gt;Color Highlight&lt;/li&gt;
&lt;li&gt;Color Info&lt;/li&gt;
&lt;li&gt;Unused CSS Classes&lt;/li&gt;
&lt;li&gt;CSS Navigation &lt;/li&gt;
&lt;li&gt;Image preview&lt;/li&gt;
&lt;li&gt;Font Preview&lt;/li&gt;
&lt;li&gt;Svg Preview&lt;/li&gt;
&lt;li&gt;Five Server (Maintained Fork of Live Server)&lt;/li&gt;
&lt;li&gt;Pretty TypeScript Errors &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hope to be useful for you. Please support us with GitHub star, LinkedIn ❤️&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=SeyyedKhandon.fpack"&gt;&lt;strong&gt;Visual Studio Code marketplace&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/SeyyedKhandon/fpack"&gt;&lt;strong&gt;GitHub&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To see other developer experienced based extensions:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/publishers/SeyyedKhandon"&gt;https://marketplace.visualstudio.com/publishers/SeyyedKhandon&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Fastest Way to Auto Generate Types for Typescript and Input validation</title>
      <dc:creator>DX Knight</dc:creator>
      <pubDate>Sat, 22 Apr 2023 15:00:12 +0000</pubDate>
      <link>https://dev.to/seyyedkhandon/fastest-way-to-auto-generate-types-for-typescript-and-input-validation-478p</link>
      <guid>https://dev.to/seyyedkhandon/fastest-way-to-auto-generate-types-for-typescript-and-input-validation-478p</guid>
      <description>&lt;h1&gt;
  
  
  Short description
&lt;/h1&gt;

&lt;p&gt;Writing types for API's especially giant JSON's are frustrating especially when it comes to input validation.&lt;/p&gt;

&lt;h1&gt;
  
  
  solution:
&lt;/h1&gt;

&lt;p&gt;Just paste your json inside &lt;a href="https://app.quicktype.io/" rel="noopener noreferrer"&gt;app.quicktype.io&lt;/a&gt; or it's &lt;a href="https://marketplace.visualstudio.com/items?itemName=quicktype.quicktype" rel="noopener noreferrer"&gt;vscode&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faccihkvpoh0ondytfi8q.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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faccihkvpoh0ondytfi8q.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now you can paste that type into &lt;a href="https://transform.tools/typescript-to-zod" rel="noopener noreferrer"&gt;transform.tools/typescript-to-zod&lt;/a&gt; to generate the corresponding zod schema for input validation:&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%2Fuploads%2Farticles%2F3zgrjhxov9k1d6nj56kd.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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3zgrjhxov9k1d6nj56kd.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt; 🏅 For Practical step by step example check this 4min youtube video:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://youtu.be/c2giZxdoR-o" rel="noopener noreferrer"&gt;Video - Skip Writing types manually&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/SeyyedKhandon/alpha-vantage-stock-info" rel="noopener noreferrer"&gt;Github Project&lt;/a&gt;&lt;/p&gt;

</description>
      <category>typescript</category>
      <category>javascript</category>
      <category>zod</category>
      <category>type</category>
    </item>
    <item>
      <title>ZOD is Typescript for Runtime - Less code but more Reliable</title>
      <dc:creator>DX Knight</dc:creator>
      <pubDate>Mon, 06 Mar 2023 07:13:49 +0000</pubDate>
      <link>https://dev.to/seyyedkhandon/zod-is-typescript-for-runtime-less-code-but-more-reliable-2o9</link>
      <guid>https://dev.to/seyyedkhandon/zod-is-typescript-for-runtime-less-code-but-more-reliable-2o9</guid>
      <description>&lt;p&gt;&lt;a href="https://github.com/colinhacks/zod"&gt;Zod&lt;/a&gt; is a schema validator, it means you give your object to it and it checks that if it is exactly the same as the interface that you defined or not, and if it isn't, it gives you an error!&lt;/p&gt;

&lt;p&gt;What does it mean? It means that you don't need to use &lt;code&gt;if-elses&lt;/code&gt; anymore like before, e.g.&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;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="o"&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;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&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="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;number&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;number&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nx"&gt;number&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="p"&gt;...)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It does all this by itself only with the following command:&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="nx"&gt;z&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;safeParse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;formdata&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  more examples:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://zod.dev/?id=ip-addresses"&gt;IP check example&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Introduction ~7min 👌
&lt;/h1&gt;

&lt;p&gt;To get to know it better, watch this video from WebDevelopSimplified:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://youtu.be/9UVPk0Ulm6U"&gt;7min ZOD introduction&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Learn it completely ~30 min 🤩✨
&lt;/h1&gt;

&lt;p&gt;To learn it completely, and use it to save alot of time from yourself and also shipping reliable code watch this video&lt;/p&gt;

&lt;p&gt;&lt;a href="https://youtu.be/L6BE-U3oy80"&gt;ZOD in 30 min&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  VSCode Pro for Frontend developers: 🎖️
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=SeyyedKhandon.zpack"&gt;ZPack&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>react</category>
      <category>javascript</category>
      <category>typescript</category>
    </item>
    <item>
      <title>TailwindCSS from Zero to Production - Notes</title>
      <dc:creator>DX Knight</dc:creator>
      <pubDate>Sun, 26 Feb 2023 09:19:50 +0000</pubDate>
      <link>https://dev.to/seyyedkhandon/notes-on-tailwindcss-from-zero-to-production-i73</link>
      <guid>https://dev.to/seyyedkhandon/notes-on-tailwindcss-from-zero-to-production-i73</guid>
      <description>&lt;h1&gt;
  
  
  Why Tailwindcss
&lt;/h1&gt;

&lt;p&gt;In my opinion &lt;code&gt;TailwindCSS&lt;/code&gt; is &lt;code&gt;Typescript&lt;/code&gt; but for &lt;code&gt;CSS&lt;/code&gt; world! It will eliminate or decrease major problems that I strongly recommend to read it's comparison to the other ways like &lt;code&gt;BEM&lt;/code&gt; etc. from the original reference and it's the creator &lt;a href="https://adamwathan.me/css-utility-classes-and-separation-of-concerns/" rel="noopener noreferrer"&gt;CSS Utility Classes and "Separation of Concerns"&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Where To learn
&lt;/h1&gt;

&lt;p&gt;Now you know why you should use it and how much it will help you especially when you are trying to develop a &lt;code&gt;Design System&lt;/code&gt; for your company's project!&lt;/p&gt;

&lt;p&gt;The best source that I've found, after reading a lot of articles, &lt;code&gt;udemy&lt;/code&gt; and &lt;code&gt;youtube&lt;/code&gt; etc. videos, is just again their youtube channel, there is a series(8episode - totally under 2h) of videos on their youtube, you can see it here: &lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=elgqxmdVms8&amp;amp;list=PL5f_mz_zU5eXWYDXHUDOLBE0scnuJofO0" rel="noopener noreferrer"&gt;TailwindCSS from Zero to Production&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Here is the &lt;a href="https://github.com/tailwindlabs/tailwindcss-from-zero-to-production" rel="noopener noreferrer"&gt;code for this tutorial&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After this video, you can just go to it's document and like others, make the best and most use of his document, for example, to use a certain class or what...&lt;br&gt;
&lt;a href="https://tailwindcss.com/docs/installation" rel="noopener noreferrer"&gt;https://tailwindcss.com/docs/installation&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Notes on these series ✨🤩
&lt;/h1&gt;

&lt;p&gt;I've just finished this series and during watching this series I took some notes, and I will share them to you here so you can use it too.&lt;br&gt;
&lt;a href="https://gist.github.com/SeyyedKhandon/5d5327a979230bfc16f54d4cf1b5de55" rel="noopener noreferrer"&gt;Notes&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Practical Learning section
&lt;/h2&gt;

&lt;p&gt;I strongly suggest to use or atleast read from &lt;a href="https://flowbite.com/docs/components/buttons/" rel="noopener noreferrer"&gt;FlowBite&lt;/a&gt;&lt;br&gt;
 which has alot of examples that are written with &lt;code&gt;tailwindcss&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgf96qs65wlmq8np4dwzk.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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgf96qs65wlmq8np4dwzk.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  ✨ Bonus - VSCode Pro for Frontend developers: 🎖️
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=SeyyedKhandon.zpack" rel="noopener noreferrer"&gt;ZPack&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>react</category>
      <category>tailwindcss</category>
      <category>css</category>
    </item>
  </channel>
</rss>
