<?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: Harshit Dugar </title>
    <description>The latest articles on DEV Community by Harshit Dugar  (@harshitdugar).</description>
    <link>https://dev.to/harshitdugar</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%2F642867%2F1cc198a3-23d8-44ef-bc57-dfe5af10d019.jpg</url>
      <title>DEV Community: Harshit Dugar </title>
      <link>https://dev.to/harshitdugar</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/harshitdugar"/>
    <language>en</language>
    <item>
      <title>Implement NextAuth with Next.js and TypeScript</title>
      <dc:creator>Harshit Dugar </dc:creator>
      <pubDate>Fri, 25 Apr 2025 05:40:53 +0000</pubDate>
      <link>https://dev.to/harshitdugar/implement-nextauth-with-nextjs-and-typescript-32lo</link>
      <guid>https://dev.to/harshitdugar/implement-nextauth-with-nextjs-and-typescript-32lo</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Authentication is a critical part of web applications, and external authentication services like Google, GitHub, and Facebook make it easier to implement secure login mechanisms. In this guide, we will go step by step to integrate external authentication in a Next.js application using TypeScript and NextAuth.js.&lt;/p&gt;

&lt;p&gt;Before moving to the tutorial, let’s dive into what NextAuth is.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is NextAuth
&lt;/h2&gt;

&lt;p&gt;NextAuth.js is a complete open source authentication solution for Next.js applications. It is designed from the ground up to support Next.js and Serverless.&lt;/p&gt;

&lt;p&gt;Before we start, ensure you have the following installed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Node.js&lt;/li&gt;
&lt;li&gt;Next.js (latest version)&lt;/li&gt;
&lt;li&gt;TypeScript&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Project Setup
&lt;/h2&gt;

&lt;p&gt;First, create a Next.js project if you haven’t already:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npx create-next-app@latest my-auth-app&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;We will use TypeScript in this project, so choose TypeScript from the options.&lt;br&gt;
For better production and understanding purpose, we will not be using /src folder in our structure.&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%2Fbkiuua5djuwkia0v49vo.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%2Fbkiuua5djuwkia0v49vo.png" alt="Image description" width="203" height="376"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Install NextAuth
&lt;/h2&gt;

&lt;p&gt;After setting up your project, install next next-auth JS through npm&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install next-auth
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Before creating components and writing code, let’s understand the structure of nextAuth.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setup env variable
&lt;/h2&gt;

&lt;p&gt;Add the nextauth_secret to the environment variable.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;NEXTAUTH_SECRET=nextauth
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  NextAuth Structure
&lt;/h2&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%2F2bs19ndqpwhecdzugzdn.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%2F2bs19ndqpwhecdzugzdn.png" alt="Image description" width="800" height="303"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;next-auth.d.ts is a file in the root directory that defines all the data types for using nextAuth.&lt;/li&gt;
&lt;li&gt;nextAuthOptions - This contains all the options (for instance, consider it as an array of options) that is needed for performing the authentication part. Can also refer to the Documentation.&lt;/li&gt;
&lt;li&gt;[…nextauth] - It is a special directory that contains route.ts to maintain and inject auth options.&lt;/li&gt;
&lt;li&gt;middleware - Acts as a bridge between the frontend and authentication service.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  next-auth.d.ts
&lt;/h2&gt;

&lt;p&gt;In the root directory, create a file named next-auth.d.ts&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { DefaultSession } from "next-auth";

