<?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: Aman Kumar</title>
    <description>The latest articles on DEV Community by Aman Kumar (@amankumar).</description>
    <link>https://dev.to/amankumar</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%2F1450429%2F8bf2b01e-cce2-4c30-a805-630e30cb911a.jpg</url>
      <title>DEV Community: Aman Kumar</title>
      <link>https://dev.to/amankumar</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/amankumar"/>
    <language>en</language>
    <item>
      <title>[Boost]</title>
      <dc:creator>Aman Kumar</dc:creator>
      <pubDate>Fri, 06 Jun 2025 08:00:28 +0000</pubDate>
      <link>https://dev.to/amankumar/-5edh</link>
      <guid>https://dev.to/amankumar/-5edh</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/amankumar/firebase-migrate-users-from-one-project-to-another-using-firebase-cli-23f" class="crayons-story__hidden-navigation-link"&gt;Firebase: Migrate users from one project to another using Firebase CLI&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="/amankumar" 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%2F1450429%2F8bf2b01e-cce2-4c30-a805-630e30cb911a.jpg" alt="amankumar profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/amankumar" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Aman Kumar
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Aman Kumar
                
              
              &lt;div id="story-author-preview-content-2566969" 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="/amankumar" 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%2F1450429%2F8bf2b01e-cce2-4c30-a805-630e30cb911a.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Aman Kumar&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/amankumar/firebase-migrate-users-from-one-project-to-another-using-firebase-cli-23f" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jun 6 '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/amankumar/firebase-migrate-users-from-one-project-to-another-using-firebase-cli-23f" id="article-link-2566969"&gt;
          Firebase: Migrate users from one project to another using Firebase CLI
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/firebase"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;firebase&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/authentication"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;authentication&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/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&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/amankumar/firebase-migrate-users-from-one-project-to-another-using-firebase-cli-23f" 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&gt;
              &lt;span class="aggregate_reactions_counter"&gt;1&lt;span class="hidden s:inline"&gt; reaction&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/amankumar/firebase-migrate-users-from-one-project-to-another-using-firebase-cli-23f#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              &lt;span class="hidden s:inline"&gt;Add Comment&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;
            2 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>firebase</category>
      <category>authentication</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Firebase: Migrate users from one project to another using Firebase CLI</title>
      <dc:creator>Aman Kumar</dc:creator>
      <pubDate>Fri, 06 Jun 2025 07:59:24 +0000</pubDate>
      <link>https://dev.to/amankumar/firebase-migrate-users-from-one-project-to-another-using-firebase-cli-23f</link>
      <guid>https://dev.to/amankumar/firebase-migrate-users-from-one-project-to-another-using-firebase-cli-23f</guid>
      <description>&lt;p&gt;Firebase is a popular service used by developers for various backend functionalites which provides a user freindly interface to manage your projects and one them is &lt;strong&gt;authentication&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Firebase authentication is very populary service which provides a bunch of authentication methods like email/password, google, facebook, twitter, phone, etc. &lt;/p&gt;

&lt;p&gt;Using this we can manage users in our project and provide a seamless authentication experience. But in some cases you might need to move users from one project to another project, like, when you are merging a smaller project into a larger one to keep track of all your mini-projects in one place.&lt;/p&gt;

&lt;p&gt;Firebase does not provide any way to migrate users from one project to another but we can do so using the Firebase CLI, which is very easy to follow with a very few steps.&lt;/p&gt;

&lt;h2&gt;
  
  
  Environment setup
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Install Firebase CLI Tools&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Run command in command prompt to install firebase-tools globally: &lt;/p&gt;

&lt;p&gt;&lt;code&gt;npm install -g firebase-tools&lt;/code&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Login to Firebase via CLI&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;To login to your firebase account via the command line, run command:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;firebase login&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This will redirect you to Firebase CLI login website. Complete the login process using your Firebase account where you have access to your projects.&lt;/p&gt;

&lt;h2&gt;
  
  
  Export users from older project
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Find the Project ID of the older project&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You can find the Project ID of your project though Firebase console &amp;gt; Project Settings &amp;gt; General.&lt;/p&gt;

&lt;p&gt;OR&lt;/p&gt;

