Build, Deploy and Run in Production
What a build does, environment config, deploying with SPA fallbacks and cache headers, Core Web Vitals, error reporting with source maps, and upgrading React safely.
Writing components is half the job. The other half happens after you type npm run build: your JSX is turned into small files, those files are put on a server, real people on slow phones open them, and things break in ways you never saw on your laptop. This phase follows your app on that journey, from source code to a page that stays fast and healthy for months.
You'll see what a build really does (bundling, transpiling, tree shaking, minifying, source maps) by reading real Vite 8 output, then how configuration gets into the app at build time or at runtime, and why anything in the browser bundle is public. Then you'll deploy: static hosting, the SPA fallback that makes deep links work, Vercel, Netlify, Docker with nginx, and the caching headers that let hashed files be cached for a year while index.html is always fresh.
The last three topics are about running the app in production: measuring what users feel with Core Web Vitals (LCP, INP, CLS), catching and reporting errors with React's root error callbacks and source maps, collecting analytics without collecting people, and upgrading React without drama. Most of this is tooling, so the live examples show the runtime side: what tree shaking keeps, what import.meta.env turns into, a deep link with and without a fallback, real PerformanceObserver entries, and real React error callbacks.
Practise this phase
Hands-on exercises: write the code, see your page live, and press Check to have it tested automatically.