Web Developer Roadmap (March 2024) - Everything is Changing

ByteGrad
4 Mar 202425:02

Summary

TLDRThis video provides a comprehensive overview of modern web development, highlighting the latest trends and essential technologies for aspiring developers. It emphasizes the importance of AI co-pilots, TypeScript, Tailwind CSS, and Next.js with its innovative server components and server actions. The video also covers full-stack development, exploring front-end frameworks like React, Angular, and Vue, as well as back-end solutions like Node.js and Python. Additionally, it delves into databases, authentication, payments, hosting providers, and mobile app development. Overall, the video presents a roadmap for becoming a highly-skilled and well-paid modern web developer, capable of earning $10,000 per month.

Takeaways

  • πŸ€– AI co-pilots like GitHub Copilot have become a game-changer, enabling developers to write code more efficiently and focus on higher-level thinking.
  • πŸ“– TypeScript has become mandatory for modern web development, especially in the React ecosystem, leading to more robust and maintainable codebases.
  • 🌐 Next.js has emerged as a powerful full-stack framework with innovations like Server Components and Server Actions, simplifying the development of robust web applications.
  • 🎨 Tailwind CSS has risen as the preferred way of styling websites and web apps, providing a utility-first approach to CSS.
  • 🧩 Component libraries like Chakra UI and Radix UI have gained significant traction, offering pre-built, accessible, and customizable UI components.
  • πŸ” Authentication and payment solutions like Clerk and Stripe have become essential tools for modern web development, simplifying complex processes.
  • ☁️ Cloud hosting providers like Vercel and Netlify have made it easier to deploy and manage web applications.
  • πŸ“± Frameworks like React Native and Expo have facilitated the development of mobile apps using web technologies.
  • 🌐 Full-stack development has become the norm, with developers expected to work across a wider range of the technology stack.
  • πŸš€ The web development ecosystem is rapidly evolving, requiring developers to continuously learn and adapt to new technologies and best practices.

Q & A

  • What is the biggest innovation mentioned in modern web development?

    -According to the script, the biggest innovation mentioned is AI co-pilots, which can suggest entire code snippets and help developers reason at a higher level of abstraction.

  • Why has TypeScript become mandatory in web development?

    -The script states that TypeScript has completely broken through in the world of web development, especially in React, and has become mandatory to learn if one wants to become a full-stack web developer. It enforces more precise types, resulting in more robust code.

  • What is the significance of the Next.js App Router and Server Actions?

    -The script highlights that Next.js has released its App Router, which includes Server Components and Server Actions as major innovations. Server Actions are considered the biggest innovation, as they allow developers to write backend code directly within Next.js, replacing the need for separate API endpoints.

  • How has Next.js impacted the development of full-stack applications?

    -According to the script, Next.js has made it very easy to create full-stack applications by abstracting away many complexities and providing a unified framework for both the client and server sides of web development.

  • What is the recommended approach for styling websites and web apps?

    -The script states that Tailwind CSS has completely taken over and has become the default way of styling websites and web apps, especially in Next.js.

  • What is the role of React Query in Next.js applications?

    -The script suggests that in Next.js applications, data fetching should be done differently, using Server Components instead of React Query, which is more commonly used in React applications.

  • What is the recommended approach for managing state in React applications?

    -The script mentions that while the Context API and Zustand are gaining popularity, Redux was previously a common choice for state management in React applications. However, the script suggests that the Context API and Zustand are becoming more popular choices.

  • What is the purpose of Zod in web development?

    -Zod is a library mentioned in the script for validating data, both on the server-side (e.g., in Server Actions) and on the client-side (e.g., in forms). It helps ensure that the data received from the client matches the expected shape.

  • What is the recommended approach for authentication in modern web development?

    -The script suggests using third-party authentication solutions like Clerk (formerly called IdentityKit) instead of open-source solutions like NextAuth.js, as they provide a better developer experience and handle authentication properly.

  • What is the significance of AppMysite mentioned in the script?

    -AppMysite is mentioned as a sponsor in the script. It is a service that makes it easy for developers to convert their websites into mobile apps for Android and iOS platforms, allowing them to publish their websites as native mobile applications.

Outlines

00:00

πŸ“Ί The Significance of AI Copilots and TypeScript in Modern Web Development

This paragraph highlights the major innovations in modern web development, particularly the emergence of AI copilots and the widespread adoption of TypeScript. AI copilots are advanced tools that can suggest entire code snippets, making it easier for developers to focus on higher-level abstractions. TypeScript has become mandatory, improving code robustness through precise type declarations. These advancements have greatly enhanced developer productivity and code quality.

05:02

🌐 The Emergence of Next.js and Server Components

This paragraph discusses the rise of Next.js and its innovative features like the App Router, Server Components, and Server Actions. Next.js has become a powerful full-stack framework, enabling developers to create complete websites and web applications with React. Server Components and Server Actions simplify the development process by handling server-side tasks within the Next.js framework, eliminating the need for separate API endpoints. This has resulted in performance benefits through caching and a more streamlined developer experience.

10:03

⚑️ Static Site Generation (SSG) and Server-Side Rendering (SSR) in Next.js

This paragraph explains the concepts of Static Site Generation (SSG) and Server-Side Rendering (SSR) in Next.js. SSG generates HTML during the build process, enabling fast delivery from a CDN. SSR renders content on the server during request time, allowing for dynamic content. Next.js can also perform Streaming and Suspense, rendering individual components on the server and streaming them to the front-end. These techniques provide performance benefits and enable a more flexible approach to rendering content.

