<?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: nghihua</title>
    <description>The latest articles on DEV Community by nghihua (@nghihua).</description>
    <link>https://dev.to/nghihua</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%2F571490%2Ff81a667d-e05e-49ca-9f79-99d57f4a762e.png</url>
      <title>DEV Community: nghihua</title>
      <link>https://dev.to/nghihua</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nghihua"/>
    <language>en</language>
    <item>
      <title>[Boost]</title>
      <dc:creator>nghihua</dc:creator>
      <pubDate>Sun, 01 Mar 2026 07:19:49 +0000</pubDate>
      <link>https://dev.to/nghihua/-3nbb</link>
      <guid>https://dev.to/nghihua/-3nbb</guid>
      <description>&lt;p&gt;

&lt;/p&gt;
&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/pungy/type-variance-clearly-m42" class="crayons-story__hidden-navigation-link"&gt;Type Variance Clearly&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/pungy" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F299108%2Fc450a405-e57a-401d-921e-3df50879b3c0.jpg" alt="pungy profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/pungy" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Maksim Iakovlev
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Maksim Iakovlev
                
              
              &lt;div id="story-author-preview-content-2851350" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/pungy" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F299108%2Fc450a405-e57a-401d-921e-3df50879b3c0.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Maksim Iakovlev&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/pungy/type-variance-clearly-m42" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Sep 17 '25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/pungy/type-variance-clearly-m42" id="article-link-2851350"&gt;
          Type Variance Clearly
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/typescript"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;typescript&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/computerscience"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;computerscience&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/pungy/type-variance-clearly-m42" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;13&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/pungy/type-variance-clearly-m42#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              3&lt;span class="hidden s:inline"&gt; comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            4 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;




</description>
      <category>programming</category>
      <category>typescript</category>
      <category>computerscience</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>nghihua</dc:creator>
      <pubDate>Sun, 15 Feb 2026 07:50:53 +0000</pubDate>
      <link>https://dev.to/nghihua/-4a5c</link>
      <guid>https://dev.to/nghihua/-4a5c</guid>
      <description>&lt;p&gt;

&lt;/p&gt;
&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/bnb/my-first-experience-attending-tc39-bpn" class="crayons-story__hidden-navigation-link"&gt;My 🔥 First Experience Attending TC39&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/bnb" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F9233%2Fe31b00c6-7c41-4819-bf12-5c7487dd881a.jpg" alt="bnb profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/bnb" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Tierney Cyren
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Tierney Cyren
                
              
              &lt;div id="story-author-preview-content-97515" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/bnb" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F9233%2Fe31b00c6-7c41-4819-bf12-5c7487dd881a.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Tierney Cyren&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/bnb/my-first-experience-attending-tc39-bpn" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Apr 15 '19&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/bnb/my-first-experience-attending-tc39-bpn" id="article-link-97515"&gt;
          My 🔥 First Experience Attending TC39
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/javascript"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;javascript&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/opensource"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;opensource&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/tc39"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;tc39&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/bnb/my-first-experience-attending-tc39-bpn" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;93&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/bnb/my-first-experience-attending-tc39-bpn#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              22&lt;span class="hidden s:inline"&gt; comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            7 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;




</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>opensource</category>
      <category>tc39</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>nghihua</dc:creator>
      <pubDate>Wed, 30 Apr 2025 10:05:19 +0000</pubDate>
      <link>https://dev.to/nghihua/-852</link>
      <guid>https://dev.to/nghihua/-852</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/sebastiandg7/nx-nextjs-docker-the-nx-way-containerizing-our-application-1mi7" class="crayons-story__hidden-navigation-link"&gt;Nx + NextJS + Docker: Containerizing our application&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/sebastiandg7" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F85249%2F7bc10211-36a8-4eae-ab48-2a6543945b86.jpeg" alt="sebastiandg7 profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/sebastiandg7" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Sebastián Duque G
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Sebastián Duque G
                
              
              &lt;div id="story-author-preview-content-1519115" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/sebastiandg7" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F85249%2F7bc10211-36a8-4eae-ab48-2a6543945b86.jpeg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Sebastián Duque G&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/sebastiandg7/nx-nextjs-docker-the-nx-way-containerizing-our-application-1mi7" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jun 28 '23&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/sebastiandg7/nx-nextjs-docker-the-nx-way-containerizing-our-application-1mi7" id="article-link-1519115"&gt;
          Nx + NextJS + Docker: Containerizing our application
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/sebastiandg7/nx-nextjs-docker-the-nx-way-containerizing-our-application-1mi7" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/fire-f60e7a582391810302117f987b22a8ef04a2fe0df7e3258a5f49332df1cec71e.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;48&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/sebastiandg7/nx-nextjs-docker-the-nx-way-containerizing-our-application-1mi7#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              12&lt;span class="hidden s:inline"&gt; comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            6 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>tooling</category>
      <category>webdev</category>
      <category>nextjs</category>
      <category>docker</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>nghihua</dc:creator>
      <pubDate>Mon, 20 Jan 2025 06:20:45 +0000</pubDate>
      <link>https://dev.to/nghihua/-84e</link>
      <guid>https://dev.to/nghihua/-84e</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/sophiekaelin" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F660729%2F29e32275-fa4c-4563-b14e-a80d0a5624c6.jpg" alt="sophiekaelin"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/sophiekaelin/what-is-the-difference-between-cors-and-csp-i7n" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;What is the difference between CORS and CSP?&lt;/h2&gt;
      &lt;h3&gt;Sophie Kaelin ・ Sep 6 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#cors&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#csp&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#cybersecurity&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#security&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>webdev</category>
      <category>security</category>
      <category>discuss</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>nghihua</dc:creator>
      <pubDate>Mon, 06 Jan 2025 02:40:27 +0000</pubDate>
      <link>https://dev.to/nghihua/-19k8</link>
      <guid>https://dev.to/nghihua/-19k8</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/hanzla-baig" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1943881%2F9ac2e85a-ebf7-431d-980b-c2479c92f658.JPG" alt="hanzla-baig"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/hanzla-baig/150-free-apis-every-developer-needs-to-know-m9j" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;150+ FREE APIs Every Developer Needs to Know&lt;/h2&gt;
      &lt;h3&gt;Hanzla Baig ・ Jan 4&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#api&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#developer&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>webdev</category>
      <category>api</category>
    </item>
    <item>
      <title>Script tags blocking behavior</title>
      <dc:creator>nghihua</dc:creator>
      <pubDate>Fri, 03 Jan 2025 08:00:59 +0000</pubDate>
      <link>https://dev.to/nghihua/script-tags-blocking-behavior-343l</link>
      <guid>https://dev.to/nghihua/script-tags-blocking-behavior-343l</guid>
      <description>&lt;p&gt;&lt;strong&gt;1. Script without async or defer (Blocking Script)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What it does: This is the default behavior. When the browser encounters this type of script, it will pause parsing of the HTML document until the script is downloaded and executed.&lt;/li&gt;
