Complete Nextjs with React Node Beautiful Portfolio App

Build Serverless Web Apps with Next.js. Learn Hooks. Deploy to Vercel. Next.js (Next JS 10+), React (React 16+) & Node.
Complete Nextjs with React Node Beautiful Portfolio App
File Size :
42.06 GB
Total length :
70h 1m



Filip Jerga


Last update

Last updated 11/2022



Complete Nextjs with React Node Beautiful Portfolio App

What you’ll learn

Develop serverless & classical web applications with the latest Next JS & React
Understand web concepts clearly by creating real-world applications
Create SEO (Search Engine Optimisation) and Isomorphic Friendly Applications
Establish yourself in field of the exciting Next and React web development environment

Complete Nextjs with React Node Beautiful Portfolio App


Fundamentals in HTML and CSS
Basic Javascript knowledge is required


Is this course right for you?If you plan to start your career as a developer or improve your programming skills, this course is right for you. Learn how to build a fantastic portfolio website you can share with your colleagues or future employers.Get all you need to start web development in one course! Start with Web Development technologies to more advanced topics until your application is deployed to Heroku or Vercel and accessible online on the internet.This resource is the only thing you need to start Web Development with Next.js, React, and Node. You will get the confidence and skills required to create your own projects during this course. You will get the right mindset to apply for a developer career and improve modern frameworks like Next.js, React.js, and Node.What is Next.js?Next.js is React framework that provides infrastructure and simple development experience for server-side rendered(SSR) applications.An intuitive page-based routing system (with support for dynamic routes)Pre-rendering, both static generation (SSG) and server-side rendering (SSR) are supported on a per-page basis.Course Structure is the following:[Project 1]: Resource Application (Beginners)[Project 2]: Portfolio Application (Beginners/Intermediate)[Project 3]: Movie Application (Legacy code, Beginners)[Project 4]: Portfolio Application (Legacy code, Beginners/Intermediate)What are we going to work on?Resource ProjectThis project covers basic concepts. You will learn how React and Next JS works. You will understand the state and props. This project’s main point is to understand basic concepts that will prepare you for the second application.Portfolio ProjectFirst, we are going to integrate the base layout of the application. We will break the layout into small pieces, and we will create lots of reusable components such as a navbar, portfolio card, and many others. I will explain how server-side rendering works, how to use different data fetching techniques, and the differences and benefits of fetching on the server versus the client.The first big feature we will be working on will be authentication. The Auth0 provider will handle authentication. Nevertheless, there will be a lot’s work to handle.Users will register and login and experience feature only for authenticated users. You will learn how to restrict access to pages and manage authentication state through your application, resulting in UI changes of the application layout.Next, we will work on portfolio features. We will implement functionality to create a portfolio, and I will explain how to manage forms easily. Then we will look at update functionality, where I will show you how to populate inputs with existing data. At the end of the section, we will work on delete functionality. All of the features will be reactive and updating view in real-time, and You will learn how to create fast static pages with new Next.js functions.The blog feature will be the biggest one. Users will create blogs using a slate editor that offers different formatting options. Each blog will be saved initially as a draft blog, and it will be a user’s responsibility to publish it. For this purpose, we will create a dashboard page displaying all user blogs to publish or make a draft from the blog. All Published blogs will be highlighted on the blogs page and created as static pages assuring better performance. We will create delete and update functionality as well.Next, we will work on SEO(search engine optimization) improvements. I will explain the basics of SEO and how to get it working with Next.js.The last section will cover deployment. Express API server will be deployed to Heroku. Next.js portfolio application will be deployed to the serverless Vercel platform, making our application super fast on the internet.


Section 1: Introduction

Lecture 1 Project Overview

Lecture 2 How to resolve issues + Project structure

Section 2: [Project 1]: Init the Project

Lecture 3 Project Introduction

Lecture 4 Project initialisation

Lecture 5 Folder Structure

Lecture 6 _app Component

Lecture 7 Components

Lecture 8 Class components

Lecture 9 JSX

Lecture 10 Arrow Functions

Section 3: [Project 1]: State & Props

Lecture 11 State

Lecture 12 Increment state

Lecture 13 Change state

Lecture 14 Class state

Lecture 15 Props

Lecture 16 Use effect

Lecture 17 Class props

Lecture 18 How web apps work

Lecture 19 More about props

Section 4: [Project 1]: Layout

Lecture 20 Bulma css

Lecture 21 Separation into components

Lecture 22 Absolute path

Lecture 23 Layout

Lecture 24 Resource data

Lecture 25 Highlight list

Lecture 26 Resource list