15:04

πŸ”§ Exploring the Web Development Ecosystem

This paragraph discusses the broader ecosystem of tools and technologies surrounding modern web development. It covers component libraries like Shadcn/UI and Radix UI, form handling with React Hook Form, data validation with Zod, animations with Framer Motion, authentication solutions like NextAuth.js and Clerk.dev, payment providers like Stripe, hosting platforms like Vercel and Netlify, version control with Git and GitHub, and mobile app development options like React Native and Expo. Understanding and leveraging these tools can greatly enhance the development experience and functionality of web applications.

20:06

πŸš€ Mastering Modern Web Development for a Lucrative Career

The final paragraph emphasizes the importance of staying up-to-date with the latest innovations in web development to secure a lucrative career as a developer. It encourages learning the fundamentals of HTML, CSS, JavaScript, and frameworks like React, as well as exploring full-stack development with Next.js. The paragraph also mentions the author's React and Next.js course as a resource for mastering these technologies. Overall, it highlights the exciting pace of innovation in web development and the potential for career growth by embracing new tools and techniques.

Mindmap

Keywords

πŸ’‘AI co-pilot

An AI co-pilot refers to an artificial intelligence system that assists developers with writing code. As mentioned in the script, these AI co-pilots can suggest entire code snippets, helping developers to focus on higher-level abstractions rather than memorizing low-level details and algorithms. The script provides an example of an AI co-pilot suggesting code for a React hook, demonstrating its utility in modern web development.

πŸ’‘TypeScript

TypeScript is a superset of JavaScript that adds optional static typing to the language. The script emphasizes that TypeScript has become mandatory in modern web development, especially in the React ecosystem. It is presented as a tool that enforces more precise types, resulting in more robust code. The speaker notes that while TypeScript has been around for a while, it has completely broken through in the past year and is now considered essential for full-stack web developers.

πŸ’‘Tailwind CSS

Tailwind CSS is a utility-first CSS framework that provides low-level utility classes for building custom designs. The script suggests that Tailwind CSS has taken over as the default way of styling websites and web applications, particularly in the context of Next.js. The speaker notes that while Tailwind CSS has been around for some time, it has now become the preferred approach for styling in modern web development.

πŸ’‘Next.js

Next.js is a React framework that enables server-side rendering, static site generation, and other features for building full-stack web applications. The script highlights Next.js as a major innovation, particularly its app router, server components, and server actions. These features are presented as game-changers that make web development more powerful and efficient, allowing developers to create complete websites and web apps with just Next.js.

πŸ’‘Server Components

Server Components are a feature of Next.js that allow developers to render React components on the server, improving performance and providing server-side rendering capabilities. The script emphasizes that Server Components are a significant innovation in Next.js, primarily aimed at performance benefits. It suggests that traditional backend code can now be written within Server Components, enabling a more seamless full-stack development experience.

πŸ’‘Server Actions

Server Actions are another feature of Next.js that allow developers to handle server-side logic without the need for separate API endpoints. The script presents Server Actions as a significant innovation, focusing on developer benefits. It suggests that traditional API endpoints can be replaced with Server Actions, which are essentially JavaScript functions that run only on the server. This feature streamlines the development process by eliminating the need to create separate API endpoints and hook them up with the front-end.

πŸ’‘Static Site Generation (SSG)

Static Site Generation (SSG) is a technique used in Next.js to pre-render pages into static HTML files during the build process. The script explains that SSG takes React components and generates HTML from them at build time, which can then be served from a Content Delivery Network (CDN) for improved performance. This approach is suitable for websites where content is static and doesn't require frequent updates.

πŸ’‘Server-Side Rendering (SSR)

Server-Side Rendering (SSR) is a technique used in Next.js to render components on the server at request time, rather than during the build process like SSG. The script differentiates SSR from SSG, explaining that with SSR, the rendering happens on the fly when a user makes a request, allowing for dynamic content and individual component rendering on the server. This approach is beneficial for applications with frequently changing data or personalized content.

πŸ’‘Chakra UI

Chakra UI (also referred to as 'Shad CN' in the script) is a popular component library for building user interfaces in React applications. The script highlights Chakra UI as one of the significant innovations in the past year, suggesting that it has a strong chance of becoming the default component library for the web. It is presented as a third-party set of components that provides source code access, allowing developers to customize components beyond just using props.

πŸ’‘Zod

Zod is a TypeScript-first schema validation library that can be used for both server-side and client-side data validation. The script emphasizes the importance of validating incoming data on the server, similar to traditional API endpoints. Zod is presented as a tool that can be used in combination with React Hook Form to validate form data on both the server and the client-side, ensuring data integrity and providing a powerful validation solution for modern web development.

Highlights

The biggest innovation has been AI co-pilots that can suggest entire code snippets, reducing the need to memorize low-level details and enabling reasoning at a higher level of abstraction.

TypeScript has become mandatory for web development, especially in React, providing robustness and precision through type checking.

Tailwind CSS has taken over as the default way of styling websites and web apps, including in Next.js.

Next.js has introduced server components and server actions, allowing traditional backend code to be written within Next.js, simplifying the development process.

Server actions are a significant innovation, eliminating the need for separate API endpoints and allowing server-side functionality to be written as normal JavaScript functions.

React Query is no longer necessary in Next.js, as data fetching is now done in server components.

The trend is moving towards full-stack web development, where developers work across a wider range of the stack, enabled by frameworks like Next.js.

For learning web development from scratch, the recommended path is to start with React, learn components, hooks, state management, and styling with Tailwind CSS.

