GuideAugust 12, 20257 min read

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 ItemConfigSync ModuleWhat Gets Tracked
SSH keys & configssh~/.ssh/config, key pairs (encrypted)
Git configgit~/.gitconfig, ~/.gitignore_global
Shell aliasesshell~/.zshrc, ~/.zprofile, custom functions
.env filesenvPer-project .env files (encrypted)
FontsbootstrapInstalled via bootstrap.sh script
Registry tokensnode / python~/.npmrc, pip.conf (encrypted)
Cloud credentialsaws / cloud~/.aws/*, cloud configs (encrypted)
Keyboard remapsmacos / bootstrapKarabiner config, defaults commands
Editor extensionsvscodeExtension list, settings, snippets
Git hooks & ignoresgitGlobal 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.

Add it once, never think about it again
# First time: add the modules you care about $ configsync module add shell git ssh vscode env aws # From now on, push captures everything $ configsync push Scanning 6 modules... ✓ shell 3 files changed ✓ git no changes ✓ ssh 1 file changed (encrypted) ✓ vscode 2 extensions added ✓ env 1 .env file updated (encrypted) ✓ aws no changes Pushed snapshot (1.8 MB, encrypted).
When you install a new tool, add a new alias, or update a config, just run 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.