declare module "next-auth"{
    interface Session{
        user:{
            id: string;            
        } &amp;amp; DefaultSession["user"];
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We will use session as our default datatype to capture all the information.&lt;br&gt;
Now we will define options for our nextAuth&lt;/p&gt;
&lt;h2&gt;
  
  
  nextAuthOptions
&lt;/h2&gt;

&lt;p&gt;In the root directory, create a folder util. Inside that, create a file auth.ts (name of file can be anything).&lt;br&gt;
Inside util/auth.ts paste this code.&lt;/p&gt;

&lt;p&gt;Authentication Providers in NextAuth.js are services that can be used to sign in a user. There are many ways a user can be signed in, we are using Credentials as the provider.&lt;/p&gt;

&lt;p&gt;Next, we will be adding callback option, in the above file, after adding provider,s add another option named callbacks. File should look 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 { NextAuthOptions } from "next-auth";
import  CredentialsProvider  from "next-auth/providers/credentials";
import bcrypt from "bcryptjs";

export const authOptions: NextAuthOptions = {
    providers: [
        CredentialsProvider( {
            name: "Credentials",
            credentials: {
                email: {label:"Email",type:"text"},
                password: {label: "Password", type: "password"}
            },
            async authorize(credentials){
                if(!credentials?.email || !credentials?.password){
                    throw new Error("Missing Email or Password"); 
                }
                try {
                    return {
                        email: credentials.email
                    }
                } catch (error) {
                    throw error
                }
            }
        }),
    ],
    callbacks: {
        async jwt({token,user}){
            if(user){
                token.id = user.id;
            }
            return token
        },
        async session({session,token}){
            if(session.user){
                session.user.id = token.id as string
            }
            return session
        }
    },
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Jwt is used to generate the token of the user and store it in the session.&lt;/p&gt;

&lt;p&gt;We have used two methods in callbacks-&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;jwt to tokenize the user credential&lt;/li&gt;
&lt;li&gt;session&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Next option is session, modify the code after callbacks-&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { NextAuthOptions } from "next-auth";
import  CredentialsProvider  from "next-auth/providers/credentials";
import bcrypt from "bcryptjs";

export const authOptions: NextAuthOptions = {
    providers: [
        CredentialsProvider( {
            name: "Credentials",
            credentials: {
                email: {label:"Email",type:"text"},
                password: {label: "Password", type: "password"}
            },
            async authorize(credentials){
                if(!credentials?.email || !credentials?.password){
                    throw new Error("Missing Email or Password"); 
                }
                try {
                    return {
                        email: credentials.email
                    }
                } catch (error) {
                    throw error
                }
            }
        }),
    ],
    callbacks: {
        async jwt({token,user}){
            if(user){
                token.id = user.id;
            }
            return token
        },
        async session({session,token}){
            if(session.user){
                session.user.id = token.id as string
            }
            return session
        }
    },
    session: {
        strategy: "jwt",
        maxAge: 30 * 24 * 60 * 60
    },
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In session we use Strategy to define where to store and use our sessions.&lt;/p&gt;

&lt;p&gt;Two types of strategies are there-&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Database&lt;/li&gt;
&lt;li&gt;jwt
The most common and easy way is to use jwt strategy. maxAge is defined for the time-limit of this session.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Final step is to add the pages, secret option.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { NextAuthOptions } from "next-auth";
import  CredentialsProvider  from "next-auth/providers/credentials";
import bcrypt from "bcryptjs";

export const authOptions: NextAuthOptions = {
    providers: [
        CredentialsProvider( {
            name: "Credentials",
            credentials: {
                email: {label:"Email",type:"text"},
                password: {label: "Password", type: "password"}
            },
            async authorize(credentials){
                if(!credentials?.email || !credentials?.password){
                    throw new Error("Missing Email or Password"); 
                }
                try {
                    return {
                        email: credentials.email
                    }
                } catch (error) {
                    throw error
                }
            }
        }),
    ],
    callbacks: {
        async jwt({token,user}){
            if(user){
                token.id = user.id;
            }
            return token
        },
        async session({session,token}){
            if(session.user){
                session.user.id = token.id as string
            }
            return session
        }
    },
    session: {
        strategy: "jwt",
        maxAge: 30 * 24 * 60 * 60
    },
    pages:{
        signIn: "/login",
        error: "/login"
    },
    secret: process.env.NEXTAUTH_SECRET
}

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

&lt;/div&gt;



&lt;h2&gt;
  
  
  Setting […nextauth]
&lt;/h2&gt;

&lt;p&gt;In the app folder, create api/auth folder. Inside auth create another directory […nextauth].&lt;/p&gt;

&lt;p&gt;Remember to name it the same way. Create a file route.ts to handle the routes for the nextAuth operations .&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { authOptions } from "@/util/auth";
import NextAuth from "next-auth";

const handler = NextAuth(authOptions);

export {handler as GET, handler as POST};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This way our nextAuth will handle and bundle the Get and Post requests.&lt;/p&gt;

&lt;p&gt;Final step is to setup the middleware.&lt;/p&gt;

&lt;h2&gt;
  
  
  Middleware
&lt;/h2&gt;

&lt;p&gt;In the root directory, create a file middleware.ts and paste the following code&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import withAuth from "next-auth/middleware";
import { NextResponse } from "next/server";

export default withAuth(
    function middleware(){
        return NextResponse.next()
    },
    {
        callbacks: {
            authorized: ({token,req}) =&amp;gt;{
                const {pathname} = req.nextUrl;
                //allow auth related routes
                if(
                    pathname.startsWith("/api/auth") ||
                    pathname === "/login" ||
                    pathname === "/register"
                ){
                    return true
                }    
                //public 
                if(pathname ==="/" || pathname.startsWith("/api/video")){
                    return true
                }
                return !!token                                                
            }
        }
    }
)

export const config = {
    matcher: ["/((?!_next/static|_next/image|favicon.ico|public/).*)"]
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The best method that works efficiently with nextjs is withAuth().&lt;/p&gt;

&lt;p&gt;This function takes parameters to define where to use and block our paths for nextAuth.&lt;/p&gt;

&lt;p&gt;Callback is used to ensure the paths mentioned are not allowed to be accessed openly by any user without authentication.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;This guide provides a step-by-step tutorial for integrating external authentication in a Next.js application using TypeScript and NextAuth.js. You'll learn how to set up a Next.js project without the /src folder, install NextAuth.js, and configure authentication providers and callbacks. The guide also covers setting up middleware and routing for secure authentication, ensuring only authorized users can access specific paths.&lt;/p&gt;

&lt;p&gt;Thanks a lot developers 😄, I hope this article was helpful to you.&lt;/p&gt;

&lt;p&gt;Please support me by subscribing to my newsletter for such tutorials and tip on Development.&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>webdev</category>
      <category>typescript</category>
      <category>nextauth</category>
    </item>
    <item>
      <title>Social media apps as a Developer</title>
      <dc:creator>Harshit Dugar </dc:creator>
      <pubDate>Sat, 07 Aug 2021 17:18:03 +0000</pubDate>
      <link>https://dev.to/harshitdugar/social-media-apps-as-a-developer-3ipo</link>
      <guid>https://dev.to/harshitdugar/social-media-apps-as-a-developer-3ipo</guid>
      <description>&lt;p&gt;It this article I have listed some best social media websites which I use as a developer and everyone should use .&lt;/p&gt;

&lt;h2&gt;
  
  
  1.) &lt;a href="https://www.reddit.com" rel="noopener noreferrer"&gt;Reddit&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Reddit is a network of communities where people can dive into their interests, hobbies and passions. There's a community for whatever you're interested in.&lt;/p&gt;

&lt;h2&gt;
  
  
  2.) &lt;a href="https://slack.com" rel="noopener noreferrer"&gt;Slack&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Slack is a messaging app for business that connects people to the information they need. By bringing people together to work as one unified team, Slack transforms the way organizations communicate.&lt;/p&gt;

&lt;h2&gt;
  
  
  3.) &lt;a href="//www.twitch.tv"&gt;Twitch&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Twitch is the world's leading live streaming platform for gamers and the things we love. Watch and chat now with millions of other fans from around the world. But it is also very useful if you are a developer as many communities conduct their workshops here.&lt;/p&gt;

&lt;h2&gt;
  
  
  4.) &lt;a href="//www.discord.com"&gt;Discord&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Discord is the easiest way to talk over voice, video, and text. Talk, chat, hang out, and stay close with your friends and  developer communities.&lt;/p&gt;

&lt;h2&gt;
  
  
  5.) &lt;a href="//www.meetup.com"&gt;Meetup&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Find groups that host online or in person events and meet people in your local community who share your interests.&lt;br&gt;