Section 5: [Project 1]: Data fetching

Lecture 27 Api functions

Lecture 28 Get static props

Lecture 29 Get static vs get server side props

Lecture 30 [Server] Api app

Lecture 31 [Server] Api endpoints

Lecture 32 [Server] Get resources from API

Lecture 33 Get data from 3001

Lecture 34 Cors and Proxy

Section 6: [Project 1]: Forms & Create Resource

Lecture 35 Important! Next 13 Updates

Lecture 36 Resource new page

Lecture 37 Resource form

Lecture 38 More inputs

Lecture 39 Form values

Lecture 40 Form Submit

Lecture 41 Handle title change

Lecture 42 Handle all inputs change

Section 7: [Project 1]: Post Request

Lecture 43 Send a post request

Lecture 44 Attach data in the request

Lecture 45 Axios

Lecture 46 Validate data

Lecture 47 Catching error

Lecture 48 [Server] post endpoint

Lecture 49 [Server] finishing post endpoint

Lecture 50 Handling post request in API

Lecture 51 Redirect after create

Section 8: [Project 1]: Resource Details

Lecture 52 [Server] get resource by ID endpoint

Lecture 53 Resource detail page

Lecture 54 Resource page fetch data

Lecture 55 Link to detail page

Lecture 56 Get Initial Props

Lecture 57 Get static paths

Lecture 58 Fallback true

Lecture 59 Revalidate

Section 9: [Project 1]: Resource Edit

Lecture 60 Resource edit page

Lecture 61 Resource Form Component

Lecture 62 Resource Edit Form

Lecture 63 Resource Patch API endpoint

Lecture 64 [Server] Patch Endpoint

Section 10: [Project 1]: Active Resource

Lecture 65 Active resource component

Lecture 66 Active resource patch request

Lecture 67 [Server] Activate resource

Lecture 68 [Server] Active resource endpoint

Lecture 69 Fetch active resource in next

Lecture 70 Time to finish in seconds

Lecture 71 Seconds state

Section 11: [Project 1]: UX Improvements

Lecture 72 UX improvements

Lecture 73 Complete resource

Lecture 74 [Server] Forbid update of not complete resource

Lecture 75 Resource Status

Lecture 76 Resource status color

Lecture 77 Display buttons on inactive ones

Lecture 78 Env variables

Section 12: [Project 1]: Deployment

Lecture 79 Git & Heroku

Lecture 80 Pushing Code to Github

Lecture 81 Deploying to Heroku

Lecture 82 Production env file

Lecture 83 Deployment To Vercel

Section 13: [Project 2]: Starter(Serverless)

Lecture 84 Section Intro

Lecture 85 Init Next Portfolio

Lecture 86 Pages and Header

Lecture 87 Base layout

Lecture 88 Fetch posts

Lecture 89 Portfolio detail page

Lecture 90 Get post by id

Lecture 91 Debug

Lecture 92 Reactstrap

Lecture 93 Fonts

Lecture 94 Scss styling

Lecture 95 Layout Improvement

Lecture 96 Header

Lecture 97 Self Typed

Lecture 98 Base Page

Lecture 99 Note Before Watching

Lecture 100 Absolute path

Lecture 101 Login button

Lecture 102 Api functions – part 1

Lecture 103 Api functions – part 2

Lecture 104 Api functions – part 3

Lecture 105 Loading state

Lecture 106 Fetch post by ID

Lecture 107 useSWR

Lecture 108 useSWR by ID

Section 14: [Project 2]: Authentication

Lecture 109 Section Intro

Lecture 110 Auth0 Registration

Lecture 111 New Auth0 Updates!

Lecture 112 Login API Route

Lecture 113 Webpack Dotenv package

Lecture 114 Env Variables

Lecture 115 Login Screen

Lecture 116 Get login working

Lecture 117 Get User

Lecture 118 Pass user to layout

Lecture 119 Logout

Lecture 120 Secret page

Lecture 121 Redirect

Lecture 122 HOC Start

Lecture 123 withAuth HOC

Lecture 124 Server side props

Lecture 125 Rework server side

Lecture 126 withAuth Server side

Lecture 127 About Roles

Lecture 128 Admin Rights

Lecture 129 Admin SSR

Lecture 130 ENV Variables

Section 15: [Project 2]: Portfolio Feature

Lecture 131 Section Intro

Lecture 132 API Server

Lecture 133 Git Ignore

Lecture 134 Routes and Controllers

Lecture 135 Mongo DB

Lecture 136 Structural changes in DB

Lecture 137 Create portfolio data

Lecture 138 Populate DB

