Web Development · WDC-69

Basic Next.js for Beginners

Basic Next.js for Beginners is a hands-on course in building web applications with Next.js 16 and the App Router, covering routing, server and client components, UI with Tailwind CSS and shadcn/ui, Server Actions with Prisma ORM and a simple login. It suits React developers, students and freelancers, and you leave able to build an inventory system with login and CRUD.

Updated
From 5,850 THB / person 6,500 −10% excl. VAT 7% · group rates available
PDFDownload the course outline
  • Duration12 hours · 2 days
  • FormatOnsite / live online
  • Next roundOn request
  • CertificateIncluded

Course overview

Next.js is the React framework most widely used today for building full-stack web applications. Next.js 16 makes the App Router the main approach, with Server Components that fetch data directly on the server, Server Actions that receive form data without a separate API, and Turbopack as the default for both development and builds. Developers who already write React can use it to build fast, secure, SEO-friendly websites in a single project.

This course takes you from creating a project with create-next-app to arranging pages and layouts with the App Router, splitting work between Server and Client Components, styling the interface with Tailwind CSS 4 and shadcn/ui, connecting a database with Prisma ORM, building CRUD with Server Actions and validation, and adding a simple login, all through an inventory management workshop that grows throughout the course until it is ready to deploy. (2 days, 6 hours per day, 12 hours in total, Beginner level.)

What you’ll gain

  • Understand the structure of a Next.js 16 App Router project and how Server and Client Components work
  • Build routing, layouts, loading pages and error pages with the App Router file system
  • Build responsive interfaces with Tailwind CSS 4 and shadcn/ui
  • Use Server Actions to receive form data and perform CRUD against a database through Prisma ORM
  • Validate data with Zod and show errors users can understand
  • Build a login system, protect pages that need sign-in and deploy the site to production

Who this course is for

  • Frontend developers who already write React and want to start using current Next.js
  • Programmers and software engineers moving into web development with a modern stack
  • Students working on final-year projects or preparing for a web development career
  • Freelancers and start-up founders who want to build fast, SEO-friendly web applications themselves

Prerequisites

  • An understanding of HTML, CSS and basic layout
  • Able to write modern JavaScript (ES6+), such as arrow functions, destructuring and async/await
  • React basics, such as components, props and useState
  • Some experience of how web applications work

Curriculum

Course Details

This course is the 2026 edition of Basic Next.js for Beginners, updated for Next.js 16 with the App Router. It runs for 2 days, 6 hours per day (12 hours in total, 09:00-16:00), as lectures alternating with labs around an inventory management workshop that grows throughout the course. Beginner level. Learners build routing and layouts, use Server and Client Components correctly, style the interface with Tailwind CSS 4 and shadcn/ui, connect a database with Prisma ORM, build CRUD with Server Actions, validate data with Zod, add a login with a session cookie and proxy.ts, and deploy to Vercel. They take home the source code for every lab.

Day 1 Next.js 16, Routing and UI

Section 1: Lab: Getting Started with Next.js 16

  • How Next.js differs from React with Vite, and the kinds of work it suits
  • Create a project with create-next-app and its defaults: TypeScript, Tailwind CSS, ESLint and the App Router
  • The app and public folders and the next.config.ts file
  • Run next dev with Turbopack and read the error overlay
  • Lab: the home page of an inventory management system

Section 2: Lab: Routing and Layouts with the App Router

  • Create pages with folders and page.tsx files, including nested routes
  • Dynamic routes such as app/products/[id] and reading params
  • layout.tsx for a shared header and sidebar
  • The special files loading.tsx, error.tsx and not-found.tsx
  • Lab: a product list page and a product detail page

Section 3: Server Components and Client Components

  • Every component is a Server Component by default and can fetch data directly with async/await
  • Use 'use client' when you need state, events or hooks
  • Pass props from server to client and keep interactive parts as small as possible
  • Link, useRouter and redirect for navigation
  • Lab: a client-side product search box and filter

Section 4: Lab: UI with Tailwind CSS 4 and shadcn/ui

  • The utility-first approach and theme settings in Tailwind CSS 4
  • Mobile-first responsive design and dark mode
  • Install shadcn/ui and add Button, Card, Table, Dialog and Input
  • Customise components that are copied into your own project
  • Lab: a dashboard layout with a sidebar and a product table

