MacOS Dev Setup

colosieve

MacOS 26 Tahoe

Upgraded to MacOS 26 Tahoe—the latest release brings:

  • Enhanced performance
  • Security patches
  • Improved developer tooling integration

Homebrew

Installed Homebrew, the de facto package manager for macOS:

  • Think of it as apt or yum for Mac
  • Streamlines installing, updating, and managing open-source software
  • No more wrestling DMG files
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Node via Homebrew

Set up Node.js using Homebrew with nvm (Node Version Manager):

  • Allows switching between Node versions per project
  • No version conflicts across different codebases
brew install nvm

Add the following to your shell profile e.g. ~/.profile or ~/.zshrc:

export NVM_DIR="$HOME/.nvm"
[ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \. "/opt/homebrew/opt/nvm/nvm.sh"  # This loads nvm
[ -s "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" ] && \. "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm"  # This loads nvm bash_completion

Then source it and install Node:

source ~/.zshrc
nvm install --lts
nvm use --lts

What is LTS?

LTS = Long-Term Support

Node.js releases designated as LTS receive:

  • Critical bug fixes for 30 months
  • Security patches for 36 months
  • Stable APIs—no breaking changes

Production apps should always use LTS versions. Current LTS releases use even-numbered major versions (18.x, 20.x, 22.x).

Other software with LTS:

  • Ubuntu Linux (e.g., 22.04 LTS, 24.04 LTS) — 5 years support
  • Java (e.g., Java 11, 17, 21) — years of updates
  • Python (e.g., 3.9, 3.10, 3.11) — bug fixes and security patches

GitHub Account

Created a GitHub account—essential infrastructure for modern development:

  • Host repositories
  • Collaborate via pull requests
  • Integrate with CI/CD pipelines

Git SSH Credentials

Set up SSH key authentication for GitHub:

$ ssh-keygen -t ed25519 -C "your_email@example.com"

$ cat ~/.ssh/id_ed25519.pub
ssh-ed25519 AAAAC3Nza...9GKJl your_email@example.com
# ^ Copy this entire line to GitHub

Add the public key to GitHub: Settings → SSH and GPG keys → New SSH key

After setup, you can clone repositories directly:

$ git clone git@github.com:username/repo.git

VS Code

Installed Visual Studio Code—Microsoft’s lightweight, extensible editor:

  • Built-in Git support
  • IntelliSense code completion
  • Integrated debugging
  • Massive extension marketplace
brew install --cask visual-studio-code

Copilot in VS Code

Configured GitHub Copilot in VS Code—Microsoft’s catch-all AI brand:

  • Tab completion for code
  • AI-assisted coding suggestions
  • In the VS Code context: inline code generation

Claude Code

Installed Claude Code—Anthropic’s CLI tool powered by Claude AI:

  • Interactive coding assistance
  • Codebase understanding
  • Automated refactoring
  • Works directly from the terminal
npm install -g @anthropic-ai/claude-code

OpenCode.ai

Set up OpenCode.ai—an open-source alternative to commercial AI coding tools:

  • Code generation and refactoring
  • Intelligent suggestions
  • Code explanations
  • Still needs some love and development
npm i -g opencode-ai

Ghostty

Installed Ghostty, a fast, native terminal emulator built in Zig:

  • GPU-accelerated rendering
  • Minimal latency
  • Native macOS integration
  • Designed for performance-conscious developers
brew install --cask ghostty

Nerd Fonts

Installed JetBrains Mono Nerd Font—currently the most popular choice among developers:

  • Excellent readability
  • Ligature support
  • Thousands of glyphs for icons
  • Works in terminal prompts and editors
brew install --cask font-jetbrains-mono-nerd-font

What is a “Terminal”?

A terminal (or terminal emulator) is a text-based interface to the operating system shell.

Historical context:

  • Physical hardware (teletypes, VT100s) connecting to mainframes

For developers, terminals provide:

  • Direct access to system commands
  • Shell scripting and automation
  • Remote server management via SSH
  • Version control operations (Git)
  • Build tools and package managers
$ login:username_

Starship Prompt

Installed Starship—makes your terminal prompt nice and clean.

brew install starship
echo 'eval "$(starship init zsh)"' >> ~/.zshrc
~/projects/myappgitstatusOn branch mainYour branch is up to date~/projects/myapponmain

Unix/BSD/Linux and MacOS

Unix (1969): Original operating system from Bell Labs—introduced hierarchical filesystem, pipes, and shell scripting.

BSD (Berkeley Software Distribution): Unix variant developed at UC Berkeley—introduced TCP/IP networking, virtual memory, and the C shell.

Linux (1991): Unix-like kernel by Linus Torvalds—open source, powers servers, Android, embedded systems.

macOS: Built on Darwin, which derives from BSD and the Mach microkernel. macOS is POSIX-compliant and UNIX 03 certified—shares common utilities (ls, grep, ssh) with Linux/BSD but uses Apple frameworks (Cocoa, Metal) for the GUI layer.

In practice: macOS gives you a Unix foundation with commercial polish—familiar CLI tools, package managers like Homebrew, but filesystem layout and some utilities differ from Linux (e.g., sed and grep behavior).

Next Topics

Coming up in future sessions:

  • Crash course on shell
  • Crash course on git
  • Crash course on web developing