My development workflow has changed recently, mainly because of the usage of Claude Code and other terminal-based coding agents. I used to be a great fan of VS Code. One of the indispensable features in VS Code is Remote-SSH. The only reason I still have VS Code on my computer is because of this feature. It comes in quite handy when you want to view and change a few files in a convenient way. VS Code used to be my Notepad, code editor, and general-purpose editor.

There are a few other tools that make my whole development different these days:

Docker: Back-end development was never complete without me running the local development server along with Postgres or any other database installed locally on my machine. There was a period where local development still happened only by manually starting the dev server without Docker, installing all the dependencies by hand. As Claude manages the whole development process, every single change that happens on my system happens inside Docker. This is done by using a local Docker Compose stack.

Database tool: Postico used to be my go-to database viewer for managing and viewing structures. I feel satisfied only when I view those structures visually and confirm whether the models designed using frameworks like Django, SQLAlchemy, or Drizzle (Node.js) really exist. I do love querying the database and seeing what's going on in production as well. There are scenarios where I had to vacuum the production database for a legacy codebase. Nowadays, I tend to lean more towards the TUI — specifically, Lazysql. I can edit almost any column, including JSON fields, similar to what I could do with Postico.

Git viewer: The most underestimated tool that comes free with VS Code. I occasionally use Sublime Merge once in a while. These days, it's Lazygit. With Lazygit, I mostly use it for viewing the diff of files.

Tmux: The terminal multiplexer that changes the way I work. As LLMs become the standard for coding, I try more than a few applications and projects in multiple sessions. Tmux is a game changer for all my needs. Switching between sessions, windows, and panes is more comfortable compared to tabs in a GUI. And why tmux? It's because all my development happens on a single Mac mini. A Mac mini runs all my projects inside a tmux server, which is created when you start a session. Things become quite handy when all your projects are running in a single box on Docker.

Tailscale: I access my Mac mini from the office, home, and anywhere I go. That's possible only because of Tailscale — one of the best tools that makes your networking a breeze. I connect to my Mac mini through Tailscale and open a tmux session on any remote computer.

I did try lots of tools, like herdr (not comfortable yet) and different terminals like Alacritty. Again, the terminal doesn't matter when you use tmux. I switch between Ghostty and Kitty a lot these days.