Section 5: Metadata, Images and Fonts

  • The Metadata API and generateMetadata for per-page SEO
  • next/image for properly sized, efficiently loaded images
  • next/font for Thai and English fonts without layout shift
  • An overview of static and dynamic pages and their effect on speed
  • Lab: add titles, descriptions and product images throughout
Day 2 Data, Forms, Login and Deployment

Section 6: Lab: A Database with Prisma ORM

  • Install Prisma ORM 7 with SQLite and the prisma.config.ts file
  • Design product and category models in schema.prisma
  • Create tables with prisma migrate and add sample data with a seed
  • Query data in Server Components and browse it with Prisma Studio
  • Lab: show products from a real database

Section 7: Lab: Server Actions and CRUD

  • Declare a Server Action with 'use server' and submit forms through action
  • Add, edit and delete products without writing API routes
  • revalidatePath and redirect after saving data
  • useActionState and the pending state while a form submits
  • Lab: add and edit product forms with a confirmed delete button

Section 8: Validation and Error Handling

  • Write schemas with Zod and always validate on the server
  • Return field-level errors and show them under each input
  • Report results with Sonner toasts and dialogs in shadcn/ui
  • Handle unexpected errors with error.tsx
  • Lab: a fully validated product form with clear feedback

Section 9: Lab: A Simple Login System

  • Sign-up and sign-in forms with Server Actions
  • Store hashed passwords with bcrypt
  • Create an encrypted session cookie with jose and read it with cookies()
  • Protect pages with proxy.ts and check access again in a data access layer
  • Lab: a product management area that requires login, with a logout button

Section 10: Workshop: Inventory System and Deployment

  • Search and pagination with searchParams
  • Environment variables and .env files for secrets
  • Check the project with next build before going live
  • Deploy to Vercel from GitHub or run on a Node.js server
  • Present your work and plan your next steps

Schedule & training options

For individuals — public rounds

No public rounds are open right now. Join the waiting list and we will contact you first when the next round opens, or ask us on LINE. Or call 02-570-8449 or 088-807-9770

For organisations — in-house / private

  • Tailor the content to your team’s tools and projects
  • Your dates, at your office or live online
  • Quotation with tax ID for procurement
Corporate training quote

Instructors

Frequently asked questions

What is the difference between Server Components and Client Components in Next.js?

In the App Router every component is a Server Component by default: it renders on the server, can fetch data directly with async/await and sends none of its own JavaScript to the browser. A Client Component starts with 'use client' and is needed for state, events such as onClick, or hooks like useState and useEffect. The usual approach is to keep components on the server and move only the interactive parts to the client.

How do you create pages and layouts with the Next.js App Router?

Create folders inside app that match the paths you want and put a page.tsx file in each, so app/products/page.tsx becomes /products. Dynamic routes use a folder name in square brackets, such as app/products/[id]. A layout.tsx file holds shared parts such as the header and sidebar for every page in that folder, and the special files loading.tsx, error.tsx and not-found.tsx handle loading states, errors and missing pages.

What are Server Actions in Next.js, and how do you use them to submit a form?

A Server Action is an async function that runs on the server. You declare it with 'use server' and pass it to a form's action, with no separate API route needed. It receives the form's FormData; you should validate it with Zod and check the user's permissions every time before saving. Then call revalidatePath so the page shows fresh data, or redirect elsewhere. On the form side, useActionState receives error messages and the pending state while the form submits.

Who is the Basic Next.js for Beginners course for, and what should I know beforehand?

It suits frontend developers who already write React, programmers moving into web development with a modern stack, students working on final-year projects, and freelancers or start-up founders who want to build web applications themselves. You should understand HTML and CSS, be able to write ES6+ JavaScript and know React basics such as components, props and useState.

What will I be able to do after the Basic Next.js for Beginners course?

You will be able to set up a Next.js 16 App Router project, use Server and Client Components correctly, build routing and layouts, create interfaces with Tailwind CSS 4 and shadcn/ui, connect a database with Prisma ORM, build CRUD with Server Actions validated by Zod, add a login and protect pages with proxy.ts, then deploy to Vercel. Participants who complete the training receive a Certificate of Completion with its own number, which can be verified online.

What tools does the Basic Next.js for Beginners course use?

The course uses Next.js 16 with the App Router on Node.js 24 LTS, creating the project with create-next-app plus TypeScript, Tailwind CSS 4 and ESLint. Components come from shadcn/ui, installed through its CLI, Prisma ORM 7 with SQLite provides the database, Zod validates data, bcrypt and jose power the login, and the project is deployed to Vercel with the learner's own free account. All tools are free to use.