Instead of Make: just
Use just when Make is only a list of project commands for you. just is a command runner, not a build system, so it drops Make's file-timestamp logic, .PHONY targets and tab rules, and adds arguments, .env loading and readable errors. Keep Make when you actually build files from other files.
Both are for saving and running a project's common commands, such as build, test and deploy.
Why just is better
- There are no .PHONY declarations, because just treats every recipe as a command and does not track files.
- Recipes accept command-line arguments, including flags and options.
- Errors are specific, and unknown recipes and circular dependencies are reported before anything runs.
- It loads .env files and can list all recipes from the command line.
- It runs on Linux, macOS and Windows with no extra dependencies, and recipes can be written in languages like Python or Node.js.
When to keep Make
Keep Make when you need what it was built for, which is rebuilding only the targets whose source files changed, as in C and C++ projects. Make is also preinstalled on most Unix systems, so a Makefile works for contributors without installing anything.
Switching
Install just and create a justfile next to your Makefile. The syntax is inspired by Make, so most recipes copy across with the .PHONY lines and $(VAR) quirks removed. Contributors need to install just, which is the main cost.
Watch out
just is one more tool every contributor and CI image must install. It does no dependency tracking on files, so it is not a replacement for Make as a build system.
More newer, better command-line tools
Sources
Judged on 2026-11-06. See every command-line tools, or all 66 replacements.