Build Tools & Bundlers
Scope
This section covers the primary tools responsible for processing, bundling, and optimizing our applications for development and production environments.
Overview
Technologies Breakdown
Vite ADOPT
The strongly recommended build tool and development server for all new React, Vue, and other framework-based applications. Use its ecosystem plugins for specific needs.
Offers significantly faster development server startup and Hot Module Replacement (HMR) compared to Webpack/CRA by leveraging native ES modules. Provides optimized production builds using Rollup under the hood. Excellent developer experience, strong community support, and rapidly growing ecosystem. Adopted as the modern standard.
Webpack ADOPT
Maintain existing applications built with Webpack. May still be considered for new projects with extremely complex or specific build requirements not easily met by Vite's plugin ecosystem, but requires strong justification. Generally, prefer Vite for new development.
Highly mature, flexible, and powerful bundler with a vast ecosystem. It has been the standard for years and powers many existing applications and tools (like older CRA versions). While still capable, its development server performance and configuration complexity are generally surpassed by Vite for typical application development.
Gradle ADOPT
Gradle is our standard and recommended build tool for all new projects. Its superior performance, flexibility with plugins, and advanced dependency management capabilities make it our strategic choice for build automation.
Gradle Kotlin DSL TRIAL
We are actively trialing the Gradle Kotlin DSL, primarily on our Kotlin-based mobile projects. The benefits of type safety and enhanced IDE support are promising, and we are evaluating it as a potential future standard for all Gradle build scripts, replacing the traditional Groovy DSL.
Turbopack ASSESS
Monitor its development closely, especially its integration with Next.js and Vercel. Evaluate benchmarks and feature parity compared to Vite and Webpack as it matures. Consider for PoCs once stable releases are available and well-documented.
Developed by Vercel (creators of Next.js) as a Rust-based successor to Webpack, promising significant performance improvements. Still under active development (alpha/beta stages). Assessing its progress, stability, ecosystem readiness, and real-world performance benefits before considering it for trial.
Create React App (CRA) HOLD
Avoid for all new React projects. Maintain existing CRA applications, but consider migrating to Vite or Next.js when significant feature work or refactoring occurs.
Historically significant for bootstrapping React applications, CRA hides its Webpack configuration, making customization difficult without 'ejecting'. Its development speed and build performance have been significantly surpassed by modern tools like Vite. The React team now recommends framework-based solutions (like Next.js, Remix) or Vite for new projects.
Maven HOLD
While Maven is used in several legacy and client-driven projects, it is not our strategic choice for new development. We are putting it on hold to encourage standardization on Gradle. Existing Maven projects should be considered for migration when undergoing major updates.