<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Stefan Natter 🇦🇹👨🏻‍💻</title>
    <description>The latest articles on Forem by Stefan Natter 🇦🇹👨🏻‍💻 (@natterstefan).</description>
    <link>https://forem.com/natterstefan</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%2F331744%2F3d794bbe-a226-4df2-907a-99300efc3c41.jpeg</url>
      <title>Forem: Stefan Natter 🇦🇹👨🏻‍💻</title>
      <link>https://forem.com/natterstefan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/natterstefan"/>
    <language>en</language>
    <item>
      <title>How To Add Custom Code Snippets in VS Code</title>
      <dc:creator>Stefan Natter 🇦🇹👨🏻‍💻</dc:creator>
      <pubDate>Tue, 16 Mar 2021 06:33:12 +0000</pubDate>
      <link>https://forem.com/natterstefan/how-to-add-custom-code-snippets-in-vs-code-1ofm</link>
      <guid>https://forem.com/natterstefan/how-to-add-custom-code-snippets-in-vs-code-1ofm</guid>
      <description>&lt;p&gt;Those who know me and my articles know that &lt;a href="https://nttr.st/3aXzAJR" rel="noopener noreferrer"&gt;I am a fan of VS Code&lt;/a&gt;. The editor supports me in my work on several levels. It is therefore all the more important for me to understand the features of the editor. I read through every changelog and test new features. On Twitter, I follow &lt;a href="https://twitter.com/mattbierner?ref=natterstefan.me" rel="noopener noreferrer"&gt;Matt Bierner&lt;/a&gt; who always publishes new tips and tricks. I have already learned a lot from him.&lt;/p&gt;

&lt;p&gt;For some features in the VS code, you need extensions. VS Code does not provide everything out of the box. And yet there are features for which you don't need another battery-crushing extension. For example, for code snippets.&lt;/p&gt;

&lt;p&gt;There are some extensions in the VS Code Marketplace that offer you hundreds of code snippets. I have already tried some of them. I currently have &lt;a href="https://marketplace.visualstudio.com/items?itemName=snipsnapdev.snipsnap-vscode&amp;amp;ref=natterstefan.me" rel="noopener noreferrer"&gt;Snip Snap&lt;/a&gt; installed. Although I'm happy with it, there are always use-cases I want to have as a snippet independent of extensions. Because extensions come and go.&lt;/p&gt;

&lt;p&gt;Do you remember my last VS Code Tip about &lt;a href="https://blog.natterstefan.me/make-console-logging-in-vs-code-10x-faster-with-turbo-console-log?ref=natterstefan.me" rel="noopener noreferrer"&gt;console logging with Turbo Console Log&lt;/a&gt;? This extension can also be mapped as a snippet to a certain extent. Let's see how that works.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setup
&lt;/h2&gt;

&lt;p&gt;First of all, open the Snippet Manager in the Command Palette. To do this, type &lt;code&gt;CMD + Shift + P&lt;/code&gt; (&lt;code&gt;CTRL&lt;/code&gt; on Windows) and select "Preferences: Configure User Snippets". Now you have to choose a language for which you want to create the snippet, or you create a global one. In our example, I choose &lt;code&gt;javascript.json&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;It should look something like this if you have not set up any snippets yet:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Place&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;your&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;snippets&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;javascript&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;here.&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Each&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;snippet&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;is&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;defined&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;under&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;snippet&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;and&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;has&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;prefix&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;body&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;and&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;description.&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;The&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;prefix&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;is&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;what&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;is&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;used&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;to&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;trigger&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;the&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;snippet&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;and&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;the&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;body&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;will&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;be&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;expanded&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;and&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;inserted.&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Possible&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;variables&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;are:&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;tab&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;stops&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;the&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;final&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;cursor&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;position&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;and&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="err"&gt;:label&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="err"&gt;:another&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;placeholders.&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Placeholders&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;with&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;the&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;same&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;ids&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;are&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;connected.&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Example:&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"Print to console"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nl"&gt;"prefix"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"log"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nl"&gt;"body"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="s2"&gt;"console.log('$1');"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="s2"&gt;"$2"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Log output to console"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Let's now look at a common use case. You want to quickly create a &lt;code&gt;console.log&lt;/code&gt; for a variable. This is a common scenario for me. Initially, the Turbo Console Log extension did not exist, so I resorted to code snippets.&lt;/p&gt;

&lt;p&gt;And so I created a snippet with the prefix &lt;code&gt;logvar&lt;/code&gt;. This creates a new line with &lt;code&gt;console.log('\\n&amp;gt;&amp;gt; ', { }); // eslint-disable-line&lt;/code&gt;. This is the corresponding snippet in my &lt;code&gt;javascript.json&lt;/code&gt; file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
 &lt;/span&gt;&lt;span class="nl"&gt;"Print to console"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"prefix"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"logvar"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"body"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"console.log('&lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="s2"&gt;n&amp;gt;&amp;gt; $2', { $1 }); // eslint-disable-line"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"$3"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Log variable to console"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Let's take a quick look at the snippet itself. The &lt;code&gt;$n&lt;/code&gt; placeholders stand for the tab Index of the cursor. First, my cursor lands at &lt;code&gt;$1&lt;/code&gt; when the snippet is inserted, then the next &lt;code&gt;tab&lt;/code&gt; lands at &lt;code&gt;$2&lt;/code&gt; and so on. You can use this to make it easier for you to insert values in your snippet.&lt;/p&gt;

&lt;p&gt;Okay, let's take a look at the snippet in action.&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1612853793956%2FE1nCe_nZh.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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1612853793956%2FE1nCe_nZh.gif" alt="how to create a snippet with logvar"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Snippets can help you to support your workflow and relieve you of certain tasks. Use them to have frequently entered code snippets available as shortcuts. You can also enter more complex ones, you just have to pay attention to the formatting of the output.&lt;/p&gt;

&lt;p&gt;As a final case, here is a more comprehensive example that creates ready-to-go code for a test with React, Jest, and Enzyme.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"Jest test"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"prefix"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"jd"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"body"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"import React from 'react'&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;import { mount } from 'enzyme'&lt;/span&gt;&lt;span class="se"&gt;\n\n&lt;/span&gt;&lt;span class="s2"&gt;import Component from './component'&lt;/span&gt;&lt;span class="se"&gt;\n\n&lt;/span&gt;&lt;span class="s2"&gt;describe('Component', () =&amp;gt; {&lt;/span&gt;&lt;span class="se"&gt;\n\t&lt;/span&gt;&lt;span class="s2"&gt;it('renders', () =&amp;gt; {&lt;/span&gt;&lt;span class="se"&gt;\n\t\t&lt;/span&gt;&lt;span class="s2"&gt;const wrapper = mount(&amp;lt;Component /&amp;gt;)&lt;/span&gt;&lt;span class="se"&gt;\n\t\t&lt;/span&gt;&lt;span class="s2"&gt;expect(wrapper.html()).toBeTruthy()&lt;/span&gt;&lt;span class="se"&gt;\n\t&lt;/span&gt;&lt;span class="s2"&gt;})&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;})"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Inserts a dummy and example jest test code."&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The final result looks like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1612853765986%2FYw2F7i4AM.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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1612853765986%2FYw2F7i4AM.png" alt="Code Snippet Result"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I hope I could show you that you can also create code snippets without extensions and thus make your daily work easier.&lt;/p&gt;




&lt;h2&gt;
  
  
  Questions and Feedback
&lt;/h2&gt;

&lt;p&gt;You got any questions or want to add your thoughts? Let me know in the comments below or on &lt;a href="https://twitter.com/natterstefan" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;, please.&lt;/p&gt;

</description>
      <category>visualstudiocode</category>
      <category>vscode</category>
      <category>snippets</category>
    </item>
    <item>
      <title>How to add your GitHub activities to your GitHub Profile</title>
      <dc:creator>Stefan Natter 🇦🇹👨🏻‍💻</dc:creator>
      <pubDate>Tue, 09 Mar 2021 09:00:08 +0000</pubDate>
      <link>https://forem.com/natterstefan/how-to-add-your-github-activities-to-your-github-profile-5fnl</link>
      <guid>https://forem.com/natterstefan/how-to-add-your-github-activities-to-your-github-profile-5fnl</guid>
      <description>&lt;p&gt;Yesterday I showed you &lt;a href="https://blog.natterstefan.me/how-to-present-your-latest-blog-posts-and-youtube-videos-on-your-github-profile" rel="noopener noreferrer"&gt;how to share your blog posts or YouTube videos on your GitHub profile&lt;/a&gt;. Today I have another tip for you on how to take your GitHub profile to the next level.&lt;/p&gt;

&lt;p&gt;Especially if you contribute to open source projects or have published your own, you will always be active on GitHub. You write comments or merge pull requests. Just like blog posts, you can add these activities to your GitHub profile. This gives recruiters and other visitors to your GitHub profile a quick picture of what you've done recently. In this case, we also use GitHub Actions to get there.&lt;/p&gt;

&lt;h2&gt;
  
  
  GitHub Action Setup
&lt;/h2&gt;

&lt;p&gt;This time we are using an action from James George: &lt;a href="https://github.com/jamesgeorge007/github-activity-readme" rel="noopener noreferrer"&gt;github-activity-readme&lt;/a&gt;. He contacted me &lt;a href="https://twitter.com/natterstefan" rel="noopener noreferrer"&gt;on Twitter&lt;/a&gt; months ago and asked if I could test his GitHub Action. I gladly did.&lt;/p&gt;

&lt;p&gt;If you haven't set up your GitHub profile yet, here's a quick reminder:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;create a GitHub repository with your username: &lt;a href="https://github.com/natterstefan/natterstefan" rel="noopener noreferrer"&gt;https://github.com/natterstefan/natterstefan&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;add a README.md&lt;/li&gt;
&lt;li&gt;the contents of README.md will be displayed on your profile (e.g. &lt;a href="https://github.com/natterstefan" rel="noopener noreferrer"&gt;github.com/natterstefan&lt;/a&gt;) as soon as you commit and push changes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now paste the following content into a new GitHub action file under the following path &lt;code&gt;.github/workflows/update-readme.yml&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Update README&lt;/span&gt;

&lt;span class="na"&gt;on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;schedule&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="c1"&gt;# Runs every 30 minutes&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;cron&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;*/30&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;*&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;*&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;*&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;*'&lt;/span&gt;

&lt;span class="na"&gt;jobs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;build&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-latest&lt;/span&gt;
    &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Update this repo's README with recent activity&lt;/span&gt;

    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v2&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;jamesgeorge007/github-activity-readme@master&lt;/span&gt;
        &lt;span class="na"&gt;env&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;GITHUB_TOKEN&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.GITHUB_TOKEN }}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And finally, add the following into your README.md wherever you want to place the GitHub activity feed:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gu"&gt;### Recent Activity&lt;/span&gt;

&lt;span class="c"&gt;&amp;lt;!--START_SECTION:activity--&amp;gt;&lt;/span&gt;
&lt;span class="c"&gt;&amp;lt;!--END_SECTION:activity--&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once the GitHub Action was triggered according to your schedule you will see a new section in your GitHub profile similar to mine:&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1612765624430%2FL8J6wGjOo.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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1612765624430%2FL8J6wGjOo.png" alt="GitHub Activities Overview"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are some more options for this GitHub action, which are documented in the  &lt;a href="https://github.com/jamesgeorge007/github-activity-readme" rel="noopener noreferrer"&gt;repository&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;That's it. Now you have your GitHub activities on your profile! Congrats!&lt;/p&gt;




&lt;h2&gt;
  
  
  Questions and Feedback
&lt;/h2&gt;

&lt;p&gt;You got any questions or want to add your thoughts? Let me know in the comments below, please.&lt;/p&gt;

