What I actually work with.
Tools, grouped by where they sit in the working day rather than by category. A list of names isn't much use on its own, so each one says what it's for and why it beat the alternative.
Hardware
What the work physically happens on.
Primary machine for everything - development, design review, writing.
Silent under sustained load, and the battery outlasts a full day away from the desk. The 14" is the largest size I can still work from comfortably on a train.
Dell XPS 15
Secondary machine, kept for testing on Windows.
Cross-browser and cross-platform bugs are much easier to find on real hardware than in a virtual machine.
Apple Magic Keyboard
Daily driver once the laptop is docked.
Low travel, quiet, and it disappears - which is the highest compliment I have for an input device.
Editor & terminal
Where most hours actually go.
Primary editor across every JavaScript and TypeScript project.
The extension ecosystem is the real product. Everything else is a text editor with opinions.
Terminal, with split panes for a dev server, tests and git.
Session restore and search history are small things that compound over a working day.
PHP and Java work, where the refactoring tools genuinely pay for themselves.
For a large legacy codebase, an IDE that actually understands the language beats a fast editor that does not.
Building
The stack I reach for by default on anything new.
The framework behind almost everything I ship, including this site.
Static rendering where it fits, server rendering where it does not, and one mental model for both.
Every project past a weekend in size.
Migrating a production codebase to it cut our bug count by a quarter. That settled the argument for me.
Styling, on every project since 2021.
It removes the naming problem, and it keeps design decisions visible in the markup instead of hidden in a stylesheet nobody opens.
Default database unless something specific argues otherwise.
Boring, predictable, and it has never been the reason a project was late.
Shipping & infrastructure
Getting it in front of people and keeping it there.
Hosting for personal projects and most client sites.
Preview deployments per branch change how reviews work - you look at the thing rather than at the diff.
CI on every push - tests, linting, type checks.
Being in the same place as the code means it actually gets maintained.
Local parity with production, and anything that needs to run the same way twice.
It ends the entire category of problem that starts with "works on my machine".
DNS and CDN in front of most things.
The free tier does more than most paid alternatives, and the dashboard does not fight me.
Design & planning
Working out what to build before building it.
Design work, and increasingly as a shared whiteboard for anything that needs drawing.
The collaboration turned out to matter more than the design tooling - that surprised me.
Issue tracking and release planning.
Fast enough that logging an issue takes less effort than remembering it. That is the whole battle.
Architecture sketches and anything that needs explaining in a hurry.
Deliberately rough. A diagram that looks unfinished invites argument, which is what you want early on.