Build Tools & Bundlers

Build Tools & Bundlers

Scope

This section covers the primary tools responsible for processing, bundling, and optimizing our applications for development and production environments.

Overview

ADOPT

Proven technologies we have high confidence in; our default choices.


Vite

Webpack

Gradle

TRIAL

Promising technologies to explore and evaluate for adoption.


Gradle Kotlin DSL

ASSESS

Interesting technologies requiring investigation.


Turbopack

HOLD

Not recommended for new work; plan migration from existing uses.


Create React App (CRA)

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.