I’ve spent years reaching for Makefile by default, but I recently started using Taskfile for my projects instead. While it’s still the industry standard, it often feels like a mismatch for the specific needs of a modern web stack… Since moving a few of my workflows over, I've found it much better suited for the way I work today.
Here are three features that convinced me:
=> Self-documenting by design
With Makefile, just getting a readable help output requires a cryptic grep | awk one-liner that's been copy-pasted between projects for 40 years. Taskfile simply has a built-in desc field for each task, and running task --list instantly shows everything available with a clean description. It's a small thing, but it makes onboarding new developers (or just returning to a project after a few weeks :) ) so much smoother.
=> Truly cross-platform without hacks
Make was designed for Unix. The moment someone on your team opens a PR from Windows, you're suddenly wrestling with OS detection conditionals, WSL edge cases, and PowerShell compatibility. Taskfile was built cross-platform from day one. It uses sh as a universal shell by default, and if you do need platform-specific commands, there's a native platforms field that handles it cleanly at the command level. No more fragile branching logic.
=> Built-in validation and interactive prompts
Adding a confirmation prompt or a precondition check in Make means writing verbose, bash-specific shell code that breaks outside of bash. Taskfile has prompt and preconditions as first-class features: one line to ask for confirmation before a deploy, another to verify an env variable is set. It works on every platform, out of the box, no shell scripting required.
In my opinion, Taskfile feels like a much more predictable and modern successor!
I wrote a deeper dive with specific code examples on how these features work in practice ;)
I'm always going to think less of you if you use AI art.
It completely distracted from whatever you were trying to say.
A lack of art would have been better.
An infantile scribble would have been better.
That art is worse than no art and somehow still took you less effort and care.
I'm sorry, you were probably excited to share.
I abjectly refuse to get used to AI art. I will not accept it.
Thanks for the honest feedback. I understand your point of view regarding AI art now. I’ll keep that in mind for future posts.