&lt;li&gt;What it blocks: It blocks both the HTML parsing and other scripts (if they come after it) from executing until it has completed.&lt;/li&gt;
&lt;li&gt;Effect on events: These block both the DOMContentLoaded and load events because the browser stops parsing the HTML to download and execute the script, and only resumes once the script is fully executed. This can delay both events, as the browser needs to finish the script execution before continuing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Defer Script&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What it does: A script with the defer attribute also downloads asynchronously, like async, but the key difference is that it waits until the DOM is fully parsed before executing. It will run after the HTML is parsed, and in the order it appears in the document (even if there are multiple defer scripts).&lt;/li&gt;
&lt;li&gt;What it blocks: It does not block HTML parsing or the download of other scripts, but it will block execution of subsequent scripts that are placed after it (unless they are also defer).&lt;/li&gt;
&lt;li&gt;Effect on events: These scripts do not block the DOMContentLoaded event, but they do block the load event. Scripts with defer are executed after the document has been parsed, but before the load event fires (i.e., after DOMContentLoaded).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Async Script&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What it does: A script with the async attribute downloads asynchronously, meaning it doesn't block HTML parsing. However, once it finishes downloading, it will immediately execute (before the HTML parsing is complete and before other scripts).&lt;/li&gt;
&lt;li&gt;What it blocks: It does not block HTML parsing, but it can interrupt the order of script execution. It will block other scripts if it finishes downloading and executing before them, meaning an async script may run before other scripts (even if they are placed above it in the document).&lt;/li&gt;
&lt;li&gt;Effect on events: These scripts do not block either the DOMContentLoaded or load events. They are executed as soon as they are downloaded, regardless of the HTML parsing, meaning they do not block the DOM content loading or the overall page load.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Note, however, that scripts will wait on CSS to be downloaded before it can be executed because the JavaScript might query the CSSOM. Thus, even if we inline our JS (without async or defer attribute), DOMContentLoaded will not be fired until after the CSSOM has been constructed.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;More on this:&lt;br&gt;
&lt;a href="https://web.dev/articles/critical-rendering-path/analyzing-crp" rel="noopener noreferrer"&gt;https://web.dev/articles/critical-rendering-path/analyzing-crp&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>https://css-triggers.com/</title>
      <dc:creator>nghihua</dc:creator>
      <pubDate>Fri, 03 Jan 2025 06:40:11 +0000</pubDate>
      <link>https://dev.to/nghihua/httpscss-triggerscom-214n</link>
      <guid>https://dev.to/nghihua/httpscss-triggerscom-214n</guid>
      <description></description>
      <category>css</category>
      <category>webdev</category>
      <category>frontend</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>nghihua</dc:creator>
      <pubDate>Fri, 03 Jan 2025 04:20:35 +0000</pubDate>
      <link>https://dev.to/nghihua/-nlm</link>
      <guid>https://dev.to/nghihua/-nlm</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/kafeel_ahmad" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F920309%2Fadb29bf4-2cd0-4c21-b6ba-24cbd1a344d8.png" alt="kafeel_ahmad"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/kafeel_ahmad/11-free-must-know-websites-for-every-developer-22g6" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;11 Free Must-Know Websites for Every Developer&lt;/h2&gt;
      &lt;h3&gt;Kafeel Ahmad (kaf shekh) ・ Jan 2&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#javascript&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#programming&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>webdev</category>
      <category>resources</category>
      <category>beginners</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
