Course 07 · Framework
Next.js
React with a server attached.
Routing from the file system, server and client components, data fetching and deployment.
0 of 16 lessons finished — nothing yet
The syllabus
16 lessons,
in the order they build on each other.
What Next.js adds
Rendering strategies, what a framework buys you, and when plain React is enough.
Starting a project
create-next-app, the app directory, the dev server and the file conventions.
Routing
Nested routes, dynamic segments, catch-alls, groups and private folders.
Layouts and templates
Shared shells that do not re-render, nested layouts and where state survives.
Loading and error states
loading.tsx, error.tsx, not-found, and what streaming does to the waterfall.
Server and client components
The default, the "use client" boundary, and what may cross it.
Fetching data
Fetching on the server, caching, revalidation and request deduplication.
Server actions
Mutating data from a form, revalidating, and optimistic updates.
Route handlers
API endpoints in the app directory, request and response, and when you need one.
Metadata and SEO
The metadata object, dynamic titles, Open Graph images and the sitemap.
Images and fonts
next/image sizing and priority, next/font, and the layout shift they prevent.
Middleware
Running before a request completes: redirects, rewrites and protecting routes.
Authentication
Sessions across server and client components, and guarding a page properly.
Styling
CSS modules, global styles, Tailwind, and keeping the server component boundary.
Performance
The bundle, dynamic imports, caching layers and reading the build output.
Building and deploying
Environment variables, the build, a checklist before you ship, and what to watch after.
Keep going
The other courses.
HTML
The document, the elements and the meaning behind them. Everything else on the web is layered on top of this.
CSS
Selectors, the box model, layout with flexbox and grid, and motion that has a reason to move.
JavaScript
Values, functions, the DOM, events and asynchronous work — written so you can debug it later.