Next.js is recommended for full-stack development, leveraging its built-in routing, server components, server actions, and patterns like SSR and SSG.

For separate backend services, Node.js with Express or Nest.js are popular choices, but other languages like Python, Java, Ruby, and Go are also options depending on the project's needs.

The differences between SQL and NoSQL databases have been abstracted away by ORMs like Prisma, Drizzle, and Mongoose, making the choice less critical unless there are specialized needs.

The ecosystem includes tools like Chakra UI for component libraries, Zod for data validation, React Hook Form for form management, Framer Motion for animations, and third-party solutions like Clerk for authentication and Stripe for payments.

Vercel (formerly Zeit) is the most popular hosting provider, especially for Next.js applications, though other options like Netlify are available.

For mobile app development, AppMySite is a sponsor that simplifies the process of converting websites into mobile apps for Android and iOS.

The landscape of web development is constantly evolving, with exciting innovations and changes, making it a dynamic and rewarding field for developers who keep up with the latest technologies.

Transcripts

play00:00

everyone everything in web development

play00:01

is changing and for your career as a

play00:03

developer it's really important that you

play00:05

understand what's going on and what new

play00:07

things to learn and what not to learn so

play00:09

I'm going to give you a high level

play00:10

overview of modern web development with

play00:12

all the things that you need to know

play00:14

right now so you can make $110,000 a

play00:16

month as a modern developer so let's

play00:18

start from here because a lot of things

play00:20

have actually changed in the past year

play00:23

or so so I would say the biggest

play00:24

innovation has been these AI co-pilot

play00:27

and these are so good I have to say just

play00:29

to give an example here I have a new

play00:31

hook here use optimistic we're using

play00:33

this in my pets soft project in my

play00:35

reacting nexj ESC course you can see it

play00:37

knows exactly what I want to do here it

play00:39

can suggest the entire code snippet here

play00:42

for me now it does miss the default gear

play00:44

case here at the bottom but you can see

play00:45

fix that very easily right so thanks to

play00:47

these AI co-pilots I can sort of forget

play00:49

about a lot of those lower level details

play00:52

and I can reason more in a higher level

play00:54

abstraction about my code huge change

play00:56

and it makes it less important to

play00:58

memorize a lot of things and algorith

play00:59

rhythms another major change is actually

play01:02

typescript now typescript has been

play01:03

around for a long time but in the world

play01:05

of web development especially react I

play01:07

would say the past year it has

play01:09

completely broken through and now it has

play01:11

become sort of mandatory whereas before

play01:13

it was kind of optional you would see it

play01:15

around but now I see it everywhere and

play01:17

it has become yeah in my view it has

play01:19

become mandatory to learn if you want to

play01:21

become a fullstack web developer till

play01:23

when CSS in my view has also completely

play01:26

taken over of course it's been around

play01:27

for a long time but now it's also the

play01:29

def default in nextjs and in my view

play01:31

it's going to become the default way of

play01:33

styling websites and web apps now

play01:34

another huge innovation of course is

play01:36

nextjs nextjs has released their app

play01:38

router so before they had the pages

play01:40

router but there's lots of innovation

play01:42

here it's not just server components in

play01:44

my view actually server actions are the

play01:46

biggest Innovation yes there is a bit of

play01:48

a learning curve but in my view it's the

play01:49

right way forward and it actually makes

play01:51

it a really exciting time in my view to

play01:53

be a web developer because now with

play01:55

nextjs and actually all of these tools

play01:56

together it makes you very powerful as a

play01:58

developer it makes it very easy to

play02:00

create full stack applications so I

play02:02

think it's a really exciting time yes

play02:03

it's annoying that as a you know

play02:05

experienced developer you have to learn

play02:06

some new things again especially

play02:08

typescript was kind of annoying to learn

play02:09

a lot of people went through it last

play02:11

year it's basically a month or two

play02:12

months of struggling and then you kind

play02:14

of get it but that's part of the job the

play02:15

benefit of being a junior or newcomer is

play02:18

that you can go straight to the latest

play02:19

Technologies and you can sort of skip

play02:21

ahead you can leap frog over the maybe

play02:24

the more senior developers that are

play02:25

still kind of stuck with the old

play02:27

technology right so that's the one

play02:28

advantage you have as a newcomer so how

play02:30

would I learn web development if I were

play02:32

starting from scratch I want to make 10K

play02:34

a month let's say that's what I'm going

play02:36

to show you right now in this video

play02:37

let's go through it so you're going to

play02:38

learn all about how to build modern

play02:40

websites now what about apps Progressive

play02:42

web apps haven't really broken through

play02:44

yet people don't want to add something

play02:45

to their home screen they want to

play02:46

install a native app from the App Store

play02:49

so how do you do that how do you convert

play02:50

a website to a mobile app well you could

play02:52

do it yourself but it's very painful so

play02:54

instead you may want to take a look at

play02:56

today's sponsor which is app My Side

play02:58

they make it very easy for you to turn

play03:00

your website into an app so you can

play03:02

connect you can just provide your url

play03:04

you can change the design and you can

play03:05

then publish it to the Android and iOS

play03:08

App Store so in the dashboard I can

play03:10

create my app here I can call it B grad

play03:12

and I already have my website right it's

play03:15

bat.com I can convert it into a mobile

play03:17

app very easily here with at my site so

play03:19

here in the dashboard I can add an app

play03:21

icon right here I can change the the

play03:23

splash screen which is what you're going

play03:25

to see when you open up an app for a

