Just: Just a Command Runner

Role and Purpose of just

  • Framed explicitly as a command runner, not a build system.
  • Intended to replace ad‑hoc shell scripts and .PHONY Make targets for common dev tasks (lint, test, deploy, CI steps).
  • Always runs from the project root and can search parent directories for a justfile, which many find ergonomically useful.

Compared to Make and Build Systems

  • Fans say just is much simpler than Make: no incremental build logic, no .PHONY quirks, fewer syntax gotchas, easier to learn for non–shell experts.
  • Make supporters argue its artifact/dependency model and incremental builds are a major advantage, especially for heavy tasks (e.g., rendering, file conversion).
  • Consensus: if you need incremental builds or complex DAGs, use Make, Ninja, Taskfile, Bazel, Nix, etc. If you mostly run commands and pipelines, just is a better fit.

Shell Scripts, npm Scripts, and Alternatives

  • Some say a directory of scripts + $PATH or npm/yarn scripts is sufficient and avoids an extra dependency/DSL.
  • Others find shell painful (quoting, error handling, portability, “scripts grow into monsters”) and appreciate just’s consistent interface, built‑in functions, and self‑documentation (just --list / default “help” recipe).
  • Alternatives mentioned: Taskfile, mise tasks, Invoke-Build (PowerShell), Rake, Mage, babashka tasks, Argc, custom bash/direnv runners, fj.sh, Ninja, frof, bluish, Shake, pixi.

Cross‑Platform and Windows Considerations

  • Several users praise just’s Windows support and ability to choose shell per OS (PowerShell, cmd, sh, bash via shebangs).
  • Critics note reliance on a shell and needing to install just at all as added friction, especially versus ubiquitous POSIX sh.
  • Some projects embed just via Node packages so contributors don’t install it manually.

Strengths Reported by Users

  • Lower “mental burden” than Make; quick to adopt across teams.
  • Clear recipes with descriptions; good onboarding for new contributors.
  • Supports OS‑specific recipes, recipe composition, parameter passing that many find more ergonomic than Taskfile’s -- style.
  • Works well in CI pipelines and for organizing ~10–20 project commands.

Critiques and Reservations

  • Another DSL to learn; doesn’t replace Make as a real build system.
  • Lacks incrementalism, parallelism, and rich flags compared to more “modern” task runners (e.g., mise).
  • Some prefer fully declarative or language‑native tooling and see command runners as encouraging brittle, stateful workflows.