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:

  • gituiBlazing 💥 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 background

  • View 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 👋🏻