play03:26

couple seconds on your phone here in

play03:28

navigation I can change that top bar and

play03:30

Bottom bar color I can change the buttom

play03:32

colors right here and then of course you

play03:34

want to test and see what you get on a

play03:36

real mobile app you can download this on

play03:37

your phone or right here in the web view

play03:39

I can press on click Start and it will

play03:41

show you how it will look like so here

play03:43

you can see it's loading up my website

play03:45

right here in this mobile phone this is

play03:47

what it's going to be right here my

play03:49

latest scores let's take a look right so

play03:50

you can see it renders this very nicely

play03:52

and it also gives me analytics out of

play03:54

the box so I would say check out at my

play03:56

site the link is in the description all

play03:58

right so then let's actually take a look

play03:59

at what you need to learn and so

play04:01

traditionally you would specialize in

play04:02

either front end or back end my view is

play04:05

that over time it's going to merge

play04:07

together in full stack web development

play04:09

because a lot of the difficult Parts on

play04:11

both sides are being abstracted away for

play04:13

you right nextjs makes a lot of things

play04:15

easy for you so over time as a developer

play04:18

you're going to work across a wider

play04:20

range of this deack in my view now

play04:21

regardless of what you're doing in web

play04:23

development you're going to have to

play04:24

learn the fundamentals I'm not going to

play04:26

list every little thing you need to know

play04:27

a lot of those things you will learn as

play04:29

you go so for HTML basically you have to

play04:31

take a look at semantic tags don't just

play04:33

use divs everywhere try to use a section

play04:35

sometimes an article all right so then

play04:37

CSS is really important even if you want

play04:39

to learn tillin CSS make sure you master

play04:41

CSS itself first very important the Box

play04:44

model so every element on a page let's

play04:46

say this button here has a so-called Box

play04:48

model and you can actually see it here

play04:50

in the dev tools so you can see it it

play04:52

has some of its own size basically this

play04:54

is coming from the text actually in

play04:56

there and how big the text is and then

play04:58

around there you have padding and around

play04:59

there you have a border a border may

play05:01

have a certain size it doesn't have a

play05:03

border here but that would add some

play05:04

additional space and then you have

play05:06

margin which is essentially space

play05:07

between elements right that's the Box

play05:09

model every element on a page has this

play05:11

sort of rectangular box now to have a

play05:14

nice layout you want to take a look

play05:16

mostly at Flex box you want to use a

play05:18

flex box I would say 99% of the time

play05:20

sometimes you want to use grid so I

play05:22

think you should still learn it as well

play05:23

but flexbox should be your priority when

play05:25

it comes to layout animations and

play05:27

transitions so you can see here in this

play05:28

app I'm using eraser here when I hover

play05:31

this button here there's a slight

play05:32

background color that changes that's

play05:34

actually just a transition and animation

play05:36

for example when I go to this page you

play05:37

can see when I load here I have a bit of

play05:39

a fancier animation here to load this

play05:41

image I would probably do that with an

play05:43

actual animation in CSS also make sure

play05:45

your project need to look good across a

play05:47

wide variety of devices and we can do

play05:49

that with media queries in CSS all right

play05:51

so for JavaScript of course you need to

play05:52

know about variables you want to store

play05:54

some value somewhere in order to work

play05:55

with it these days we use let and G

play05:58

previously we used far people have kind

play06:00

of settles on using const as the default

play06:02

unless you cannot use const because you

play06:05

actually need to reassign a value for

play06:06

example in that case use a Le basically

play06:08

we never use far anymore whenever you

play06:10

have a collection or list of things you

play06:12

want to put it in an array and these

play06:14

arrays they have certain methods right

play06:16

so map for example in react is very

play06:18

common for each you want to go over each

play06:20

one right push you want to add something

play06:21

these methods I think are important to

play06:23

learn so then we have objects so

play06:25

whenever you need to represent something

play06:26

in your code you can have an object

play06:28

that's an object may be for example on a

play06:30

real estate website you may have an

play06:32

apartment and apartments they need to be

play06:34

represented by an object so they may

play06:36

have let's say some size like square

play06:38

meters or square feet they may be price

play06:41

for them right maybe number of bedrooms

play06:43

right so this object represents an

play06:45

apartment we use objects to represent

play06:48

entities in our code in JavaScript we

play06:50

have Arrow functions new compared to the

play06:52

traditional function right so now you

play06:54

don't have to write the actual function

play06:56

keyword anymore instead you sort of have

play06:58

a fat arrow in the middle here here

play06:59

whenever you need to reach across the

play07:01

network to get some data for example you

play07:03

may want to use the built-in fetch API

play07:05

so you need to understand how that works

play07:07

it actually gives you a so-called

play07:09

promise you need to learn asynchronous

play07:10

code in general as well you don't have

play07:12

to create promises yourself typically

play07:15

typically you only consume promises so

play07:17

if you have a promise that's called p in

play07:19

order to get its value essentially to

play07:21

consume it traditionally you can use

play07:24

then on there and then in there you get

play07:26

the value or more recent is you can

play07:28

write a weight in front of a promise

play07:30

right so those are essentially the two

play07:31

ways of consuming a promise typically

play07:33

acing weight is preferred these days and

play07:36

also generally you need to learn about

play07:37

the Dom itself right the in the Dom

play07:39

there are certain events when I click in

play07:40

here you can see there's a blue line

play07:42

here so eraser this is a web app it's

play07:44

hooking into that click event that

play07:46

occurs when I click there and it's

play07:47

