<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ar Nazeh</title>
    <description>The latest articles on DEV Community by Ar Nazeh (@nazeh).</description>
    <link>https://dev.to/nazeh</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%2F237965%2F4ed7bc2b-601e-485c-9c4b-5d1988f370a2.jpg</url>
      <title>DEV Community: Ar Nazeh</title>
      <link>https://dev.to/nazeh</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nazeh"/>
    <language>en</language>
    <item>
      <title>Watch your head! Quick foolproof Metadata setup!</title>
      <dc:creator>Ar Nazeh</dc:creator>
      <pubDate>Sun, 26 Apr 2020 11:24:32 +0000</pubDate>
      <link>https://dev.to/nazeh/watch-your-head-quick-foolproof-metadata-setup-3n1p</link>
      <guid>https://dev.to/nazeh/watch-your-head-quick-foolproof-metadata-setup-3n1p</guid>
      <description>&lt;p&gt;Remember when people went to events and conferences? remember Badges? well, your webpage can wear lots of badges too and it can get overwhelming so here is the long story short!&lt;/p&gt;

&lt;p&gt;This is a quick cheatsheet for getting up and running with metadata! for more reading check the resources at the end.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt; element contains all the metadata that the browser needs not render! Think of metadata as the badges your webpage wears around the internet!&lt;/p&gt;

&lt;p&gt;So how much do you need really?&lt;/p&gt;

&lt;h2&gt;
  
  
  Essentials
&lt;/h2&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;charset=&lt;/span&gt;&lt;span class="s"&gt;"utf-8"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"viewport"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"width=device-width, initial-scale=1"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="c"&gt;&amp;lt;!-- The above 2 meta tags *must* come first after the &amp;lt;head&amp;gt;
         for proper document rendering --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;meta charset&lt;/code&gt;&lt;/strong&gt; Handle displaying any language.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;meta name="viewport"&lt;/code&gt;&lt;/strong&gt; Ensures mobile responsiveness.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Primary tags
&lt;/h2&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="c"&gt;&amp;lt;!-- Primary tags --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Page Title&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"title"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"Page Title"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"description"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"Describe your webpage content"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;title&lt;/code&gt;&lt;/strong&gt; Defines the title for the browser toolbar, favorites, and search engine results.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;meta name="viewport"&lt;/code&gt;&lt;/strong&gt; Ensures mobile responsiveness.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Social sharing
&lt;/h2&gt;

&lt;p&gt;This is easy to underappreciate as a new developer building your own pet projects, however at some point, you will need to share them, and no one wants to open a generic link on social media! Do your self a favor and include those in every project.&lt;/p&gt;

&lt;h3&gt;
  
  
  Open graph tags
&lt;/h3&gt;

&lt;p&gt;The &lt;a href="https://ogp.me/"&gt;Open Graph protocol&lt;/a&gt; enables any web page to become a rich object in a social graph.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="c"&gt;&amp;lt;!-- Open Graph --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;property=&lt;/span&gt;&lt;span class="s"&gt;"og:title"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"Page Title"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;property=&lt;/span&gt;&lt;span class="s"&gt;"og:url"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"https://example.com/"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;property=&lt;/span&gt;&lt;span class="s"&gt;"og:type"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"website"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;property=&lt;/span&gt;&lt;span class="s"&gt;"og:description"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"Page Description"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;property=&lt;/span&gt;&lt;span class="s"&gt;"og:image"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"https://example.com/path_to/thumbnail.jpg"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;property=&lt;/span&gt;&lt;span class="s"&gt;"og:image:alt"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"Image description for accessibility"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;og:title:&lt;/code&gt;&lt;/strong&gt; The title of your object as it should appear within the graph, e.g., "The Rock".&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;og:url:&lt;/code&gt;&lt;/strong&gt; The canonical URL of your object that will be used as its permanent ID in the graph.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;og:type:&lt;/code&gt;&lt;/strong&gt; The type of your object, e.g., "video.movie". Depending on the type you specify, other properties may also be required. Most of the time you would use 'website' or 'article'!&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;og:image:&lt;/code&gt;&lt;/strong&gt; An image URL which should represent your object within the graph.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;og:description:&lt;/code&gt;&lt;/strong&gt; A one to two sentence description of your object.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Twitter cards
&lt;/h3&gt;

