<?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: Avinash Sharma</title>
    <description>The latest articles on DEV Community by Avinash Sharma (@avinashsharma01).</description>
    <link>https://dev.to/avinashsharma01</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2022651%2Fbea95df6-2bb0-4fc4-8d54-180aeff6b314.jpg</url>
      <title>DEV Community: Avinash Sharma</title>
      <link>https://dev.to/avinashsharma01</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/avinashsharma01"/>
    <language>en</language>
    <item>
      <title>What Really Happens When You Press Enter? The Browser Rendering Pipeline Explained</title>
      <dc:creator>Avinash Sharma</dc:creator>
      <pubDate>Fri, 25 Sep 2026 16:18:03 +0000</pubDate>
      <link>https://dev.to/avinashsharma01/what-really-happens-when-you-press-enter-the-browser-rendering-pipeline-explained-3paf</link>
      <guid>https://dev.to/avinashsharma01/what-really-happens-when-you-press-enter-the-browser-rendering-pipeline-explained-3paf</guid>
      <description>&lt;h1&gt;
  
  
  A Senior Engineer's Guide to the Browser Rendering Pipeline (From DNS to Paint)
&lt;/h1&gt;

&lt;p&gt;Have you ever wondered what&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8lk2q4lc89k0xc4s14wt.png" class="article-body-image-wrapper"&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8lk2q4lc89k0xc4s14wt.png" alt=" " width="" height=""&gt;&lt;/a&gt; actually happens between the moment you hit Enter on a URL and when the first pixel lights up on your screen?&lt;/p&gt;

&lt;p&gt;Understanding this pipeline is the dividing line between junior developers who just write code and senior engineers who build ultra-fast, 60fps web applications.&lt;/p&gt;

&lt;p&gt;Let’s walk through the 5 crucial stages of the browser rendering pipeline.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. The Network Journey: DNS, TCP, and TLS
&lt;/h2&gt;

&lt;p&gt;Before a single byte of HTML is received, your browser must establish a connection:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;DNS Resolution:&lt;/strong&gt; Checks the browser cache, OS cache, and queries DNS resolvers to turn &lt;code&gt;example.com&lt;/code&gt; into an IP address (e.g. &lt;code&gt;93.184.216.34&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TCP Handshake:&lt;/strong&gt; A 3-way handshake (&lt;code&gt;SYN&lt;/code&gt;, &lt;code&gt;SYN-ACK&lt;/code&gt;, &lt;code&gt;ACK&lt;/code&gt;) guarantees reliable packet transport.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TLS Handshake:&lt;/strong&gt; Exchanges cryptographic keys to establish an encrypted HTTPS connection.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  2. Parsing HTML to Build the DOM
&lt;/h2&gt;

&lt;p&gt;Once the first chunk of HTML arrives (usually in 8KB packets), the browser rendering engine begins parsing:&lt;/p&gt;

&lt;p&gt;$$\text{Raw Bytes} \longrightarrow \text{Characters} \longrightarrow \text{Tokens} \longrightarrow \text{Nodes} \longrightarrow \text{DOM Tree}$$&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Important Interview Note:&lt;/em&gt; If the parser hits a &lt;code&gt;&amp;lt;script src="app.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt; tag without &lt;code&gt;async&lt;/code&gt; or &lt;code&gt;defer&lt;/code&gt;, HTML parsing stops completely until the JavaScript is downloaded and executed. This is why scripts should always be deferred!&lt;/p&gt;




&lt;h2&gt;
  
  
  3. The CSSOM: CSS is Render-Blocking
&lt;/h2&gt;

&lt;p&gt;While the DOM is being built, external stylesheets and &lt;code&gt;&amp;lt;style&amp;gt;&lt;/code&gt; blocks are parsed into the &lt;strong&gt;CSS Object Model (CSSOM)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Unlike HTML, CSS cannot be parsed incrementally because styles cascade. A rule at the very bottom of your CSS file might override a rule at the top. Therefore, &lt;strong&gt;CSS is strictly render-blocking&lt;/strong&gt; — the browser will not paint until the CSSOM is complete.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. The Render Tree &amp;amp; Layout (Reflow)
&lt;/h2&gt;

&lt;p&gt;The browser combines the &lt;strong&gt;DOM&lt;/strong&gt; and &lt;strong&gt;CSSOM&lt;/strong&gt; to produce the &lt;strong&gt;Render Tree&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Elements with &lt;code&gt;display: none&lt;/code&gt; are excluded from the Render Tree.&lt;/li&gt;
&lt;li&gt;Elements with &lt;code&gt;visibility: hidden&lt;/code&gt; are included (they take up geometric space).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Next comes &lt;strong&gt;Layout (Reflow)&lt;/strong&gt;: The browser calculates the exact pixel positions, widths, and heights for every node relative to the viewport.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. Paint and Compositing
&lt;/h2&gt;

&lt;p&gt;Finally:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Paint:&lt;/strong&gt; Fills in text colors, borders, images, and box shadows into individual layers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compositing:&lt;/strong&gt; The GPU arranges these layers onto the screen.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When you animate properties like &lt;code&gt;transform&lt;/code&gt; and &lt;code&gt;opacity&lt;/code&gt;, the browser only recalculates the Compositing step on the GPU, avoiding expensive Layout and Paint cycles. This is why CSS transforms feel silky smooth!&lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusion &amp;amp; Next Steps
&lt;/h2&gt;

&lt;p&gt;Mastering browser internals gives you an unfair advantage in technical interviews and in diagnosing performance bottlenecks like LCP and CLS.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This article is Phase 1 of my comprehensive **21-Phase Frontend Architecture Blueprint&lt;/em&gt;&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;You can read the complete interactive curriculum and explore all engineering phases here:&lt;br&gt;&lt;br&gt;
👉 &lt;strong&gt;&lt;a href="https://www.avinashsharmadev.me/blueprint" rel="noopener noreferrer"&gt;Read the Full Blueprint at avinashsharmadev.me/blueprint&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>react</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