manipulating the Dom to add like a blue

play07:50

line in here and generally you need to

play07:52

learn a little bit about the web

play07:53

platform with things like local storage

play07:56

how URLs work how to communicate with a

play07:58

server Etc around all right so those are

play08:00

the fundamentals now I want to emphasize

play08:02

don't get stuck too long in here it's

play08:05

okay if you don't fully understand some

play08:06

things I would recommend that at some

play08:08

point you just have to jump into it and

play08:10

you're going to have to learn a library

play08:12

or framework to really become like a

play08:14

useful developer so let's say we're

play08:16

going to start off with the front end

play08:17

here we're going to learn about react

play08:19

there are also other options which I'll

play08:20

talk about but react is probably the

play08:22

most popular one if you want to create a

play08:23

react app typically these days you're

play08:25

going to use a feat this is essentially

play08:27

replacement of create react app so for

play08:29

react you need to learn about components

play08:31

right so a component is just well let's

play08:33

say I have some patform button component

play08:35

it's actually just a JavaScript function

play08:37

and we write it with capital case so now

play08:39

whenever I need some button in my

play08:41

project I can use this component I don't

play08:43

have to repeat myself with the markup I

play08:45

can put all the markup inside this one

play08:47

component and then just reuse the

play08:49

patform button whenever I need that

play08:50

button but how can you make it different

play08:52

in a certain instance well let's say I

play08:55

need to change the text in here right so

play08:57

sometimes it needs to say add pads and

play08:59

sometimes I'm changing a pad and it

play09:01

needs to say save changes how can I make

play09:03

sure that a component can also be

play09:05

changed I can use props here and

play09:07

destructuring that right here and I can

play09:09

use that here to change the component in

play09:11

a particular instance react has

play09:13

so-called hooks so if you have a piece

play09:15

of data and you want to track of it over

play09:17

time you want to use use State sometimes

play09:19

you need to go outside your react app

play09:21

maybe you need to reach out to some

play09:22

server or maybe you need to reach out to

play09:24

local storage right local storage that's

play09:26

something outside your react app

play09:27

typically you want to use user effect

play09:29

for that custom hooks sound very fancy

play09:31

it's basically just like a utility

play09:33

function instead of writing your use

play09:35

stes and use effects let's say here in

play09:37

your component you can sort of put it

play09:39

away somewhere else and that's what

play09:40

people will call a custom hook so if you

play09:42

have a piece of data you typically start

play09:44

off by just using you state for that but

play09:46

it's very common that you will need that

play09:48

piece of data in many different

play09:50

components and you can use props to pass

play09:52

that around unfortunately it will make

play09:54

your app too brittle so you want to put

play09:56

that piece of State in a dedicated

play09:58

solution a date management solution

play10:00

sounds very fancy but you can use the

play10:02

built-in context API in react for that

play10:05

um or something called twoand or

play10:07

something called Redux these are

play10:08

typically the most popular options now I

play10:10

have to say my view on this is that the

play10:12

context API and two stands are getting

play10:15

more popular I actually teach quite a

play10:17

lot of people about react and nextjs in

play10:19

my react and nextjs course and I have

play10:21

not received one question about Redux so

play10:23

far so you can take that as a simple

play10:25

data point I actually think Redux is

play10:27

fine to use one of the benef benefits of

play10:29

it is that it has a more sophisticated

play10:31

Dev tool but purely looking at usage it

play10:33

does seem that two and the context APR

play10:36

are getting a little bit more popular

play10:37

for styling I would only go for til and

play10:39

CSS at this point and then of course you

play10:41

also need to know about common patterns

play10:43

and best practices so you want to make

play10:45

sure that your components for example

play10:46

are reusable there's certain things you

play10:48

can do and also things like state in the

play10:50

URLs so a piece of data should not

play10:53

always go in US state sometimes it's

play10:54

better to make it part of the URL as

play10:56

let's say a search per RAM for example

play10:58

real estate website I only want to see

play11:00

houses below a million dollars let's say

play11:02

I can make that part of the URL and now

play11:05

the user can bookmark it can and they

play11:07

can come back later and get the exact

play11:08

same view they can share it with other

play11:10

people and they get the exact same view

play11:12

and so some pieces of data should go

play11:13

into the URL most commonly filter or

play11:15

sorting parameter so that's all react

play11:17

now what about things like routing for

play11:19

example well routing I would argue is

play11:21

going to come from a full stch framework

play11:23

like nextjs which we'll talk about in a

play11:25

second and same thing for react query

play11:27

maybe you've heard of react query that

play11:29

is basically how I would do data

play11:30

fetching in a reactive feat app but in

play11:32

nextjs I would do data fetching a little

play11:34

bit differently I would do it in a

play11:36

so-called server component so I wouldn't

play11:37

use react query in next we'll talk about

play11:40

it in a second all right so this is all

play11:41

react now of course besides react which

play11:44

is backed by meta there is also angular

play11:47

which is backed by Google and there's

play11:49

also few and swell these are the most

play11:51

common options you have for the front

play11:52

end now notice that I haven't really

play11:54

talked about typescript yet so

play11:56

typescript I would say is kind of like

play11:58

mandatory it's it forces you to be much

play12:00

more precise with your types which

play12:01

results in much more robust code but you

play12:04

don't really have to learn it separately

play12:05

I would argue as an app developer you

play12:07

can just enable it in your react apps

play12:09

and TP skits can already do a lot of

play12:11

inference right so it can already detect

play12:13

when something is going to be a string

play12:14

or a number or a Boolean you don't

