Skip to main content

From HTML/CSS/JS to React, Next.js, Tailwind

A 12-step arc from the first HTML line to state and offline-data boundaries.

Difficulty
Beginner
Lessons
12

The web starts with three kinds of files (HTML / CSS / JS). You set those down firmly, then add React 19 → Next.js 16 → Tailwind 4 one stair at a time.

By the end:

  • Write meaningful static HTML pages
  • Compose any layout with the box model, Flexbox, and Grid
  • Bring pages to life with JavaScript variables, functions, and events
  • Think in React 19 components
  • Understand the Next.js App Router data flow
  • Keep design consistent with Tailwind tokens
  • Finish with form validation and loading UX
  • Safely upload, validate, transform, and store images
  • Work with TypeScript's strict mode, narrowing, generics, and utility types
  • Design content continuity for readers who leave and return
  • Separate server state, UI state, and IndexedDB data by ownership and lifetime

Flow

From a web page to a product surface

Web standards

Learn how HTML, CSS, and JavaScript turn internet requests into a usable screen.

UI structure

Build state and server/client boundaries with React and Next.js.

User experience

Treat styling, forms, images, and accessibility as one response to real input failures.

Durable state

Implement continuity and recovery with TypeScript and explicit local-data lifetime contracts.

Steps 1–4 are the browser standards basics. 5–7 are modern frameworks (React → Next → Tailwind). 8–12 finish with product-grade polish (forms, media, types, continuity, and data lifetime).

Prerequisite — getting-started steps 1–5 (Node + pnpm + VS Code).

Lessons

  1. 1

    Step 1 — How the internet works

  2. 2

    Step 2 — HTML with meaning

  3. 3

    Step 3 — CSS, how it looks

  4. 4

    Step 4 — JavaScript basics

  5. 5

    Step 5 — React 19 essentials

  6. 6

    Step 6 — Next.js App Router

  7. 7

    Step 7 — Tailwind CSS

  8. 8

    Step 8 — Forms, validation, UX

  9. 9

    Step 9 — Image Upload and Optimization

  10. 10

    Step 10 — TypeScript in Depth (strict, narrowing, generics)

  11. 11

    Step 11 — Continue-reading UX

  12. 12

    Step 12 — Separate server state, UI state, and local data

Other courses

All courses →