</description>
      <category>github</category>
      <category>git</category>
      <category>markdown</category>
      <category>githubactions</category>
    </item>
    <item>
      <title>How to present your latest blog posts and YouTube videos on your GitHub profile</title>
      <dc:creator>Stefan Natter 🇦🇹👨🏻‍💻</dc:creator>
      <pubDate>Mon, 22 Feb 2021 06:33:44 +0000</pubDate>
      <link>https://forem.com/natterstefan/how-to-present-your-latest-blog-posts-and-youtube-videos-on-your-github-profile-543d</link>
      <guid>https://forem.com/natterstefan/how-to-present-your-latest-blog-posts-and-youtube-videos-on-your-github-profile-543d</guid>
      <description>&lt;p&gt;GitHub profiles got a big update in 2020. A GitHub profile can do more than just show your public repositories and your activities. You can add more information about yourself and your work to your profile. I show you how to do this in &lt;a href="https://dev.to/natterstefan/how-to-add-a-readme-to-your-github-profile-2bo9?ref=natterstefan.me"&gt;another article&lt;/a&gt;. Today I'll show you how to turn your GitHub profile into a promoter of your YouTube videos and blog posts in just a few minutes.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to create a GitHub Profile Page
&lt;/h2&gt;

&lt;p&gt;The very first thing you need to do is set up your GitHub profile. To do this, you need to create a new repository with the same name as your username. This looks something like this for my account: &lt;a href="https://github.com/natterstefan/natterstefan"&gt;https://github.com/natterstefan/natterstefan&lt;/a&gt;. All you need now is a "README.md" file in which you enter the content. Push the changes into the repository and you will see the new data on your page. Here is my profile: &lt;a href="https://github.com/natterstefan"&gt;https://github.com/natterstefan&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to add blog posts and more to your GitHub profile
&lt;/h2&gt;

&lt;p&gt;To do this we need to set up a GitHub action. As the name suggests, an action performs one or more tasks. In this case, we want the action to take an RSS feed as input and render the content on the profile as a list. Fortunately, we don't have to set this up ourselves but can use ready-made GitHub actions. For my profile, I use the following action: &lt;a href="https://github.com/gautamkrishnar/blog-post-workflow?ref=natterstefan.me"&gt;gautamkrishnar/blog-post-workflow&lt;/a&gt;. It also contains further documentation and setup notes.&lt;/p&gt;

&lt;p&gt;First, you create a new folder &lt;code&gt;.github/workflows&lt;/code&gt; in your repository. In this folder, we now create a file &lt;code&gt;blog-post-workflow.yml&lt;/code&gt;. This tells GitHub that we want to set up a workflow. All that is missing is the content, and this one is also very simple.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Blog Posts&lt;/span&gt;

&lt;span class="na"&gt;on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="c1"&gt;# Run workflow automatically&lt;/span&gt;
  &lt;span class="na"&gt;schedule&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="c1"&gt;# Runs every hour, on the hour&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;cron&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;0&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;*&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;*&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;*&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;*'&lt;/span&gt;

&lt;span class="na"&gt;jobs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;update-readme-with-blog&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Update this repo's README with latest blog posts&lt;/span&gt;
    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-latest&lt;/span&gt;
    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v2&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;gautamkrishnar/blog-post-workflow@master&lt;/span&gt;
        &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="c1"&gt;# comma-separated list of RSS feed urls&lt;/span&gt;
          &lt;span class="na"&gt;feed_list&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://blog.natterstefan.me/rss.xml"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The GitHub Action must now know where to place the result in the README. To do this, insert this snippet into your &lt;code&gt;README.md&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gu"&gt;## 📕 Latest Blog Posts&lt;/span&gt;

&lt;span class="c"&gt;&amp;lt;!-- BLOG-POST-LIST:START --&amp;gt;&lt;/span&gt;
&lt;span class="c"&gt;&amp;lt;!-- BLOG-POST-LIST:END --&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;All we have to do now is commit the change, push it and wait for the action to run. The result will look similar to the one you'll see on my page:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WjddJwm---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zc76626yga9rr6228ymr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WjddJwm---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zc76626yga9rr6228ymr.png" alt="GitHub Action Result"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to use Hashnode's RSS Feed
&lt;/h2&gt;

