Five commands. Three config edits. One running app on your machine. The whole stack in one sitting.
The end state
By the end of this lesson you'll have a folder on disk that runs npm run dev and serves a React 19 app at http://localhost:5173 with TypeScript strict mode and Tailwind v4 utilities working. No screenshots, no copy-paste from a blog post that's six months out of date. Just the commands, the files, and the explanations.
Step 1 — scaffold
The Vite team maintains the React + TS template. It's the only scaffold the React docs recommend in 2026 for a non-meta-framework start.
Step 2 — install Tailwind v4
v4 ships as two npm packages: tailwindcss (the engine) and a build-tool integration. For Vite, that integration is @tailwindcss/vite. Two installs, one plugin line in vite.config.ts, one CSS import.
Step 3 — wire Tailwind into the CSS
v4 expects you to import Tailwind from your main CSS file using the native @import syntax. No @tailwind base; @tailwind components; @tailwind utilities; directives like v3 — those still work but the new way is one line.
Step 4 — confirm
Add a Tailwind utility class to a JSX element. If it renders styled, the chain works. If not, the failure mode is almost always 'CSS file not imported in main.tsx' or 'the @tailwindcss/vite plugin missing from vite.config.ts.' Two places to check.
Step 5 — strict TS
Vite's React + TS template already enables strict: true in tsconfig.app.json. We'll dig into what that means in lesson 4. For now, confirm it's there.
vite.config.ts, tsconfig.json, tsconfig.app.json, tsconfig.node.json, src/main.tsx, src/App.tsx, src/index.css — open every one, read it once. The whole React stack is small enough to fit in your head. Make it fit.