*My Current Dev Stack

September 14, 2026

Neovim

Neovim is my editor, I switched 2 years ago from VSCode. I was happy with it but wanted a simpler / lighter alternative. I remember a colleague of mine who were a fan of Vim, felt it was so complicated to learn at the time and prefered good old nano for sysadmin or vscode locally. Well I get it now when you get used to Vim motions, you really feel like a wizard sometimes, well just sometimes.

What makes modern Neovim special is the LSP support and the Lua plugin ecosystem. A small disclaimer, I think Neovim is not for everyone and I even advise to start with VSCode, the Dev Exp is quite good and it's easy to extend fonctionality with the extensions ecosystem.

But if you've ever been curious, kickstart.nvim is a fantastic starting point to start your config and neovim journey.

Ghostty + Zellij

For my terminal emulator I recently switched to ghostty after using alacritty for a while, I feel like it is using less resources and is draining less battery.

I pair it with zellij which is a delight for terminal multiplexing. It's got good defaults and you can customize your layouts, shortcuts and what not. I really advise you to check it out, it is a gem.

Here is an example of what it looks like

just

just is my new go-to command runner, and it's quietly become one of my most-used tools. Think of it like make but without all the fuss - no tabs-vs-spaces insanity, no implicit file targets, just a clean justfile with named recipes.

Every project I work on gets a justfile at the root. Common recipes look like:

# Run the dev server
dev:
    uv run uvicorn app.main:app --reload

# Run tests
test:
    uv run pytest

# Format and lint
check:
    uv run ruff check . && uv run ruff format --check .

Now instead of remembering the exact incantation to start a project, I just run just dev. New contributors can run just --list and immediately see everything available. It's such a small thing but it makes projects feel so much more approachable.

Nix

Okay, Nix is the one that takes some explaining. It's a package manager (and a whole OS if you want it) built around the idea of purely functional, reproducible builds. Every package is pinned, isolated, and described declaratively. With Nix flakes a simple nix develop will create a dev shell with everything ready.

Nix is getting traction but is still a relatively new tool, but the gains are real. Being able to setup a reproducible dev environment with compilers, toolchains, libs can be quite tedious. Nix fills that gap.

I have been looking at Devenv, I have to try it sometimes but for now flakes is enough for me.

uv

uv is the new Python package manager from Astral. I don't think I need to introduce it, it does its job reliably, quickly. I can still remember the days where python packaging was a pain, you had to switch between so many different tools (pipenv, venv, twine, poetry, setuptools). The ecosystem now has good tooling after some standardization steps like PEP621. I was envying the rust ecosystem for cargo when rust came out.

Things have changed and for the better.

direnv

direnv is a nice addition to everyhting I cited previously. It allows me to load .env file automatically, source python virtual environment, auto activate nix shell. I really enjoy its simplicity, extensibility you can specify easily what's get loaded when you land on your local repository. Leave your directory, it unloads everything automatically :). Everything is ready to go the moment I cd into my project.

Conclusion