Tool posts age badly, so here’s the honest version: this is what survived a year of real work, and what didn’t. This post is also MDX — it uses interactive components inside markdown, which this theme supports out of the box.
The rules
Three questions before anything gets installed:
- Does it remove a step from something I do daily?
- Will it still work if the company behind it disappears?
- Can I configure it in a file that lives in a dotfiles repo?
Package manager
Still pnpm. The strictness that makes it occasionally annoying is exactly what makes monorepos survivable:
pnpm add astropnpm dlx create-astro@latestnpm install astronpx create-astro@latestbun add astrobunx create-astro@latestThe CLI layer
The unglamorous winners, in order of keystrokes saved:
fzf # fuzzy-find everything: files, history, branchesripgrep # grep, but you never wait for itfd # find with defaults that make sensejq # JSON surgery in pipelinesjust # make, minus the tab-based footgunsdirenv # per-project env vars that load themselvesEditor
VS Code with fewer than ten extensions. The controversial part of the config:
{ "editor.formatOnSave": true, "editor.minimap.enabled": false, "editor.inlineSuggest.enabled": true, "workbench.activityBar.location": "hidden", "files.autoSave": "onFocusChange"}Hiding the activity bar sounds extreme until you realize every panel has a keybinding and your eyes stop drifting left.
What ties it together
A justfile in every repo, so that muscle memory transfers between projects:
dev: pnpm astro dev
check: pnpm astro check && pnpm eslint .
ship: check pnpm astro build && wrangler pages deploy distjust dev, just check, just ship — same three commands in every project I own, regardless of what’s underneath.
The honest summary
The stack is boring on purpose. Every exciting tool I adopted in the last five years either became boring (good) or got deleted (also good). Optimize for the tools you’ll still be using when the trend cycle moves on.