Skip to content
FullStackDostFullStackDostLearn · Build · Level Up
  • All Courses
  • Updates
  • My Account
  • Practice
  • Data Strcture
  • FSD
  • All Courses
  • Updates
  • My Account
  • Practice
  • Data Strcture
  • FSD
  • Home
  • Web development

Next.Js (React.JS framework) 12 Sections142 Lessons1 Quiz10 Weeks

Curriculum

  • 12 Sections
  • 142 Lessons
  • 10 Weeks
Expand all sectionsCollapse all sections
  • Introduction to Next.js
    9 Items
    Introduction to Next JS and comparison with other frameworks.
    • 1.1
      What is Next.js?
      10 Minutes
    • 1.2
      Why use Next.js?
    • 1.3
      Next.js vs React
      10 Minutes
    • 1.4
      Next.js vs other frameworks
    • 1.5
      Key features and achitecture
    • 1.6
      How Rendering Works in Next.js
    • 1.7
      App Router vs. Pages Router: Navigating Next.js Routing Systems
    • 1.8
      Prerequisites: HTML, CSS, JavaScript and React
    • 1.9
      Introduction to Next JS
      10 Minutes5 Questions
  • Installation and setup
    9 Items
    Installation and setup Next.js
    • 2.1
      Node.js and environment setup
    • 2.2
      Create a Next.js application
      15 Minutes
    • 2.3
      Run the development server
    • 2.4
      Project folder structure
    • 2.5
      Understanding package.json and scripts
    • 2.6
      TypeScript setup
    • 2.7
      ESLint and code quality
    • 2.8
      Path aliases and the src directory
    • 2.9
      Development vs production builds
  • Routing, pages and layout
    15 Items
    Routing, pages and layout
    • 3.1
      File-system-based routing
    • 3.2
      Creating pages with page.tsx
    • 3.3
      Shared layouts with layout.tsx
    • 3.4
      Nested layouts
    • 3.5
      Link component and navigation
    • 3.6
      Dynamic route segments
    • 3.7
      Catch-all and optional catch-all routes
    • 3.8
      Route groups
    • 3.9
      Private folders
    • 3.10
      Loading UI with loading.tsx
    • 3.11
      Error handling with error.tsx
    • 3.12
      not-found.tsx
    • 3.13
      Parallel routes
    • 3.14
      Intercepting routes
    • 3.15
      Programmatic navigation and redirects
  • React component and fundamentals
    11 Items
    React component and fundamentals
    • 4.1
      React components in Next.js
    • 4.2
      Server Components
    • 4.3
      Client Components
    • 4.4
      The use client directive
    • 4.5
      Choosing server or client rendering
    • 4.6
      Composing server and client components
    • 4.7
      Props and component reuse
    • 4.8
      State and event handlers
    • 4.9
      Forms and controlled inputs
    • 4.10
      Context and providers
    • 4.11
      Third-party client libraries
  • Styling, assets and user interface (UI)
    10 Items
    • 5.1
      Global CSS
    • 5.2
      CSS Modules
    • 5.3
      Tailwind CSS
    • 5.4
      Sass and CSS-in-JS
    • 5.5
      Fonts with next/font
    • 5.6
      mages with next/image
    • 5.7
      Static assets and the public folder
    • 5.8
      Responsive design
    • 5.9
      Layouts and reusable UI patterns
    • 5.10
      Scripts with next/script
  • Data fetching and rendering
    13 Items
    • 6.1
      Fetching data in Server Components
    • 6.2
      Using the fetch API
    • 6.3
      Database and ORM integration
    • 6.4
      Fetching in Client Components
    • 6.5
      Sequential vs parallel fetching
    • 6.6
      Data loading states
    • 6.7
      Streaming and Suspense
    • 6.8
      Static rendering
    • 6.9
      Dynamic rendering
    • 6.10
      Server-side rendering concepts
    • 6.11
      Client-side rendering
    • 6.12
      Partial prerendering concepts
    • 6.13
      Environment variables and server-only code
  • Caching and data updates
    11 Items
    • 7.1
      Understanding cache fundamentals
    • 7.2
      Data Cache and rendered output
    • 7.3
      Cache Components and the use cache directive
    • 7.4
      Cache boundaries and lifetimes
    • 7.5
      Revalidation strategies
    • 7.6
      Time-based revalidation
    • 7.7
      On-demand revalidation
    • 7.8
      revalidatePath
    • 7.9
      revalidateTag
    • 7.10
      Request deduplication
    • 7.11
      Optimistic UI and fresh data
  • Backend development and mutations
    12 Items
    • 8.1
      Route Handlers
    • 8.2
      GET, POST, PUT, PATCH and DELETE
    • 8.3
      NextRequest and NextResponse
    • 8.4
      Server Functions and Server Actions
    • 8.5
      Form submissions
    • 8.6
      Validation and error handling
    • 8.7
      Database CRUD operations
    • 8.8
      Cookies and headers
    • 8.9
      File uploads
    • 8.10
      Webhooks
    • 8.11
      Backend-for-Frontend patterns
    • 8.12
      API security
  • Authentication and Security
    12 Items
    • 9.1
      Authentication vs authorization
    • 9.2
      Sessions and cookies
    • 9.3
      Login and logout flows
    • 9.4
      Protecting routes and layouts
    • 9.5
      Authorization checks near data access
    • 9.6
      Role-based access control
    • 9.7
      Using authentication libraries
    • 9.8
      Environment secrets
    • 9.9
      Input validation
    • 9.10
      CSRF and request security
    • 9.11
      Content Security Policy
    • 9.12
      Data security and safe serialization
  • SEO, performance and accessibility
    14 Items
    • 10.1
      Metadata API
    • 10.2
      Dynamic metadata
    • 10.3
      Open Graph images
    • 10.4
      Sitemaps and robots.txt
    • 10.5
      Canonical URLs
    • 10.6
      Font and image optimization
    • 10.7
      Link prefetching
    • 10.8
      Lazy loading
    • 10.9
      Bundle analysis
    • 10.10
      Core Web Vitals
    • 10.11
      Accessibility fundamentals
    • 10.12
      Analytics and Speed Insights
    • 10.13
      Internationalization
    • 10.14
      Redirects and rewrites
  • Testing, deployment and production
    13 Items
    • 11.1
      Unit and component testing
    • 11.2
      Jest and Vitest
    • 11.3
      End-to-end testing with Playwright or Cypress
    • 11.4
      Build and production start
    • 11.5
      Deployment to a managed platform
    • 11.6
      Self-hosting with Node.js or Docker
    • 11.7
      Static export
    • 11.8
      CI/CD pipelines
    • 11.9
      Logging and monitoring
    • 11.10
      Instrumentation and OpenTelemetry
    • 11.11
      Production security checklist
    • 11.12
      Troubleshooting and debugging
    • 11.13
      Upgrading Next.js and codemods
  • Advanced topics and Pages Router
    14 Items
    • 12.1
      Middleware concepts and Proxy conventions
    • 12.2
      Edge Runtime
    • 12.3
      Custom servers
    • 12.4
      Multi-Zones
    • 12.5
      Progressive migration from Pages Router
    • 12.6
      Pages Router pages and layouts
    • 12.7
      getStaticProps
    • 12.8
      getServerSideProps
    • 12.9
      getStaticPaths
    • 12.10
      API Routes
    • 12.11
      Pages Router data fetching
    • 12.12
      useRouter and router events
    • 12.13
      Legacy image and head APIs
    • 12.14
      Migrating Pages Router applications