&lt;p&gt;Each blog on Hashnode has an RSS feed attached automatically. Just add &lt;code&gt;/rss.xml&lt;/code&gt; to the domain to view it (e.g. &lt;a href="https://blog.natterstefan.me/rss.xml"&gt;https://blog.natterstefan.me/rss.xml&lt;/a&gt;).&lt;/p&gt;

&lt;h2&gt;
  
  
  How to set up YouTube
&lt;/h2&gt;

&lt;p&gt;As for YouTube, you can either use a YouTube Playlist or the YouTube Channel Video list as an input.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;https://www.youtube.com/feeds/videos.xml?playlist_id=&amp;lt;playlistId&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;https://www.youtube.com/feeds/videos.xml?channel_id=&amp;lt;channelId&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Share 💛
&lt;/h2&gt;

&lt;p&gt;Do you like this article? Do you want to support me? &lt;a href="https://ctt.ac/Z0d11"&gt;Tell your friends on Twitter&lt;/a&gt; about it. Thank you!&lt;/p&gt;

&lt;h2&gt;
  
  
  Questions and Feedback
&lt;/h2&gt;

&lt;p&gt;You got any questions or want to add your thoughts? Let me know in the comments below, please.&lt;/p&gt;

</description>
      <category>github</category>
      <category>youtube</category>
      <category>blog</category>
      <category>marketing</category>
    </item>
    <item>
      <title>Speed up your Typing on iOS with Text Replacements</title>
      <dc:creator>Stefan Natter 🇦🇹👨🏻‍💻</dc:creator>
      <pubDate>Fri, 12 Feb 2021 07:04:51 +0000</pubDate>
      <link>https://forem.com/natterstefan/speed-up-your-typing-on-ios-with-text-replacements-4bg4</link>
      <guid>https://forem.com/natterstefan/speed-up-your-typing-on-ios-with-text-replacements-4bg4</guid>
      <description>&lt;p&gt;&lt;strong&gt;Create shortcuts that expand to words, sentences, or emojis instantly.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Anyone who uses their smartphone every day to write notes, compose tweets or answer emails knows this. Typing on the devices is tedious and cumbersome. This can be remedied, at least in part, with "text replacements". These user-defined shortcuts instantly expand when typed, saving you time and increasing your productivity.&lt;/p&gt;

&lt;h2&gt;
  
  
  What can you use Text Replacements for?
&lt;/h2&gt;

&lt;p&gt;You can use Text Replacements for your own telephone number, for the e-mail address, or Twitter handles of your friends or bots. When asked if I want to email my phone number to a business partner, I simply type &lt;code&gt;.tel&lt;/code&gt;. OS replaces it with my phone number, I press send and that's it.&lt;/p&gt;

&lt;p&gt;It's the same thing on &lt;a href="https://twitter.com/natterstefan"&gt;Twitter&lt;/a&gt;. Among other things, I use &lt;a href="https://threadreaderapp.com/?ref=natterstefan.me"&gt;threadreaderapp&lt;/a&gt; for threads. Whenever I want to save and send a thread, I type &lt;code&gt;.thread&lt;/code&gt; and automatically get back &lt;code&gt;@threadreaderapp unroll&lt;/code&gt;! I don't have to remember what the bot is called. I also don't have to remember a new Twitter handle if I change services.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to set up Text Replacements
&lt;/h2&gt;

&lt;p&gt;In Settings, go to &lt;strong&gt;General &amp;gt; Keyboard &amp;gt; Text Replacement&lt;/strong&gt;. Tap the + button and you’ll see &lt;strong&gt;Phrase&lt;/strong&gt; and &lt;strong&gt;Shortcut&lt;/strong&gt; fields.&lt;/p&gt;

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

&lt;p&gt;&lt;em&gt;Pro Tip&lt;/em&gt;: You can also add and modify them on macOS. Look for &lt;strong&gt;Keyboard&lt;/strong&gt; in your &lt;strong&gt;System Preferences&lt;/strong&gt;, open it, and select the &lt;strong&gt;Text&lt;/strong&gt; tab.&lt;/p&gt;

&lt;h2&gt;
  
  
  Define a System
&lt;/h2&gt;

&lt;p&gt;Shortcuts should be easy to remember. Don't make it too complicated and too complex. You will need a system so that the shortcuts don't get in the way of your normal writing. So I put a "." (dot) prefix on all my shortcuts. This way I can write "email" without always having my email address inserted.&lt;/p&gt;

&lt;h2&gt;
  
  
  Text Replacement Ideas
&lt;/h2&gt;

&lt;p&gt;Here are some of the common Text Replacements I use:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;.email&lt;/code&gt; -&amp;gt; &lt;code&gt;example@example.com&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;.fistbump&lt;/code&gt; -&amp;gt; &lt;code&gt;🤜🏻🤛🏻&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;.omw&lt;/code&gt; -&amp;gt; &lt;code&gt;on my way&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;.tableflip&lt;/code&gt; -&amp;gt;  &lt;code&gt;(╯°□°）╯︵ ┻━┻&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;.tel&lt;/code&gt; -&amp;gt; &lt;code&gt;+123 123 123 123&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;.thread&lt;/code&gt; -&amp;gt; &lt;code&gt;@threadreaderapp unroll&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;.tw&lt;/code&gt; -&amp;gt; &lt;code&gt;https://twitter.com/natterstefan&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;apple&lt;/code&gt; -&amp;gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can use Text Replacements for all sorts of things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;URLs of your favorite websites&lt;/li&gt;
&lt;li&gt;Twitter handles of your friends&lt;/li&gt;
&lt;li&gt;Twitter handles of bots&lt;/li&gt;
&lt;li&gt;Emojis&lt;/li&gt;
&lt;li&gt;List of Tags&lt;/li&gt;
&lt;li&gt;Abbreviations (e.g. "btw" -&amp;gt; "by the way")&lt;/li&gt;
&lt;li&gt;and more!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'd love to see some of your Text Replacements! Please, share them in the comments below with me.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pro Tip for Content Creators
&lt;/h2&gt;

&lt;p&gt;As a content creator, you often add a list of tags to your tweets, &lt;a href="//linkedin.com/in/natterstefan"&gt;LinkedIn posts&lt;/a&gt;, or articles. You can also conveniently save these tags as Text Replacements and always have them at hand. This is especially helpful when you are typing on your smartphone. You no longer have to switch apps to copy out the list of tags. No, you just type in &lt;code&gt;.tagsDocker&lt;/code&gt; and voilà you get &lt;code&gt;#docker #dockerhub #dockerhub #dockerproducts&lt;/code&gt; back!&lt;/p&gt;

&lt;h2&gt;
  
  
  Questions and Feedback
&lt;/h2&gt;

&lt;p&gt;You got any questions or want to add your thoughts? Let me know in the comments below, please.&lt;/p&gt;

&lt;h2&gt;
  
  
  Let's connect
&lt;/h2&gt;

&lt;p&gt;--&amp;gt; Sign up for my &lt;a href="https://newsletter.natterstefan.me/"&gt;newsletter&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ios</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Make Console Logging in VS Code 10x Faster with Turbo Console Log</title>
      <dc:creator>Stefan Natter 🇦🇹👨🏻‍💻</dc:creator>
      <pubDate>Tue, 09 Feb 2021 20:10:08 +0000</pubDate>
      <link>https://forem.com/natterstefan/make-console-logging-in-vs-code-10x-faster-with-turbo-console-log-38pk</link>
      <guid>https://forem.com/natterstefan/make-console-logging-in-vs-code-10x-faster-with-turbo-console-log-38pk</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;(...) make debugging much easier by automating the operation of writing meaningful log message.&lt;br&gt;
(&lt;a href="https://marketplace.visualstudio.com/items?itemName=ChakrounAnas.turbo-console-log"&gt;source&lt;/a&gt;)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The first sentence on the Turbo Console Log (TCL) Marketplace page sums it up very well. Debugging becomes easier with TCL because it helps you log information quickly. This process is automated and can be started with a shortcut. And last but not least, TCL provides the logs with context. This context helps you to find out where the information of the log is located in the code. Let's look at an example.&lt;/p&gt;

&lt;h2&gt;
  
  
  Example
&lt;/h2&gt;

&lt;p&gt;For the example, I quickly set up a &lt;a href="https://reactjs.org/docs/create-a-new-react-app.html"&gt;Create-React-Application&lt;/a&gt; and added a &lt;code&gt;useEffect&lt;/code&gt; which logs the result of &lt;code&gt;Date.now()&lt;/code&gt;. You see me selecting the variable and then executing the TCL command from the command line. You can also use a shortcut, but for the simplicity of the example, I used the command directly. It shows you that this is also possible.&lt;/p&gt;

&lt;p&gt;Once I executed the command TCL created the &lt;code&gt;console.log&lt;/code&gt; for me with the requested information. The information is then available to me in the browser for further debugging.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Rwuf_h7W--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/pcrp3j0tclk6wed79ytn.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Rwuf_h7W--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/pcrp3j0tclk6wed79ytn.gif" alt="Turbo Console Log"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Settings
&lt;/h2&gt;

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

&lt;p&gt;Open the Settings of VS Code (e.g. with &lt;code&gt;CMD + ,&lt;/code&gt; on macOS) and search for "Turbo Console Log". On the settings page, you get a list of options to customize TCL according to your needs. You can add or remove context, add a prefix to the logs, and more. Make it yours.&lt;/p&gt;

&lt;h2&gt;
  
  
  Download the Extensions
&lt;/h2&gt;

&lt;p&gt;Get the extension for VS Code &lt;a href="https://nttr.st/36LMiKj"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Do you like my Content?
&lt;/h2&gt;

&lt;p&gt;Make sure to subscribe to my &lt;a href="https://newsletter.natterstefan.me/"&gt;newsletter&lt;/a&gt; and never miss new productivity tips, software engineering news, and more!&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>visualstudiocode</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Dash + Alfred - instantly search offline documentation sets for 200+ APIs, 100+ cheat sheets, and more!</title>
      <dc:creator>Stefan Natter 🇦🇹👨🏻‍💻</dc:creator>
      <pubDate>Sun, 07 Feb 2021 10:33:49 +0000</pubDate>
      <link>https://forem.com/natterstefan/dash-alfred-instantly-search-offline-documentation-sets-for-200-apis-100-cheat-sheets-and-more-17en</link>
      <guid>https://forem.com/natterstefan/dash-alfred-instantly-search-offline-documentation-sets-for-200-apis-100-cheat-sheets-and-more-17en</guid>
      <description>&lt;p&gt;I am a big fan of productivity tools, which make my life easier. Anything that gets me where I want to go with just a few clicks or shortcuts is at least worth a test phase. So it's no surprise that &lt;a href="https://dev.to/natterstefan/week-in-review-week-23-20-33g0"&gt;I'm a big fan of Alfred&lt;/a&gt; - the Spotlight alternative for macOS. In this article, I don't want to go into the advantages and why the Alfred Powerpack is worth every penny, but rather jump straight into today's topic.&lt;/p&gt;

&lt;p&gt;Who hasn't experienced that feeling of forgetting the syntax for a certain task in a programming language? Now you are faced with the problem of finding the answer. What do you do, like many others? Sure, you google it. A few clicks in the results later, you are hopefully at your destination and have found the famous green tick on StackOverflow. But what if I told you that there is an alternative that works even offline?&lt;/p&gt;

&lt;p&gt;Let me introduce you: &lt;a href="https://kapeli.com/dash?ref=natterstefan.me" rel="noopener noreferrer"&gt;Dash&lt;/a&gt; - the "Indispensable masterpiece for developers." (Stefan Fürst, Media Atelier Maker of GrandTotal).&lt;/p&gt;

&lt;p&gt;Dash gives you 200+ API documentations instantly with offline access! Together with the matching Alfred workflow, any search in the Dash library is just a few keystrokes away! I'll show you how in just a few steps.&lt;/p&gt;

&lt;h1&gt;
  
  
  Setup
&lt;/h1&gt;

&lt;p&gt;First of all, you need to install &lt;a href="https://www.alfredapp.com/" rel="noopener noreferrer"&gt;Alfred&lt;/a&gt; (macOS only) and &lt;a href="https://kapeli.com/dash" rel="noopener noreferrer"&gt;Dash&lt;/a&gt;. And for the whole thing to work, you also need the &lt;a href="https://www.alfredapp.com/powerpack/v" rel="noopener noreferrer"&gt;Alfred Powerpack&lt;/a&gt;. If you're not convinced right away, install the free version of Alfred and get warmed up with the program first. You'll see that you'll want the Powerpack in the end.&lt;/p&gt;

&lt;p&gt;Once you've installed the two apps, all you need is the workflow to go with them. It's very simple. Open Dash and go to Preferences &amp;gt; Integration &amp;gt; Alfred and follow the instructions.&lt;/p&gt;

&lt;h1&gt;
  
  
  Usage
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F1r7vbaru0exgea53l3xz.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%2Fi%2F1r7vbaru0exgea53l3xz.png" alt="Open Alfred and type in "&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Now that you have everything installed, it's time to see the combination in action. Open Alfred and type in &lt;code&gt;javascript array&lt;/code&gt; for example. The Dash Workflow will immediately suggest the appropriate API documentation for the app. Select one and Dash will open the page in a separate window.&lt;/p&gt;

&lt;p&gt;Now you can read the documentation at your leisure and clarify your open questions.&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%2Fe5czwmla4xu9k8fnpyp3.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%2Fi%2Fe5czwmla4xu9k8fnpyp3.png" alt="Dash Window with Javascript array method open"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  You got questions?
&lt;/h2&gt;

&lt;p&gt;Do you have any questions about this productivity tip? Then write me a comment or contact me on &lt;a href="https://twitter.com/natterstefan" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;. I look forward to your feedback.&lt;/p&gt;

</description>
      <category>dash</category>
      <category>alfred</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Easy to use Dockerfile for your next Node.js Project</title>
      <dc:creator>Stefan Natter 🇦🇹👨🏻‍💻</dc:creator>
      <pubDate>Wed, 03 Feb 2021 12:33:28 +0000</pubDate>
      <link>https://forem.com/natterstefan/easy-to-use-dockerfile-for-your-next-node-js-project-4oh2</link>
      <guid>https://forem.com/natterstefan/easy-to-use-dockerfile-for-your-next-node-js-project-4oh2</guid>
      <description>&lt;p&gt;Docker has made our lives as developers easier. With just a few commands, we can start all kinds of programs and services without having to deal with the tedious installation of dependencies. Countless Docker images are freely available on Docker Hub. Whether you want to start your own open-source continuous integration &amp;amp; deployment server, such as &lt;a href="https://github.com/Strider-CD/strider"&gt;Strider&lt;/a&gt;, or your own NPM registry with &lt;a href="https://verdaccio.org/"&gt;https://verdaccio.org/&lt;/a&gt;, the possibilities are endless.&lt;/p&gt;

&lt;p&gt;But these are mostly ready-made Docker images I was talking about. But for your own projects, you have to build your own Docker image. And in this article, I will show and describe in a few words how you can put your next NodeJS application into a Docker image. Here we go.&lt;/p&gt;

&lt;p&gt;A simple &lt;code&gt;Dockerfile&lt;/code&gt; looks something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# We use the latest nodejs@14 image as our base image
FROM node:14-alpine

# set the default NODE_NEV to production
ENV NODE ENV=production

# make sure everything happens inside the /app folder
WORKDIR/app

# now we cache the node_modules layer
COPY ["package.json", "package-lock.json", "./"]

# install your dependencies
RUN npm install

# copy the source
COPY /src .

# and start the app
CMD ["node", "server. js"]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But what if you need to build the app first before you can run it? Let's take a look at this by using a  &lt;a href="https://docs.docker.com/develop/develop-images/multistage-build/"&gt;multi-stage build&lt;/a&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# We make use of ARG to set some variables that we
# can use in the Dockerfile
ARG node_version=14
ARG node_image=node:${node_version}-alpine

# STAGE 1: This is the "builder" stage where we build the
# application and give this step a name: "builder"
FROM $node_image as builder

ENV NODE ENV=production
WORKDIR/app

COPY ["package.json", "package-lock.json", "./"]

# compared to the first example we now install
# _all_ dependencies including devDependencies
RUN npm install

# copy the source
COPY /src .

# now build the app
RUN npm build

# STAGE 2: in this stage, we reduce the size of the
# image by only installing production dependencies
FROM $node_image as production

WORKDIR /app/

# install _only production_ dependencies to keep the
# docker image small
COPY --from=builder /app/package.json /app/package-lock.json ./
RUN npm install --production

# copy the build from the first stage (e.g. the dist folder)
COPY --from=builder /app/dist ./dist

# and start the bundled app
CMD ["node", "dist/index. js"]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is it. You now have the option to choose between a multi-stage or a single-stage Dockerfile for your next project. Of course, we could optimize some things still and apply different approaches, but that's maybe part of another story of my &lt;a href="https://blog.natterstefan.me/the-90daysofprose-make-writing-a-habit-challenge"&gt;#90DaysOfProse challenge&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Cu,&lt;/p&gt;

&lt;p&gt;Stefan&lt;/p&gt;

&lt;p&gt;PS: Thanks Oliver for &lt;a href="https://twitter.com/oliverjumpertz/status/1356605136555106306"&gt;the inspiration for this article&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>docker</category>
      <category>node</category>
    </item>
    <item>
      <title>The "#90DaysOfProse - Make Writing a Habit" challenge.</title>
      <dc:creator>Stefan Natter 🇦🇹👨🏻‍💻</dc:creator>
      <pubDate>Tue, 02 Feb 2021 21:08:28 +0000</pubDate>
      <link>https://forem.com/natterstefan/the-90daysofprose-make-writing-a-habit-challenge-12e3</link>
      <guid>https://forem.com/natterstefan/the-90daysofprose-make-writing-a-habit-challenge-12e3</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Make Writing a Habit. Write for at least 10 minutes a day for the next 90 days. Tweet your progress each day with the #90DaysOfProse hashtag.&lt;br&gt;
&lt;a href="https://www.90daysofprose.com/"&gt;https://www.90daysofprose.com/&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;As of today, I solemnly announce that &lt;a href="https://twitter.com/natterstefan/status/1356709908029333510"&gt;I am taking part in the #90DaysOfProse&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;These are the rules:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Write for at least 10 minutes a day for the next 90 days. Examples include Blog Posts, Essays, Book Notes, Newsletters, Fiction, Non-Fiction, etc.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;That should be doable!&lt;/strong&gt; 10 minutes. What're 10 minutes a day, right? Wish me luck.&lt;/p&gt;

&lt;p&gt;The real challenge for me is probably the selection of topics and my own criticism of my work. I tend not to be satisfied and to be my own biggest critic. But inspiring people like @&lt;a href="https://dev.to@FrancescoCiulla"&gt;Francesco Ciulla&lt;/a&gt;, for example, inspire me. His 100 Days 100 Videos Challenge is remarkable. What started as an overcoming task for him, resulted in a successful YouTube channel with over 2,600 subscribers and a lot of views.&lt;/p&gt;

&lt;p&gt;I want to talk about software engineering (mostly JavaScript, TypeScript, ReactJS, NodeJS, and web dev in general), as well as notable tools, SaaS solutions, productivity, and life hacks, and all sorts of stuff from my list of "best of "s. It's going to be fun, I tell you!&lt;/p&gt;

&lt;p&gt;That's exactly why I'm taking on this challenge. I have a few bigger and a few smaller topics in mind. It's not the size of the article that matters, but the depth and the value it brings. I think that's the most important thing I can deliver to you.&lt;/p&gt;

&lt;p&gt;So my 10 minutes are up soon, and I'm looking forward to the next 10 minutes tomorrow. Stay tuned and follow me so you don't miss an update. I look forward to any feedback from you.&lt;/p&gt;

&lt;p&gt;Cu,&lt;/p&gt;

&lt;p&gt;Stefan&lt;/p&gt;

</description>
      <category>90daysofprose</category>
      <category>challenge</category>
    </item>
    <item>
      <title>Discussion: NextJS or Create-React-App for a back-office application? [Week in Review]</title>
      <dc:creator>Stefan Natter 🇦🇹👨🏻‍💻</dc:creator>
      <pubDate>Sun, 24 Jan 2021 19:07:15 +0000</pubDate>
      <link>https://forem.com/natterstefan/discussion-nextjs-or-create-react-app-for-a-back-office-application-week-in-review-1lmc</link>
      <guid>https://forem.com/natterstefan/discussion-nextjs-or-create-react-app-for-a-back-office-application-week-in-review-1lmc</guid>
      <description>&lt;p&gt;Hello 👋🏻.&lt;/p&gt;

&lt;p&gt;Every Sunday I sit on the sofa with my laptop, listening to lo-fi beats and thinking about what might interest my readers. I gather my links, which I collected in Raindrop or Roam during the week, and put them together in a draft for the week's issue. It can happen that I don't have a main topic ready due to my workload during the week. Most of the time, I look through my notes for a topic that I could present. You also told me in my questionnaire at the end of 2020 that you would like to have a greater focus on the main topic. I would like to comply with that, but this week was relatively short due to various private reasons.&lt;/p&gt;

&lt;p&gt;And so today I present you "only" a list of links, exciting tweets, and my last YouTube video. The main topic today consists of a question. I &lt;a href="https://twitter.com/natterstefan/status/1352508270666244096"&gt;asked this question on Twitter&lt;/a&gt; and I'm looking forward to more lively discussions here in the comments below. &lt;/p&gt;

&lt;p&gt;So I invite you to discuss this with me:&lt;/p&gt;

&lt;p&gt;-&amp;gt; &lt;strong&gt;Would you rather choose NextJS or Create-React-App for a back-office application?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can see my answer and what I have chosen for this project on Twitter.&lt;/p&gt;

&lt;p&gt;Don't forget to share your thoughts with me on &lt;a href="https://twitter.com/intent/follow?screen_name=natterstefan"&gt;Twitter&lt;/a&gt; and sign up for my &lt;a href="https://newsletter.natterstefan.me/"&gt;newsletter&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  ⛓ Links of the Week
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;When I was still working for a local full-service agency, SEO was a big topic on my daily agenda. Not least because of that I often used Screaming Frog to get a picture of a site. The powerful tool shows the broken links, analyzes page title and metadata, can generate XML sitemaps, and more. &lt;a href="https://www.screamingfrog.co.uk/?ref=natterstefan.me"&gt;Screaming Frog&lt;/a&gt; comes with both a free and paid version.&lt;/li&gt;
&lt;li&gt;Tailwind is without question gaining more and more popularity in the web development scene. So it is even more important for me to share new tools I find for Tailwind. Today it's &lt;a href="https://devdojo.com/tails?ref=natterstefan.me"&gt;Tails - the TailwindCSS Page Creator&lt;/a&gt;. What other Tailwind tools do you use?&lt;/li&gt;
&lt;li&gt;Is Disqus still in, or are you already using alternatives? One alternative that I haven't used myself yet but was recommended to me is &lt;a href="https://coralproject.net/?ref=natterstefan.me"&gt;Coral&lt;/a&gt;. I'm curious which commenting solution you use for your website.&lt;/li&gt;
&lt;li&gt;One of the reasons the JavaScript Twitter scene is so valuable to me is because I keep having new "Aha, that's possible. I didn't know that" moments. Several professionals contribute to this, such as the developers on my "Tweets of the Week" list below. The article "&lt;a href="https://www.freecodecamp.org/news/javascript-hacks/?ref=natterstefan.me"&gt;10 JavaScript Hacks Every Web Developer Should Know&lt;/a&gt;" also had a few new tips in store for me. You just never stop learning. Wonderful.&lt;/li&gt;
&lt;li&gt;Animated backgrounds are fancy, aren't they? With &lt;a href="https://www.vantajs.com?ref=natterstefan.me"&gt;Vanta.js&lt;/a&gt; you have one of them with just a few lines of code.&lt;/li&gt;
&lt;li&gt;Every day, tens of thousands of content producers create and publish new videos, articles, tutorials, and tweets. Not only is it impossible to consume them all, but it can also feel stressful when you feel like you're missing something and are constantly looking for more to put on "read later" lists. Maybe tools like &lt;a href="https://www.listory.com/en/?ref=natterstefan.me"&gt;Listory&lt;/a&gt; can help in the future. I would definitely like to try it.&lt;/li&gt;
&lt;li&gt;We know that Flutter is unique and great thanks to developers like Tadas, who put a lot of effort into bringing us closer to Flutter. I myself have too little experience with it, but more complex Hello World examples like "&lt;a href="https://flutterawesome.com/pet-finder-app-with-flutter-firebase-hasura/?ref=natterstefan.me"&gt;Pet Finder App with Flutter + Firebase + Hasura&lt;/a&gt;" make me curious to finally experiment with it.&lt;/li&gt;
&lt;li&gt;What is not so relevant on the desktop is all the more important on smartphones: touch gestures. With &lt;a href="https://hammerjs.github.io/?ref=natterstefan.me"&gt;HammerJS&lt;/a&gt;, these can be implemented not only for mobile devices but also for desktops. So at least the look and feel are relatively the same.&lt;/li&gt;
&lt;li&gt;Many of us probably feel this way, over the winter we get less vitamin D and are not really aware of it. You can track your vitamin D with apps like "&lt;a href="http://dminder.ontometrics.com/?ref=natterstefan.me"&gt;dminder&lt;/a&gt;".&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  📺 Video of the Week
&lt;/h2&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/cvjhfuH4HrU"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  🐦 Tweets of the Week
&lt;/h2&gt;


&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hNyjYQ91--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/media/ErHJFn3XEAEkwAA.jpg" alt="unknown tweet media content"&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--wCqjBqZe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1314813880607166464/rZdd-ubL_normal.jpg" alt="Simon Høiberg profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Simon Høiberg
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @simonhoiberg
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--P4t6ys1m--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      VSCode Shortcuts ⚡&lt;br&gt;&lt;br&gt;7 Essential VSCode Shortcuts that you should learn by heart.&lt;br&gt;&lt;br&gt;Save time and become super-efficient while coding.&lt;br&gt;&lt;br&gt;🧵👇 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      07:13 AM - 07 Jan 2021
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1347078866540572673" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WwRENZp4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1347078866540572673" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PFD0MJBa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1347078866540572673" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6wx1BHu3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gFlU51lp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/media/EsSABKmXAAEc4Oo.jpg" alt="unknown tweet media content"&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--hOQ8s8sP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1268352530423205889/V6Nz7mIt_normal.jpg" alt="Nader Dabit profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Nader Dabit
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        &lt;a class="comment-mentioned-user" href="https://dev.to/dabit3"&gt;@dabit3&lt;/a&gt;

      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--P4t6ys1m--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      Announcing a new in depth live coding workshop live on YouTube! 🔊&lt;br&gt;&lt;br&gt;Building a Multi-user Blogging Platform with Next.js, &lt;a href="https://twitter.com/tailwindcss"&gt;@tailwindcss&lt;/a&gt;, &amp;amp; AWS&lt;br&gt;&lt;br&gt;- SSR, fallback routes, revalidation&lt;br&gt;- GraphQL API (AWS AppSync)&lt;br&gt;- Authentication (Cognito)&lt;br&gt;- File storage (S3)&lt;br&gt;&lt;br&gt;&lt;a href="https://t.co/vOTnpwIzSt"&gt;youtube.com/watch?v=13nYLm…&lt;/a&gt; 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      20:12 PM - 21 Jan 2021
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1352348275777695744" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WwRENZp4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1352348275777695744" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PFD0MJBa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1352348275777695744" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6wx1BHu3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media ltag__twitter-tweet__media__video-wrapper"&gt;
        &lt;div class="ltag__twitter-tweet__media--video-preview"&gt;
          &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LXTdHeiK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/ext_tw_video_thumb/1351559087872503819/pu/img/--ElwE5bk-7BzjAp.jpg" alt="unknown tweet media content"&gt;
          &lt;img src="/assets/play-butt.svg" class="ltag__twitter-tweet__play-butt" alt="Play butt"&gt;
        &lt;/div&gt;
        &lt;div class="ltag__twitter-tweet__video"&gt;
          
            
          
        &lt;/div&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--cpcl2IEg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/972778766782140417/DzxuGyE0_normal.jpg" alt="CodyHouse profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        CodyHouse
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @codywebhouse
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--P4t6ys1m--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      💡 How to create a self-drawing SVG animation in CSS.&lt;br&gt;&lt;br&gt;&lt;a href="https://twitter.com/hashtag/codyhousenugget"&gt;#codyhousenugget&lt;/a&gt; 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      15:56 PM - 19 Jan 2021
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1351559148731830274" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WwRENZp4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1351559148731830274" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PFD0MJBa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1351559148731830274" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6wx1BHu3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DtgNfH2R--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/media/EsPiDLRXcAAoX2T.png" alt="unknown tweet media content"&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--s7MRsppw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1351461219081838592/irG5FdTs_normal.jpg" alt="Marc Backes ⚡️ profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Marc Backes ⚡️
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        &lt;a class="comment-mentioned-user" href="https://dev.to/themarcba"&gt;@themarcba&lt;/a&gt;

      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--P4t6ys1m--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      Pro tip™ - When working with big numbers in JavaScript, you can use _ to visually separate the digits. 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      08:35 AM - 21 Jan 2021
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1352172983851372544" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WwRENZp4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1352172983851372544" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PFD0MJBa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1352172983851372544" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6wx1BHu3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1w-3C18p--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/media/Esb4pUHW8AUTeu4.jpg" alt="unknown tweet media content"&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--02vzbmjG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1260536812419809285/Kj2L2S4v_normal.jpg" alt="FrontEnd Dude | JavaScript profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        FrontEnd Dude | JavaScript
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        &lt;a class="comment-mentioned-user" href="https://dev.to/frontenddude"&gt;@frontenddude&lt;/a&gt;

      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--P4t6ys1m--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      🧙‍♂️ JavaScript Tip: Check if the tab is in view or focus&lt;br&gt;&lt;br&gt;Using 'document.hidden' we can return true or false depending on whether the tab is in view/focus.&lt;br&gt;&lt;br&gt;This is great to detect idle browser tabs or provide user functionality if the tab is active.&lt;br&gt;&lt;br&gt;&lt;a href="https://twitter.com/hashtag/100DaysOfCode"&gt;#100DaysOfCode&lt;/a&gt; &lt;a href="https://twitter.com/hashtag/JavaScript"&gt;#JavaScript&lt;/a&gt; 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      18:13 PM - 23 Jan 2021
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1353043250848935938" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WwRENZp4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1353043250848935938" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PFD0MJBa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1353043250848935938" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6wx1BHu3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;blockquote class="ltag__twitter-tweet"&gt;
    &lt;div class="ltag__twitter-tweet__media ltag__twitter-tweet__media__two-pics"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ybG8v3JU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/media/EsVVPw5XYAInSkB.png" alt="unknown tweet media content"&gt;
    &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--02vzbmjG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1260536812419809285/Kj2L2S4v_normal.jpg" alt="FrontEnd Dude | JavaScript profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        FrontEnd Dude | JavaScript
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        &lt;a class="comment-mentioned-user" href="https://dev.to/frontenddude"&gt;@frontenddude&lt;/a&gt;

      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--P4t6ys1m--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      🧙‍♂️ HTML autocomplete "one-time-code".&lt;br&gt;&lt;br&gt;Using autocomplete you can autofill inputs fields using security codes sent by SMS.&lt;br&gt;&lt;br&gt;Amazingly, this is all done by the browser without any JavaScript, it's pure HTML.&lt;br&gt;&lt;br&gt;⤵️ Check out the example:&lt;br&gt;&lt;br&gt;&lt;a href="https://twitter.com/hashtag/CodeNewbies"&gt;#CodeNewbies&lt;/a&gt; &lt;a href="https://twitter.com/hashtag/HTML"&gt;#HTML&lt;/a&gt; &lt;a href="https://twitter.com/hashtag/100DaysOfCode"&gt;#100DaysOfCode&lt;/a&gt; &lt;a href="https://twitter.com/hashtag/FrontEnd"&gt;#FrontEnd&lt;/a&gt; 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      11:53 AM - 22 Jan 2021
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1352585084147281921" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WwRENZp4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1352585084147281921" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PFD0MJBa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1352585084147281921" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6wx1BHu3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;blockquote class="ltag__twitter-tweet"&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--qagRjbYM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1319765102950862853/rwodlnJI_normal.jpg" alt="David Feitosa profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        David Feitosa
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @davidfeitosa
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--P4t6ys1m--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      &lt;a href="https://twitter.com/natterstefan"&gt;@natterstefan&lt;/a&gt; &lt;a href="https://t.co/YIvyLFdEwf"&gt;youtu.be/AM96rFUDiF8&lt;/a&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      16:31 PM - 24 Jan 2021
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1353379894407913472" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WwRENZp4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1353379894407913472" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PFD0MJBa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1353379894407913472" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6wx1BHu3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;


&lt;p&gt;See you next week - thank you. 👋🏻&lt;/p&gt;

&lt;p&gt;Stefan&lt;/p&gt;

&lt;p&gt;%%[newsletter-form]&lt;/p&gt;




&lt;p&gt;&lt;em&gt;If you like my &lt;a href="https://blog.natterstefan.me/"&gt;articles&lt;/a&gt;, you probably like my &lt;a href="https://twitter.com/intent/follow?screen_name=natterstefan"&gt;tweets&lt;/a&gt; and &lt;a href="https://newsletter.natterstefan.me/"&gt;newsletter&lt;/a&gt; too. Let's stay connected on &lt;a href="https://twitter.com/intent/follow?screen_name=natterstefan"&gt;Twitter&lt;/a&gt;, &lt;a href="http://www.linkedin.com/in/natterstefan"&gt;LinkedIn&lt;/a&gt;, and &lt;a href="https://github.com/natterstefan"&gt;GitHub&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This post includes affiliate links; I may receive compensation if you purchase products or services from the different links provided in this article.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>createreactapp</category>
      <category>javascript</category>
      <category>css</category>
    </item>
    <item>
      <title>How to create your first ESLint Plugin [Week in Review]</title>
      <dc:creator>Stefan Natter 🇦🇹👨🏻‍💻</dc:creator>
      <pubDate>Sun, 17 Jan 2021 18:25:31 +0000</pubDate>
      <link>https://forem.com/natterstefan/how-to-create-your-first-eslint-plugin-week-in-review-26mj</link>
      <guid>https://forem.com/natterstefan/how-to-create-your-first-eslint-plugin-week-in-review-26mj</guid>
      <description>&lt;p&gt;Hello 👋🏻.&lt;/p&gt;

&lt;p&gt;The last two weeks have been relatively hectic for me. Starting a company at the beginning of this year has created a lot of administrative and bureaucratic tasks that keep me from Twitter as well as from coding. At the same time, it has become clear that it can go relatively quickly until self-employment picks up. I've always been a big fan of building a carefully cultivated network of contacts. This has moved me forward several times in life and opened some exciting doors. In fact, I probably wouldn't be at the point I am today if it weren't for many lucky coincidences in my network. For that reason, I can only advise you to take the time to build a network of business contacts. You never know what kind of return on social investment you will get back from it one day. The same is true for Twitter. I spent a considerable amount of time on Twitter last year building a community. Well, I didn't manage to keep the attention span up towards the end of the year, but I'm still proud of my success. With my &lt;a href="https://twitter.com/intent/follow?screen_name=natterstefan"&gt;nearly 7,000 followers&lt;/a&gt;, I have some reach to ask questions, get insightful answers, &lt;a href="https://youtube.com/natterstefan"&gt;promote YouTube videos&lt;/a&gt;, or stay up to date. Social networking pays off!&lt;/p&gt;

&lt;p&gt;But today it's not about Twitter or vitamin B. Today it's about ESLint plugins and creating your own rules. Let's get started then.&lt;/p&gt;

&lt;p&gt;Don't forget to share your thoughts with me on &lt;a href="https://twitter.com/intent/follow?screen_name=natterstefan"&gt;Twitter&lt;/a&gt; and sign up for my &lt;a href="https://newsletter.natterstefan.me/"&gt;newsletter&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to create your first ESLint Plugin
&lt;/h2&gt;

&lt;p&gt;I'm a big fan of a consistent code style within a team, department, or company, respectively. In my opinion, it should not be the case that the teams drift apart too much when it comes to code style. Otherwise, it can be difficult to stick to new rules when you have to help out the other team. Sure the task remains the same, but how the code is written - in terms of style, not content - is important, because once you get used to it you don't want to have it any other way. That's how I feel, for example, when I have to deal with tabs (I'm a spaces developer).&lt;/p&gt;

&lt;p&gt;So it's not surprising that I'm pushing the use of Prettier and ESLint in all my projects - and the ones I'm involved in - and taking care of their implementation. As time goes on, it becomes even more important to have a common base of rules and configurations. That's the only way it scales over time. For this reason, I've created both my own &lt;a href="https://github.com/natterstefan/eslint-config-ns"&gt;Prettier and ESLint configurations&lt;/a&gt;. In a now older &lt;a href="https://natterstefan.medium.com/how-to-create-your-own-shared-eslint-prettier-and-stylelint-configuration-3930dd764de3"&gt;article on Medium&lt;/a&gt;, I explain step by step how to create and reuse your own ESLint configuration.&lt;/p&gt;

&lt;p&gt;Another fan of ESLint, Prettier - and git hooks - is my friend &lt;a href="https://twitter.com/barnabasMJ"&gt;Barnabas Jovanovic&lt;/a&gt;. We talked weeks ago about whether it would be easier to map certain company rules or learnings into ESLint] rules and make sure they are implemented and followed. And so in our live stream yesterday we started to design our own ESLint plugin with our own rules, test it and publish it on npm.&lt;/p&gt;

