Ninja build system
Hacker ApprovedRanked 5 of 17 build systems by recommenders
Fast, simple build tool that people use as the backend for CMake and Meson; common caveat is that its timestamp-based rebuilds can miss changes.
Fast, simple build tool that people use as the backend for CMake and Meson; common caveat is that its timestamp-based rebuilds can miss changes.
47 people gave an opinion
- recommend it
- 37
- criticize it
- 10
- approval share
- 79%
Recommended in 11 of 13 months
- November 2025: recommended
- December 2025: recommended
- January 2026: recommended
- February 2026: recommended
- March 2026: recommended
- April 2026: not recommended
- May 2026: recommended
- June 2026: recommended
- July 2026: recommended
- August 2026: recommended
- September 2026: recommended
- October 2026: recommended
- November 2026: not recommended (month in progress)
Why it carries the badge
- 37 people recommend itNeeds 10 or more, met.
- 3.7 recommenders for every criticNeeds 2 to 1 or better, met.
- Recommended in 11 of 13 monthsNeeds 4 or more, met.
The same three rules apply to every product, and the badge can’t be bought. How the badge works
What people say about it
The reasons people give, with the number of comments that give each one. Open a reason to read what they said.
Why people recommend it
Each mark is one comment
Works well with CMake and Meson
“Simple CMake projects using the Ninja generator are very efficient, unless you create generated files.”
Comment from 5 Aug 2026 in “Faster Than Ninja” “just installing LLVM, CMake and Ninja is enough to get started developing on Windows”
Comment from 15 Feb 2026 in “I Fixed Windows Native Development” “switched one of my teams firmware projects from make to cmake + ninja”
Comment from 11 Mar 2026 in “Practical Guide to Bare Metal C++” - Comment from 16 Oct 2026 in “C++26 Contracts: Introduction to Preconditions and Postconditions”
- Comment from 25 Jul 2026 in “The PImpl idiom and the C++26 std:indirect type”
- Comment from 30 Mar 2026 in “ninja: a small build system with a focus on speed”
- Comment from 15 Sep 2026 in “Linux from Scratch”
Fast builds with good parallelism
“Ninja just generally does the right thing (run parallel build, but not enough parallelism to make the computer unusable).”
Comment from 30 Mar 2026 in “ninja: a small build system with a focus on speed” “What it lacks in features it makes up for with speed, which is what ultimately matters.”
Comment from 30 Mar 2026 in “ninja: a small build system with a focus on speed” “Contrast that with gn and ninja which generate fast and build fast”
Comment from 4 Jul 2026 in “Show HN: A statically typed, cross-platform, easily bootstrappable build system” - Comment from 31 Mar 2026 in “ninja: a small build system with a focus on speed”
- Comment from 30 Mar 2026 in “ninja: a small build system with a focus on speed”
Easy to get started
“native mobile app development with tools like Meson, Ninja or debhelper is a breeze”
Comment from 4 Feb 2026 in “Xcode 26.3 unlocks the power of agentic coding” “Meson/Ninja C project configuration is generally just a handful of lines of text”
Comment from 30 Dec 2025 in “Fast Cvvdp Implementation in C” “it was easy to apprehend, so a rather good experience”
Comment from 30 Mar 2026 in “ninja: a small build system with a focus on speed” - Comment from 30 Mar 2026 in “ninja: a small build system with a focus on speed”
Simple, does one job well
“Ninja is possibly the best example of the "Do one thing and do it well" philosophy.”
Comment from 30 Mar 2026 in “ninja: a small build system with a focus on speed” “does its one job well and can be used very flexibly”
Comment from 5 Aug 2026 in “Faster Than Ninja” “It is extremely simple and always works flawlessly.”
Comment from 30 Mar 2026 in “ninja: a small build system with a focus on speed”
What people warn about
Each mark is one comment
Timestamp-based rebuilds miss changes
“This is just so flawed and simple to fool by operations on filesystem that do not change mtime”
Comment from 30 Mar 2026 in “ninja: a small build system with a focus on speed” “treating timestamps as 'modified' marker makes it useless with Git and large projects”
Comment from 30 Mar 2026 in “ninja: a small build system with a focus on speed” “make/ninja suffer from the same output modstamp > input modstamps to rebuild”
Comment from 5 Aug 2026 in “Faster Than Ninja” - Comment from 30 Mar 2026 in “ninja: a small build system with a focus on speed”
- Comment from 30 Mar 2026 in “ninja: a small build system with a focus on speed”
Seen as complex and not readable
“Ninja is purely declarative, and is not even meant to be human-readable”
Comment from 16 Oct 2026 in “Last rites for Gentoo's Chromium package” “I don't really like complex build systems like CMake or Ninja”
Comment from 23 Mar 2026 in “Show HN: A C/C++ IDE written in C from scratch with zero dependencies” Setup takes effort across tools
“Getting all of LLVM mesa linux cmake ninja glibc gcc binutils xorg KDE to work is more work than in 2005 or 2010.”
Comment from 21 Jan 2026 in “Linux from Scratch” “We've come a long way to replace simple Makefile with autotools (incredible monstrocity), cmake, ninja etc.”
Comment from 7 Feb 2026 in “Software Engineering Is Back”
Other build systems people recommend
The four most recommended other build systems, with the same counts for each, so you can compare like for like. The tick on each bar marks the 2 to 1 line the badge needs.
| Product | Recommend | Criticize | Approval | Months | Owned | Badge |
|---|---|---|---|---|---|---|
| Bazel | 79 | 41 | 66% | 12 | 3 yrs3 owners | — |
| GNU Make | 76 | 42 | 64% | 12 | — | — |
| CMake | 58 | 93 | 38% | 12 | — | — |
| Apache Maven | 44 | 42 | 51% | 12 | — | — |
| Ninja build systemThis page | 37 | 10 | 79% | 11 | — | Approved |
What people said
40 of the 52 comments that mention it, newest first. Each links to the original comment.
“Ninja is purely declarative, and is not even meant to be human-readable”
“CMake/ninja already have good modules support”
“meson/ninja is a nice combo”
“make/ninja suffer from the same output modstamp > input modstamps to rebuild”
“Simple CMake projects using the Ninja generator are very efficient, unless you create generated files.”
“does its one job well and can be used very flexibly”
“cmake/ninja work great with latest clang”
“Contrast that with gn and ninja which generate fast and build fast”
“VC++ and clang latest with MSBuild or CMake/ninja are there”
“get the latest version from git, fixed by https://github.com/ninja-build/ninja/pull/2764”
“vcpkg+ninja, which quite frankly works really well”
“you need to configure bear or ninja or whatever to produce a compilation database”
“ninja more consistently uses multiple CPUs than GNU make”
“it worked very nicely indeed”
“What it lacks in features it makes up for with speed, which is what ultimately matters.”
“Ninja is possibly the best example of the "Do one thing and do it well" philosophy.”
“mtime rebuild logic is half-baked even by 1970s standards.”
“An under noticed ninja feature I adore, which was implemented relatively recently”
“I have never observed that issue, and I have been using it to build MMLoC repositories.”
“ninja fails to detect that file changed from last build”
“treating timestamps as 'modified' marker makes it useless with Git and large projects”
“It is extremely simple and always works flawlessly.”
“it was easy to apprehend, so a rather good experience”
“This is just so flawed and simple to fool by operations on filesystem that do not change mtime”
“Postgres uses Meson+Ninja in their builds. That seems like a pretty big endorsement.”
“This is cool. Going to see if I can use it at work.”
“to make it even faster with Remote Build Execution”
“since ninja better 'auto-parallelises'”
“Ninja just generally does the right thing (run parallel build, but not enough parallelism to make the computer unusable).”
“by and large I prefer meson/ninja”
“This should be your default stack on any small-to-medium sized C++ project.”
“I don't really like complex build systems like CMake or Ninja”
“switched one of my teams firmware projects from make to cmake + ninja”
“just installing LLVM, CMake and Ninja is enough to get started developing on Windows”
“We've come a long way to replace simple Makefile with autotools (incredible monstrocity), cmake, ninja etc.”
“native mobile app development with tools like Meson, Ninja or debhelper is a breeze”
“Getting all of LLVM mesa linux cmake ninja glibc gcc binutils xorg KDE to work is more work than in 2005 or 2010.”
“Other cool tools you can install from pypi”
“Meson/Ninja C project configuration is generally just a handful of lines of text”
“using a programmatically generated ninja file to be a far superior experience to GNU make”
Counts come from 1,795,640 Hacker News comments, November 2025 to November 2026. How we count. Report a mistake.