Many developer communities host their events on meetup.&lt;/p&gt;

&lt;h2&gt;
  
  
  6.) &lt;a href="//www.gitter.im"&gt;Gitter&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Gitter is a chat and networking platform that helps to manage, grow and connect communities through messaging, content and discovery.&lt;/p&gt;

&lt;h2&gt;
  
  
  7.) &lt;a href="//www.stackoverflow.com"&gt;Stack overflow&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;As a Developer who don't know about stack overflow.&lt;br&gt;
Stack Overflow is the largest, most trusted online community for developers to learn, share​ ​their programming ​knowledge, and build their careers.&lt;/p&gt;

&lt;h2&gt;
  
  
  8.) &lt;a href="//www.twitter.com"&gt;Twitter&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;As a developer it is the best platform to increase your networking and showcase your skills.&lt;/p&gt;

&lt;h2&gt;
  
  
  9.) &lt;a href="//www.linkedin.com"&gt;Linkedin&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;LinkedIn is an online platform that connects the world's professionals. A complete LinkedIn profile will summarize your professional experience to your connections, current and future employers, and recruiters. Through your profile, you can showcase your professional life, milestones, skills and interests.&lt;/p&gt;

&lt;p&gt;All these social websites are great to use as a developer as you get informed by new events and technologies regularly .&lt;/p&gt;