play12:16

really have to specify that very often

play12:17

yourself I have a video on my YouTube

play12:19

channel about type versus interface make

play12:21

sure you check it out a more advanced

play12:22

concept is generics in react you're most

play12:25

commonly going to see that when you

play12:26

create a custom hook that's what I would

play12:28

do if if I was learning the front end

play12:30

now like I said I think the trend is

play12:32

going to become that you as a developer

play12:34

you're going to work along a wider range

play12:36

of the stack so I think the focus these

play12:38

days should be on becoming a full stack

play12:40

developer so that means now we also need

play12:42

to take a look at the back end so if

play12:44

we're going to use react you definitely

play12:45

want to take a look at nextjs so nextjs

play12:47

has built-in routing through the file

play12:50

system so depending on how you structure

play12:51

your folders and files that's how you do

play12:53

routing essentially and nextjs these

play12:55

days offers server components and server

play12:58

actions so a lot of the traditional

play12:59

backend code that you would have in

play13:01

let's say a nodejs Express server a lot

play13:03

of that is now going to be written in

play13:05

nextjs in your server components or

play13:07

server actions and actually a lot of it

play13:09

is going to be in these server actions

play13:11

so traditionally if you had a web server

play13:13

you would have let's say an API end

play13:14

point to update some data well you're

play13:17

going to use a server action for that

play13:18

now and for getting data typically

play13:20

you're going to do it in a server

play13:22

component right so next yes is a full

play13:24

stack framework you don't need a

play13:26

separate back end you can now create

play13:28

complete websites and web apps with just

play13:30

nextjs with just the react model which I

play13:32

think is very powerful nextjs does a lot

play13:34

of caching for you behind the scenes so

play13:36

that results in some performance

play13:38

benefits so I would say by the way

play13:39

server components are mostly also for

play13:41

performance benefits and server actions

play13:43

I would say is more of a developer

play13:45

benefits right so you don't have to

play13:47

create those separate you know/ API end

play13:49

points anymore and then hook it up with

play13:51

the front end you can just create a

play13:52

normal JavaScript function and it's only

play13:54

going to run on the server that's

play13:55

basically what a server action is I

play13:57

would also take a look at more General

play13:58

the concepts of SSR and SSG they come up

play14:01

quite often and they're actually quite

play14:03

similar so static site generation SSG

play14:06

basically it just takes your components

play14:08

together and it just creates HTML out of

play14:10

it during build time you can put it on a

play14:12

CDN so then when somebody comes to your

play14:14

website it's very fast because it's

play14:15

already there waiting for them and it's

play14:17

just it's just creating HTML out of your

play14:19

react components so next ja has is

play14:21

really page focused so you create a page

play14:24

and then on the page you have components

play14:25

so nextjs will actually automatically

play14:27

create HTML out of that whole page with

play14:29

all of the components that are on there

play14:31

whether it's a client or server

play14:32

components it's all going to render that

play14:33

during the build into HTML and then it

play14:36

will serve it from a CDN so SSR is

play14:38

actually very similar it's also going to

play14:40

render things on the server but when

play14:42

people say SSR they don't mean during

play14:44

the build it's during a request time so

play14:46

when I go to website it's not already

play14:48

waiting for me like with SSG as I make

play14:51

that request it needs to render things

play14:52

on the server and then it will send me a

play14:54

response so it's more on the Fly and it

play14:56

can do that not just for the whole page

play14:58

but next JS can do that for an

play15:00

individual server component right

play15:01

independently from the rest of the app

play15:03

it can render a component by itself on

play15:05

the server and then stream it to the

play15:08

front end that's so streaming and

play15:10

suspense that's a very powerful Paradigm

play15:12

in nextjs but that's handled for you

play15:15

behind the scenes mostly all right so

play15:16

nexts we also have patterns and certain

play15:18

best practices like data fetching things

play15:20

like data fetching have changed you

play15:21

typically don't use react quer for that

play15:23

anymore you typically would do that in a

play15:25

server component when you submit data

play15:27

you're going to submit it to typically

play15:28

to a server action and we want to make

play15:30

sure that we validate that data that we

play15:32

get just like with the normal API end

play15:34

point because you don't know what you're

play15:35

going to get from a client right so you

play15:37

want to validate that with something

play15:38

like Z now since nextjs is a full stack

play15:40

framework and they abstract away the

play15:41

network boundary for you it's kind of

play15:43

easy to leak sensitive data so there are

play15:45

certain ways of avoiding that right so

play15:47

that's nextjs nextjs is a react

play15:49

framework there are other react

play15:51

Frameworks as well so nextjs is actually

play15:52

backed by forell and there's also remix

play15:55

which has been acquired by Shopify so if

play15:57

you're in the e-commerce space this this

play15:58

is definitely something to take a look

play16:00

at there's also asro which uh seems to

play16:02

specialize more in content websites and

play16:04

there's also GSP which is backed by

play16:06

netlify but I do sense that this is a

play16:08

bit on the decline in terms of user but

play16:10

that's all react right so that's all

play16:12

react now besides react we also saw that

play16:14

we have angular view spelt they all have

play16:17

their own full stack Frameworks as well

play16:19

right so we have n for view angular

play16:21

Universal and spelt kit as well all

play16:23

right so those are full stack Frameworks

play16:25

meaning client and service site are are

play16:27

both in one framework so doesn't mean

play16:29

that you never need to create a separate

play16:31

backend server anymore and the answer is

play16:33

no you actually often still need it so

play16:35

for example I was building a startup

play16:36