&lt;p&gt;Help twitter to show off your website links as a &lt;a href="https://developer.twitter.com/en/docs/tweets/optimize-with-cards/guides/getting-started"&gt;twitter card&lt;/a&gt;!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight html"&gt;&lt;code&gt; &lt;span class="c"&gt;&amp;lt;!-- Twitter --&amp;gt;&lt;/span&gt;
 &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;property=&lt;/span&gt;&lt;span class="s"&gt;"twitter:card"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"summary_large_image"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
 &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;property=&lt;/span&gt;&lt;span class="s"&gt;"twitter:url"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"https://example.com/"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
 &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;property=&lt;/span&gt;&lt;span class="s"&gt;"twitter:title"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"Page Title"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
 &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;property=&lt;/span&gt;&lt;span class="s"&gt;"twitter:description"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"Page Description"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
 &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt;
 &lt;span class="na"&gt;property=&lt;/span&gt;&lt;span class="s"&gt;"twitter:image"&lt;/span&gt;
 &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"https://example.com/path-to/thumbnail.jpg"&lt;/span&gt;
 &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
 &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt;
 &lt;span class="na"&gt;property=&lt;/span&gt;&lt;span class="s"&gt;"twitter:image:alt"&lt;/span&gt;
 &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"Image description for accessibility"&lt;/span&gt;
 &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;twitter:card:&lt;/code&gt;&lt;/strong&gt; The card type, which will be one of “summary”, “summary_large_image”, “app”, or “player”.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Putting it all together
&lt;/h2&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;charset=&lt;/span&gt;&lt;span class="s"&gt;"utf-8"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"viewport"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"width=device-width, initial-scale=1"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;

  &lt;span class="c"&gt;&amp;lt;!-- Primary tags --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Page Title&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"title"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"Page Title"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"description"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"Page Description"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;

  &lt;span class="c"&gt;&amp;lt;!-- Open Graph --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;property=&lt;/span&gt;&lt;span class="s"&gt;"og:type"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"website"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;property=&lt;/span&gt;&lt;span class="s"&gt;"og:url"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"https://example.com/"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;property=&lt;/span&gt;&lt;span class="s"&gt;"og:title"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"Page Title"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;property=&lt;/span&gt;&lt;span class="s"&gt;"og:description"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"Page Description"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;property=&lt;/span&gt;&lt;span class="s"&gt;"og:image"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"example.com/path_to/thumbnail.jpg"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;property=&lt;/span&gt;&lt;span class="s"&gt;"og:image:alt"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"Image description for accessibility"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;

  &lt;span class="c"&gt;&amp;lt;!-- Twitter --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;property=&lt;/span&gt;&lt;span class="s"&gt;"twitter:card"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"summary_large_image"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;property=&lt;/span&gt;&lt;span class="s"&gt;"twitter:url"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"https://example.com/"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;property=&lt;/span&gt;&lt;span class="s"&gt;"twitter:title"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"Page Title"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;property=&lt;/span&gt;&lt;span class="s"&gt;"twitter:description"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"Page Description"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt;
    &lt;span class="na"&gt;property=&lt;/span&gt;&lt;span class="s"&gt;"twitter:image"&lt;/span&gt;
    &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"https://example.com/path-to/thumbnail.jpg"&lt;/span&gt;
  &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt;
    &lt;span class="na"&gt;property=&lt;/span&gt;&lt;span class="s"&gt;"twitter:image:alt"&lt;/span&gt;
    &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"Image description for accessibility"&lt;/span&gt;
  &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  Dynamic Metadata
&lt;/h2&gt;

&lt;p&gt;In most cases your webpage will be generated dynamically using a front-end framework of sorts. In that case you will need a reusable component that injects each page's metadata on the fly.&lt;/p&gt;