Key features and achitecture

5.1 App Router

The App Router uses files and folders under app/ to define routes, layouts, loading states and error boundaries.

text

app/
├── layout.tsx
├── page.tsx
├── about/
│   └── page.tsx
└── products/
    ├── page.tsx
    └── [id]/
        └── page.tsx

This produces the following route structure:

FileURL
app/page.tsx/
app/about/page.tsx/about
app/products/page.tsx/products
app/products/[id]/page.tsx/products/123 for an ID of 123

Folders organize the URL structure, while special files define what happens at those routes.

5.2 Server Components and Client Components

In the App Router, pages and layouts are Server Components by default.

Server Components are useful for:

  • Reading data on the server.
  • Accessing databases through server-side libraries.
  • Keeping private environment variables on the server.
  • Reducing JavaScript sent to the browser when the UI doesn’t need client interactivity.

Client Components are useful for:

  • State and effects.
  • Event handlers such as onClick.
  • Browser APIs such as localStorage.
  • Interactive controls and client-side libraries.

Example:

tsx

// app/components/Counter.tsx
"use client";
import { useState } from "react";
export default function Counter() {
  const [count, setCount] = useState(0);
  return (
    <button onClick={() => setCount(count + 1)}>
      Count: {count}
    </button>
  );
}

The "use client" directive defines a client module boundary. It should be placed before imports.

It does not mean the component can never contribute to server-generated HTML: Client Components can be prerendered on the server and then hydrated in the browser.

5.3 Built-in optimization features

Common framework features include:

  • next/image for image handling and optimization.
  • next/font for font management.
  • next/script for controlling script loading.
  • Link prefetching through the Link component.
  • Code splitting and lazy loading.
  • Metadata and sitemap conventions.

Each feature has its own configuration and limitations, which we’ll cover in Module 05 and Module 10.

5.4 Full-stack architecture

A Next.js project can combine several layers:

Presentation: pages, layouts and UI components

Application logic: Server Components, Server Actions and Route Handlers

Data layer: database, ORM and external services

These are logical layers, not strict physical boundaries. For example, a Server Component can call a database library directly, while an external mobile client might call a Route Handler.

Security rule: Server-side code is not automatically safe. You must still validate input, enforce authorization and avoid exposing secrets or sensitive data.

Leave a Reply Cancel reply

You must be logged in to post a comment.

Next.js vs other frameworks
Prev
How Rendering Works in Next.js
Next

Copyright © 2026 FullStackDost. All Rights Reserved.

  • Privacy Policy
  • Terms of Service
  • Contact Support

Powered by EduPress