&lt;p&gt;Some websites also send newsletters in a weekly basis.&lt;/p&gt;

</description>
      <category>website</category>
      <category>news</category>
      <category>social</category>
      <category>media</category>
    </item>
    <item>
      <title>All About Web Development</title>
      <dc:creator>Harshit Dugar </dc:creator>
      <pubDate>Tue, 20 Jul 2021 15:17:02 +0000</pubDate>
      <link>https://dev.to/harshitdugar/all-about-web-development-5679</link>
      <guid>https://dev.to/harshitdugar/all-about-web-development-5679</guid>
      <description>&lt;p&gt;Technology plays a huge role in our daily lives, from the simplest of apps to the most groundbreaking inventions. Every website or piece of software that we encounter has been built by a web developer—but what exactly is web development, and what does a web developer do?&lt;/p&gt;

&lt;p&gt;In this guide, we’ll go through the basics of web development.&lt;br&gt;
And one more important point , there is no prerequisite to learn web development , if you are a beginner or from non technical background then also you can get started .&lt;/p&gt;

&lt;p&gt;There are three phases to become a FULL STACK WEB DEVELOPER.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Know the basic essentials
&lt;/h3&gt;

&lt;h3&gt;
  
  
  2. Front End
&lt;/h3&gt;

&lt;h3&gt;
  
  
  3. Back End
&lt;/h3&gt;

&lt;p&gt;Now the question comes how to get started and which resources to follow .&lt;br&gt;
I will be giving all the resources and how to get started in a particular manner . &lt;/p&gt;

&lt;h1&gt;
  
  
  1. Basic Essentials -
&lt;/h1&gt;

&lt;p&gt;As you are going to start your web development journey  you should know some basic knowledge of HTTP , API and how internet  works .&lt;br&gt;
Not to worry about this that how we will learn . It will not take much time . Here is the list &lt;/p&gt;

&lt;h3&gt;
  
  
  a. Git and Github
&lt;/h3&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%2Fzefwjaxoj8c03tm6jdzj.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%2Fzefwjaxoj8c03tm6jdzj.png" alt="image" width="348" height="145"&gt;&lt;/a&gt;&lt;br&gt;
Git is a version control system which basically manages your project i.e. every change you make in your project it will keep a record of it .&lt;br&gt;
Now from where to learn  --&lt;/p&gt;
&lt;ul&gt;

&lt;li&gt;Free Udacity course &lt;a href="https://www.udacity.com/course/version-control-with-git--ud123" rel="noopener noreferrer"&gt;click here&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  b. HTTP and Browser system
&lt;/h3&gt;

