- Every Dev Carry
- Posts
- The Best Developer Tools (2)
The Best Developer Tools (2)
2nd edition
A handpicked selection of the best developer tools.
Here are the best tool picks of this edition. Visit the archive.
In this edition:
gitui – Blazing 💥 fast terminal-ui for git written in rust 🦀
just – 🤖 Just a command runner
mprocs – Run multiple commands in parallel
gitui - Blazing 💥 fast terminal-ui for git written in rust 🦀
While I’m not opposed to using UIs occasionally for tasks I can handle in the terminal, I often find myself needing a desktop app when viewing Git diffs. Whether it's a dyslexia thing or just because it activates the "review mode" in my brain (like reviewing a PR), there are certain tasks I simply can't do in the terminal alone. GITUI changes that for me. It has quickly become my favorite tool for handling daily Git operations. It’s blazing fast and has enough features that I rarely need to use anything else (like magit in Emacs, for instance). And if you pair it with the official GitHub CLI and plugins, you can avoid using the website entirely.
just
- 🤖 Just a command runner
I hate Makefiles. Sure, I get how ubiquitous they are and how they're a neat solution for adding custom commands to a project, but I just can’t stand them. MAKE was designed primarily as a build tool, so it comes with a lot of quirks. If all you're looking for is a simple way to run predefined commands (e.g., running tests, linting, etc.), then check out just
. It makes the task effortless. Take a look at the following example to get a sense of what it can do for you:
# Example 'justfile'
default: lint build test
build:
echo "Building…"
test:
echo "Running tests…"
lint:
echo "Linting code…"
And voilà, you've got repetible commands!
mprocs
- Run multiple commands in parallel
Sometimes you need to run multiple commands to start working on a project or perform specific tasks. For example, you might need to:
Run a number of microservices
Start a database
Execute a few
npm start
commands in the backgroundView logs from several services in a cluster to debug an issue
The old-fashioned approach is to open a new terminal tab for each process and leave them running. However, when you need to check the output of one of those commands, you’ll find yourself constantly switching between tabs, struggling to locate the right one.
A better alternative is to write a simple bash script with all these commands and run it. But the downside is that all the output gets jumbled together, which can be messy and difficult to read.
mprocs
solves this problem once and for all. With mprocs
, you can define the commands you need to run in a simple YAML file, and it spawns each process in its own buffer—keeping all outputs neatly organized in one place.
Personally, I’ve used mprocs
for a variety of tasks, including:
Viewing logs from multiple pods using
stern
Running a Rails server, Sidekiq, and a Dockerized database to work on a front-end app
Running a set of microservices to test entire workflows locally
protip: you can start mprocs
using different config files, so I recommend setting up an alias in your shell to start a specific workflow. For example if I want to take a look at logs, I just run logs
to start mprocs
using my logs yaml file.
It's truly been a game-changer for me and everyone I’ve recommended it to.
See you in the next edition 👋🏻