&lt;p&gt;Find a list of your project using CLI using command:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;firebase projects:list&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Find your older project name and its respective Project ID from the results.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Use CLI to export users&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Run the following command to export user from your older project:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;firebase auth:export firebase-users.json --format=json --project &amp;lt;YOUR_PROJECT_ID&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;firebase auth:export&lt;/code&gt;: It tells Firebase you're trying to export users.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;firebase-users.json&lt;/code&gt;: File name of the file where you want to export users.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;--format=json&lt;/code&gt;: Specifies the file format of the destination file.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;--project &amp;lt;YOUR_PROJECT_ID&amp;gt;&lt;/code&gt;: It tells Firebase which project you are exporting the users from. Replace  with the Project ID of your older project.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Retrieving the Password hash parameters
&lt;/h2&gt;

&lt;p&gt;To successfully import the user into your new project you need some secret keys and values used in your older project.&lt;/p&gt;

&lt;p&gt;Go to Authentication &amp;gt; Users &amp;gt; Three dots beside &lt;code&gt;Add User&lt;/code&gt; button &amp;gt; Password hash parameters.&lt;/p&gt;

&lt;p&gt;This will open a popup with secret keys and their values.&lt;/p&gt;

&lt;p&gt;Make note of all the values:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;hash_config {
  algorithm: &amp;lt;HASH_ALGO&amp;gt;,
  base64_signer_key: &amp;lt;YOUT_SIGHER_KEY&amp;gt;,
  base64_salt_separator: &amp;lt;YOUR_SALT_SEPARATOR&amp;gt;,
  rounds: &amp;lt;ROUNDS&amp;gt;,
  mem_cost: &amp;lt;MEM_COST&amp;gt;,
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Import users into your new project
&lt;/h2&gt;

&lt;p&gt;To import users from the file &lt;code&gt;firebase-users.json&lt;/code&gt; file to your new project, run the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;firebase auth:import firebase-users.json --project=&amp;lt;NEW_PROJECT_ID&amp;gt; --hash-algo=&amp;lt;HASH_ALGO&amp;gt; --hash-key=&amp;lt;YOUR_SIGHER_KEY&amp;gt; --salt-separator=&amp;lt;YOUR_SALT_SEPARATOR&amp;gt; --rounds=&amp;lt;ROUNDS&amp;gt; --mem-cost=&amp;lt;MEM_COST&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;firebase auth:import&lt;/code&gt;: It tells Firebase you'are trying to iport users.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;firebase-users.json&lt;/code&gt;: Path to File with filename to the file where you have exported user data.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;--project=&amp;lt;NEW_PROJECT_ID&amp;gt;&lt;/code&gt;: Project ID of your new project, replace with .&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;HASH_ALGO&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;YOUR_SIGHER_KEY&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;YOUR_SALT_SEPARATOR&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;ROUNDS&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;MEM_COST&amp;gt;&lt;/code&gt;: Refer to the values retrieved from your older project.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After running this command, refresh your users in Firebase console. Now you can see all the users from older project in your new project.&lt;/p&gt;

</description>
      <category>firebase</category>
      <category>authentication</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Group routes according to the categories and apply different layouts with layout.tsx in NextJs App Routing.</title>
      <dc:creator>Aman Kumar</dc:creator>
      <pubDate>Fri, 26 Apr 2024 07:19:40 +0000</pubDate>
      <link>https://dev.to/amankumar/how-to-skip-the-applayouttsx-file-for-layout-in-nextjs-app-routing-56mb</link>
      <guid>https://dev.to/amankumar/how-to-skip-the-applayouttsx-file-for-layout-in-nextjs-app-routing-56mb</guid>
      <description>&lt;h2&gt;
  
  
  Problem:
&lt;/h2&gt;

&lt;p&gt;While making a project in NextJs you sometimes need specific components which you want to render within your route path. For example: You want to show a Header and a Sidebar along with the data required on the specific route path. To do  that you might add those Components in /app/layout.tsx 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;import Header from "./components/Header";
import Sidebar from "./components/Sidebar";

export default function RootLayout({
  children,
}: Readonly&amp;lt;{
  children: React.ReactNode;
}&amp;gt;) {
  return (
    &amp;lt;html lang="en"&amp;gt;
      &amp;lt;body className={inter.className}&amp;gt;
        &amp;lt;Header /&amp;gt;
          &amp;lt;div className="w-full h-[calc(100%-56px)] flex flex-nowrap justify-start items-start "&amp;gt;
            &amp;lt;Sidebar /&amp;gt;
            {children}
          &amp;lt;/div&amp;gt;
      &amp;lt;/body&amp;gt;
    &amp;lt;/html&amp;gt;
  );
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You might also want to add a Login and SignUp page to your NextJs project to authenticate a user. Then you will get a folder layout like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8gcn299idbf2i1ukan42.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8gcn299idbf2i1ukan42.png" alt="Faulty Folder Layout" width="396" height="734"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But if we make a folder named login and create a page.tsx file in it and go the the "/login" path, there you see that Header and Sidebar are present as well, which is not necessary here.&lt;/p&gt;

&lt;p&gt;The preview for such case would be something like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgfcaqwtfdvqpxjezvxpt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgfcaqwtfdvqpxjezvxpt.png" alt="Faulty Preview 1" width="800" height="529"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4zwjba3vvcrhd55vp5vj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4zwjba3vvcrhd55vp5vj.png" alt="Faulty Preview 2" width="800" height="332"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now you can say that we can make folders for each route and add a layout file in which the Header and Sidebar components can be added. You can do this but it will increase the number of layout files required and also there will be a repetitive code in each such layout file. You will also run into a situation where you want to add Header and Sidebar components to page on your "/" path. And if you want to add these components you will have to add them to the /app/layout.tsx file, then these components will also appear on your Login and SignUp pages.&lt;/p&gt;

&lt;p&gt;So how do we solve this problem?&lt;/p&gt;

&lt;h2&gt;
  
  
  Solution:
&lt;/h2&gt;

&lt;p&gt;To solve this problem we have learn about Route Groups which you can read more about &lt;a href="https://nextjs.org/docs/app/building-your-application/routing/route-groups"&gt;here&lt;/a&gt;.&lt;br&gt;
NextJs Route Groups in App Routing are folders which act as a group of similar type of contents and the folder name is enclosed in parenthesis for example: (auth). This folder does not make any routes in the App Routing. If a login route is to be created in the (auth) Route Group, its route will look like: project.com/login, the (auth) does not come into the route uri as it is just a group. You can define a layout.tsx file in this (auth) folder and all the routes created in this (auth) group will follow the same layout. As such you can create another group named (loggedIn) where you can define the layout.tsx file with Header and Sidebar components as such:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import Header from "../components/Header";
import Sidebar from "../components/Sidebar";

export default function LoggedInLayout({
  children,
}: Readonly&amp;lt;{
  children: React.ReactNode;
}&amp;gt;) {
  return (
    &amp;lt;&amp;gt;
      &amp;lt;Header /&amp;gt;
      &amp;lt;div className="w-full h-[calc(100%-56px)] flex flex-nowrap justify-start items-start "&amp;gt;
        &amp;lt;Sidebar /&amp;gt;
        {children}
      &amp;lt;/div&amp;gt;
    &amp;lt;/&amp;gt;
  );
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And the layout.tsx file in (auth) group without Header and Sidebar components can be defined as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;export default function AuthLayout({
  children,
}: Readonly&amp;lt;{
  children: React.ReactNode;
}&amp;gt;) {
  return (
    &amp;lt;&amp;gt;
      &amp;lt;div className="w-screen h-screen"&amp;gt;{children}&amp;lt;/div&amp;gt;
    &amp;lt;/&amp;gt;
  );
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Finally you can define the root layout.tsx file directly in the app folder as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;export default function RootLayout({
  children,
}: Readonly&amp;lt;{
  children: React.ReactNode;
}&amp;gt;) {
  return (
    &amp;lt;html lang="en"&amp;gt;
      &amp;lt;body className={inter.className}&amp;gt;
        &amp;lt;div className="w-full h-screen"&amp;gt;{children}&amp;lt;/div&amp;gt;
      &amp;lt;/body&amp;gt;
    &amp;lt;/html&amp;gt;
  );
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, if you want to show a page at route "/" with Header and Sidebar components, then create a "page.tsx" file directly inside the (loggedIn) Route Group and keep in mind that no direct Route Groups without a parent route should directly contain a page.tsx file as it can give rise to conflicting route scenarios. Also, make sure that the "app" folder should not contain a "page.tsx" file in it, directly.&lt;/p&gt;

&lt;p&gt;At the end, the "app" folder layout should look like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj5znnxntch14q0vjw71t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj5znnxntch14q0vjw71t.png" alt="Final Folder Layout" width="800" height="796"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can check the code for the above explanation on my github repository &lt;a href="https://github.com/Namchi7/nextjs-route-groups-in-app-routing"&gt;here&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>nextjs</category>
      <category>typescript</category>
    </item>
  </channel>
</rss>