&lt;p&gt;HTTP means &lt;strong&gt;Hyper Text Transfer Protocol&lt;/strong&gt;, to learn more about http and how server client works you can read this article &lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTTP" rel="noopener noreferrer"&gt;click here &lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  c. API
&lt;/h3&gt;

&lt;p&gt;API i.e. &lt;strong&gt;Application Programming Interface&lt;/strong&gt; , is a two way system between softwares . to learn more about API &lt;a href="https://apifriends.com/api-management/what-is-an-api/" rel="noopener noreferrer"&gt;click here&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  2. Front End Development
&lt;/h1&gt;

&lt;p&gt;Now as you have learned basic essentials now lets get started to real web development .&lt;br&gt;
Front end means the actual page you see like YouTube page , Facebook and other websites . They are basically made of 3 components 1.) HTML   2.) CSS  3.) JavaScript&lt;br&gt;
When you make a request to the server to load the website it basically sends you HTML CSS Js code to the browser and you are able to see that web app.&lt;br&gt;
To get started --&lt;/p&gt;

&lt;h3&gt;
  
  
  a. HTML5
&lt;/h3&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%2F6dpmb9f8l6bfkwcsofdk.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%2F6dpmb9f8l6bfkwcsofdk.png" alt="image" width="225" height="225"&gt;&lt;/a&gt;&lt;br&gt;
HTML &lt;strong&gt;Hypertext Markup Language&lt;/strong&gt; makes the skeleton of you web page . It is very easy to learn and implement . As a beginner I will not suggest you to do 100% of HTML as there are some advanced concepts like svg and canvas which is not used as a beginner .&lt;br&gt;
Here is a documentation from where you can learn &lt;a href="https://www.w3schools.com/html/" rel="noopener noreferrer"&gt;HTML&lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  b. CSS3
&lt;/h3&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%2Fdyyi14s9xl0hupej642i.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%2Fdyyi14s9xl0hupej642i.png" alt="image" width="189" height="267"&gt;&lt;/a&gt; &lt;br&gt;
CSS i.e. &lt;strong&gt;Cascading Style Sheet&lt;/strong&gt; is a styling language that provides styles and enhancement to the web page .&lt;br&gt;
All the images collars and effects are done by css .&lt;br&gt;
&lt;a href="https://www.w3schools.com/css/" rel="noopener noreferrer"&gt;click here&lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  c. JavaScript
&lt;/h3&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%2F5qci79d3uv18itw756hy.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%2F5qci79d3uv18itw756hy.png" alt="image" width="225" height="225"&gt;&lt;/a&gt;&lt;br&gt;
JavaScript is a programming language . It is the brain of you whole web page, it decides the behaviour of web page , you can think it as a full working system . How the button will be clickable and what to do when a particular action is taking place is done through js. For full tutorial of javascript &lt;a href="https://www.w3schools.com/js/" rel="noopener noreferrer"&gt;click here&lt;/a&gt; &lt;br&gt;
After doing Javascript I will suggest to do &lt;strong&gt;Bootstrap&lt;/strong&gt; which is a css framework. You cam do this from &lt;a href="https://www.w3schools.com/bootstrap4/default.asp" rel="noopener noreferrer"&gt;w3schools&lt;/a&gt;.&lt;br&gt;
Also do react a javascript library  which is developed by Facebook &lt;a href="https://www.w3schools.com/react/default.asp" rel="noopener noreferrer"&gt;click here&lt;/a&gt;&lt;br&gt;
This completes the front end part .&lt;br&gt;
But only learning is not important I will also recommend to do some small projects while learning .&lt;/p&gt;

&lt;h1&gt;
  
  
  3. Back End Development
&lt;/h1&gt;

&lt;p&gt;As you have successfully completed Front End you are good to go for back end .&lt;br&gt;
All the server side process like searching and storing data to cloud  happens in backend part . Backend gives full functionality to our website , we can communicate with data on the server using backend . &lt;br&gt;
To get started first you have to learn a backend programming language , it can be Python , PHP , Java , node.js&lt;br&gt;
I will recommend to use node.js as there is a big community for this language.&lt;/p&gt;

&lt;h3&gt;
  
  
  a. Node.js
