Bazel Is Not for You
The article argues that the build tool Bazel is overkill for most individuals and small teams, as it is designed for large-scale monorepos at companies like Google. It suggests that simpler tools like Make, CMake, or language-native build systems are more practical for typical projects, where Bazel's complexity and overhead outweigh its benefits.
Background
- Bazel is a build system (like Make or CMake) originally created at Google, designed to handle huge, multi-language codebases with strict reproducibility and caching. It's powerful but notoriously complex to configure.
- The article's central claim: Bazel's complexity is only justified for large organizations (think Google, Uber, Meta) with massive monorepos and dedicated build-infrastructure teams. For small-to-medium projects, the overhead of learning and maintaining Bazel outweighs any benefit.
- The author contrasts Bazel with simpler alternatives like plain Make, CMake, or language-native tools (Cargo, Go build) that are easier to understand and debug, even if they lack Bazel's hermeticity and incrementality.
- This is part of an ongoing debate in software engineering: "Do you need a Google-scale build system?" Many teams adopt Bazel because it's "what the big companies use," only to struggle with configuration complexity that doesn't pay off for their project size.