← Back to Glossary
Developer Glossary
esbuild logo

esbuild

Build Tool

esbuild is a JavaScript and TypeScript bundler written in Go that is 10 to 100 times faster than traditional JavaScript-based bundlers like webpack and Rollup. Created by Evan Wallace, the co-founder and former CTO of Figma, and released in 2020, esbuild proved that the JavaScript build tooling bottleneck was not an inherent complexity problem but a language performance problem. By rewriting the bundling pipeline in a compiled, concurrent language, esbuild turned multi-minute build times into sub-second operations. It reshaped the entire ecosystem: Vite uses esbuild for dependency pre-bundling, and numerous other modern tools leverage it under the hood for fast transpilation.


From Zero to Standard

The JavaScript ecosystem's build tooling had calcified by 2019. webpack, first released by Tobias Koppers in 2012, was the dominant bundler but had become notoriously slow and complex. A moderately sized project could take 30 to 60 seconds for a production build, and the webpack configuration file had become a meme for its intimidating length. Rollup, created by Rich Harris (who later created Svelte and now works at Vercel), was cleaner in design but still single-threaded JavaScript and not dramatically faster. When Evan Wallace released esbuild's first benchmarks showing it bundling a large project in 0.37 seconds versus webpack's 41 seconds, the reaction was disbelief. The secret was straightforward: esbuild was written in Go, which compiles to native code, has built-in concurrency via goroutines, and manages memory without garbage collection pauses. Wallace designed esbuild with an obsessive focus on performance: custom AST representations for minimal memory allocation, parallel parsing of all files, and a single-pass architecture that avoids the repeated tree traversals that JavaScript bundlers rely on. esbuild did not just improve JavaScript build times incrementally, it proved that the ceiling was orders of magnitude higher than anyone had assumed.

The Technical Edge

esbuild's architecture makes deliberate trade-offs that optimize for the common case. It handles JavaScript, TypeScript, JSX, and CSS bundling natively, with tree shaking, code splitting, minification, and source maps built in. It does not have a plugin system as extensive as webpack's, that is by design. Wallace explicitly chose not to support every edge case, keeping the core fast and predictable. For the 95% of use cases that do not need exotic webpack loaders, esbuild does everything you need at speeds that make the build step effectively invisible. This is why Vite, created by Evan You (the creator of Vue.js), chose esbuild for its dependency pre-bundling phase: when a developer starts a dev server, Vite uses esbuild to pre-bundle node_modules into optimized chunks in milliseconds, making the cold start experience near-instant. In my workflow, esbuild's speed means the feedback loop between writing code and seeing results approaches zero. When build tools are this fast, they stop being something you notice and start being something you forget about, which is exactly what a build tool should be.

Visit: esbuild.github.io

Want a blazing-fast development and deployment pipeline? I build with speed in mind at every layer.

or hi@mikelatimer.ai