&lt;/h3&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%2Fn90wgl7xf9pt7g8ju1c4.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%2Fn90wgl7xf9pt7g8ju1c4.png" alt="image" width="287" height="175"&gt;&lt;/a&gt;&lt;br&gt;
 Node.js is used for backend development . It is a server side language .&lt;a href="https://www.w3schools.com/nodejs/default.asp" rel="noopener noreferrer"&gt;Click here&lt;/a&gt; for full documentation .&lt;/p&gt;

&lt;h3&gt;
  
  
  b. Database Management System (DBMS)
&lt;/h3&gt;

&lt;p&gt;As we move forward  and make a responsive website it is also important to know &lt;strong&gt;Database Management System&lt;/strong&gt;. It is a way to store and manage data . You will be storing some data to your page or your website will ask for user input , this all Data will be stored and managed using DBMS. And to do all these task you need Query language. SQL,MongoDB are best and  I will recommend to do MongoDB (NoSQL) if you are doing node.js.&lt;a href="https://university.mongodb.com/" rel="noopener noreferrer"&gt;Click here&lt;/a&gt;  &lt;/p&gt;

&lt;h1&gt;
  
  
  What is a stack (MERN vs MEAN)
&lt;/h1&gt;

&lt;p&gt;Stack means set of technologies , in web development stack means set of technology or languages used to make a single project .&lt;/p&gt;

&lt;p&gt;There are main two stacks in web development -&lt;/p&gt;

&lt;h3&gt;
  
  
  1. MERN stack
&lt;/h3&gt;

&lt;p&gt;This is the most recommended stack as it is most used in the industry level.&lt;br&gt;
M =&amp;gt; MongoDB&lt;br&gt;
E =&amp;gt; Express.js&lt;br&gt;
R =&amp;gt; React&lt;br&gt;
N =&amp;gt; Node.js&lt;br&gt;
In the above guide I have discussed about MERN stack &lt;/p&gt;

&lt;h3&gt;
  
  
  2. MEAN stack
&lt;/h3&gt;

&lt;p&gt;M =&amp;gt; MongoDB&lt;br&gt;
E =&amp;gt; Express.js&lt;br&gt;
A =&amp;gt; Angular&lt;br&gt;
N =&amp;gt; Node.js&lt;/p&gt;

&lt;p&gt;This was all about the full roadmap to become a Full Stack Web Developer.&lt;br&gt;
Thanks for reading article, if you found it helpful do comment your reviews.  &lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>html</category>
      <category>node</category>
    </item>
    <item>
      <title>Technology Update 13/07/21</title>
      <dc:creator>Harshit Dugar </dc:creator>
      <pubDate>Tue, 13 Jul 2021 05:30:32 +0000</pubDate>
      <link>https://dev.to/harshitdugar/technology-update-12-07-21-369m</link>
      <guid>https://dev.to/harshitdugar/technology-update-12-07-21-369m</guid>
      <description>&lt;h1&gt;
  
  
  Big Tech &amp;amp; Startups 🖥
&lt;/h1&gt;

&lt;h2&gt;
  
  
  1. &lt;a href="https://electrek.co/2021/07/10/tesla-full-self-driving-beta-v9-first-videos-release-notes/?utm_source=tldrnewsletter" rel="noopener noreferrer"&gt;Tesla finally releases Full Self-Driving Beta v9: here’s what it looks like&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Tesla has released its Full Self-Driving Beta v9 update. It uses Tesla Vision, a computer vision system that relies on optical imagery. The release notes do not reveal many details about the improvements to the driving system. Full Self-Driving must still be used with caution and drivers are required to stay alert on the roads. The update features driving visualization improvements that display an expanded visualization to show additional surrounding information. Video and screenshots of the new update are available in the article..&lt;/p&gt;

