Forge
Builds that finish before you switch tabs
Content-addressed caching, so the second build of anything is a lookup. The cache is shared, which means your build is usually somebody else's lookup.
How
Nothing runs twice
Every task is keyed on its inputs. Change one file and exactly the work that depends on it re-runs, which is a smaller set than your current build system assumes.
On CI
The same cache your laptop used
CI does not start cold. It reads the artefacts your machine already produced, so a pull request that changes a README does not rebuild the world to prove it.
When it is wrong
Explain, not just run
Ask why a task re-ran and Forge prints the input that changed and the hash on either side. Cache misses stop being a mystery you work around with a clean build.
Adoption
One file, then delete it if you hate it
Forge reads your existing scripts. There is no migration and no lock-in to unwind, and removing the file leaves you exactly where you started.
What it is not
It will not fix a slow test suite
Forge skips work it has already done. It cannot make work it has not done any faster, and a test that takes four minutes will still take four minutes the first time.
Try it on your slowest repo
The docs start with the honest version: what to add, what it will and will not cache, and how to tell whether it helped.
Read the docs