What Every Developer Forgets When Setting Up a New Machine
You will remember to install your IDE and git. But what about your SSH config, shell aliases, .env files, and that one font your terminal needs? Here are the 10 things everyone forgets.
The Stuff You Remember
When you set up a new machine, there are things you install immediately without thinking. Your code editor, git, a terminal emulator, maybe Docker. These are the obvious tools — the ones you consciously reach for every day. Nobody forgets to install VS Code.
But a development environment is an iceberg. The visible tools are the tip. Below the surface are dozens of configs, credentials, customizations, and small utilities that you have accumulated over months or years. You do not think about them because they just work. Until they are gone.
The 10 Things You Will Forget
Based on thousands of developer setups, here are the things that consistently get forgotten. You will not realize they are missing until you hit a workflow that depends on them, sometimes weeks after setup.
1. SSH Keys and Config
You try to git push and get "Permission denied (publickey)." Your SSH keys are on your old machine. Even if you generate new ones, you forget about your ~/.ssh/config that routes connections through bastion hosts, uses specific keys for specific repos, or sets up port forwarding.
2. Git Config
Your first three commits go out with the wrong email address because you forgot to set user.email. Your carefully crafted git aliases — git lg for a pretty log, git undo for a soft reset — are all gone.
3. Shell Aliases and Functions
Your muscle memory types ll, gst, dc and nothing happens. Every custom alias, every shell function, every PATH modification — gone. You spend the next two weeks adding them back one at a time as you rediscover them.
4. Environment Variables and .env Files
You clone a project, run npm start, and it crashes because there is no .env file. Now you need to track down API keys, database URLs, and service credentials. Some of these are in a password manager. Some are in a Slack thread from six months ago. Some are lost forever.
5. Font Installations
Your terminal looks wrong. Your editor's ligatures are broken. You forgot to install JetBrains Mono or Fira Code or whatever Nerd Font your Starship prompt needs. Without the right font, your carefully tuned terminal theme falls apart.
6. Package Manager Auth Tokens
Your .npmrc with your private registry token. Your Docker config with registry credentials. Your pip config pointing to your company's internal PyPI. These are not things you think about until npm install fails on a private package.
7. Cloud CLI Credentials
AWS credentials, Google Cloud service accounts, Cloudflare API tokens, Vercel CLI auth — every cloud service you interact with needs to be re-authenticated. If you have multiple AWS profiles with different roles, recreating ~/.aws/config from memory is painful.
8. Keyboard Customizations
Karabiner-Elements remappings, custom keyboard shortcuts, Caps Lock rebound to Escape — these are deep muscle memory customizations. You do not think about them until you press Caps Lock and get SHOUTING instead of leaving insert mode.
9. Editor Extensions (Not Just Settings)
VS Code Settings Sync handles your settings and keybindings. But your global snippets? Your workspace recommendations? That one extension you installed three months ago that you now depend on but cannot remember the name of? Extension lists are easy to lose.
10. Global Git Hooks and Ignore Patterns
Your ~/.gitignore_global that prevents you from committing .DS_Store and .env files. Your global pre-commit hook that runs linting. These are silent guardians you only notice when they stop guarding.
How ConfigSync Catches All of These
Each of the 10 items above maps to a ConfigSync module that automatically tracks and restores it:
| Forgotten Item | ConfigSync Module | What Gets Tracked |
|---|---|---|
| SSH keys & config | ssh | ~/.ssh/config, key pairs (encrypted) |
| Git config | git | ~/.gitconfig, ~/.gitignore_global |
| Shell aliases | shell | ~/.zshrc, ~/.zprofile, custom functions |
| .env files | env | Per-project .env files (encrypted) |
| Fonts | bootstrap | Installed via bootstrap.sh script |
| Registry tokens | node / python | ~/.npmrc, pip.conf (encrypted) |
| Cloud credentials | aws / cloud | ~/.aws/*, cloud configs (encrypted) |
| Keyboard remaps | macos / bootstrap | Karabiner config, defaults commands |
| Editor extensions | vscode | Extension list, settings, snippets |
| Git hooks & ignores | git | Global hooks, ignore patterns |
The Set It and Forget It Approach
The reason developers forget these things is that they accumulate gradually. You add a git alias today, an SSH config entry next week, a shell function next month. Nobody sits down and creates a comprehensive inventory of their development environment. It grows organically.
ConfigSync works the same way. You add modules once, and from then on, every configsync push captures the current state of all tracked categories. You do not need to remember what changed since your last push — ConfigSync diffs and captures everything automatically.
configsync push. It takes five seconds and ensures your next machine setup will include everything.Never Forget Again
The best checklist is the one you do not need. Instead of maintaining a mental list of everything your development environment includes — a list that is always incomplete — let ConfigSync track it for you. Add your modules once, push regularly, and the next time you set up a new machine, everything will be there. Even the things you forgot you had.
Ready to try ConfigSync?
Sync your entire dev environment across machines in minutes. Free forever for up to 3 devices.