Skip to main content
00:00/00:00
Lecture 8 of 207

How is Next.js Full-Stack and How Does it Fill the Gaps

Download Course (Free)

Course Content

0 / 207 completed
Section 1: Getting Started Begin Here!3 videos

Hear Me Out Server Actions are Great

18m

Why React is Not Enough for Full-Stack Web Development

26m

How is Next.js Full-Stack and How Does it Fill the Gaps

30mNow Playing
Section 2: React 101 (Watch if You Are New to React!)10 videos

Section Introduction React 101

5m

What is React

6m

Understanding JSX Syntax

8m

Component Props (Passing Data to Components)

4m

Components as the Basic UI Building Blocks

5m

Responding to Events

6m

Keeping Component State using Hooks (useState)

9m

Conditional Rendering

5m

Rendering List of Elements

9m

Importing and Exporting Components

6m
Section 3: Getting Started Creating a Next.js Project and Overview2 videos

Creating a Next.js Project

46m

Next.js Project Structure

22m
Section 4: Next.js 101 Routing, Pages & Layouts6 videos

Layouts (UI Shared Between Pages)

14m

File-system Routing & Creating Pages

22m

Section Introduction Routing, Pages & Layouts

3m

Dynamic Routes with Parameters

11m

Links and Navigation

19m

Understand Prefetching and Caching

20m
Section 5: Next.js 101 Data Fetching (and Caching!)6 videos

Section Introduction Data Fetching (and Caching!)

3m

Running a Mock JSON Server

18m

Actually Fetching Data with fetch inside a Server Component

18m

Understanding Data Cache and Request Memoization

17m

How Data Fetching Works in Next.js (Explanation and Recommendations)

15m

Fetch Cache in Practice

18m
Section 6: Next.js 101 Dealing with Slow Data Sources (Suspense, Loading UI & Streaming)6 videos

Section Introduction Dealing with Slow Data Sources

4m

Loading UI and Streaming

22m

Loading UI and React Suspense

4m

How a Slow Data Source Can Block Your Whole Page!

5m

When to Use React Suspense When Loading UI Differences

11m

About Streaming and SSR

2m
Section 7: Next.js 101 Styling With Tailwind and CSS Modules7 videos

Section Introduction Styling With Tailwind and CSS Modules

1m

Styling Options in Next.js

6m

Getting Started with Tailwind CSS

13m

Flex Container & Responsive Design

18m

Adding a CSS Module and Using Tailwind Inside

4m

Positioning Elements with Flex

5m

Using Grid and Making Customizable Components

14m
Section 8: Next.js 101 Error Management in Next8 videos

Section Introduction Error Management in Next

4m

Error Handling on Pages

14m

Error Boundaries

12m

Error Hierarchy - Where Does the Error Get Catched

8m

Nested Layouts

6m

Recovering from the Errors

8m

Custom Not Found (404) Page

14m

Error Handling in Layouts and in the Root Layout

20m
Section 9: Next.js 101 Images and Image Optimizations8 videos

Section Introduction Images and Image Optimizations

1m

Problems with Images

9m

Core Web Vitals, LCP, CLS and Optimizing Images

23m

Using the Next Image Component for Automatic Optimization

15m

Adding Image Gallery (Not Optimized Yet!)

15m

Measuring the Page with Lighthouse

7m

Placeholders & Image Quality

15m

Responsive Image Size

39m
Section 10: Next.js 101 Fonts, Dynamic OpenGraph Images, Assets & Metadata (SEO)8 videos

Section Introduction Fonts, OpenGraph, Scrips, Metadata

1m

Optimizing Fonts with Next.js (Google and Local Fonts!)

8m

Optimizing Scripts (Connecting with External Services like Analytics, Chatbots)

21m

An Overview of Metadata Attributes

11m

Introduction to Metadata

9m

Static Metadata

10m

Dynamic Metadata

13m

Dynamic (OpenGraph) Image Generation

31m
Section 11: Blog Project Markdown and MDX5 videos

Section Introduction Markdown and MDX

2m

