The manual era
React ships with JSX, but browsers cannot run it. You assemble your own pipeline: Babel transforms JSX and modern JS into browser-compatible ES5, Webpack bundles your files and handles code splitting, Grunt or Gulp orchestrates the whole thing, and ESLint catches mistakes. There is no official guide — configuring this pipeline from scratch can take a full day, and every project does it differently. Browserify predates Webpack but has no code-splitting support.