
In this lesson, we will explain what we will learn during the course.
What is Next.js?
Next.js is a React framework for building full-stack web applications. You use React Components to build user interfaces, and Next.js for additional features and optimizations.
Why learn Next.js?
Next.js offers several advantages over traditional React development:
Built-in Routing and SSR: Unlike React, which lacks native routing, Next.js provides seamless routing functionality out of the box. Additionally, it supports server-side rendering, improving performance and SEO.
Faster Development: Next.js accelerates development by offering built-in features and conventions. Developers can focus on building features rather than configuring complex setups.
SEO Optimization: Next.js enhances SEO by addressing slow rendering and loading times associated with client-side rendering. Its SSR capabilities ensure that search engines can efficiently crawl and index your content.
In this lesson, we will answer the questions of what is Next.js, what are its advantages, what is its main difference with React
App Router vs Pages Router
Next.js has two different routers: the App Router and the Pages Router. The App Router is a newer router that allows you to use React's latest features, such as Server Components and Streaming. The Pages Router is the original Next.js router, which allowed you to build server-rendered React applications and continues to be supported for older Next.js applications.
Features of Next.js
Next.js is a React framework that extends React’s capabilities to build server-rendered and statically generated web applications. Here are some of its key features:
Server-side Rendering (SSR): This improves SEO and initial load performance by rendering pages on the server.
Static Site Generation (SSG): This pre-renders pages at build time, making them super fast to load.
Automatic Code Splitting: This breaks down your application code into smaller bundles, improving load times by only loading the code needed for the current page.
Data Fetching: Next.js offers several ways to fetch data, including getStaticProps for fetching data at build time and getServerSideProps for fetching data on each request.
Routing: Routing is simplified in Next.js. It automatically creates routes based on the file structure of your pages directory, making it easy to manage your application’s URL structure.
Image Optimization: Next.js automatically optimizes images for faster loading times and improved SEO.
Built-in CSS and JavaScript Bundling: Next.js takes care of bundling and optimizing your codes
API Routes: Next.js allows you to create serverless functions directly within your application using API routes.
In this lesson we will start our first application with next.js. I will create my applications through Visual Studio Code.
What is Next.js used for?
Next.js is a React framework for building full-stack web applications. You use React Components to build user interfaces, and Next.js for additional features and optimizations. Under the hood, Next.js also abstracts and automatically configures tooling needed for React, like bundling, compiling, and more.
In this lesson, we will explain what the files and folders we have to use in Next.js are for.
Is Next.js better than React?
Next.js is definitely newer and faster in many cases when compared with React. JAMstack a modern web development architecture that uses JavaScript, APIs, and pre-rendered Markup, Next.js is the best choice for them.
In this lesson we will create new pages. We will learn how to navigate between these pages we have created. While doing this, we will learn the Link component in Next.js.
Is Next.js a coding language?
Next.js is an open-source full-fledged framework created by Vercel, designed to simplify building interactive web applications using React. It offers features for both server-side rendering (SSR) and static site generation (SSG), enabling you to create performant and SEO-friendly web experiences.
In this lesson, we will learn how to create and use components that we don't want to route with Next.js.
Is Next.js also a backend?
Next.js backend capabilities are often overshadowed by its frontend features, but it’s equally competent in handling server-side logic.
In this lesson, we will learn how to create dynamic routes with you. This structure is one of the most distinctive features that distinguish Next.js from React.
How Does Next.js Work?
Next.js operates by enabling both server-side rendering (SSR) and static site generation (SSG), allowing developers to choose the best rendering method for their application’s needs. SSR generates HTML on the server for each request, while SSG pre-renders HTML at build time. Both methods improve performance and SEO by ensuring fast, optimized content delivery.
In this lesson, we will introduce the application we will develop in the section. We will learn the basics of Next.js on this application.
Is Next.js a Framework or Library?
Next.js is considered a framework because it provides a structured way of building applications, offering both client-side and server-side functionalities.
In this lesson, we will start to create the application we explained in the last lesson. In our lesson, we will create the routes that will take place in our application.
What is Server-Side Rendering (SSR) in Next.js?
Server-Side Rendering (SSR) is a feature in Next.js that allows you to pre-render pages on the server at request time, providing better performance and SEO compared to traditional client-side rendering.
In this lesson, we will learn how to create page layout in Next.js applications. We use the layout.js file to create this.
How do I create a new Next.js project?
Use npx create-next-app followed by your project name to initialize a new Next.js project.
In this lesson, we will learn how to use module.css in our application. We will also examine other features of the Image component.
How does Next.js compare to other frameworks?
Comparing Next.js to other frameworks, its unique value proposition becomes more clear. Unlike traditional React applications that require additional configurations for tooling and functionalities, Next.js comes out of the box with features like server-side rendering and static site generation.
In this lesson, we will start creating our homepage. This page will feature a slide containing the content of the courses we offer.
What are the most common use cases for Next.js?
Next.js is a versatile framework, capable of addressing diverse web development needs across multiple industries. One of its popular applications is in the realm of e-commerce. With its fast rendering and robust SEO capabilities, it offers an optimal solution for businesses looking to create high-performance online stores that rank well on search engines.
In this lesson, we will discuss component types in Next.js. So, what do we mean by this? Components are created in two different places. One is on the client side, meaning "client-side rendering," and the other is on the server side.
What is Next.js?
Next.js is a front-end framework that builds on the capabilities of React, a versatile JavaScript library used for crafting engaging user interfaces. What sets Next.js apart is its ability to simplify complex aspects of web development by providing a comprehensive suite of tools and features.
In this lesson, we will build a structure that will help us understand which page we are on. To do this, we will give some style operations to Link components.
What are the benefits of using Next JS?
Next.js is a popular React framework that brings several benefits to web development. Here are some of the key advantages of using Next.js:
Server-Side Rendering (SSR):
Next.js supports server-side rendering out of the box. This means that pages can be rendered on the server and then sent to the client, providing better performance and SEO as search engines can crawl the fully rendered content.
Static Site Generation (SSG):
Next.js allows for static site generation, where pages can be pre-built at build time. This can significantly improve performance by serving static files directly from a CDN, reducing the load on servers and improving the user experience.
Automatic Code Splitting:
Next.js automatically splits the code into smaller chunks, allowing for efficient loading of only the necessary code for a particular page. This results in faster initial page loads and improved overall performance.
Built-in CSS Support:
Next.js provides built-in support for styling solutions, including CSS modules, styled-jsx, and support for CSS-in-JS libraries. This allows developers to choose their preferred styling approach without the need for additional configuration.
API Routes:
Next.js allows you to create API routes easily, enabling the development of serverless functions. This can be useful for handling backend logic without the need for a separate server.
In this lesson, we will perform data extraction from an API source to create the ‘Teacher’ page.
How does Next JS handle client-side navigation?
Next.js uses a client-side navigation approach that leverages the HTML5 History API. This enables smooth transitions between pages on the client side without a full page reload. The framework provides a built-in Link component that facilitates client-side navigation, and it supports both traditional anchor (<a>) tags and programmatically navigating through the next/router module.
We will try to make the component named TeacherPage, which we created in the last lesson, a component compiled on the server again. To do this, we will create the area where we use dynamic data in a separate component.
Explain the concept of dynamic routing in Next JS:
Dynamic routing in Next.js refers to the ability to create routes for pages with dynamic parameters, allowing you to build pages that can handle different data or content based on the values of these parameters. Instead of creating a separate page for each variation, you can use a single page template and dynamically generate content based on the provided parameters.
In this lesson, we will create a message that will appear on the screen until the application pages are loaded. You have done this many times with React.
What is meant by Styled JSX in Next JS?
We employ the Styled JSX CSS-in-JS library to create encapsulated and scoped styles for styling Next JS components. This ensures that the styles introduced to a component have no impact on other components, enabling seamless addition, modification, and removal of styles without affecting unrelated parts of the application.
In this lesson, we will learn how to create an Error page in Next.js applications.
Is Next JS backend, frontend, or full-stack?
Next JS is considered a full-stack framework, offering the capability to render content on both the client-side and server-side. This feature is particularly valuable in the context of React, as React by itself primarily focuses on frontend development without built-in server-side rendering capabilities.
In this lesson, we will learn how to create a not found page. There is a not found page that Next.js automatically displays when trying to navigate to pages that are not actually there. In this tutorial we will learn how to customise this page.
In this lesson, we will create the TeacherDetail component, which contains detailed information about teachers. We will use dynamic routes to create it.
In this lesson, we will create the Share page. This page will include a form area. We will learn how to use form tags with Next.js. In fact, many features are the same as in React.
In this lesson, we will add the section where we can choose an image inside the form field.
In this lesson, we will run the form using the action property of the form tag.
In this tutorial we will learn how to optimise Next.js applications using the useFormStatus hook. Actually this hook belongs to React, but it only works when Next.js is used.
In this lesson we will do some work with input tags. Then we will learn the useFormState hook.
in this lesson we will show alternative error handling.
In this lesson, we will learn how to use metadata in more detail. In Next.js, metadata is used to define metadata at the page or application level. This metadata helps browsers and search engines to better understand and optimise your page. It is also used to determine how you will appear on social media platforms and in search results.
This lesson will be the last lesson in this section. In this lesson, we will remember again what we have learnt in this section
In this lesson, we will explain the topics we will learn in this chapter.
In this lesson, we will introduce the application we will develop in the department.
In this lesson, we will start application installation. I collect applications in a folder named Next.js.
In this lesson, we will start creating our pages with fake data.
In this lesson we will create notFound pages
The previous lessons passed in the form of a general repetition of the previous chapter. With this lesson, we will start to learn features that we have not seen before. In this lesson we will learn how to create parallel routes. With this feature, we will be able to create multiple pages within a page. These pages will be completely independent of each other.
In this lesson we will learn how to create pages using dynamic and parallel routes. We will explain how these will work together. In this lesson, we will explain a structure that is used quite often in today's websites.
This lesson will be very simple and simple. In this lesson, we will display the film data we have obtained in a card structure. We will use this card structure on all the pages we need.
In this lesson, we will use the ‘catch all routes’ feature in the application. So what was this? Catch All Routes in Next.js is a feature used to create dynamic routes.
In this lesson, we will start creating dynamic pages that we use in parallel routes.
. In this lesson, we will create an error component to manage the problems we will encounter in dynamic routes. Then we will make some updates in the main-header component.
In this lesson, we will learn how to programmatically navigate pages using the useRouter hook.
In this lesson, we will learn how to create a Route Group, so what is it? Route Groups in Next.js are a feature used to organize your file structure and allow you to separate pages into logical groups without changing the URL structure. This feature is especially used in the App Directory and App Router structure introduced with Next.js 13. A Route Group helps you create a folder hierarchy in your application and bring together the files in this folder
In this lesson, we will show a usage that Next.js recommends to us. This is a method that we will use when we make HTTP requests from backend services. We will not be able to fully activate this section in this lesson because we are not working with a backend service. But I want you to know that there is such a structure.
In this lesson, we will learn what Middlaware is and how to use it in Next.js.
In this deck, we will explain what we will do in the episode.
In this tutorial, we will perform data fetching operations that you are used to from normal React applications. In Next.js, we call these operations client-side data fetching.
In this lesson, we will optimize the structure we created in the last lesson. Why will we do this? We will do this so that our components have a simpler and more controllable structure.
In this lesson, we will do server-side data fetching with Next.js components. In our previous lesson, we worked on how data is retrieved in a normal React application. But there are more efficient data fetching methods that we can use with Next.js. This is a method that we need to use to increase the performance of the code.
We will edit the data fetching process that you created in the last lesson. We will create a loading component for the data fetching process
In this lesson, we will fill the movie detail page with data from TMDB API.
We continue to get the movie data in our application from the TMDB API source. In this lesson, we will create the “my favorite” page.
In this lesson, we will start to pull data from the TMDB API on the pages where we use the Catch All Routes structure.
In this lesson, we will learn the suspense component that we can use in next.js. So what is it? Suspense in Next.js is a feature that React offers for loading data and providing a more fluid experience to the user.
In this lesson, we will add authentication feature to applications with Firebase. So what is Firebase? Firebase is an application development platform developed and offered by Google.
In this lesson, we will start making firebase integration for Next.js application.
. In this lesson we will create the sign-up page.
. In this lesson we will create the sign-in page.
. In this lesson we will create the logout page.
In this part of our course, we will learn to use the Pages Router system, the old routing system of Next.js
In this lesson, we will start an application using Pages Router.
In this lesson, we will learn how to create nested route and dynamic route structures with Pages Router.
In this lesson, we will create nested routes dynamically.
In this lesson, we will learn how to use the cath all routes and link features with Pages Router. Actually, it is not very different from App Router.
In this lesson, we will navigate between pages by performing programmatic navigation.
In this lesson, we will create a not-found page.
In this section we will explain what we will learn
In this lesson we will try to learn how to compile components. Components created using these methods are created on the server. But the way they are created is different. In this lesson we will learn the differences between static rendering and server side rendering.
In this lesson we will learn how to use the getStaticProps function.
In this lesson, we will create a file with fake data. We will use the data in this file in the components. While doing this, we will use the "file system" which is available by default in node.js.
In this lesson, we will learn how to use the Incremental Static Regeneration feature in the Pages Router structure. This is the name given in the official documentation page. The logic used to create this feature is called Incremental Static Generation.
In this lesson, we will learn two new properties that I can use in getStaticProps. These are notFound and redirect.
In this lesson, we will learn how to create components on the server using dynamic data with Pages Router. Things get a little complicated here. We will learn how to manage this situation in our lesson.
In this tutorial we will learn how to manage dynamic pages using the getStaticPaths function.
In this lesson, we will learn how to use the fallback property and the notFound property when we try to go to a route that does not exist.
In this lesson, we will learn the getServerSideProps function.
In this lesson, we will learn how to create a dynamic page with getServerSideProps.
Until this lesson, we have created server components and tried to build dynamic structures in these components. But in some cases we also need client components. Now let's learn how to manage these processes.
In this lesson, we will extract data from the Next.js Pages Router structure. While doing this, we will convert the component into a client component. We will create the data using the realtime-database feature in firebase.
In this section we will introduce the application we will develop.
In this lesson, we will start creating our application. First, we will create our pages and fake data that we will use.
In this lesson, we will start creating routes where we will display tour routes.
In the last lesson, we created our components. We performed data transfer via Props. Now we will start using this structure we have created.
In this lesson, we will create a link component that we can use throughout the application. We will use this component wherever we want. Then we will start creating the detail page.
In this lesson, we will create the detail page. This tutorial will be more like a React tutorial than a Next.js tutorial.
In this lesson, we will create the layout of the application. By doing this, we will also create a header section that is visible on all pages of the application.
In this lesson, we will create the page where we will use all the tours. Then we will start the filtering section.In this lesson, we will work on the index.js file in the tour folder.
In this lesson, we will start creating the operations that will occur when the form is triggered.
In the last lesson, we created the tour filtering section. With the data we obtained in this section, we will create the Filtered Tour Page page. We will manage in case of errors in this page.
In this lesson, we will display the travel routes that have passed the filtering process.
In this lesson, we will use Firebase's real-time database feature to add a real database to our application.
In this lesson, we will recreate the Home page using static side generation.
In this tutorial we will create the page where tour details are shown.
In the last lessons, we did data fetching over firebase in both components. In this lesson we will try to optimise these operations.
In this lesson we will create the component where we show all the travel routes. There was also a filtering section in this component.
This will be our last lesson in the course. In this lesson, we will examine the operations we do in this section.
What is Next.js?
Next.js is a React framework for building full-stack web applications. You use React Components to build user interfaces, and Next.js for additional features and optimizations.
Welcome to "Next.js | Master Modern Web Development From Scratch" course.
Nextjs | Build React-based SEO friendly web applications with SSR, static rendering, Firebase and next js Travel app
Nextjs is an open-source web development framework created by the private company Vercel providing React-based web applications with server-side rendering and static rendering. You can use React to build your UI, then incrementally adopt Nextjs features to solve common application requirements such as routing, data fetching, and caching - all while improving the developer and end-user experience
Next.js is a React-based framework developed to make web applications built with React more powerful and optimized. Next js stands out especially with its server-side operations, SEO compatibility and fast performance Developed by Vercel, Nextjs provides many additional features and conveniences to React projects
Features of Nextjs
Nextjs is a powerful React framework that enhances React's capabilities to build server-rendered and statically generated web applications. Below are some of its key features:
Server-side Rendering (SSR): This boosts SEO and performance by rendering pages on the server Content is available for search engines to index, and users see a fully rendered page right away, enhancing the first load experience
Static Site Generation (SSG): This method pre-renders pages at build time, ensuring they load quickly
Automatic Code Splitting: This feature splits your application code into smaller bundles, optimizing load times by only loading the code required for the current page
Flexible Data Fetching: Nextjs offers several ways to fetch data, such as getStaticProps for build-time data and getServerSideProps for fetching data on every request This flexibility allows you to select the best approach for your needs
Routing: Nextjs simplifies routing by automatically creating routes based on your pages directory structure, making it easy to manage URLs
Image Optimization: Nextjs automatically optimizes images by resizing and compressing them for faster loading times and better SEO
Built-in CSS and JavaScript Bundling: Nextjs takes care of bundling and optimizing both CSS and JavaScript, simplifying the development process
API Routes: You can create serverless functions directly within your application using API routes, adding backend functionality to your React app without needing a separate server
In this course, you will learn to develop powerful web applications with Nextjs from the ground up Whether you're completely new to Nextjs or looking to strengthen your skills, this course is perfect for you
Designed for all skill levels, this course will take you step-by-step through essential concepts, from beginner topics to advanced techniques With hands-on examples, clear explanations, and engaging projects, you'll master the full stack of Nextjs features
Ready to build powerful web applications with Nextjs? This course is the perfect starting point!
What You Will Learn:
Page Rendering Logic: Understand Nextjs page rendering methods, including the App Router and Pages Router We’ll cover both, with a focus on the more modern App Router
Basic Features: Learn how to create web pages by naming files and folders — a key feature that sets Nextjs apart from React
Advanced Topics: Explore how Nextjs compiles pages both on the server and client side
Data Fetching with Nextjs: Master how to fetch data dynamically in your web applications
Authentication with Firebase: Learn how to implement Firebase authentication in your app
App Router & Pages Router: Gain hands-on experience with both routing structures
By the end of this course, you'll be confident in building robust web applications with Nextjs and equipped with the skills to tackle complex projects
What is NextJs used for?
Nextjs is a React framework for building full-stack web applications You use React Components to build user interfaces, and Nextjs for additional features and optimizations Under the hood, Nextjs also abstracts and automatically configures tooling needed for React, like bundling, compiling, and more
Is NextJs worth learning?
Yes, Nextjs is definitely worth learning, because it is a very powerful and popular framework in modern web development Nextjs supports both SSR and SSG, optimizing performance and allowing you to develop SEO-friendly web applications This feature is especially useful in projects where search engine optimization (SEO) is importantNextjs has a file-based routing system You don't need to use an extra library for routing and you can easily create dynamic routes
Is NextJs hard to learn?
Nextjs is not hard to learn, especially if you already have a basic knowledge of JavaScript and React Since Nextjs is a framework built on React, it offers a very user-friendly experience for someone who knows React However, it can also be learned if you're completely new, because the Nextjs documentation and community is quite strong Here are the factors that can affect the learning process:
What is Next.js vs React?
Next JS is a framework that holds React on its base, while React JS is an open-source JavaScript library, developed and maintained by Facebook. Next JS is used to create web applications and performs server-side rendering, whereas React JS focuses on rendering towards the DOM.
Why would you want to take this course?
Our answer is simple: The quality of teaching
OAK Academy based in London is an online education company OAK Academy gives education in the field of IT, Software, Design, development in Turkish, English, Portuguese, and a lot of different language on Udemy platform where it has over 2000 hours of video education lessons.
When you enroll, you will feel the OAK Academy`s seasoned developers' expertise
Video and Audio Production Quality
All our content is created/produced as high-quality video/audio to provide you the best learning experience
You will be,
Seeing clearly
Hearing clearly
Moving through the course without distractions
You'll also get:
Lifetime Access to The Course
Fast & Friendly Support in the Q&A section
Udemy Certificate of Completion Ready for Download
We offer full support, answering any questions
Dive in now into the "Next.js | Master Modern Web Development From Scratch" course.
Nextjs | Build React-based SEO friendly web applications with SSR, static rendering, Firebase and next js Travel app