Lecture 139 Get portfolio by ID

Lecture 140 Get Portfolios

Lecture 141 Portfolio Card

Lecture 142 Base Page Stylings

Lecture 143 Get portfolio server side

Lecture 144 Get static paths

Lecture 145 SSR vs Static

Lecture 146 Portfolio “new” page

Lecture 147 Submit form

Lecture 148 Datepicker

Lecture 149 Handle Dates

Lecture 150 Disable end date

Lecture 151 Api route to create portfolio

Lecture 152 Create portfolio endpoint

Lecture 153 Testing create portfolio

Lecture 154 JWT Middleware

Lecture 155 Get access token

Lecture 156 Create portfolio from App

Lecture 157 Hook function to create portfolio

Lecture 158 Hook creator – Api handler

Lecture 159 Handle Errors

Lecture 160 Portfolio edit page

Lecture 161 Pre-fill form with data

Lecture 162 Update portfolio on Server

Lecture 163 Update on client

Lecture 164 Toast messages

Lecture 165 Handle errors

Lecture 166 Edit and Delete buttons

Lecture 167 Delete on server

Lecture 168 Delete on client

Lecture 169 Delete from state

Lecture 170 Check role on server

Lecture 171 Dropdown menu

Lecture 172 Dropdown menu done

Lecture 173 Next 9.4 Updates – part 1

Lecture 174 Note: Revalidate

Lecture 175 Next 9.4 Updates – part 2

Section 16: [Project 2]: Blog Feature

Lecture 176 Section Intro

Lecture 177 Blog Editor

Lecture 178 Blog Server implementation

Lecture 179 Blog endpoints

Lecture 180 Create blog on server

Lecture 181 Create blog from client

Lecture 182 Redirect to blog update

Lecture 183 Get initial content to blog update

Lecture 184 Update blog on server

Lecture 185 Update blog from client

Lecture 186 Base API

Lecture 187 Dashboard page

Lecture 188 Fetch blogs by user

Lecture 189 Filter blogs

Lecture 190 Dropdown in dashboard

Lecture 191 Generate options

Lecture 192 Slugify title

Lecture 193 Update blog

Lecture 194 Mutate function

Lecture 195 Unique slugs

Lecture 196 Delete blog

Lecture 197 Blog index page

Lecture 198 Display blogs

Lecture 199 Link to blog detail + Dates

Lecture 200 Blog detail page

Section 17: [Project 2]: UX Improvements

Lecture 201 Section Intro

Lecture 202 Flip the card

Lecture 203 About page

Lecture 204 Dropdown resizing

Lecture 205 Home screen improvements

Lecture 206 Active Links

Lecture 207 CV Page

Lecture 208 Try to get an access token

Lecture 209 Get an access token

Lecture 210 Get a user

Lecture 211 Fix blog by slug

Lecture 212 Get blogs with user

Lecture 213 Display user

Section 18: [Project 2]: SEO

Lecture 214 Section Intro

Lecture 215 Head title

Lecture 216 Index page type

Lecture 217 Meta description

Lecture 218 Open graph

Lecture 219 Canonical

Lecture 220 Fonts, images, favicon

Lecture 221 More about fonts

Lecture 222 Portfolio detail

Lecture 223 Portfolio detail data

Lecture 224 Change images

Section 19: [Project 2]: Deployment

Lecture 225 Section Intro

Lecture 226 Deploying start

Lecture 227 API to heroku

Lecture 228 Deployment to Heroku

Lecture 229 Respond with html page

Lecture 230 Testing with PROD api

Lecture 231 Small fixes

Lecture 232 Deployment to Vercel

Lecture 233 Testing Next.js app

Lecture 234 Course Ending

Section 20: [Project 3]: Movie App, Basics

Lecture 235 Application Initialization

Lecture 236 Create index page

Lecture 237 Functional Components

Lecture 238 Class Components

Lecture 239 Reusable Components

Lecture 240 Some basics styles

Lecture 241 What is the State

Lecture 242 Let’s mutate State

Lecture 243 Common mistakes with State

Lecture 244 State of functional component

Lecture 245 What are props

Lecture 246 How web app works

Lecture 247 Iterate over list of data

Lecture 248 Shorten Function

Lecture 249 Move movie data to Store

Lecture 250 Get movie data + Promises

Lecture 251 Use Effect

Lecture 252 Get movies in class component

Lecture 253 Catch error in Promise

Lecture 254 Get initial props

Lecture 255 More pages, more links

Lecture 256 App container

Lecture 257 App container props

Lecture 258 Detail page of movie