Setting Up Markdown and MDX and First MDX Page!

14m

Styling MDX - Tailwind Typography

9m

MDX Remote (Rendering any Markdown)

9m

Loading MDX From Files (Blog Posts)

9m
Section 12: Blog Project Metadata, Frontmatter, Post List5 videos

Section Introduction Blog Project Metadata, Frontmatter, Post List

1m

Metadata #1 - What's Frontmatter and Refactor Time #1

9m

Metadata #2 - Extracting Frontmatter and Content, Refactor Time #2

23m

Blog Post List - Fetching Metadata of All Files

26m

Blog Post List - Links

24m
Section 13: Blog Project Caching, Filtering, Sorting, Pagination8 videos

Section Introduction Caching, Filtering, Sorting, Pagination

1m

Performance Improvements and Refactoring - Using cache for Memoization

21m

Tags and Filtering Using Search Query Params

15m

Sorting Posts - Using Query Params for State #1

21m

Change Sort Order - Using Query Params for State #2

9m

Adding Pagination - Using Query Params for State #3

9m

Pagination Component - Pages #1

21m

Pagination Component - Links #2

31m
Section 14: Blog Project Custom HTML, Tags, Dark Mode, Cookies8 videos

Section Introduction Custom HTML, Tags, Dark Mode, Cookies

1m

Customizing HTML Generated from Markdown

12m

Tags on Blog Post

7m

Dark Mode Toggling - Component #1

9m

Note About Cookies in Server Components and Dynamic Rendering

6m

Dark Mode Toggling - Custom Hook, Setting DarkLight Mode #2

13m

Dark Mode Toggling - Using Cookies in Next #3

24m

Wrapping Up the Project - Home Page

21m
Section 15: Blog Project Going Live! + Performance Tips & Tricks6 videos

Section Introduction Going Live! + Performance Tips & Tricks

1m

Dynamic Functions Forcing the Dynamic Page Renders

17m

Using generateStaticParams() to Pre-render Pages

11m

SearchParams and Static Pre-Rendering

17m

Adressing Metadata Base and Talking on Edge vs Node Runtimes

15m

Creating a Vercel Account and Deploying Live!

12m
Section 16: Finance App Creating UI and Components11 videos

The Header Component

10m

Creating the Project and Playground

24m

Financial Trend Component

20m

Financial Trend Component - More or Less Money

21m

Currency Formatting Hook

7m

Transaction Summary Component

13m

Transaction Item Component

37m

Creating Buttons

19m

Styling Form Inputs

32m

Custom React Form Input Components

23m

Section Introduction Creating UI and Components

1m
Section 17: Finance App Dark Mode, Fetching and Displaying Data9 videos

Section Introduction Dark Mode, Fetching and Displaying Data

1m

Adding JSON Server as Temporary Data Source

10m

Displaying Transaction List

14m

Adding LightDark Mode Toggle

39m

Grouping Transactions by Date

44m

Separator & Loading Skeleton

18m

Fetching Finance Trends

21m

Wrapping Transaction Loading in Suspense

23m

Making a Suspense Fallback for Trends

23m
Section 18: Finance App Forms, Validation, Server Actions12 videos

Section Introduction Forms, Validation, Server Actions

2m

Adding Transaction Form Markup

17m

Adding Transaction Page & Link

35m

Introducing the Zod Library

12m

Introducing React Hook Form

43m

Form Validation in React Hook Form

27m

Adding a Zod Schema for Transactions

31m

Storing Form Data

33m

Using Environment Variables

25m

Server Actions in Action

38m

Form Error Component

7m

Server Actions Explained

19m
Section 19: Finance App Adding Supabase, Seeding Data, Handling Errors10 videos

Section Introduction Adding Supabase, Seeding Data, Handling Errors

2m

What is Supabase

12m

Reading Transactions from Postgres

10m

Adding Columns to Transactions Table

4m

Adding Data to Postgres

11m

Setting Up and Connecting the Next.js Project to Supbase!

43m

Server Actions - Handling Errors

14m

Generating Seed Data