&lt;p&gt;It was surprisingly easy to create a custom ESLint rule. Basically, much of the work is due to analyzing components of the &lt;a href="https://en.wikipedia.org/wiki/Abstract_syntax_tree"&gt;AST&lt;/a&gt; and declaring them valid or invalid based on one's own set of rules. Take a look at the live streaming recording from my session, the open-source code on GitHub, and the published project on npm.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://nttr.st/3ilFHuJ"&gt;Video: How to create a custom ESLint Plugin enforcing specified import patterns&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://nttr.st/38WVCNb"&gt;npm: eslint-plugin-lodash-tree-shakeable-import&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://nttr.st/3nOlVsN"&gt;GitHub: eslint-plugin-lodash-tree-shakeable-import&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  ⛓ Links of the Week
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;You are looking for a hand-drawn annotation for your text, for instance, a text marker? Go and check out: &lt;a href="https://github.com/rough-stuff/rough-notation"&gt;github.com/rough-stuff/rough-notation&lt;/a&gt; (thanks &lt;a href="https://twitter.com/AdiSreyaj/status/1348705532874379264"&gt;Adithya Sreyaj&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Tailwind provides some animations out of the box, but it is also not difficult to create your own animations with it. In this 2-minutes-to-read tutorial, Tony Lea explains how to create &lt;a href="https://devdojo.com/tnylea/custom-animations-in-tailwindcss"&gt;Custom Animations in TailwindCSS&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Last week I needed to find and use an &lt;a href="https://yoksel.github.io/url-encoder/?ref=natterstefan.me"&gt;SVG to URL Encoder&lt;/a&gt; for a task. This one worked well for me.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/better-programming/5-git-commands-that-you-probably-arent-using-much-5da9a0b95399?ref=natterstefan.me"&gt;5 Git Commands That You Probably Aren’t Using Much&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Quickly see your next and upcoming meetings with the macOS app &lt;a href="https://apps.apple.com/us/app/next-meeting/id1017470484?ref=natterstefan.me"&gt;Next Meeting&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;CSS Scroll Effects can still be found in and on very many websites. Ahmad Shadeed has written a comprehensive and detailed tutorial on &lt;a href="https://ishadeed.com/article/css-scroll-snap?ref=natterstefan.me"&gt;how you can build a CSS Scroll effect for your website without JavaScript&lt;/a&gt;. Bookmarked!
I am a fan of CSS artwork. So it's not surprising that I really liked the &lt;a href="https://codesandbox.io/s/iphone-ucc0z?file=/src/App.js"&gt;iPhone created by Emma Bostian&lt;/a&gt;. And the best part? She did it with &lt;a href="https://styled-components.com/?ref=natterstefan.me"&gt;styled-components&lt;/a&gt;!&lt;/li&gt;
&lt;li&gt;Just before the end of 2020, I saw some tweets with the topic "digital reset". Some talked about reducing their following number to 0 and rebuilding in 2021. That sounds exciting in itself, but I don't know if I would be ready for that. I have too many valuable connections in my following list. Speaking of lists, some things could probably be replicated in Twitter lists. However, I was most intrigued by &lt;a href="https://twitter.com/anildash/status/1341431610013609985"&gt;this tweet&lt;/a&gt;. Anil Dash even goes so far as to update his email address every year. Now that's what I call a digital reset. That would actually be an experiment. Would you do it?&lt;/li&gt;
&lt;li&gt;Are you looking for some inspiration for your personal site? Take a look at &lt;a href="https://humans.fyi"&gt;humans.fyi&lt;/a&gt; and get inspired.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  📺 My latest YouTube Video
&lt;/h2&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/eJWNYFCrYfI"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  🐦 Tweets of the Week
&lt;/h2&gt;


&lt;blockquote class="ltag__twitter-tweet"&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--GUqIou1K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1295429308886859776/eNRicZlD_normal.jpg" alt="Aman Preet Singh ♥️ 💻 profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Aman Preet Singh ♥️ 💻
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @amanpreetdev
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--P4t6ys1m--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      &lt;a href="https://twitter.com/natterstefan"&gt;@natterstefan&lt;/a&gt; 1. Chrome Dinasour one&lt;br&gt;2. Doodle Cricket -  &lt;a href="https://t.co/n15UDegr1x"&gt;doodlecricket.github.io&lt;/a&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      18:07 PM - 12 Jan 2021
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1349055300997824514" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WwRENZp4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1349055300997824514" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PFD0MJBa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1349055300997824514" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6wx1BHu3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media ltag__twitter-tweet__media__video-wrapper"&gt;
        &lt;div class="ltag__twitter-tweet__media--video-preview"&gt;
          &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rj6AMHVB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/ext_tw_video_thumb/1349037506885517314/pu/img/SfItxagAY-2AJs1I.jpg" alt="unknown tweet media content"&gt;
          &lt;img src="/assets/play-butt.svg" class="ltag__twitter-tweet__play-butt" alt="Play butt"&gt;
        &lt;/div&gt;
        &lt;div class="ltag__twitter-tweet__video"&gt;
          
            
          
        &lt;/div&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s---b4b8Xpa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1283446671167369223/Wlwog22S_normal.jpg" alt="Jhey 🐻🛠 profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Jhey 🐻🛠
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @jh3yy
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--P4t6ys1m--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      Clip Path Image Reveals ✨&lt;br&gt;&lt;br&gt;• Use clip-path for a "start" and "end" state 🤓&lt;br&gt;• Power it with CSS variables 💪&lt;br&gt;• No JavaScript required 😉&lt;br&gt;&lt;br&gt;👉 &lt;a href="https://t.co/tCbKL2OSX8"&gt;codepen.io/jh3y/details/L…&lt;/a&gt; via &lt;a href="https://twitter.com/CodePen"&gt;@CodePen&lt;/a&gt; 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      16:57 PM - 12 Jan 2021
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1349037729355587587" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WwRENZp4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1349037729355587587" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PFD0MJBa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1349037729355587587" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6wx1BHu3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;blockquote class="ltag__twitter-tweet"&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--niwr-zi8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1314872679195799552/80_xRIEF_normal.jpg" alt="Ravin profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Ravin
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        &lt;a class="comment-mentioned-user" href="https://dev.to/ravinwashere"&gt;@ravinwashere&lt;/a&gt;

      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--P4t6ys1m--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      Useful web developer tools that you're not using yet. &lt;br&gt;&lt;br&gt;- &lt;a href="https://t.co/atPkZNGAk7"&gt;devurls.com&lt;/a&gt;&lt;br&gt;- &lt;a href="https://t.co/iIzYM19ZiT"&gt;estimator.dev&lt;/a&gt;&lt;br&gt;- &lt;a href="https://t.co/4V259WiIWS"&gt;blobmaker.app&lt;/a&gt;&lt;br&gt;- &lt;a href="https://t.co/z85W2gwct8"&gt;shortcutfoo.com&lt;/a&gt;&lt;br&gt;&lt;br&gt;Share other useful web tools and this post.
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      15:19 PM - 10 Jan 2021
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1348288349656678401" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WwRENZp4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1348288349656678401" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PFD0MJBa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1348288349656678401" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6wx1BHu3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;blockquote class="ltag__twitter-tweet"&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--FUtIXW4Z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1314736521266655232/C1z6UclE_normal.jpg" alt="Addy Osmani profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Addy Osmani
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        &lt;a class="comment-mentioned-user" href="https://dev.to/addyosmani"&gt;@addyosmani&lt;/a&gt;

      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--P4t6ys1m--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      Best practices should be automated as much as possible.
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      21:45 PM - 09 Jan 2021
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1348023150391431169" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WwRENZp4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1348023150391431169" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PFD0MJBa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1348023150391431169" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6wx1BHu3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;blockquote class="ltag__twitter-tweet"&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--P4P_KAQm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1324951610825564160/tTY76YpJ_normal.jpg" alt="Chris Bongers 🤓💻⚡️ profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Chris Bongers 🤓💻⚡️
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        &lt;a class="comment-mentioned-user" href="https://dev.to/dailydevtips1"&gt;@dailydevtips1&lt;/a&gt;

      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--P4t6ys1m--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      Quick shoutout to &lt;a href="https://twitter.com/getSendy"&gt;@getSendy&lt;/a&gt; for making such a awesome self-hosted solution&lt;br&gt;&lt;br&gt;&lt;a href="https://t.co/YUO4uDVW2G"&gt;daily-dev-tips.com/posts/moving-f…&lt;/a&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      11:52 AM - 08 Jan 2021
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1347511568284721155" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WwRENZp4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1347511568284721155" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PFD0MJBa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1347511568284721155" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6wx1BHu3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;


&lt;p&gt;See you next week - thank you. 👋🏻&lt;/p&gt;

&lt;p&gt;Stefan&lt;/p&gt;




&lt;p&gt;&lt;em&gt;If you like my &lt;a href="https://blog.natterstefan.me/"&gt;articles&lt;/a&gt;, you probably like my &lt;a href="https://twitter.com/intent/follow?screen_name=natterstefan"&gt;tweets&lt;/a&gt; and &lt;a href="https://newsletter.natterstefan.me/"&gt;newsletter&lt;/a&gt; too. Let's stay connected on &lt;a href="https://twitter.com/intent/follow?screen_name=natterstefan"&gt;Twitter&lt;/a&gt;, &lt;a href="http://www.linkedin.com/in/natterstefan"&gt;LinkedIn&lt;/a&gt;, and &lt;a href="https://github.com/natterstefan"&gt;GitHub&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This post includes affiliate links; I may receive compensation if you purchase products or services from the different links provided in this article.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>eslint</category>
      <category>linter</category>
      <category>prettier</category>
      <category>javascript</category>
    </item>
    <item>
      <title>15 Games to Play for Your Next Virtual Game Night</title>
      <dc:creator>Stefan Natter 🇦🇹👨🏻‍💻</dc:creator>
      <pubDate>Mon, 11 Jan 2021 06:51:35 +0000</pubDate>
      <link>https://forem.com/natterstefan/15-games-to-play-for-your-next-virtual-game-night-1ff7</link>
      <guid>https://forem.com/natterstefan/15-games-to-play-for-your-next-virtual-game-night-1ff7</guid>
      <description>&lt;p&gt;Hello 👋🏻.&lt;/p&gt;

&lt;p&gt;Welcome back to Week in Review series and to a new year full of possibilities. Like many of you, I have set ambitious goals for myself. Among them, more live streaming sessions, focus on my blog and newsletter as well as building &lt;a href="https://nttr.st/3nxU7ZB"&gt;my company marqant digital&lt;/a&gt;. To that end, I promised you on Twitter to make you a part of my journey.&lt;/p&gt;

&lt;p&gt;But that's not the main topic of this issue - not yet. Currently, my co-founders and I are busy laying the basic structures of our company. This includes the final design and implementation of our own website, the setup of tools (&lt;a href="https://clickup.com/?ref=natterstefan.me"&gt;ClickUp&lt;/a&gt;, Google Workspaces, ...), and communication channels. It is often underestimated how much this matters when starting a business. More about this later.&lt;/p&gt;

&lt;p&gt;Austria, like many other countries, is in lockdown. Restaurants are closed, events do not take place and we stay at home. So it happened that the Christmas party of my previous employer also took place online with Zoom. For this evening, I was given the task of finding online multiplayer games. Since we have to throw one or the other party remotely in the foreseeable future, I share the list of online games with you. If you know any other games, please share them with me and the others.&lt;/p&gt;

&lt;p&gt;Have fun reading and playing.&lt;/p&gt;

&lt;p&gt;Stefan&lt;/p&gt;




&lt;h2&gt;
  
  
  Games for your game night
&lt;/h2&gt;

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

&lt;p&gt;Each group of players is different. One group prefers to play board games, the other wants it tricky and the other again sporty. And so I had to find a variety of games to give my team a wide choice.&lt;/p&gt;

&lt;p&gt;Clarify beforehand whether you want to organize a tournament and crown a winner at the end of the evening. After all, you may want to show your friends that you are a Mario Kart superstar. You can record this classically on a piece of paper or create a tournament tree with &lt;a href="https://challonge.com/?ref=natterstefan.me"&gt;challonge&lt;/a&gt;. So, let's get started.&lt;/p&gt;

&lt;p&gt;One of the most popular games right now (and  &lt;a href="https://twitter.com/madsbrodt/status/1325214512497250304"&gt;I have played it a few times with friends&lt;/a&gt; ) is &lt;strong&gt;Among Us&lt;/strong&gt; (&lt;a href="https://play.google.com/store/apps/details?id=com.innersloth.spacemafia"&gt;Android&lt;/a&gt;, &lt;a href="https://apps.apple.com/at/app/among-us/id1351168404"&gt;iOS&lt;/a&gt;, &lt;a href="https://store.steampowered.com/app/945360/Among_Us/"&gt;Windows&lt;/a&gt;, &lt;a href="https://blog.natterstefan.me/how-to-play-among-us-on-your-mac"&gt;macOS&lt;/a&gt;). This cross-platform game requires a lot of instinct and skill. As an Imposter, you have to kill one crew member after another without being suspected and thrown out of the spaceship. Meanwhile, the unsuspecting crew members complete task after task.&lt;/p&gt;

&lt;p&gt;Do you prefer games with words? Make and place words on the 15x15 board and earn points for creativity and placement of words on the high-scoring double letter, double word, triple letter, and triple word squares with &lt;strong&gt;Wordfreund&lt;/strong&gt; (&lt;a href="https://apps.apple.com/de/app/wordfeud/id428312806"&gt;iOS&lt;/a&gt;, &lt;a href="https://play.google.com/store/apps/details?id=com.hbwares.wordfeud.free"&gt;Android&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;You like to draw and love it when others guess what you draw? Then you like these two games. One game is &lt;strong&gt;&lt;a href="https://www.jackboxgames.com/drawful-two/?ref=natterstefan.me"&gt;Drawful 2&lt;/a&gt;&lt;/strong&gt; and the second is &lt;strong&gt;&lt;a href="https://skribbl.io/?ref=natterstefan.me"&gt;skribbl.io&lt;/a&gt;&lt;/strong&gt;. In both, one of the players is presented with a term and must now draw it. The other players try to guess what is being drawn. These two games (especially skribbl.io) were a lot of fun and provided entertainment.&lt;/p&gt;

&lt;p&gt;Classic games like &lt;strong&gt;Worms&lt;/strong&gt; (&lt;a href="https://apps.apple.com/de/app/worms3/id596677177"&gt;iOS&lt;/a&gt;, &lt;a href="https://play.google.com/store/apps/details?id=com.worms3.app&amp;amp;hl=de"&gt;Android&lt;/a&gt;, &lt;a href="https://store.playstation.com/de-at/product/EP4064-CUSA00824_00-WORMSBGS00000000"&gt;Playstation&lt;/a&gt;), &lt;strong&gt;UNO&lt;/strong&gt; (&lt;a href="https://apps.apple.com/us/app/uno/id1344700142"&gt;iOS&lt;/a&gt;, &lt;a href="https://play.google.com/store/apps/details?id=com.matteljv.uno&amp;amp;hl=en_US"&gt;Android &lt;/a&gt; or &lt;a href="https://store.playstation.com/de-at/product/EP0001-CUSA04040_00-UBISOFTUNOFULL00"&gt;Playstation&lt;/a&gt;), or &lt;strong&gt;Monopoly&lt;/strong&gt; (&lt;a href="https://apps.apple.com/us/app/monopoly/id1477966166"&gt;iOS&lt;/a&gt;, &lt;a href="https://play.google.com/store/apps/details?id=com.marmalade.monopoly&amp;amp;hl=en_US"&gt;Android&lt;/a&gt;, &lt;a href="https://store.playstation.com/de-at/product/EP0001-CUSA00773_00-ASOBOMONOPOLY000"&gt;Playstation&lt;/a&gt;) should not be missing on the list for community games. If you and your friends have a &lt;a href="https://amzn.to/3oy9K4J"&gt;Nintendo Switch&lt;/a&gt; you can also play &lt;strong&gt;&lt;a href="https://www.nintendo.com/games/detail/mario-kart-8-deluxe-switch/?ref=natterstefan.me"&gt;Mario Kart&lt;/a&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;a href="https://www.nintendo.com/games/detail/super-mario-party-switch/?ref=natterstefan.me"&gt;Mario Party&lt;/a&gt;&lt;/strong&gt;, or &lt;strong&gt;&lt;a href="https://www.nintendo.com/games/detail/super-smash-bros-ultimate-switch/?ref=natterstefan.me"&gt;Super Smash Bros.&lt;/a&gt;&lt;/strong&gt;! All of them are lots of fun and entertaining! I can play them all night long. &lt;strong&gt;Mario Kart Tour&lt;/strong&gt; is also available for &lt;a href="https://apps.apple.com/us/app/mario-kart-tour/id1293634699?ref=natterstefan.me"&gt;iOS&lt;/a&gt;, &lt;a href="https://play.google.com/store/apps/details?id=com.nintendo.zaka?ref=natterstefan.me"&gt;Android&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;: Jennifer, one of my readers, got in touch with me and suggested another UNO alternative: &lt;a href="https://www.solitaireparadise.com/games_list/uno-online.html"&gt;UNO online&lt;/a&gt; on solitaireparadise.com. Thank you.&lt;/p&gt;

&lt;p&gt;Do you know "Cards against Humanity"? This entertaining game is also available online. My friend &lt;a href="https://twitter.com/themarcba"&gt;Marc Backes&lt;/a&gt; built a clone of the game with VueJS and made it available to you on &lt;strong&gt;&lt;a href="https://cah.rocks/?ref=natterstefan.me"&gt;cah.rocks&lt;/a&gt;&lt;/strong&gt;. Can you make your friends laugh and win?&lt;/p&gt;

&lt;p&gt;Oh yeah, &lt;a href="https://www.playok.com/en/ludo/"&gt;Man, Don't Get Angry&lt;/a&gt; can't be missed either! &lt;strong&gt;Rocket League&lt;/strong&gt; for &lt;a href="https://store.playstation.com/de-at/product/EP2002-CUSA01433_00-ROCKETLEAGUEEU01"&gt;PlayStation&lt;/a&gt;, &lt;a href="https://www.nintendo.com/games/detail/rocket-league-switch/"&gt;Nintendo Switch&lt;/a&gt;, or &lt;a href="https://www.rocketleague.com"&gt;Windows&lt;/a&gt; as well as &lt;strong&gt;&lt;a href="https://codenames.game/?ref=natterstefan.me"&gt;codenames&lt;/a&gt;&lt;/strong&gt; and &lt;strong&gt;Exploding Kittens&lt;/strong&gt; (&lt;a href="https://apps.apple.com/us/app/exploding-kittens-official/id1040227414?ls=1"&gt;iOS&lt;/a&gt;, &lt;a href="https://play.google.com/store/apps/details?id=com.explodingkittens.projectbombsquad"&gt;Android&lt;/a&gt;) are three entertaining games too.&lt;/p&gt;

&lt;p&gt;And before I forget it, &lt;strong&gt;&lt;a href="https://auxparty.com/?ref=natterstefan.me"&gt;AuxParty&lt;/a&gt;&lt;/strong&gt; is for listening to music together during the night.&lt;/p&gt;

&lt;p&gt;What other games do you have on your list for a successful game night?&lt;/p&gt;

&lt;h2&gt;
  
  
  ⛓ Links of the Week
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://twitter.com/nickbulljs/status/1344901519624327168"&gt;Nick Bull&lt;/a&gt; shared five useful Visual Studio Code extensions a few days ago on Twitter. On the list were &lt;a href="https://marketplace.visualstudio.com/items?itemName=softwaredotcom.swdc-vscode"&gt;Code Time&lt;/a&gt; (time recording of your activity in Visual Studio Code), &lt;a href="https://marketplace.visualstudio.com/items?itemName=aaron-bond.better-comments"&gt;Better Comments&lt;/a&gt; (style TODOs, alerts, and other types of comments), and &lt;a href="https://marketplace.visualstudio.com/items?itemName=Gruntfuggly.todo-tree"&gt;Todo Tree&lt;/a&gt; (overview of all todos in the project), and two more. They are all part of my setup now. You can find a list of all my installed extensions on &lt;a href="https://howivscode.com/natterstefan?ref=natterstefan.me"&gt;howivscode.com&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;In the past, I used Chrome's Inspector to find out the hex code of the color. Now I always hear a slurp when I want to determine the color of an element. I use the &lt;a href="https://colorslurp.com/?ref=natterstefan.me"&gt;ColorSlurp&lt;/a&gt; tool for that. &lt;a href="https://sipapp.io/?ref=natterstefan.me"&gt;Sip&lt;/a&gt; was brought to my attention in a newsletter I subscribed to. The tool looks great and I'm about to buy it. What about you? Which tool do you use?&lt;/li&gt;
&lt;li&gt;With an SVG file and a few lines of CSS, you can &lt;a href="https://dev.to/reime005/custom-text-highlighting-with-css-50b9?ref=natterstefan.me"&gt;create a custom text highlighting&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://scottspence.com/2017/01/28/twitter-bot-bootstrap/?ref=natterstefan.me"&gt;Easily set up your own Twitter bot&lt;/a&gt; explained by Scott Spence.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://tailwindcss.com/"&gt;Tailwind CSS&lt;/a&gt; has enjoyed rapid popularity and therefore it is not surprising that there are already some open source copy and paste solutions to quickly get a website up and running. &lt;a href="https://blocks.wickedtemplates.com/?ref=natterstefan.me"&gt;WickedBlocks&lt;/a&gt; is just one of them.&lt;/li&gt;
&lt;li&gt;Although &lt;a href="https://twitter.com/Prathkum/status/1345041164605513728"&gt;Pratham&lt;/a&gt; has since changed his Twitter Header, he has &lt;a href="https://twitter.com/Prathkum/status/1345041164605513728"&gt;posted a valuable Twitter thread&lt;/a&gt; explaining step by step how to create a Glassmorphism effect with CSS or you use &lt;a href="https://glassmorphism.com?ref=natterstefan.me"&gt;glassmorphism.com&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/rsnous/status/1344837715976572929"&gt;TabFS: mount your browser tabs as a filesystem for Chrome&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;I use the paid app &lt;a href="https://www.macbartender.com/"&gt;Bartender&lt;/a&gt; on my MacBook to hide menu bar icons. The app does an amazing job and I am happy with it. If you are looking for an open-source free alternative you might want to test &lt;a href="https://github.com/Mortennn/Dozer?ref=natterstefan.me"&gt;Dozer&lt;/a&gt;. &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  📺 My latest YouTube Videos
&lt;/h2&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/QgEB4oxrZGo"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  📺 My latest Video
&lt;/h2&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/PrNqYpYhvAI"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  🐦 Tweets of the Week
&lt;/h2&gt;


&lt;blockquote class="ltag__twitter-tweet"&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--vN0WDgyX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1201525049766883328/QPimCC9z_normal.jpg" alt="Arvid Kahl profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Arvid Kahl
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        &lt;a class="comment-mentioned-user" href="https://dev.to/arvidkahl"&gt;@arvidkahl&lt;/a&gt;

      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      I've been wondering about "Product-Market-Fit" recently. &lt;br&gt;&lt;br&gt;Often, people think that they need to find a market that fits their product.&lt;br&gt;&lt;br&gt;I believe you should find a product that fits the market.&lt;br&gt;&lt;br&gt;Market first. Then problem. Then solution. THEN product.
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      19:10 PM - 18 Nov 2019
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1196505854037680129" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1196505854037680129" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1196505854037680129" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;blockquote class="ltag__twitter-tweet"&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--wCqjBqZe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1314813880607166464/rZdd-ubL_normal.jpg" alt="Simon Høiberg profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Simon Høiberg
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @simonhoiberg
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      5 best places to practice your programming skills 💪&lt;br&gt;&lt;br&gt;🔸 CodeWars&lt;br&gt;🔸 HackerRank&lt;br&gt;🔸 LeetCode&lt;br&gt;🔸 Coderbyte&lt;br&gt;🔸 Exercism
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      17:12 PM - 26 Dec 2020
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1342880949617487873" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1342880949617487873" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1342880949617487873" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media ltag__twitter-tweet__media__video-wrapper"&gt;
        &lt;div class="ltag__twitter-tweet__media--video-preview"&gt;
          &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZPRKEeBG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/tweet_video_thumb/EqMcmQWXYAAQOPV.jpg" alt="unknown tweet media content"&gt;
          &lt;img src="/assets/play-butt.svg" class="ltag__twitter-tweet__play-butt" alt="Play butt"&gt;
        &lt;/div&gt;
        &lt;div class="ltag__twitter-tweet__video"&gt;
          
            
          
        &lt;/div&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--P_P-LWGO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1194080814688079872/6qhYKGKC_normal.jpg" alt="Lee Robinson profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Lee Robinson
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @leeerob
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      I rebuilt the Twitter embed with &lt;a href="https://twitter.com/tailwindcss"&gt;@tailwindcss&lt;/a&gt; 🤯&lt;br&gt;&lt;br&gt;✨ Statically generated to prevent CLS&lt;br&gt;🌌 Dark mode support&lt;br&gt;🛠 Uses Twitter API directly&lt;br&gt;&lt;br&gt;&lt;a href="https://t.co/YOe6dxgypH"&gt;leerob.io/tweets&lt;/a&gt; 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      21:41 PM - 26 Dec 2020
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1342948708799942657" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1342948708799942657" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1342948708799942657" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;blockquote class="ltag__twitter-tweet"&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--viSazgic--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/917057191273738243/cDsfmSgj_normal.jpg" alt="TheMarcusAurelius1 profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        TheMarcusAurelius1
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @the1realmarcus
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      Investing half an hour into this simple exercise from &lt;a href="https://twitter.com/tferriss"&gt;@tferriss&lt;/a&gt; over the last 3 years has helped  5X my results &amp;amp; income, highly recommended:&lt;br&gt;&lt;br&gt;&lt;a href="https://t.co/lyihpMgBRd"&gt;tim.blog/2018/12/28/pas…&lt;/a&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      18:38 PM - 25 Dec 2020
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1342540303429939202" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1342540303429939202" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1342540303429939202" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media ltag__twitter-tweet__media__video-wrapper"&gt;
        &lt;div class="ltag__twitter-tweet__media--video-preview"&gt;
          &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--AEQgmG4t--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/ext_tw_video_thumb/1342205818100461570/pu/img/mYpPUqE-aB3miati.jpg" alt="unknown tweet media content"&gt;
          &lt;img src="/assets/play-butt.svg" class="ltag__twitter-tweet__play-butt" alt="Play butt"&gt;
        &lt;/div&gt;
        &lt;div class="ltag__twitter-tweet__video"&gt;
          
            
          
        &lt;/div&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--kTG6_7lB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1050454488866119680/1YPh1VOi_normal.jpg" alt="Joe Karlsson #BlackLivesMatter profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Joe Karlsson #BlackLivesMatter
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @joekarlsson1
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      Moved a chair in front of the bird/squirrel feeder for my cat so he has a comfortable front row seat to the show 😅 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      20:30 PM - 24 Dec 2020
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1342205923889188865" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1342205923889188865" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1342205923889188865" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;


&lt;p&gt;See you next week - thank you. 👋🏻&lt;/p&gt;

&lt;p&gt;Stefan&lt;/p&gt;




&lt;p&gt;&lt;em&gt;If you like my &lt;a href="https://blog.natterstefan.me/"&gt;articles&lt;/a&gt;, you probably like my &lt;a href="https://twitter.com/intent/follow?screen_name=natterstefan"&gt;tweets&lt;/a&gt; and &lt;a href="https://newsletter.natterstefan.me/"&gt;newsletter&lt;/a&gt; too. Let's stay connected on &lt;a href="https://twitter.com/intent/follow?screen_name=natterstefan"&gt;Twitter&lt;/a&gt;, &lt;a href="http://www.linkedin.com/in/natterstefan"&gt;LinkedIn&lt;/a&gt;, and &lt;a href="https://github.com/natterstefan"&gt;GitHub&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This post includes affiliate links; I may receive compensation if you purchase products or services from the different links provided in this article.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>games</category>
      <category>tailwind</category>
      <category>css</category>
      <category>chrome</category>
    </item>
    <item>
      <title>Week in Review Episode 30 - Time for a feedback round.</title>
      <dc:creator>Stefan Natter 🇦🇹👨🏻‍💻</dc:creator>
      <pubDate>Sun, 20 Dec 2020 18:21:33 +0000</pubDate>
      <link>https://forem.com/natterstefan/week-in-review-episode-30-time-for-a-feedback-round-4kjb</link>
      <guid>https://forem.com/natterstefan/week-in-review-episode-30-time-for-a-feedback-round-4kjb</guid>
      <description>&lt;p&gt;Hello 👋🏻.&lt;/p&gt;

&lt;p&gt;Wow, this is already my  &lt;a href="https://hashnode.com/series/week-in-review-ckhbl2tak04b5ozs1a0b08hsi"&gt;30th article of my "Week in Review" series&lt;/a&gt;. 30! That's an incredible number for me. I truly enjoy sharing my highlights with you at the end of each week.&lt;/p&gt;

&lt;p&gt;I usually pick a theme for the issue each week and share more about it. Be it a tool, a new website, or something similar, the focus is on one topic and I complete the issue with links, videos, and a selection of tweets. The year is coming to an end and I'm preparing for my goals for 2021. For that reason, this week is different.&lt;/p&gt;

&lt;p&gt;Today, you guys are my main topic. &lt;em&gt;Your opinion&lt;/em&gt; is the focus of this issue. So I ask you to take your time and give me feedback on my &lt;em&gt;Week in Review&lt;/em&gt; series. Your feedback will help me set goals for "Week in Review" and see where the journey takes this series. Thank you in advance for all your input!&lt;/p&gt;

&lt;p&gt;-&amp;gt;  &lt;a href="https://3aamy2vzt6c.typeform.com/to/OlKBfeUC"&gt;Share your feedback with me&lt;/a&gt; 🙏&lt;/p&gt;

&lt;p&gt;One more thing, during the holidays I will be turning down the frequency of the newsletter and articles. There will probably only be one issue left for 2020.&lt;/p&gt;

&lt;p&gt;More about that in the next issue.&lt;/p&gt;

&lt;p&gt;Enjoy your day.&lt;/p&gt;

&lt;p&gt;Stefan&lt;/p&gt;




&lt;h2&gt;
  
  
  ⛓ Links of the Week
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Are you planning to write and publish your own ebook? At one point you'll need to think about the book cover and how to present it. Bruno Raljic shared a tool for that a while ago on LinkedIn called: &lt;a href="https://3dbook.xyz/?ref=natterstefan.me"&gt;3dbook.xyz&lt;/a&gt;. It works like a charm.&lt;/li&gt;
&lt;li&gt;Speaking about ebooks, Florin Pop released his ebook &lt;a href="https://gumroad.com/a/845542515"&gt;"Ten Ways to Make Money as a Developer"&lt;/a&gt; last week! Congratulations my friend! On over 160 pages you will get tips from a professional on how to earn money with blogging, YouTube, freelancing, and other opportunities and build an additional financial pillar. &lt;a href="https://gumroad.com/a/845542515"&gt;Buy the book now and create your own financial side income&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Francesco Ciulla has not only become one of my favorite Twitter friends, whom I hope to invite live for a coffee soon, I also admire his work, dedication, and inventiveness. He created the term Introvertuber and  &lt;a href="https://francescociulla.com/story-of-an-introvertuber-part-1?ref=natterstefan.me"&gt;described his journey in a detailed post&lt;/a&gt;. Great my friend!&lt;/li&gt;
&lt;li&gt;I can still remember the first time I saw &lt;a href="https://earlyname.com/"&gt;Earlyname&lt;/a&gt; on Product Hunt. In principle, the idea is quickly explained. As soon as a new portal is launched, Earlyname checks if your desired username is still available and informs you. You can then save your username. Great idea. Now I stumbled by chance on the &lt;a href="https://tinyprojects.dev/projects/earlyname=?ref=natterstefan.me"&gt;article with the story behind Easyname&lt;/a&gt;. It was fun and inspired me to learn more about it.&lt;/li&gt;
&lt;li&gt;Do you know &lt;a href="https://mailbrew.com/?ref=natterstefan.me"&gt;Mailbrew&lt;/a&gt; - the personal daily digest? There's an open-source alternative available called &lt;a href="https://github.com/uduakabaci/Paisley?ref=natterstefan.me"&gt;Paisley&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Are you creating a product or the next social network? Make sure you take a look at &lt;a href="https://platformabuse.org?ref=natterstefan.me"&gt;PlatformAbuse.org&lt;/a&gt; ("a knowledge source of technological harms and mitigations to guide safer product development") and take their tips and insights into account.&lt;/li&gt;
&lt;li&gt;A few weeks ago I shared &lt;a href="https://blog.natterstefan.me/remove-backgrounds-in-seconds-with-removebg-week-4220-in-review?ref=natterstefan.me"&gt;remove.bg&lt;/a&gt; with you already. This week I found another tool called &lt;a href="https://icons8.com/bgremover?ref=natterstefan.me"&gt;Background Remover&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Sometimes it's difficult to keep up with discussions in Twitter threads. That is when extensions like &lt;a href="https://chrome.google.com/webstore/detail/treeverse/aahmjdadniahaicebomlagekkcnlcila?hl=en&amp;amp;ref=natterstefan.me"&gt;Treeverse&lt;/a&gt; are useful to me. It visualizes conversations as a tree, basically.&lt;/li&gt;
&lt;li&gt;Ever heard of the &lt;a href="https://faircode.io/?ref=natterstefan.me"&gt;Fair-Code software model&lt;/a&gt;?&lt;/li&gt;
&lt;li&gt;Not one, not ten, no a whopping &lt;a href="https://dev.to/denicmarko/50-free-tools-and-resources-you-re-gonna-love-4hd0?ref=natterstefan.me"&gt;50 free resources Marko Denic has gathered for you&lt;/a&gt;. From APIs, CSS tools, to Docs, there is something for every web developer. I'm sure there is. Thank you, Marko Denic!&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  📺 My latest YouTube Videos
&lt;/h2&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/Nb13Ff7v30k"&gt;
&lt;/iframe&gt;
&lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/ZLM8CDzrhMQ"&gt;
&lt;/iframe&gt;
&lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/1Zk_WynP8ik"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  📺 My latest Video
&lt;/h2&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/v3iPrBrGSJM"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  🐦 Tweets of the Week
&lt;/h2&gt;


&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5J8507rB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/media/EpYEGPKWMAExIaX.jpg" alt="unknown tweet media content"&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s---Cid9qwO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/502942125101568000/a1KejPfj_normal.jpeg" alt="Edward Thomson profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Edward Thomson
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @ethomson
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--P4t6ys1m--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      I love this new change - the &lt;a href="https://twitter.com/npmjs"&gt;@npmjs&lt;/a&gt; registry now lets you know when a package contains built-in &lt;a href="https://twitter.com/typescript"&gt;@typescript&lt;/a&gt;  declarations. 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      17:34 PM - 16 Dec 2020
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1339262661092126721" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WwRENZp4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1339262661092126721" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PFD0MJBa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1339262661092126721" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6wx1BHu3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;blockquote class="ltag__twitter-tweet"&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--S5j-iIul--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1337485337304715264/K3WGuSKe_normal.jpg" alt="Telmo ✌🏻 profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Telmo ✌🏻
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        &lt;a class="comment-mentioned-user" href="https://dev.to/telmo"&gt;@telmo&lt;/a&gt;

      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--P4t6ys1m--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      🔥 New &lt;a href="https://twitter.com/hashtag/JavaScript"&gt;#JavaScript&lt;/a&gt; library.&lt;br&gt;&lt;br&gt;Can't believe how fast I've built this.&lt;br&gt;&lt;br&gt;Take a peek 👇&lt;br&gt;&lt;br&gt;&lt;a href="https://t.co/tsc3hPxIfz"&gt;github.com/telmogoncalves…&lt;/a&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      21:48 PM - 04 Mar 2020
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1235321238119165955" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WwRENZp4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1235321238119165955" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PFD0MJBa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1235321238119165955" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6wx1BHu3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media ltag__twitter-tweet__media__video-wrapper"&gt;
        &lt;div class="ltag__twitter-tweet__media--video-preview"&gt;
          &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--j0GihnRD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/ext_tw_video_thumb/1337101224181641218/pu/img/5J6UNH-NlT_1aYs6.jpg" alt="unknown tweet media content"&gt;
          &lt;img src="/assets/play-butt.svg" class="ltag__twitter-tweet__play-butt" alt="Play butt"&gt;
        &lt;/div&gt;
        &lt;div class="ltag__twitter-tweet__video"&gt;
          
            
          
        &lt;/div&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--Tm6DYRxd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/983777756147343360/LQqydtiV_normal.jpg" alt="Jason Miller 🦊⚛ profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Jason Miller 🦊⚛
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        &lt;a class="comment-mentioned-user" href="https://dev.to/_developit"&gt;@_developit&lt;/a&gt;

      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--P4t6ys1m--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      Hey you! Want to see how much faster your site would be with modern JavaScript?&lt;br&gt;&lt;br&gt;✅ &lt;a href="https://t.co/x7LmaTXIeC"&gt;EStimator.dev&lt;/a&gt; calculates it for you! 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      18:25 PM - 10 Dec 2020
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1337101240313016320" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WwRENZp4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1337101240313016320" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PFD0MJBa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1337101240313016320" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6wx1BHu3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media ltag__twitter-tweet__media__video-wrapper"&gt;
        &lt;div class="ltag__twitter-tweet__media--video-preview"&gt;
          &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--osbxB4kh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/ext_tw_video_thumb/1339284625810714625/pu/img/ueYoUXoinGWHEj8J.jpg" alt="unknown tweet media content"&gt;
          &lt;img src="/assets/play-butt.svg" class="ltag__twitter-tweet__play-butt" alt="Play butt"&gt;
        &lt;/div&gt;
        &lt;div class="ltag__twitter-tweet__video"&gt;
          
            
          
        &lt;/div&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--jnLZaT4g--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1333471260483801089/OtTAJXEZ_normal.jpg" alt="Reddit profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Reddit
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @reddit
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--P4t6ys1m--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      Maybe maybe maybe&lt;br&gt;&lt;br&gt;&lt;a href="https://t.co/mOhsaufOmC"&gt;rddt.co/9NaJ50CNo38&lt;/a&gt; via r/maybemaybemaybe 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      19:02 PM - 16 Dec 2020
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1339284724007792641" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WwRENZp4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1339284724007792641" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PFD0MJBa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1339284724007792641" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6wx1BHu3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;blockquote class="ltag__twitter-tweet"&gt;
    &lt;div class="ltag__twitter-tweet__media ltag__twitter-tweet__media__two-pics"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OMeC2-5M--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/media/EpIKuN3U8A0Chku.jpg" alt="unknown tweet media content"&gt;
    &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--ok7DJMsG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1276332091072892929/lHvQ3U6I_normal.jpg" alt="Kyle Harrison profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Kyle Harrison
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @kwharrison13
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--P4t6ys1m--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      Hot tip. Interested in a company? Google "company name" + "Substack" for a pretty solid smattering. Better than the &lt;a href="https://twitter.com/SubstackInc"&gt;@SubstackInc&lt;/a&gt; find a writer search cause they seem to prioritize description word mention rather than content (+  page rank) 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      15:29 PM - 13 Dec 2020
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1338143921033998336" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WwRENZp4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1338143921033998336" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PFD0MJBa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1338143921033998336" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6wx1BHu3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;


&lt;p&gt;See you next week - thank you. 👋🏻&lt;/p&gt;

&lt;p&gt;Stefan&lt;/p&gt;




&lt;p&gt;&lt;em&gt;If you like my &lt;a href="https://blog.natterstefan.me/"&gt;articles&lt;/a&gt;, you probably like my &lt;a href="https://twitter.com/intent/follow?screen_name=natterstefan"&gt;tweets&lt;/a&gt; and &lt;a href="https://newsletter.natterstefan.me/"&gt;newsletter&lt;/a&gt; too. Let's stay connected on &lt;a href="https://twitter.com/intent/follow?screen_name=natterstefan"&gt;Twitter&lt;/a&gt;, &lt;a href="http://www.linkedin.com/in/natterstefan"&gt;LinkedIn&lt;/a&gt;, and &lt;a href="https://github.com/natterstefan"&gt;GitHub&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This post includes affiliate links; I may receive compensation if you purchase products or services from the different links provided in this article.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ebook</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>twitter</category>
    </item>
  </channel>
</rss>