Lecture 259 Get movie by id

Lecture 260 Fix links in detail page

Lecture 261 Finishes detail page

Lecture 262 Get images from movies

Lecture 263 Display cover images

Lecture 264 Get categories

Lecture 265 Modal implementation + Close Modal

Lecture 266 Form to create movie & Containment

Lecture 267 Get values from the form

Lecture 268 Handle genre changes

Lecture 269 Handle form submit

Lecture 270 Close Modal & Uncontrolled data functionality

Lecture 271 Provide ID of movie

Lecture 272 Base server implementation

Lecture 273 More about Server

Lecture 274 Getting movies from server

Lecture 275 Get movie by ID

Lecture 276 Saving movies

Lecture 277 Delete movie

Lecture 278 Edit page for movie

Lecture 279 Provide data to Edit page

Lecture 280 Final touches on Update movies functionality

Lecture 281 Navigation fixes

Lecture 282 Starting with filtering

Lecture 283 Filtering finished

Lecture 284 Styling improvements

Lecture 285 API Endpoints

Lecture 286 Post endpoint

Section 21: [Project 4]: Starter(Legacy)

Lecture 287 Legacy Info

Lecture 288 Project Init

Lecture 289 More pages + Header

Lecture 290 Base Layout

Lecture 291 Styles

Lecture 292 Post Data

Lecture 293 Portfolio Detail

Lecture 294 Get portfolio by ID

Lecture 295 Custom server

Lecture 296 Next routes

Lecture 297 Reactstrap

Lecture 298 Fonts

Lecture 299 Cleanup + Debugging

Lecture 300 Proper layout

Lecture 301 Typed.js Library

Lecture 302 Header Integration part 1

Lecture 303 Header Integration part 2

Lecture 304 Base Page Component and Default Props

Section 22: [Project 4]: Authentication with Auth0

Lecture 305 Auth Start, Login and Logout Buttons

Lecture 306 Auth0 App Creation and Service

Lecture 307 Handle Authentication and Callback Page

Lecture 308 Callback Page and Redirect User

Lecture 309 Google Setup Auth0

Lecture 310 Save Tokens in Cookies

Lecture 311 Display/Hide Login Buttons

Lecture 312 Get Cookies from Server / Client

Lecture 313 Inform Header About Authentication

Lecture 314 Verify Token Expiration Time Improvement

Lecture 315 Auth Debugging & Display User

Lecture 316 JWKS verify token signature

Lecture 317 JWKS Debugging and Explanation

Lecture 318 Decoded Token Fix!

Lecture 319 Secret Protected Page

Lecture 320 (HOC) High Order Components – Start

Lecture 321 withAuth HOC – getInitialProps

Lecture 322 Secret Endpoint Server

Lecture 323 CheckJWT Intro to Middlewares

Lecture 324 CheckJWT Real Middleware part 1

Lecture 325 CheckJWT Real Middleware part 2

Lecture 326 Axios Auth Headers

Lecture 327 Authorise Request in Get Initial Props

Lecture 328 Roles in Auth0

Lecture 329 HOC to check a Role

Lecture 330 Server Side Role Authorization

Section 23: [Project 4]: Portfolio Feature

Lecture 331 Different Headers

Lecture 332 Portfolio Card Styling

Lecture 333 React Simple Form

Lecture 334 More Input Types

Lecture 335 Formik Intro

Lecture 336 Formik Specific Inputs

Lecture 337 Formik + Bootstrap

Lecture 338 Formik Separate Component

Lecture 339 Validate Form with Formik

Lecture 340 Date Picker Component

Lecture 341 Style Date Picker

Lecture 342 On Change Event Explanation

Lecture 343 Date Validation

Lecture 344 Disable End Date

Lecture 345 Portfolio Styling Changes + Small Refactor

Lecture 346 Database Changes

Lecture 347 MongoDB Intro

Lecture 348 Config Folder Dev.js

Lecture 349 Book Model + Post Route

Lecture 350 Books More Endpoints

Lecture 351 Books Routes & Controllers

Lecture 352 Portfolio Model

Lecture 353 Portfolios Controllers & Routes

Lecture 354 Portfolio Update & Delete Endpoint

Lecture 355 Get Portfolios on Client Side

Lecture 356 Create Portfolio from Client App

Lecture 357 Handle Error in Create Form

Lecture 358 Fix Validation + Redirect

Lecture 359 Portfolio Update Page, Get Portfolio By Id

Lecture 360 Initial Values in Portfolio Form

Lecture 361 Update Portfolio on Client

Lecture 362 Testing Update Functionality