1h 2m

Server Actions - Server Data Validation

20m

Error Boundary for Trend and Removing JSON Server

18m
Section 20: Finance App More Complex Forms, Validation and Database Queries8 videos

Section Introduction More Complex Forms, Validation and Database Queries

4m

Intermediate Dynamic Forms

13m

Finance Trend - Postgres Function Calculating SUM

13m

Finance Trend - Calling Postgres Function using RPC

13m

Complex Transformation and Validation with Zod

30m

Transactions Date Range - Selecting Option

22m

Transactions Date Range - Display the Trend

8m

Transactions Date Range - Get Current & Previous Sum in Postgres

58m
Section 21: Finance App Transactions Filtering and Pagination5 videos

Section Introduction Transactions Filtering and Pagination

1m

Refactoring to a Client Component with Server Component Wrapper

30m

Load More Functionality (Pagination)

39m

Fetching Transactions Using Postgres Function

38m

UX Improvements (No More Data, Loading Spinner etc)

37m
Section 22: Finance App Updating and Deleting Data9 videos

Section Introduction Updating and Deleting Data

1m

Naive Implementation of Delete Transaction Button

14m

Delete Confirmation & Loading UI

17m

Removing Transaction from the List

21m

Handling the Pagination Shift

13m

Update Transaction Server Action (Updating Data in Supabase)

6m

Transaction Editing Page & Fetching Transaction Data

19m

Transaction Editing Form and Handling 404

15m

Loading UI for the Edit Form

12m
Section 23: Finance App User Authentication (User Accounts, Signing In, Signing Out)13 videos

Section Introduction User Authentication

8m

Login Form & Invoking Server Action Through Form Submission

7m

Authentication Layout and Page

16m

Form Pending State

13m

Handling Form Server Action Errors

17m

Supabase Auth Overview and Passwordless Auth (Magic Links)

19m

What's a Route Handler

15m

How the Authentication Works in Supabase (and in General)

8m

Sign-In Route Handler

15m

Configuring Supabase Email Templates and Testing the Auth Process

21m

Is User Authenticated

12m

Signing Users Out

15m

What's a Middleware Creating a Supabase Token Refresh Middleware

37m
Section 24: Finance App User Authorization (Managing Permissions and Access)7 videos

Section Introduction User Authorization

1m

What's Authorization

4m

Protecting Routes in Middleware

11m

Link Users with Transactions and INSERT RLS Policy

16m

What's Postgres RLS How it Integrates with Supabase Auth

32m

Adding RLS Policies for SELECT, UPDATE and DELETE

5m

Updating the Seeding Script with Users

16m
Section 25: Finance App Uploading and Managing Files12 videos

Secion Introduction Uploading and Managing Files

1m

Supabase Storage, Buckets and RLS

7m

Creating a Bucket and Setting up Security Policies

11m

Image Uploading Form

3m

Settings Layout and Side Navigation

32m

Image Uploading Server Action

10m

Styling the File Input

3m

Updating the User Metadata

6m

Alert Component

20m

Displaying User Avatar (Signed URLs)

31m

More Graceful Error Handling in Server Actions

24m

Deleting Files (Old Avatars)

20m
Section 26: Finance App User Settings, Server Side Form Validation7 videos

Section Introduction User Settings, Server Side Form Validation

1m

Success and Error Alert Components - Refactor

10m

User Settings - Inputs and Loading UI

17m

Scaffolding Settings Page and Form

27m

User Settings - Saving and Applying Settings

24m

Displaying the (Server Side) Validation Errors

18m

User Settings - Validating Data Server Side using Zod

26m
Section 27: Finance App Going Live!1 videos

Going Live!

11m
Section 28: OPTIONAL Getting Started Introduction to Git and GitHub7 videos

Section Introduction Introduction to Git and GitHub

3m

Introduction to Git

25m

Installing Git on Mac

5m

Installing Git on Windows

9m

Installing Git on Linux

1m

GitHub, Remote Repository, Pushing Changes

23m

Commiting Changes in Git

21m