<?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: Seb Gos (@tatakodzi)</title>
    <description>The latest articles on DEV Community by Seb Gos (@tatakodzi) (@tatakodzi).</description>
    <link>https://dev.to/tatakodzi</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%2F1310322%2F9cdf09dc-0b50-4517-910e-2f53985c4368.jpeg</url>
      <title>DEV Community: Seb Gos (@tatakodzi)</title>
      <link>https://dev.to/tatakodzi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tatakodzi"/>
    <language>en</language>
    <item>
      <title>WTF is 💧Hydration?</title>
      <dc:creator>Seb Gos (@tatakodzi)</dc:creator>
      <pubDate>Wed, 12 Feb 2025 14:21:38 +0000</pubDate>
      <link>https://dev.to/tatakodzi/wtf-is-hydration-5aa6</link>
      <guid>https://dev.to/tatakodzi/wtf-is-hydration-5aa6</guid>
      <description>&lt;p&gt;Alright folks, let’s dive into one of the buzzwords of modern web development: &lt;strong&gt;💧Hydration&lt;/strong&gt;. No, it’s not about water bottles or staying healthy during coding marathons. In the JavaScript world, hydration is a key concept used in frameworks like Angular, React and many more. If you’ve never heard of it, no worries! Let’s break it down.&lt;/p&gt;

&lt;h3&gt;
  
  
  🏗 What is 💧Hydration?
&lt;/h3&gt;

&lt;p&gt;Imagine you open a webpage. The page loads super fast, and everything looks perfect. But then, you try to click a button or interact with it—and nothing happens. Why? Because the page was just a "static" HTML snapshot.&lt;/p&gt;

&lt;p&gt;Hydration is the process of &lt;strong&gt;activating&lt;/strong&gt; that static HTML with JavaScript so it becomes interactive. Essentially, it’s JavaScript "rehydrating" the HTML, like pouring life back into it. It makes your website dynamic and functional, connecting all the buttons, forms, and animations.&lt;/p&gt;

&lt;p&gt;It’s a commonly used phrase in a world of SSR (&lt;em&gt;Server Side Rendered&lt;/em&gt;) apps.&lt;/p&gt;

&lt;p&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.amazonaws.com%2Fuploads%2Farticles%2Fjiicotfretgssnq2w5u4.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.amazonaws.com%2Fuploads%2Farticles%2Fjiicotfretgssnq2w5u4.png" alt="Image description" width="800" height="365"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&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.amazonaws.com%2Fuploads%2Farticles%2Fvs1266f6o7ktjddax2pd.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.amazonaws.com%2Fuploads%2Farticles%2Fvs1266f6o7ktjddax2pd.png" alt="Image description" width="800" height="407"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Images taken from React Conf 2021.&lt;/p&gt;

&lt;h3&gt;
  
  
  💡 How 💧Hydration works in Frameworks?
&lt;/h3&gt;

&lt;p&gt;Let's have a look at the most popular frameworks utilizing different hydration types.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Angular&lt;/th&gt;
&lt;th&gt;React&lt;/th&gt;
&lt;th&gt;SolidJS&lt;/th&gt;
&lt;th&gt;Qwik&lt;/th&gt;
&lt;th&gt;Vue&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Hydration Type&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Incremental&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Full + Partial&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Granular&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;No hydration&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Full&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Client-Side JavaScript&lt;/td&gt;
&lt;td&gt;Moderate&lt;/td&gt;
&lt;td&gt;Heavy&lt;/td&gt;
&lt;td&gt;Minimal&lt;/td&gt;
&lt;td&gt;Minimal&lt;/td&gt;
&lt;td&gt;Heavy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Resumability&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Partial&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Yes&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  🔗 Links
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://angular.dev/guide/incremental-hydration" rel="noopener noreferrer"&gt;Angular Incremental Hydration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://18.react.dev/reference/react-dom/client/hydrateRoot" rel="noopener noreferrer"&gt;React Full Hydration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.solidjs.com/guides/server" rel="noopener noreferrer"&gt;SolidJS Granular Hydration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://qwik.dev/docs/concepts/resumable/" rel="noopener noreferrer"&gt;Qwik Resumability&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.builder.io/blog/resumability-vs-hydration" rel="noopener noreferrer"&gt;Qwik Resumability vs Hydration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=LdbHmSKp-88" rel="noopener noreferrer"&gt;Vue.js Hydration Demystified&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>javascript</category>
      <category>programming</category>
      <category>beginners</category>
      <category>hydration</category>
    </item>
    <item>
      <title>Micro frontends in 1 minute</title>
      <dc:creator>Seb Gos (@tatakodzi)</dc:creator>
      <pubDate>Wed, 28 Feb 2024 15:33:42 +0000</pubDate>
      <link>https://dev.to/tatakodzi/micro-frontends-in-1-minute-37an</link>
      <guid>https://dev.to/tatakodzi/micro-frontends-in-1-minute-37an</guid>
      <description>&lt;p&gt;I'm a big fan of reading docs &amp;amp; manuals before I try things especially when they are a bit more complex (advanced). However I know how much joy and motivation it gives when you get first positive experience fast (e.g. running working example). That's why I've decided to look into micro learning where you might scratch the surface, experience if it's for you and get some insights what's next if you want more.&lt;/p&gt;

&lt;p&gt;Today I want to give you short introduction to micro frontends architecture starting from project structure setup. Following the words above let's get working example first. I will use real-life example - we will create a banking app consist of micro frontends.&lt;/p&gt;

&lt;h2&gt;
  
  
  🕒 Time start
&lt;/h2&gt;

&lt;p&gt;First of all let's create an empty (None) NX workspace:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx create-nx-workspace@latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and get into it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd bank-mfe
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then let's add some framework to the NX workspace:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;nx add @nx/angular
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now let's create apps folder to store all our micro frontends:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir apps
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and get into it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd apps
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It's time to create our micro frontends:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;nx g @nx/angular:host shell --remotes=account,payment,investment,mortgage,pension
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  🕒 Stop the time!
&lt;/h2&gt;

&lt;p&gt;You did it! Your project consist of micro frontends! Now you can start and see it in browser by:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;nx serve shell --open
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you actively develop/change given micro frontend remember to serve it with &lt;code&gt;devRemotes&lt;/code&gt; like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;nx serve shell --open devRemotes=account
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  👨‍💻 Link to code example
&lt;/h2&gt;

&lt;p&gt;Code example: &lt;a href="https://github.com/sebgos/bank-mfe" rel="noopener noreferrer"&gt;https://github.com/sebgos/bank-mfe&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Video: &lt;a href="https://www.youtube.com/watch?v=Vyi8pjuuky0" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=Vyi8pjuuky0&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I have used:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://nx.dev/" rel="noopener noreferrer"&gt;https://nx.dev/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://angular.io/" rel="noopener noreferrer"&gt;https://angular.io/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://code.visualstudio.com/" rel="noopener noreferrer"&gt;https://code.visualstudio.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Curious to get more insights on micro frontends? Let me know in the comments!&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>microfrontends</category>
      <category>javascript</category>
      <category>learning</category>
    </item>
  </channel>
</rss>
