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