&lt;h2&gt;
  
  
  2. &lt;a href="https://www.theverge.com/2021/7/11/22570634/ted-clubhouse-podcast-audio-live-recording" rel="noopener noreferrer"&gt;Exclusive TED chats are coming to Clubhouse (2 minute read)&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;TED will be bringing weekly exclusive chats to Clubhouse starting on July 12. It will start with one room at 11 AM ET on Mondays, with plans of launching more rooms soon. TED is free to sell brand partnerships or ads without giving Clubhouse a cut. The company has been successful with its podcasting efforts, with 1.65 million downloads per day from all over the globe. Companies are locking down talent as a strategy to win in the social audio market.&lt;/p&gt;

&lt;h1&gt;
  
  
  Science &amp;amp; Futuristic Technology🔭
&lt;/h1&gt;

&lt;h2&gt;
  
  
  1. &lt;a href="https://www.theverge.com/2021/7/10/22569889/virgin-galactic-launch-watch-richard-branson-space" rel="noopener noreferrer"&gt;Watch Virgin Galactic launch Richard Branson to space (2 minute read)&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Richard Branson and three company employees flew to the edge of space on the morning of July 11. The event was livestreamed and featured Stephen Colbert as the host and a performance from Khalid. It was delayed by 90 minutes due to overnight weather over Spaceport America. Virgin Galactic has already sold roughly 600 tickets at around $250,000 each. Jeff Bezos will be flying to space on July 20. Virgin Galactic's livestream is available in the article.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. &lt;a href="https://www.reuters.com/lifestyle/science/northrop-build-homes-moon-orbit-under-935-mln-nasa-contract-2021-07-09/?utm_source=tldrnewsletter" rel="noopener noreferrer"&gt;Northrop to build homes on moon orbit under $935 mln NASA contract (1 minute read)&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Northrop Grumman Corp has acquired a $935 million contract from NASA to develop living quarters for its planned outpost in lunar orbit. The Habitation And Logistics Outpost (HALO) will be a vital component of NASA's lunar Gateway. Gateway will support science investigations and enable surface landings on the moon. Eight countries have signed a pact as part of the Artemis program. NASA is aiming to launch the spacecraft in November 2024.&lt;/p&gt;

&lt;h1&gt;
  
  
  Programming, Design &amp;amp; Data Science 💻
&lt;/h1&gt;

&lt;h2&gt;
  
  
  1. Earthly (GitHub Repo)
&lt;/h2&gt;

&lt;p&gt;Earthly is a build automation tool that executes builds in containers, making them self-contained, repeatable, portable, and parallel. It uses the same technology as Docker, but Earthly is designed to be a general-purpose build system. Earthly builds run the same for everyone, making it easier to debug and deploy apps.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. hck (GitHub Repo)
&lt;/h2&gt;

&lt;p&gt;hck is a cut clone that can use a regex delimiter instead of a fixed string. It makes common things, such as reordering output fields or splitting records on a weird delimiter, easy. hck is fast, and benchmarking results are available.&lt;/p&gt;

&lt;p&gt;Thanks a lot for reading this article .&lt;br&gt;
I hope that it was informative and useful.&lt;/p&gt;

</description>
      <category>news</category>
      <category>techtalks</category>
      <category>startup</category>
    </item>
    <item>
      <title>Need help for back end Development</title>
      <dc:creator>Harshit Dugar </dc:creator>
      <pubDate>Tue, 22 Jun 2021 06:51:48 +0000</pubDate>
      <link>https://dev.to/harshitdugar/need-help-for-back-end-development-4eld</link>
      <guid>https://dev.to/harshitdugar/need-help-for-back-end-development-4eld</guid>
      <description>&lt;p&gt;I need some information regarding installation of nvm and rpm package in my MacBook Air . If anyone knows can comment and tell me the procedure regarding that &lt;/p&gt;

</description>
      <category>android</category>
      <category>javascript</category>
      <category>node</category>
    </item>
    <item>
      <title>New to community</title>
      <dc:creator>Harshit Dugar </dc:creator>
      <pubDate>Thu, 03 Jun 2021 14:35:26 +0000</pubDate>
      <link>https://dev.to/harshitdugar/coding-is-passion-2jb7</link>
      <guid>https://dev.to/harshitdugar/coding-is-passion-2jb7</guid>
      <description>&lt;p&gt;Coding is my passion and I am new here . Help me out to grow in this community&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