last year and it had to do some video

play16:38

rendering rendering videos on the server

play16:41

that's a very resource intensive task it

play16:43

makes sense to spin that out of your

play16:46

main nextjs app into a separate surface

play16:49

or separate back end so it doesn't

play16:51

interfere with any of the standard

play16:53

things going on essentially right so

play16:55

whenever you have some kind of compute

play16:56

heavy or special task I think it makes

play16:59

sense to spin that out into a separate

play17:00

back end now of course you may also work

play17:02

with some kind of microservices

play17:04

architecture where you have essentially

play17:05

a bunch of separate Services all little

play17:07

backend apps and you can use any kind of

play17:10

language for that right so the benefit

play17:11

of noj s is that you already learn

play17:13

JavaScript and typescript from the front

play17:15

end you can then use that for the back

play17:16

end as well nodejs is the most popular

play17:19

one there's also something called bun

play17:20

but I do feel like nodejs is uh here to

play17:23

stay you can create API end points um

play17:25

easily doable with something called

play17:26

Express but also nestjs are common

play17:29

options uh PHP is very popular in the

play17:31

world of Wordpress actually it's it's

play17:33

popular all around but I would say if

play17:34

you're doing WordPress work this is

play17:36

definitely something to take a look at

play17:37

larel is a popular web framework for PHP

play17:39

I just sneaked in Python here as well

play17:41

python has become actually very popular

play17:43

because of data science so now with all

play17:45

the AI machine learning that's where

play17:47

python comes in so if you are close to

play17:49

the data science type of world this is

play17:51

definitely something you want to take a

play17:52

look at it has D Jango as a popular web

play17:54

framework Java is very popular in

play17:56

Enterprise also used for mobile apps

play17:59

Android and spring is the web framework

play18:01

there Ruby is also an option they have

play18:03

Ruby on Rails and I also see go a lot

play18:05

these days so these are some common

play18:07

options you have for your separate

play18:08

backend services or apps all right so

play18:10

then for databases people would

play18:12

traditionally split them up uh sequel

play18:14

databases and then on the other side you

play18:16

had no SQL databases now my sense is

play18:18

that the the big differences between

play18:21

them have been abstracted away for the

play18:23

most part mostly through these so-called

play18:25

OMS so typically as a developer you

play18:27

don't deal directly with your D basis

play18:28

you're going to do it through an omm as

play18:30

it's called so something like Prisma or

play18:32

drizzle very popular on YouTube or

play18:34

mongoose and they have abstracted away a

play18:36

lot of the differences between these

play18:37

databases so for example I can just

play18:39

interact with Prisma and then no matter

play18:41

what database I use whether it's in

play18:43

postgress or mongodb the code is

play18:45

essentially going to be the same for me

play18:46

so I don't think it makes a huge

play18:48

difference which option you go with

play18:49

unless you have some specialized need

play18:51

like certain performance or or storage

play18:54

issues some of those differences may

play18:56

actually come into play now I do get a

play18:58

sense that SQL light is uh growing very

play19:00

fast because it's probably the easiest

play19:02

one to set up it's just a file that's

play19:04

essentially just part of your app it's

play19:05

not like a separate server you have to

play19:07

spin up it's just a file it does require

play19:09

access to the file system and that

play19:11

that's a problem for if you deploy to a

play19:13

so-called serverless uh platform like

play19:15

for sale where your whole app

play19:17

essentially becomes a bunch of

play19:18

serverless functions you don't get

play19:19

access to the file system so you cannot

play19:21

use SQL light but it's possible that

play19:23

there will be solutions for that there

play19:25

are also popular what I call hosted

play19:26

database services so they host the

play19:29

database for you so superbase for

play19:30

example is just a postgress database but

play19:32

they host it for you and they offer lots

play19:34

of other services out of the box as well

play19:36

same with Firebase and for sale now

play19:38

these days actually also offers a

play19:39

database service so that's databases I

play19:42

typically during development go with SQL

play19:44

light because it's the easiest to set up

play19:45

depending on where I host my app I may

play19:48

have to change it to a let's say a

play19:50

postgress database so if I deploy to

play19:51

forel for example I'm going to use their

play19:54

database service and they actually give

play19:55

me a postgress database in production

play19:57

all right so that's basically the core

play19:59

of it so if you learn most of that

play20:01

you're already very far along but it's

play20:03

also important in my view that you learn

play20:05

the Eco system so there are many Tools

play20:07

around the core that solve specific

play20:10

problems so shaty nuui has actually

play20:12

exploded in the past year or so and I

play20:15

think it has a great shot of becoming

play20:16

like a default component library for the

play20:19

web it's basically a thirdparty set of

play20:21

components but it's a little bit

play20:22

different than the traditional ones

play20:23

because traditionally you would use mpm

play20:25

install and then you would not really

play20:27

get the source code of the component you

play20:29

would get a third- party component and

play20:30

then if you want to change the component

play20:32

you had to use their their props now

play20:34

with Chad CN it's a little bit different

play20:35

so with Chad CN for example if I get the

play20:37

dialogue here when I install this I get

play20:39

sort of like the source code so I can

play20:42

literally change anything I want here

play20:44

customize it exactly how I see fit and

play20:47

not with only the props that the that

play20:49

the third party Library gives me I can

play20:51

literally change everything now the

play20:53

reason you want to use a third party

play20:54

library in the first place is because it

play20:56

removes a lot of hassle right so for for

play20:58

example with a dialogue when you open it

play20:59

up you want to focus the first input in

play21:02

