Development

Dotfiles 2021: Preparing to Scale Myself

Transform your personal development environment into a scalable, portable system—with bootstrap clarity, simplified structure, and zero-friction sharing

Two Years Later, Same Tools, New Intent

By 2021, I hadn’t added much to my dotfiles in terms of features — but I had changed how I used them.

Two things had shifted: remote work became default, and my personal setup was being copied more often — either by teammates, collaborators, or simply across machines.

So I decided to make one thing clear: this system had to scale me. That meant less mess, less magic, and more repeatability.

This update is quiet. But it’s purposeful.

Introducing bootstrap.zsh: Start With Clarity

The major addition this cycle is a new file: bootstrap.zsh.

Its job? Encapsulate all environment bootstrapping in one place. Not aliases, not functions — just the pieces that set the stage for everything else to work.

# bootstrap.zsh
export DOTFILES="$HOME/.dotfiles"
export PATH="$HOME/bin:$PATH"

This file made .zshrc.symlink cleaner, more focused, and easier to read.

FileResponsibility
.zshrc.symlinkJust sources the bootstrap
bootstrap.zshSets up environment variables
aliases.zshShortcut logic (still lightweight)

It made the repo feel intentional again.

I rewrote .zshrc.symlink to be almost empty:

source "$DOTFILES/bootstrap.zsh"
source "$DOTFILES/aliases.zsh"
source "$DOTFILES/functions.zsh"

No logic. No conditionals. Just includes.

This decoupling made it trivial to debug or reuse pieces individually. Want just the aliases.zsh on a disposable VM? Easy. Want to test bootstrap on a clean machine? Go ahead.

Reconfirming Priorities: Simplicity and Portability

With more remote setups and multiple laptops in play, portability mattered.

This update didn’t add complexity — it removed assumptions. Gone are any hardcoded user paths, host-specific tweaks, or machine-only logic.

Everything sources from $DOTFILES. Everything assumes the simplest path.

export PATH="$HOME/bin:$PATH"

This line does more than it looks. It says: “I don’t need a framework — I just need to not trip over myself.”

A Shell That Boots Faster and Thinks Less

I didn’t touch the prompt. Still vcs_info, still silent, still mine:

autoload -Uz vcs_info
precmd() { vcs_info }
PROMPT='%n@%m %1~ ${vcs_info_msg_0_}%# '

What I did do was strip out runtime logic that didn’t need to run every boot. Bootstrap is about setup — once it’s stable, the terminal just loads fast.

Fewer conditionals. Fewer if/else paths. More confidence that it just works.

No Reinvention. Just Rebooting With Care.

There’s no big bang in this post. No shiny new CLI trick or fuzzy finder. Just a careful rebuild of the foundation.

2021 was about:

  • Sharing my setup without friction
  • Rebooting cleanly on new environments
  • Decoupling logic for better reuse
  • Scaling what works — and ditching what doesn’t

See the diff on GitHub