Lecture 363 UI Buttons Navigation

Lecture 364 Hide Buttons for not Logged in Users

Lecture 365 Delete Portfolio Client

Lecture 366 Portfolio Modal Intro

Lecture 367 Fill Modal with Portfolio Data

Lecture 368 Stop Propagation on Click

Lecture 369 Sort Date & Hide Initial Date Fix

Section 24: [Project 4]: Blog Feature – Slate Editor

Lecture 370 Blog Listing

Lecture 371 Blog Listing Login Button Fix

Lecture 372 Slate Editor Intro

Lecture 373 Event Handler in Slate

Lecture 374 Custom Blocks Slate

Lecture 375 Custom Marks Slate

Lecture 376 Hover Menu Start

Lecture 377 Hover Menu Debugging

Lecture 378 Hover Menu Block Buttons

Lecture 379 Block Formatting Debugging

Lecture 380 Styling Improvement of Editor

Section 25: [Project 4]: Advance Blog Feature

Lecture 381 Blog Model

Lecture 382 Date Fix in Model

Lecture 383 POST Blog Endopoint

Lecture 384 Get Blog By Id Endpoint

Lecture 385 Controll Menu

Lecture 386 Save Blog part 1

Lecture 387 Save Blog part 2

Lecture 388 Save Blog part 3

Lecture 389 Serialise & Deserialise Introduction

Lecture 390 Serialise Rules Fix

Lecture 391 Serialise to HTML

Lecture 392 Save Blog Action

Lecture 393 Disable Save Button while Saving

Lecture 394 Blog Editor Update Page

Lecture 395 Initial Value for Blog Editor Page

Lecture 396 Redirect After Save

Lecture 397 Save Blog – Lock the request

Lecture 398 Update Blog Server

Lecture 399 Update Blog Client

Lecture 400 Save Blog Shortcut

Lecture 401 Blog Toaster Messages

Lecture 402 User Blogs Dashboard Page

Lecture 403 Get User Specific Blogs

Lecture 404 Display User Blogs

Lecture 405 Dropdown Menu for the Blog Init

Lecture 406 Dynamic Options for Dropdown Menu

Lecture 407 Dropdown Handlers

Lecture 408 Learn about Slug

Lecture 409 Publish Draft Blogs

Lecture 410 Delete and Get Published Blogs on the Server

Lecture 411 Delete Blog from the App

Lecture 412 Get & Display Published Blogs

Lecture 413 Detail Blog Page – Get Page by Slug

Lecture 414 Detail Blog Page Complete

Lecture 415 Recap of Section part 1

Lecture 416 Recap of Section part 2

Section 26: [Project 4]: Page UX Improvement

Lecture 417 About Page

Lecture 418 Flipping Card part 1

Lecture 419 Flipping Card part 2

Lecture 420 Flipping Card part 3

Lecture 421 Active Link part 1

Lecture 422 Active Link part 2

Lecture 423 Dropdown Blogs for Site Owner

Lecture 424 Dropdown Blogs Styling Fixes

Lecture 425 Set Interval Animation Fix

Lecture 426 Dropdown Menu on Smaller Screens Fix

Lecture 427 Height of the Image on Smaller Screens

Lecture 428 CV Page

Section 27: [Project 4]: SEO Improvements

Lecture 429 Title Explanation

Lecture 430 Don’t forget about Description

Lecture 431 Open Graph

Lecture 432 Robots

Lecture 433 Cannonical & H1 & alt

Lecture 434 Favicon

Section 28: [Project 4]: Get Ready for Deploy

Lecture 435 Small pre-deploy Changes

Lecture 436 Setup Environment Variables

Lecture 437 Setup Namespace

Lecture 438 Mongo DB & Auth0 Production Setup

Lecture 439 First Deployment

Lecture 440 Performance Improvements – Images & JS

Lecture 441 Optimise CSS

Lecture 442 Load fonts on Client

Lecture 443 Deploy & Test after Fonts

Lecture 444 Google Fonts & Deploy

Lecture 445 Final Deploy and Test

Lecture 446 Header Title Fix

Lecture 447 Final Words

Section 29: [Optional]: Setup For Busy Developers

Lecture 448 Setup Completed Project

Starting as well as experienced developers interested in modern frameworks as Next, React and Node.,This course is for everyone eager to understand how a javascript frameworks work.,Taking this course will enable you explain before difficult concepts to your fellow colleagues in simple way.

Course Information:

Udemy | English | 70h 1m | 42.06 GB
Created by: Filip Jerga

You Can See More Courses in the Developer >> Greetings from

New Courses

Scroll to Top