GuideAugust 26, 20258 min read

From Unboxing to First Commit: Automating Developer Laptop Setup

The goal is simple: open the box, run a few commands, and be writing code before lunch. Here is exactly how to do it.

The Unboxing Timeline

Every developer knows the ritual. You get a new laptop — maybe from IT on your first day, maybe a personal upgrade you have been waiting months for. You power it on, breeze through the OS setup wizard, and then hit a wall. Before you can write a single line of code, you need to install and configure dozens of tools. The excitement of new hardware quickly turns into hours of tedious setup.

The traditional timeline looks something like this: 30 minutes for OS basics and Xcode tools, another 30 for Homebrew and core packages, an hour for editor setup and extensions, 30 minutes hunting down SSH keys and git config, and another hour or two chasing down project-specific configs and environment variables. If everything goes smoothly, you might make your first commit by end of day. If it does not, you are still setting things up on day two.

The 30-Minute Alternative

With ConfigSync, the timeline compresses dramatically. Here is the complete step-by-step process from a factory-fresh machine to your first commit:

Step 1: Install ConfigSync (2 minutes)
# On macOS, install Node.js first if needed $ curl -fsSL configsync.dev/install | sh # Or if you already have Node.js: $ npm install -g @inventivehq/configsync
Step 2: Authenticate and pull (1 minute)
# Use a setup token from your dashboard $ configsync setup --token cs_abc123 Authenticated as sean@example.com Machine registered: Sean's MacBook Pro (M4) Found latest snapshot from 2026-03-23T18:30:00Z
Step 3: Pull your environment (5 minutes)
$ configsync pull --install Pulling snapshot from 2026-03-23T18:30:00Z... ✓ shell ~/.zshrc, ~/.zprofile (restored) ✓ git ~/.gitconfig, ~/.gitignore_global (restored) ✓ ssh ~/.ssh/config, 2 key pairs (decrypted & restored) ✓ vscode Settings, keybindings, 23 extensions (installing...) ✓ node ~/.npmrc, global packages (installing...) ✓ python pip.conf, global packages (installing...) ✓ env 4 project .env files (decrypted & restored) ✓ repos Cloning 12 repositories... Restored 24 modules.
Step 4: Bootstrap runs automatically (5 minutes)
Running bootstrap.sh... → Installing Homebrew... → Installing 47 Homebrew packages... → Installing oh-my-zsh... → Installing coding fonts... → Setting macOS defaults... → Bootstrap complete.

What Gets Restored at Each Step

Understanding what happens at each phase helps you trust the process. Here is a breakdown of exactly what ConfigSync restores and when:

PhaseWhat HappensTime
InstallConfigSync CLI installed via npm, Node.js checked2 min
Auth & PullAuthenticate, register machine, download encrypted snapshot1 min
Module RestoreShell, git, SSH, editor configs written to disk1 min
Package InstallHomebrew/apt packages, VS Code extensions, npm globals5 min
Repo CloneGit repositories cloned to their original paths3 min
Secret Restore.env files and credentials decrypted and placed30 sec
BootstrapCustom script: fonts, macOS defaults, oh-my-zsh, etc.5 min
TotalFully configured development environment~17 min
The exact time depends on your internet speed and how many packages you track. Most developers report 15 to 25 minutes for a complete setup, compared to 4 to 8 hours manually.

The Bootstrap Script Does the Heavy Lifting

The bootstrap script is where you handle everything that is not a config file or a package. It runs after all modules are restored, so it can assume your shell config and package manager are already in place:

A real-world bootstrap.sh
#!/bin/bash set -e # Install Homebrew if not present if ! command -v brew &> /dev/null; then /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" eval "$(/opt/homebrew/bin/brew shellenv)" fi # Install all Homebrew packages from Brewfile brew bundle --file="$HOME/.configsync/Brewfile" --no-lock # Install oh-my-zsh if [ ! -d "$HOME/.oh-my-zsh" ]; then sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended fi # Install coding fonts brew install --cask font-jetbrains-mono font-fira-code 2>/dev/null # macOS preferences defaults write com.apple.dock autohide -bool true defaults write com.apple.dock tilesize -int 48 defaults write NSGlobalDomain AppleShowAllExtensions -bool true killall Dock 2>/dev/null # Set up SSH agent eval "$(ssh-agent -s)" ssh-add --apple-use-keychain ~/.ssh/id_ed25519 2>/dev/null echo "Bootstrap complete. Open a new terminal to apply shell changes."

You write this script once and refine it over time. Every new machine benefits from every improvement you make. It is the opposite of the manual approach, where each setup is a one-off effort that teaches you nothing and helps no future machine.

The Actual Timeline

Here is what the process looks like in practice on a new MacBook Pro:

Real-world timeline
9:00 AM — Unbox laptop, complete macOS setup wizard 9:05 AM — Open Terminal, run install command 9:07 AM — configsync setup --token cs_xxx 9:08 AM — configsync pull --install (starts) 9:13 AM — Modules restored, packages installing 9:20 AM — Bootstrap script finishes 9:22 AM — Open VS Code — extensions, settings, themes all there 9:23 AM — cd ~/projects/myapp — repo already cloned, .env in place 9:25 AM — git commit -m "fix: update validation logic" First commit: 20 minutes after unboxing.

No Googling "how to export iTerm2 settings." No hunting through email for that API key. No wondering which Homebrew packages you had installed. Everything is already there because ConfigSync captured it from your working machine.

First Commit Before Lunch

The goal of any machine setup should be getting back to productive work as fast as possible. Nobody became a developer because they enjoy installing build tools. With ConfigSync, the setup process becomes what it should be: a brief interruption, not a day-long project.

If you have not set up ConfigSync on your current machine yet, now is the time. Run configsync push today, and the next time you unbox a new laptop, you will be making your first commit before your coffee gets cold.

Ready to try ConfigSync?

Sync your entire dev environment across machines in minutes. Free forever for up to 3 devices.