Transform developer onboarding from days to minutes.
Reduce developer environment setup time from 2-5 days to 30 minutes total with developers productive in just 5 minutes.
Day 1: Install tools, configure shell (4-6 hours)
Day 2: Setup Node, Python, package managers (3-4 hours)
Day 3: Clone repos, install deps, configure IDE (4-6 hours)
Day 4: Git config, SSH keys, authenticate services (2-3 hours)
Day 5: Troubleshoot "works on my machine" issues (3-5 hours)
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
TOTAL: 2-5 DAYS of wasted developer time β
Minute 0-5: Critical tools β Developer can code β
PRODUCTIVE
Minute 5-15: Full dev stack (background) β
COMPLETE
Minute 15-30: Polish & optional tools (background) β
PROFESSIONAL
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
TOTAL: 30 MINUTES, productive after 5 β
- β‘ Parallel Installation: 8+ concurrent tasks, ~8x speedup
- π¦ Incremental Stages: Stage 1 (5min critical) β Stage 2 (10min full) β Stage 3 (15min polish)
- π Version Locking:
Brewfile.lock.json+versions.lock= zero "works on my machine" - β
Verification:
devsetup verifychecks all tools match expected versions - π Idempotent: Safe to re-run, skips existing tools
- π¨ Rich UI: Progress bars, colors, clear status indicators
- π Background Execution: Keep working while installation completes
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β STAGE 1: CRITICAL PATH (5 min) - BLOCKING β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Homebrew β
β β Git + SSH β
β β Node + pnpm (parallel) β
β β Python + uv (parallel) β
β β Zed/VS Code (parallel) β
β β Shell config β
β β
β π¨βπ» DEVELOPER CAN NOW CODE β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β STAGE 2: FULL STACK (10 min) - BACKGROUND β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β‘ All Homebrew packages (8 parallel) β
β β‘ Zsh plugins (6 parallel clones) β
β β‘ Flutter wrapper + git config β
β β‘ Starship prompt configuration β
β β
β π¨βπ» Developer continues working... β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β STAGE 3: POLISH (15 min) - BACKGROUND β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β‘ Nerd Fonts β
β β‘ Optional AI CLIs (Claude, Codex, Gemini) β
β β‘ Docker, Kubernetes tools β
β β
β π Complete professional environment β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
- Language: Go 1.21+ (single binary, fast, concurrent)
- CLI Framework: Cobra (professional CLI with subcommands)
- Config Format: YAML (stages) + TOML (versions.lock)
- Package Manager: Homebrew (with Brewfile for declarative deps)
- Parallel Execution: Goroutines + semaphore pattern (8 concurrent max)
- Homebrew (if missing)
- Git with basic config
- Node.js + pnpm (parallel)
- Python + uv (parallel)
- Zed editor (parallel)
- Shell PATH configuration
- Dev tools: git-lfs, wget, jq, ripgrep, fd, bat, eza
- Starship prompt with Nerd Font symbols
- Zsh plugins: completions, syntax highlighting, autosuggestions, history search
- Flutter wrapper:
flutterwcommand - Git config templates: Review before applying
- Hack Nerd Font: For proper icon display
- AI CLIs: Claude Code, Codex, Gemini (best-effort)
- Docker Desktop (optional, large download)
- Modern CLI tools: fzf, tree, htop, tldr
curl -fsSL https://raw.githubusercontent.com/rkinnovate/dev-setup/main/bootstrap.sh | bashgit clone https://github.com/rkinnovate/dev-setup
cd dev-setup
make install
devsetup install# Install complete environment (3 stages)
devsetup install
# Fast mode (Stage 1 only - 5 minutes)
devsetup install --fast
# Skip optional tools (Stages 1 & 2 only)
devsetup install --skip-optional
# Preview what would be installed
devsetup install --dry-run
# Verify environment matches versions.lock
devsetup verify
# Auto-fix any mismatches
devsetup verify --fix
# Run diagnostics
devsetup doctor
# Check installation status
devsetup status
# Update versions.lock with current versions
devsetup update --capture-versions
# Show version
devsetup --version- Restart Terminal:
source ~/.zshrcor close/reopen terminal - Verify:
devsetup verify - Set Git Identity:
git config --global user.name "Your Name" git config --global user.email "your@email.com"
- Switch Terminal Font: Set to "Hack Nerd Font" for proper icons
- Authenticate AI CLIs (if installed):
claude auth codex login gemini login
All dependencies are version-locked for exact reproducibility:
- Homebrew packages:
Brewfile+Brewfile.lock.json - Git repositories:
versions.lock(commit SHAs or tags) - Custom tools:
versions.lock(version pinned)
# Check all tools match expected versions
devsetup verify
# Output:
β git@2.43.0
β node@20.10.0
β pnpm@8.11.0 (expected: 8.10.5) # Mismatch!
Environment verification FAILED (1 error)
Run 'devsetup verify --fix' to repairdevsetup verify --fix
# Automatically reinstalls mismatched tools to correct versions| Stage | Time | Blocking | What Happens |
|---|---|---|---|
| Stage 1 | 5 min | β Yes | Install critical tools - developer can code after |
| Stage 2 | 10 min | β No | Full dev stack installs in background |
| Stage 3 | 15 min | β No | Polish/optional tools install in background |
| Total | 30 min | 5 min | Productive in 5 minutes β |
-
Parallel Execution: 8 concurrent tasks (8x speedup)
# tasks with same parallel_group run simultaneously parallel_group: "homebrew-tools"
-
Shallow Git Clones:
--depth=1(5x faster)git clone --depth=1 --single-branch <repo>
-
Background Stages: Developer works while Stages 2 & 3 complete
-
Idempotency: Skip already-installed tools (instant on re-run)
dev-setup/
βββ cmd/
β βββ devsetup/
β βββ main.go # CLI entry point
βββ internal/
β βββ config/
β β βββ models.go # Config structs
β β βββ loader.go # YAML/TOML parsing
β βββ installer/
β β βββ parallel.go # Parallel executor (core engine)
β β βββ installer.go # Stage orchestrator
β βββ ui/
β β βββ progress.go # Progress bars, colors
β βββ verify/
β βββ checker.go # Version verification
βββ configs/
β βββ stage1.yaml # Critical path (5 min)
β βββ stage2.yaml # Full stack (10 min)
β βββ stage3.yaml # Polish (15 min)
βββ Brewfile # Homebrew packages
βββ Brewfile.lock.json # Homebrew version lock
βββ versions.lock # Non-Homebrew version lock
βββ bootstrap.sh # One-line installer
βββ Makefile # Build automation
βββ go.mod # Go dependencies
# Build for current architecture
make build
# Build for all architectures
make build-all
# Install to ~/.local/bin
make install
# Run tests
make test
# Run linter
make lint
# Clean build artifacts
make clean
# Build and run
make run
# Build and dry-run
make dry-run# In Brewfile
brew "newtool"
# Then lock version:
brew bundle dump --force
git add Brewfile.lock.json# In configs/stage2.yaml
- name: "Install custom tool"
command: |
curl -fsSL https://example.com/install.sh | sh
parallel_group: "custom-tools"
required: false
timeout: 60s# In versions.lock
[tools.newtool]
version = "1.2.3"
installer = "https://example.com/install.sh"
verify_command = "newtool --version"| Language | Required | Forbidden |
|---|---|---|
| Python | uv |
pip, pipenv, poetry, conda |
| Node.js | pnpm |
npm, yarn, bun |
Lockfiles:
- Python:
uv.lock - Node.js:
pnpm-lock.yaml
name: "Stage Name"
timeout: 300s
parallel: true
tasks:
- name: "Task name"
command: "shell command to run"
parallel_group: "group-name" # Empty = sequential
required: true # Fail stage if fails
timeout: 60s
retry_count: 2
condition: "command -v tool" # Skip if condition fails[metadata]
schema_version = "1.0"
platform = "darwin"
updated = 2025-12-22T00:00:00Z
[homebrew.formulas]
git = { version = "2.43.0", tap = "homebrew/core" }
[git_repos.flutter-wrapper]
url = "https://github.com/user/repo"
commit = "abc123"
path = "~/.local/share/dev-setup/flutter-wrapper"
stage = 2All operations are safe to re-run:
devsetup install # First run: installs everything
devsetup install # Second run: skips existing, instantDeveloper productive immediately, environment completes in background:
[5 min] Stage 1 completes β Developer clones repos, starts coding
[15 min] Stage 2 completes β Full dev stack ready
[30 min] Stage 3 completes β Professional polish complete
Identical versions on all machines:
# Developer A (Monday):
git@2.43.0, node@20.10.0, pnpm@8.10.5
# Developer B (Friday):
git@2.43.0, node@20.10.0, pnpm@8.10.5 # Exact same!# Check what's wrong
devsetup doctor
# Re-run specific stage
devsetup install # Idempotent, safe to re-run
# Verbose output
export DEBUG=1
devsetup install# Identify mismatches
devsetup verify
# Fix automatically
devsetup verify --fix- "Homebrew not found": Ensure
/opt/homebrew/binor/usr/local/binin PATH - "Permission denied": Homebrew install requires sudo password
- "Network timeout": Check internet connection, retry with longer timeout
- "Version mismatch": Run
devsetup verify --fix
- β±οΈ Time to first commit: 2-5 days
- π° Cost per developer: $1,000-2,500
- π "Works on my machine" issues: Common
- π« Developer frustration: High
- β±οΈ Time to first commit: 5 minutes β
- π° Cost per developer: $31 β
- π "Works on my machine" issues: Zero β
- π Developer satisfaction: High β
- Savings: $1,000-2,500 per developer
- Team of 10 devs/year: $10K-25K saved
- Development cost: ~$10K
- Payback: First 4-10 developers
See AGENTS.md for contribution guidelines including:
- Coding standards
- Documentation requirements
- Commit message format (Conventional Commits)
- Testing expectations
MIT License - see LICENSE file for details.
- GitHub: https://github.com/rkinnovate/dev-setup
- Issues: https://github.com/rkinnovate/dev-setup/issues
- Releases: https://github.com/rkinnovate/dev-setup/releases
Built with β€οΈ by RK Innovate
Transforming developer onboarding from days to minutes.