JS Party: JavaScript, CSS, Web Development · Changelog Media

Should web development need a build step?

June 6, 2024·1 hr 7 min·6 clips
Nick Nisi drops the TypeScript mic, forcing Amy to argue why browsers should handle it without builds.
This JS Party episode features a lively debate on whether web development should require a build step. Host Jared Galanis moderates with panelists Nick Nisi, Eric Clemens, Amy Dutton, and KBall arguing assigned sides. The debate format involves timed opening statements, rebuttals, and final arguments. Team "Nope," represented by Amy and KBall, argues that the web's foundational principles allow HTML, CSS, and JavaScript to run directly in browsers. Amy contends build steps create unnecessary barriers for beginners and that modern bandwidth minimizes performance concerns. KBall adds that evergreen browsers, ES6 modules, import maps, and HTTP2 reduce the need for bundling. He claims build steps introduce brittle tooling, slow development, and can sabotage cache efficiency. Team "Yep," represented by Nick and Eric, argues build steps are inevitable for performance and developer experience. Eric states bundling ensures code is delivered as users receive it and allows use of new language features before broad browser support. Nick emphasizes build steps handle backend complexities and enable powerful abstractions. He specifically cites TypeScript and JSX as innovations dependent on compilation. Eric references Rich Harris's success with no-build-step libraries but counters that large codebases, per expert Matt Pocock, require builds for performance. A surprising insight is Eric's claim that everyone is essentially "team build step," differing only on who performs it—developer tooling or future browsers. Nick argues that build steps foster innovation, allowing new DSLs like JSX without waiting for browser standards. KBall counters that build steps encourage over-reliance on massive JavaScript libraries, whereas simplicity should be the goal. Amy suggests browsers could eventually handle tasks like minification or TypeScript execution, eliminating the need for developer-side builds. The debate reveals a consensus that build steps currently exist but should become invisible or automated. Eric highlights a trend toward "pushing complexity left" with zero-config tools like Vite and simplified TypeScript configs. Jared humorously interjects that love, HTML, and plain text don't need build steps, declaring himself the winner. The tone is conversational, fast-paced, and humorous, with panelists joking about their lack of preparation. Listeners interested in web development philosophies, JavaScript tooling trends, and the trade-offs between simplicity and power will enjoy this episode. Those seeking deep technical tutorials or definitive answers may find the debate-style discussion less practical.

As heard by us

A practical debate about when build steps help, when they hurt, and why JSX still matters.

JS Party treats the build-step question as a straightforward engineering tradeoff: keep the code clean and idiomatic, or let the toolchain take on more of the work behind the scenes.

Read the full review in PlayNext →

Why you'd press play

Press play for a candid JavaScript-and-web debate about build steps, performance, and the tradeoffs behind cleaner code.

Read the full recommendation in PlayNext →
Listen to the show on