Most technical blog posts focus on frameworks, architectures, or specific implementation patterns. That makes sense, as those are the things we usually like to discuss, measure, and refine. But a lot of day-to-day efficiency doesn’t come from the headline technology. It comes from the smaller utilities and extensions that quietly keep our work moving along.
These tools rarely get much attention, even though they shape how we learn, code, search, manage and automate throughout the day. They’re not the main act, but they have a real impact on flow and consistency.
So this post is a bit of a correction. Instead of looking at a framework or a single technical task, I want to highlight a few lesser-known utilities and extensions that I use every day and that genuinely make my workflow better.
Since I work in VS Code every day, its extensions have a real impact on how smooth my workflow feels. One that has earned a permanent place in my setup is Git Graph 2, a fork of the original Git Graph extension after that project stopped being maintained. And honestly, I think it does a better job than the native Git graph functionality in VS Code when I need to inspect branches, follow merges, or quickly make sense of repository history.
I know all of this can be done from the CLI, and I use that too, but I also like having a good GUI when it makes the work faster or clearer. Git Graph 2 is exactly that kind of tool. It’s simple to see branches and quickly filter what I want through the Branches dropdown, including narrowing the view so I’m not distracted by every local and remote branch at once.
I also like that it gives me ways to reduce noise in the graph and commit list, so the history is easier to scan when I only want the relevant part in front of me. On top of that, it adds handy context menu actions directly in the graph, so a lot of common Git operations are available exactly where I’m already looking.
Another nice tool is Portless, a small utility from Vercel Labs that removes one of those tiny but recurring annoyances in local development: dealing with port numbers in URLs. Instead of remembering or copying something like localhost:3000, localhost:4173, or whatever your current app happens to use, Portless lets you access local apps through stable, named URLs like myapp.localhost:1355.
To be fair, you still need to remember port 1355 (yes, it’s “less” in leet, pun intended), which is where the local proxy listens by default. But the real win is that you stop thinking about each individual app’s port. Portless auto-assigns a random port in the 4000-4999 range to your dev server and routes everything through the proxy, so your workflow becomes just portless myapp next dev and you always know where to find it.
There’s also quite a bit of room to personalize your setup. For example, you can change the TLD or enable HTTPS with auto-generated certificates, which is useful when you want a local setup that behaves more like a real production environment, or when some features only work properly over a secure context. You can even register static aliases for services that are not managed by Portless at all, so anything already running on a fixed port can still get a clean named URL through the proxy.
LazySSH is a terminal-based SSH manager written in Go, inspired by lazydocker and k9s. Even if you don’t manage a large fleet of servers, it earns its place in every setup for a very simple reason: if some time passes between connections, you’ll likely forget host names, aliases, or how a specific entry was configured. LazySSH gives you a clean, keyboard-driven TUI to quickly find and connect to what you need, without digging through ~/.ssh/config or trying to remember the right alias.
What I appreciate is how respectful it is of your existing setup. It reads directly from your ~/.ssh/config and makes only the minimal required changes when you edit entries, preserving your comments, spacing, and order, so nothing gets silently rewritten. Credentials are never stored or touched, either. It doesn’t try to replace SSH, it just makes the management part significantly less annoying.
If you’re already comfortable with tools like lazydocker or k9s, the learning curve is basically zero.
Last but not least, back to VS Code extensions: Peacock. The idea is almost embarrassingly simple: It lets you subtly change the color of your workspace, tinting the title bar, activity bar, and status bar with a color of your choice. That’s it. And yet once you start working with multiple VS Code instances open at the same time, it becomes one of those things you cannot imagine going without.
Instead of constantly switching focus trying to figure out which window is your frontend and which is your API, each workspace has its own color and you just know at a glance. It also integrates nicely with remote development and Live Share sessions, automatically applying a different color when you’re working in a remote context or as a host or guest in a Live Share session.
Peacock does one small thing, it does it well, and it’s a perfect example of what this whole post is about.
These are the kinds of tools I tend to keep around for a long time. Not because they’re spectacular, but because they make everyday work a little easier, a little clearer, or a little more convenient.
That is probably the best thing you can say about a utility or an extension: you stop thinking about it, but you would immediately notice if it disappeared.
Did you find this article interesting? Does it match your skill set? Programming is at the heart of how we develop customized solutions. In fact, we’re currently hiring for roles just like this and others here at Würth IT.