&lt;p&gt;Check this &lt;a href="https://svelte.dev/repl/171cce5542ec4a658eb1cdf1f0034929?version=3.21.0"&gt;Meta.svelte&lt;/a&gt; component on svelte.dev REPL showing how to avoid the repetition and drying your code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight html"&gt;&lt;code&gt;// Meta.svelte
&lt;span class="nt"&gt;&amp;lt;script&amp;gt;&lt;/span&gt;
  &lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;metadata&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{};&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;svelte:head&amp;gt;&lt;/span&gt;
  {#if metadata.title}
    &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;{metadata.title}&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"title"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;{metadata.title}&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;property=&lt;/span&gt;&lt;span class="s"&gt;"og:title"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;{metadata.title}&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;property=&lt;/span&gt;&lt;span class="s"&gt;"twitter:title"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;{metadata.title}&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  {/if}

  {#if metadata.description}
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"description"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"Page Description"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;property=&lt;/span&gt;&lt;span class="s"&gt;"og:description"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"Page Description"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;property=&lt;/span&gt;&lt;span class="s"&gt;"twitter:description"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"Page Description"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  {/if} 

  {#if metadata.image}
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;property=&lt;/span&gt;&lt;span class="s"&gt;"og:image"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"example.com/path_to/thumbnail.jpg"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt;
      &lt;span class="na"&gt;property=&lt;/span&gt;&lt;span class="s"&gt;"twitter:image"&lt;/span&gt;
      &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"https://example.com/path-to/thumbnail.jpg"&lt;/span&gt;
    &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  {/if} 

  {#if metadata.imageAlt}
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;property=&lt;/span&gt;&lt;span class="s"&gt;"og:image:alt"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;{metadata.imageAlt}&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;property=&lt;/span&gt;&lt;span class="s"&gt;"twitter:image:alt"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;{metadata.imageAlt}&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  {/if}

  {#if metadata.url}
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;property=&lt;/span&gt;&lt;span class="s"&gt;"og:url"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;{metadata.url}&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;property=&lt;/span&gt;&lt;span class="s"&gt;"twitter:url"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;{metadata.url}&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  {/if}

    {#if metadata.type}
      &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;property=&lt;/span&gt;&lt;span class="s"&gt;"og:type"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;{metadata.type}&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  {/if}

  &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;property=&lt;/span&gt;&lt;span class="s"&gt;"twitter:card"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;{metadata.twitterCard&lt;/span&gt; &lt;span class="err"&gt;||&lt;/span&gt; &lt;span class="err"&gt;"&lt;/span&gt;&lt;span class="na"&gt;summary_large_image&lt;/span&gt;&lt;span class="err"&gt;"}&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/svelte:head&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Then use it in your pages:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight html"&gt;&lt;code&gt;//App.svelte
&lt;span class="nt"&gt;&amp;lt;script&amp;gt;&lt;/span&gt;
    &lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;Meta&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./Meta.svelte&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;

    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;metadata&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Svelte is Awesome&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;It really is!&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;image&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;https://svelte.dev/images/twitter-card.png&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;imageAlt&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Svelte svelte.dev&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;url&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;svelte.dev&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;Meta&lt;/span&gt; &lt;span class="err"&gt;{&lt;/span&gt;&lt;span class="na"&gt;metadata&lt;/span&gt;&lt;span class="err"&gt;}&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;You can do the same with every component-based framework!&lt;/p&gt;

&lt;h2&gt;
  
  
  conclusion
&lt;/h2&gt;

&lt;p&gt;As you can see in the resources below, there is a lot of metadata you can provide about your webpage, and you should explore it progressively.&lt;br&gt;
However, this setup should get you covered for basic needs. When you need more, your client/supervisor will let you know!&lt;/p&gt;

&lt;p&gt;Comments, suggestions, and corrections are welcome.&lt;/p&gt;

&lt;h3&gt;
  
  
  Resources
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML"&gt;What’s in the head? Metadata in HTML&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://htmlhead.dev/#recommended-minimum"&gt;A free guide to HTML5  elements&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://metatags.io/"&gt;Metatags.io&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ogp.me/"&gt;Open Graph protocol&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.twitter.com/en/docs/tweets/optimize-with-cards/guides/getting-started"&gt;Getting started with twitter cards&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>html</category>
      <category>svelte</category>
      <category>metadata</category>
    </item>
    <item>
      <title>Invisible Barriers That Prevent You From Learning Web Development and How to Break Through Them</title>
      <dc:creator>Ar Nazeh</dc:creator>
      <pubDate>Sat, 14 Mar 2020 18:30:46 +0000</pubDate>
      <link>https://dev.to/nazeh/invisible-barriers-that-prevent-you-from-learning-web-development-and-how-to-break-through-them-2f6i</link>
      <guid>https://dev.to/nazeh/invisible-barriers-that-prevent-you-from-learning-web-development-and-how-to-break-through-them-2f6i</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6Eigt-4K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AIMfayU8KwXkZxJHV1wPn8Q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6Eigt-4K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AIMfayU8KwXkZxJHV1wPn8Q.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;The Great&lt;/strong&gt; Filter of web development! and how to break through it?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;The hidden cost of frustrating, demotivating web development MOOCs!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For years, I’ve tried studying web development through various online courses.&lt;br&gt;
And every time I ended up &lt;strong&gt;frustrated and demotivated for months&lt;/strong&gt; before&lt;br&gt;
trying again! So I know the struggle and the ubiquitous&lt;br&gt;
&lt;a href="https://media1.tenor.com/images/614c9b4639a2588383f47e138177da81/tenor.gif"&gt;meme&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Then, I started building full responsive clones for great web-pages like:&lt;br&gt;&lt;br&gt;
&lt;a href="https://nazeh.github.io/youtube_video_player_page/"&gt;Youtube&lt;/a&gt;,&lt;br&gt;
&lt;a href="https://nazeh.github.io/the_next_web_responsive_clone/"&gt;TNW&lt;/a&gt;,&lt;br&gt;
&lt;a href="https://nazeh.github.io/grid-framework-behance-clone/"&gt;Behance&lt;/a&gt;,&lt;br&gt;
&lt;a href="https://nazeh.github.io/newsweek_clone_bootstrap/"&gt;Newsweek&lt;/a&gt;, and more in less&lt;br&gt;
than 4 weeks!&lt;/p&gt;

&lt;p&gt;**So what happened? **out of the necessity of having a &lt;a href="https://microverse.org/"&gt;coding&lt;br&gt;
partner&lt;/a&gt;, I researched the state of CSS in 2019. It’s&lt;br&gt;
then that I realized that MOOCs as great as they are, can be gatekeepers!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--49z6DH3_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AjwNrHrVk7iI_hH0w5LQiBQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--49z6DH3_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AjwNrHrVk7iI_hH0w5LQiBQ.png" alt=""&gt;&lt;/a&gt;&lt;br&gt;
&lt;span class="figcaption_hack"&gt;4+ fully responsive projects in 4 weeks&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;So in this article, I will discuss that and answer the following questions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;WHY&lt;/strong&gt; are discouraging MOOCs dangerous?&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;HOW&lt;/strong&gt; are MOOCs discouraging?&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;WHAT&lt;/strong&gt; can you do about it?&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Why
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;The world needs more software developers.&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Even with programmers supply doubling every 5 years, demand is growing even&lt;br&gt;
faster!&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Software is eating the world” — Marc Andreessen Co-founder of Netscape&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Every industry is integrating Software development at every step. From hiring&lt;br&gt;
management to supply chain to advertisement and sales, Software is essential.&lt;br&gt;
Not mentioning design, optimization, and manufacturing of their products. It’s a&lt;br&gt;
necessity to stay competitive.&lt;/p&gt;

&lt;p&gt;You may argue that there are rather too many programmers instead, and only good&lt;br&gt;
ones are scarce. so how would more non-CS graduates help solve that problem?&lt;/p&gt;

&lt;p&gt;Well, I am well aware of the difference between a coder and a software&lt;br&gt;
developer, and I strive to be the later.&lt;/p&gt;

&lt;p&gt;I am not arguing that we don’t need improvement in quality. but quantity has&lt;br&gt;
quality on its own and you can’t get more of the later without starting with&lt;br&gt;
more of the former!&lt;/p&gt;

&lt;p&gt;But don’t take my word for it, take it from those “&lt;a href="https://code.org/quotes"&gt;Leaders and&lt;br&gt;
trendsetters”&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;And I hope that more &lt;a href="https://en.wikipedia.org/wiki/Financial_independence"&gt;financial&lt;br&gt;
independence&lt;/a&gt; can help us&lt;br&gt;
face &lt;a href="https://etherealvalue.wordpress.com/2017/03/21/secular-stagnation/"&gt;dangerous&lt;br&gt;
stagnation&lt;/a&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  Front-end is the gate!
&lt;/h4&gt;

&lt;p&gt;What does any of that have to do with CSS for example? It’s not even a&lt;br&gt;
programming language! OK, it &lt;a href="https://stackoverflow.com/questions/2497146/is-css-turing-complete/5239256#5239256"&gt;can&lt;br&gt;
encode&lt;/a&gt;&lt;br&gt;
&lt;a href="http://en.wikipedia.org/wiki/Rule_110"&gt;Rule 110&lt;/a&gt; but come on, it’s a&lt;br&gt;
style-sheet.&lt;/p&gt;

&lt;p&gt;Indeed Front-end development is more about “&lt;strong&gt;UX Engineering&lt;/strong&gt;” as &lt;a href="https://css-tricks.com/the-great-divide/"&gt;some&lt;br&gt;
suggest&lt;/a&gt; to name it. And it is&lt;br&gt;
possible to have a career where you stay in that lane and never become a&lt;br&gt;
programmer.&lt;/p&gt;

&lt;p&gt;Nonetheless, Front-end development is the most approachable for anyone with no&lt;br&gt;
CS background. It’s also the most accessible market.&lt;/p&gt;

&lt;p&gt;HTML &amp;amp; CSS will always be the first thing anyone tries once the idea of career&lt;br&gt;
shift come through their minds. That also explains why JavaScript is the first&lt;br&gt;
language most people learn!&lt;/p&gt;

&lt;p&gt;And it is actually a good first step, it is visual rather than logical or&lt;br&gt;
mathematical. You will often hear people joke about how bad at math they are,&lt;br&gt;
but they take pride in their taste and style.&lt;/p&gt;

&lt;p&gt;So it’s rather disappointing when they feel discouraged and repelled by a&lt;br&gt;
style-sheet. And it is very easy to &lt;strong&gt;mistake Confusing with Complex&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;In most cases all around the world career shift is hard and risky. getting a job&lt;br&gt;
or starting making money through freelance can be crucial. Deterring someone at&lt;br&gt;
this early stage can mean the end of their Tech pursuit.&lt;/p&gt;

&lt;h3&gt;
  
  
  How
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;Remember: Reddit is only an Alt-Tab away! -Quincy Larson&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;While preparing to write this article, I watched a&lt;br&gt;
&lt;a href="https://www.youtube.com/watch?time_continue=127&amp;amp;v=Ef07Hhoc5KE"&gt;talk&lt;/a&gt; by Quincy&lt;br&gt;
Larson. In it, he talked about the fight for readers attention while writing a&lt;br&gt;
technical article. But it also applies for self-learn platforms as well.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Readers are looking for an excuse to close your article! -Quincy Larson&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Yes, self-teaching coders, should have more grit and discipline. But still,&lt;br&gt;
career shift is scary, and their defense systems are looking for reasons to give&lt;br&gt;
up. So it baffles me how FreeCodeCamp curriculum looks like :&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7m2x9TK7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2ARnh9j84frokupJLTqlH0mA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7m2x9TK7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2ARnh9j84frokupJLTqlH0mA.png" alt=""&gt;&lt;/a&gt;&lt;br&gt;
&lt;span class="figcaption_hack"&gt;Not Even the full list!&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Days and days of learning small snippets of very basic HTML and CSS! And for&lt;br&gt;
some reason, you still didn’t learn about any recent development like Flexbox or&lt;br&gt;
CSS-grid! Not mentioning that you have nothing to show for it, to ease your&lt;br&gt;
self-doubt.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Here you can notice several tendencies:&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Mistaking old as fundamental, and new as advance!&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I can’t see an upside in delaying learning &lt;strong&gt;Flexbox&lt;/strong&gt; and &lt;strong&gt;CSS-Grid **and -as&lt;br&gt;
far as I can remember- even **Box-sizing&lt;/strong&gt;!&lt;/p&gt;

&lt;p&gt;Why force students to struggle through outdated tools? Praying day in and day&lt;br&gt;
out that everything will make sense somehow!&lt;/p&gt;

&lt;p&gt;I would say the same about dismissing pre-compilers as a tool for advanced&lt;br&gt;
users. In fact, it has a very shallow learning curve and can only make the&lt;br&gt;
student feel smarter and more in control. &lt;a href="https://sass-lang.com/documentation/at-rules/control"&gt;Sass Flow&lt;br&gt;
Control&lt;/a&gt; is also a very&lt;br&gt;
welcome boost to student’s confidence.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Under-appreciating the importance of early achievements!&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The longer a student spends going through infinite baby-steps, the worse.&lt;br&gt;
Building real-world projects boost their confidence, enhances learning, and&lt;br&gt;
cements concepts.&lt;/p&gt;

&lt;p&gt;There are only so many abstract concepts you can force your brain to memorize&lt;br&gt;
before it repels. &lt;strong&gt;Jumping into coding and researching on a need to know basis,&lt;br&gt;
is more efficient in the long run&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Those projects have to be real websites.** Students need to build something they&lt;br&gt;
can take pride in**, and show off.&lt;/p&gt;

&lt;h3&gt;
  
  
  What
&lt;/h3&gt;

&lt;p&gt;Enough with the rant, off to a more practical note, here is a simple guide to&lt;br&gt;
what worked for me:&lt;/p&gt;

&lt;h4&gt;
  
  
  Goal
&lt;/h4&gt;

&lt;p&gt;This guide aims to be an alternative approach for learning Responsive web&lt;br&gt;
design. One that takes the student’s urgent need for a sense of progression into&lt;br&gt;
account.&lt;/p&gt;

&lt;h4&gt;
  
  
  Method
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;- Learn on a need to know basis.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Project-based&lt;/strong&gt; learning helps you to know &lt;em&gt;what you don’t know&lt;/em&gt;, and &lt;em&gt;why you
need to know it&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;As counter-intuitive as it sounds: &lt;strong&gt;Resist the temptation to learn more&lt;/strong&gt;
tricks. Master the few you got until you have to learn new ones to get the job
done.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;- Maintain the Flow&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Your momentum is a priority, be vigilant to the time you spend on a task, and&lt;br&gt;
omit anything that slows you down.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Skim read&lt;/strong&gt;  when you need to learn a new tool or review a resource. Learn
to spot the keywords and reach for conclusions. Take note of the resource and
review it later if you need an in-depth study.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Write faster.&lt;/strong&gt;  Learning to write faster with the least mistakes is
invaluable, take time to improve that. it allows you to try things faster, and
push through your chocking points.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Customize and automate&lt;/strong&gt;  As you go, notice all the repetitive tasks and
see if there is a way to save time on it. search for cheatsheets, hotkeys,
custom settings, or automation opportunities.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;- Always Cheat&lt;/strong&gt;!
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;Win if you can lose if you must but always cheat!* -Jesse Ventura*&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Good engineers are lazy. Cut corners to achieve much more than you could on your&lt;br&gt;
own, as long as it’s outside the scope of what you are trying to learn.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;*&lt;em&gt;Clone pretty websites! *&lt;/em&gt; I chose to clone
&lt;a href="https://nazeh.github.io/grid-framework-behance-clone/"&gt;Behance&lt;/a&gt; because I know
it already looks great on its own.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use great art to populate your clones.&lt;/strong&gt;In my &lt;a href="https://nazeh.github.io/youtube_video_player_page/"&gt;Youtube
Clone&lt;/a&gt;, I used Kurzgesagt’s
videos because of their amazing visuals.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Don’t write Content.&lt;/strong&gt; For content-heavy webpage, copy all content elements to
your HTML file. You can then use RegExp to improve the semantics and apply your
own classes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Go the extra steps with ready code snippets.&lt;/strong&gt; It was not possible to
replicate every behavior of
&lt;a href="https://nazeh.github.io/newsweek_clone_bootstrap/"&gt;Newsweek&lt;/a&gt; without JS. I
wasn’t trying to learn JS at that point so I excused my self to copy code from
Stackoverflow and change it for my needs.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  - Pixel Perfect
&lt;/h4&gt;

&lt;p&gt;Yes, you can cheat and cut corners and still be a perfectionist.&lt;br&gt; The goal is&lt;br&gt;
to make an exact replica, indistinguishable from the original.&lt;br&gt; Your job is&lt;br&gt;
to make a vertical slice of a full website, so responsiveness is not optional.&lt;/p&gt;

&lt;h4&gt;
  
  
  Getting started
&lt;/h4&gt;

&lt;p&gt;I recommend &lt;a href="https://code.visualstudio.com/"&gt;VScode&lt;/a&gt; as your text editor and any&lt;br&gt;
&lt;a href="https://www.google.com/chrome/"&gt;Chromium browser&lt;/a&gt; for best developer tools.&lt;/p&gt;

&lt;p&gt;Then you will need to install a few extensions for VScode to make your life&lt;br&gt;
easier:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=HookyQR.beautify"&gt;Beautify&lt;/a&gt;
will help you format your HTML, CSS, Sass and JS files.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=shinnn.stylelint"&gt;Stylelint&lt;/a&gt;
will help you write better CSS.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer"&gt;Live
server&lt;/a&gt;
will enable you to examine your changes whenever you save it.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=ritwickdey.live-sass"&gt;Live Sass
Compiler&lt;/a&gt;
will recompile your Sass files to CSS whenever you save as sass file.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can also install the &lt;a href="https://marketplace.visualstudio.com/items?itemName=jamesqquick.web-development-essentials-extension-pack"&gt;Web Development Essentials Extension&lt;br&gt;
Pack.&lt;/a&gt;&lt;br&gt;
But I would rather install extensions as the need arise, but take a look&lt;br&gt;
nonetheless.&lt;/p&gt;

&lt;h4&gt;
  
  
  Start Building
&lt;/h4&gt;

&lt;p&gt;Once you choose a webpage to clone, then this general process should be a good&lt;br&gt;
start:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Set up your project directory.&lt;/strong&gt;&lt;a href="https://rogerdudler.github.io/git-guide/"&gt;Set-up&lt;br&gt;
Git&lt;/a&gt;, and organize your Folder&lt;br&gt;
Structure:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;icon.png&lt;br&gt;
    | &lt;br&gt;
      main.css&lt;br&gt;
      main.scss&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Start your index.html.&lt;/strong&gt;Start writing ‘doc’ and VScode should suggest the&lt;br&gt;
following:&lt;/p&gt;











Document








&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As you can see &lt;a href="https://code.visualstudio.com/docs/editor/emmet"&gt;Emmet&lt;br&gt;
abbreviations&lt;/a&gt; are super useful&lt;br&gt;
and you should learn more about it.&lt;br&gt; Now link your stylesheet, add your title&lt;br&gt;
and icon:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;...
&amp;lt;meta http-equiv="X-UA-Compatible" content="ie=edge"&amp;gt;




&amp;lt;/head&amp;gt;
...
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Start using Live server and Sass Live compiler to examine changes going forward.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Inspect and analyze&lt;/strong&gt; &lt;a href="https://developers.google.com/web/tools/chrome-devtools/device-mode"&gt;Toggle Device
Toolbar&lt;/a&gt; in
the original page to inspect its layout in the mobile version. Mobile-first
approach means fewer positioning needed at first, and incremental changes
later. You might need to show media queries as well. Analyze the
structure of the page. Schematic diagram would help as well.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6sd-Qop2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AoRagFqqAoAOJNck3a8numg.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6sd-Qop2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AoRagFqqAoAOJNck3a8numg.jpeg" alt=""&gt;&lt;/a&gt;&lt;br&gt;
&lt;span class="figcaption_hack"&gt;&lt;a href="https://www.ecurtisdesigns.com/web-layout-design/"&gt;https://www.ecurtisdesigns.com/web-layout-design/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Build the Layout with HTML5 semantic.&lt;/strong&gt;Start laying out the general structure
using &lt;a href="https://codepen.io/mi-lee/post/an-overview-of-html5-semantics"&gt;HTML5
elements&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LML5UoN---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AsLTmWUT0Wr6gg94OgIfWnA.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LML5UoN---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AsLTmWUT0Wr6gg94OgIfWnA.jpeg" alt=""&gt;&lt;/a&gt;&lt;br&gt;
&lt;span class="figcaption_hack"&gt;&lt;a href="https://codepen.io/mi-lee/post/an-overview-of-html5-semantics"&gt;https://codepen.io/mi-lee/post/an-overview-of-html5-semantics&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Start populating elements.&lt;/strong&gt; For this stage, &lt;a href="https://css-tricks.com/snippets/css/a-guide-to-flexbox/"&gt;CSS
Flexbox&lt;/a&gt;** **should be
all you need. It will be most handy for justifying and aligning each element’s
content.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Expand and position.&lt;/strong&gt;Start expanding the width of your page, and set up a new&lt;br&gt;
&lt;a href="https://www.w3schools.com/cssref/css3_pr_mediaquery.asp"&gt;media query&lt;/a&gt; for each&lt;br&gt;
breaking point. You will also need to have more control over your layout so&lt;br&gt;
start using&lt;br&gt;
&lt;a href="https://css-tricks.com/snippets/css/complete-guide-grid/"&gt;CSS-Grid&lt;/a&gt;. Also,&lt;br&gt;
check out &lt;a href="https://medium.com/@js_tut/css-grid-the-swiss-army-knife-for-cutting-website-and-application-layouts-c1bd7a6b4e56"&gt;this&lt;br&gt;
article&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;@media only screen and (min-width: 576px) {&lt;br&gt;
 ...&lt;br&gt;
}&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Start populating content.&lt;/strong&gt;Copy Images, paragraphs and other content from the&lt;br&gt;
original HTML.&lt;br&gt; Use VScode’s &lt;a href="https://regexr.com/"&gt;RegExp&lt;/a&gt; in the &lt;a href="https://code.visualstudio.com/docs/editor/codebasics#_advanced-find-and-replace-options"&gt;find and&lt;br&gt;
replace&lt;/a&gt;&lt;br&gt;
to improve the semantics and apply your own classes to the copied HTML.&lt;br&gt; This&lt;br&gt;
might seem complicated but it is a powerful tool to avoid entering tens of&lt;br&gt;
content.&lt;br&gt; You can experiment with it and see the example below&lt;br&gt;
&lt;a href="http://regexr.com/4lrea"&gt;here&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/p&gt;


  
  
  
  


\n((.+\n)+)&amp;lt;\/div&amp;gt;

\n$1


  
  
  
  

&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Kill the snakes&lt;/strong&gt; Congratulations, you opened Pandora’s box. many problems&lt;br&gt;
will be evident at once.&lt;br&gt; Don’t panic, this is the plan all along, to&lt;br&gt;
discover what you need to learn, now start searching for answers. one problem at&lt;br&gt;
a time.&lt;br&gt; You already noticed that &lt;a href="https://css-tricks.com/"&gt;CSS Tricks&lt;/a&gt; will&lt;br&gt;
be your best friend.&lt;/p&gt;&lt;/li&gt;


&lt;p&gt;Rense and repeat until you have a perfect page!&lt;/p&gt;
&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;Front-end development is and will stay for a long time every newbie’s first&lt;br&gt;
contact with IT. and it’s currently a gatekeeper rather than an enabler. I can’t&lt;br&gt;
guarantee that the guide I offered will work for everyone. but it is worth&lt;br&gt;
trying If you tried once and failed. Jump into it, no hello world anymore, find&lt;br&gt;
a page that looks great and clone it.&lt;/p&gt;

&lt;p&gt;Let me know what do you think!&lt;/p&gt;

&lt;/ul&gt;

</description>
      <category>css</category>
      <category>grid</category>
      <category>webdev</category>
      <category>frontend</category>
    </item>
  </channel>
</rss>