here let's say when I press tab I'm

play21:04

going to change the focus around here

play21:06

but notice that the focus is trapped

play21:08

within the dialogue here and so shatan

play21:11

actually prevents the focus from going

play21:13

outside the dialog into let's say this

play21:15

input field uh in the background so

play21:17

there are many little details a lot of

play21:19

accessibility things that you have to

play21:20

take care of and actually a lot of that

play21:22

work has been done by radex UI so Shan

play21:25

is built on radex so radex actually

play21:27

deserves a lot of credit as well Shad CN

play21:29

is basically a tailin CSS layer over

play21:32

Radix UI so that's a very powerful

play21:34

combination so I think this is one of

play21:36

the big innovations that we've had over

play21:37

the past year as well actually so

play21:39

there's also something called Zod so we

play21:41

talked about data on the server side

play21:43

let's say so there some incoming data

play21:44

into your server action it's just like

play21:46

an API endpoint you don't really know

play21:48

what you're going to get from the front

play21:49

end people can send all sorts of crazy

play21:51

data in which shape which format and to

play21:54

your server so you want to validate that

play21:56

what you get is of the shape that you

play21:57

expected to be I have a complete

play21:58

tutorial on my YouTube channel you can

play22:00

do that with zot and the cool thing

play22:02

about zot is you cannot only do it on

play22:04

the on the server side you can also do

play22:06

it on the front end with your forms so

play22:08

you may want to use react hook form to

play22:10

control your forms makes it very easy to

play22:12

deal with let's say a loading State and

play22:13

error States in your form and you can

play22:15

connect Z to your forms as well so that

play22:18

Z can be responsible for the validation

play22:20

and then with react to form you can

play22:22

easily uh do everything else like

play22:24

displaying an error message for every

play22:26

particular field of the form so the

play22:28

combination here is very powerful and

play22:29

actually you can even use chn because

play22:31

chn also has components for forms the

play22:34

first three here are actually super

play22:35

powerful combination frame or motion

play22:37

very popular for animations instead of

play22:39

using plain CSS animations you may

play22:41

actually just decide to use frame or

play22:43

motion for pretty much any animation

play22:44

you're going to do all right so for

play22:46

authentication there is an open source

play22:47

solution called next off a lot of people

play22:49

are a little bit frustrated with it

play22:50

because it's the docks and it's just not

play22:52

a great developer experience right now

play22:54

and you may actually also want to take a

play22:55

look at third party options for

play22:56

authentication so I'm I'm actually a

play22:58

brand ambassador for kind it is a paid

play23:00

sponsorship but even if they weren't

play23:02

sponsoring me I would still use kind

play23:04

authentication is just difficult to do

play23:06

properly and a third party solution has

play23:08

thought about how to do it and it's also

play23:09

easier to get started in my experience

play23:11

so I personally would use kind for

play23:13

authentication all right so for payments

play23:15

tribee is pretty much uh the most

play23:17

popular option kind is actually also

play23:19

coming out with a payment solution soon

play23:21

which is actually really powerful

play23:22

because often when a user pays they get

play23:25

access to some feature right so the

play23:27

payment is actually closely related to

play23:29

user management and the roles and

play23:31

permissions they have so with kind you

play23:33

can manage your user including any kind

play23:35

of subscription or payment related logic

play23:38

very soon with their new offering all

play23:39

right so you want to take a look at

play23:40

hosting providers my channel is mostly

play23:42

focus on react and nextjs so forell is

play23:45

pretty much the most popular option

play23:46

because they are actually backing nextjs

play23:48

I do get the sense in general that forel

play23:50

is getting more popular than the other

play23:51

options so netlify for example is

play23:53

another option my personal sense is that

play23:55

forel is getting more and more popular

play23:57

so maybe that's a platform you want to

play23:58

take a look at of course git and GitHub

play24:00

so git is for managing your codebase and

play24:02

GitHub is basically place to host your

play24:04

git repository there's also gitlab and

play24:06

some other options all right so then

play24:07

mobile apps the sponsor of this video at

play24:09

my site actually makes it super easy to

play24:11

build mobile apps so that's something

play24:12

you want to take a look at first if you

play24:14

want to go down the rout of doing it

play24:15

completely yourself there is some

play24:17

Innovation here as well with react

play24:19

native and Expo actually so there is

play24:21

some Innovation there as well that you

play24:22

may want to take a look at if you sign

play24:23

up for my email newsletter I'll send you

play24:25

the link to this diagram so you can take

play24:27

a look at this yourself I know this is

play24:28

overwhelming there's a lot to learn uh

play24:30

but you just have to take it one day at

play24:32

a time and you'll see that in a couple

play24:34

months you can get pretty far now I have

play24:35

a complete react and nextjs course in

play24:38

which you will learn pretty much

play24:39

everything here so check that out if you

play24:41

want to master all of these go check

play24:43

that out I'm Wesley by the way I'm a

play24:45

brand ambassador for kind and then I

play24:47

hope that this gave you a good high

play24:48

level overview of where we are currently

play24:50

at in web development I think it's a

play24:52

really exciting time there's lots of

play24:54

innovation lots of things are changing

play24:56

but if you keep up things are only

play24:58

getting better so thanks for watching

play25:00

and I hope to see you next one bye

Rate This
β˜…
β˜…
β˜…
β˜…
β˜…

5.0 / 5 (0 votes)

Related Tags
Web DevelopmentCareer GrowthAI CodingTypeScriptNext.jsFull StackReactTutorialsTrending TechnologiesHigh Income