I get asked about my setup often enough that it's worth writing down. This is a living document — I'll update it as things change.


Terminal & Shell

Ghostty is my terminal emulator. It's fast, GPU-accelerated, and has sensible defaults. I switched from iTerm2 and haven't looked back.

Zsh with a minimal prompt. I keep my shell configuration simple — a handful of aliases and not much else. Heavy frameworks slow things down.

tmux for session management. Being able to detach and reattach sessions is essential, especially when working on remote machines.

Editor

Neovim is where I spend most of my day. I've gradually built a config that does what I need without being bloated. The key plugins:

For quick edits or when I want a more visual experience, VS Code with the Vim extension.

AI Tools

Claude Code in the terminal for programming tasks — refactoring, explaining unfamiliar codebases, generating boilerplate. It's surprisingly good at understanding context across multiple files.

Claude (the web app) for longer conversations, brainstorming, and writing.

Infrastructure

DigitalOcean droplets for hosting. Simple, predictable pricing. This site runs on one.

Caddy as a web server and reverse proxy. Automatic HTTPS with zero configuration is hard to beat. I switched from Nginx and the config files went from 40 lines to 5.

Docker when I need isolation or reproducibility. Not for everything — plain processes are fine for simple services.

Everyday Software

Firefox as my daily browser. The dev tools are solid and I prefer supporting a non-Chromium engine.

1Password for credentials. I use the CLI integration to inject secrets into shell sessions without them touching disk.

Raycast as an app launcher on Mac. Fast, extensible, and the clipboard history alone is worth it.


The common thread: I prefer tools that are fast, do one thing well, and don't require constant fiddling. The best tool is the one you stop thinking about.