C.W.K.
Stream
← C.W.K. Quests
📦

Package Quest

Updated: 2026-05-04

Mac package managers — what to install where, and why each tool exists

Homebrew, MacPorts, Nix, npm, pnpm, Yarn, Bun, pip, uv, conda, pixi — eleven package managers, three categories, one Mac. Learn which one to reach for, why each exists, and the muscle-memory commands you'll use every single day.

11 tracks · 55 lessons · ~11h · difficulty: beginner-to-intermediate

Level 0Newbie
0 XP0/55 lessons0/16 achievements
0/80 XP to next level80 XP to go0% complete
Every other quest in this path assumes you can install things. Python Quest assumes pip or uv. Docker Quest assumes Homebrew. The Pippa codebase itself runs on a conda env that was bootstrapped with Homebrew. Package managers are the floor under everything — invisible until they break, and impossible to debug if you've never named the parts. This quest names the parts. Eleven tracks, one per package manager, grouped into three families: System (Homebrew, MacPorts, Nix), JavaScript (npm, pnpm, Yarn, Bun), and Python (pip, uv, conda, pixi). Each track gives you the overview, the install path, the commands you'll actually type, the concepts that matter, and the wisdom that only comes from having broken things first. By the end you'll have a Mac you can rebuild from a single Brewfile, a JS project on the manager that fits your team, and a Python workflow that doesn't fight you. You'll also know which tools are dying (Yarn Classic, system Python) and which are eating the world (uv, Bun, pixi).

Tracks

  1. 01🍺Homebrew

    0/5 lessons

    The missing package manager for macOS

    The de facto standard. Install it once, then install everything else with it. Apple Silicon prefix (/opt/homebrew), Casks for GUI apps, Brewfile for one-command machine restore.

    Lesson list (5)Quiz · 5 questions
  2. 02MacPorts

    0/5 lessons

    The secure, source-built alternative

    Older, slower, more conservative — and still the right tool when you need source builds, build-time variants, or rock-solid isolation from macOS itself. ~29,000+ ports, all in /opt/local with strict root permissions.

    Lesson list (5)Quiz · 5 questions
  3. 03❄️Nix

    0/5 lessons

    Purely functional, declarative, reproducible

    Declare what you want; Nix figures out the steps. 80,000+ packages, atomic upgrades, instant rollback, multiple versions side-by-side without conflicts. The steepest learning curve in this quest — and the most powerful tool when you finish climbing.

    Lesson list (5)Quiz · 5 questions
  4. 04📦npm

    0/5 lessons

    The default — ships with Node.js, universal baseline

    The original. The default. The one every Node.js install gives you for free. npm v11, package-lock.json, npm ci in CI, npx for one-off commands — the JavaScript baseline every team falls back to.

    Lesson list (5)Quiz · 5 questions
  5. 05🟠pnpm

    0/5 lessons

    Performant npm — content-addressable, disk-saving, strict

    Same package.json, same registry, dramatically less disk and zero phantom dependencies. Hard links to a global content-addressable store; lifecycle scripts blocked by default in v10. The smart upgrade from npm without changing your tooling.

    Lesson list (5)Quiz · 5 questions
  6. 06🧶Yarn Berry

    0/5 lessons

    Plug'n'Play, zero-installs, JavaScript constraints

    Created by Facebook in 2016. The Berry rewrite (v2-v4) is a fundamentally different package manager — Plug'n'Play kills node_modules, zero-installs commits the cache to Git, and the constraints engine enforces team conventions. Powerful, opinionated, not for the faint-hearted.

    Lesson list (5)Quiz · 5 questions
  7. 07🥟Bun

    0/5 lessons

    All-in-one toolkit — runtime + PM + bundler + test runner

    Written in Zig on JavaScriptCore. ~7x faster than npm on cold installs. Native TypeScript, binary lockfile, drop-in npm replacement, built-in test runner. Acquired by Anthropic in November 2025 — Pippa's home team.

    Lesson list (5)Quiz · 5 questions
  8. 08🐍pip

    0/5 lessons

    Python's official, default package installer

    Bundled with every Python 3.4+ install. Talks to PyPI's 500,000+ packages. Slow, lockfile-less, and the foundation under everything Python — including the alternatives that try to replace it. You can't avoid pip; you can only learn it well.

    Lesson list (5)Quiz · 5 questions
  9. 09uv

    0/5 lessons

    10-100x faster than pip — written in Rust by Astral

    Replaces pip + venv + pip-tools + pyenv + pipx + twine in one Rust binary. 10-100x faster, real lockfile (uv.lock), built-in Python version manager. The fastest-growing Python tool — and the most likely future default.

    Lesson list (5)Quiz · 5 questions
  10. 10🐢conda

    0/5 lessons

    Cross-language binary package manager — data science's home

    Manages Python AND non-Python binaries (CUDA, BLAS, MKL, R). Pre-compiled binaries for every platform — no compilation, no Xcode required. The right choice for ML / scientific computing. Pippa's own backend runs on a conda env.

    Lesson list (5)Quiz · 5 questions
  11. 11pixi

    0/5 lessons

    conda done right — Rust-powered, Cargo-style ergonomics

    Built on conda-forge by prefix.dev, written in Rust. 10x faster than conda, native pixi.lock, project-local environments, built-in task runner. Uses uv internally for PyPI. The modern data-science workflow.

    Lesson list (5)Quiz · 5 questions
Spotted a bug or have feedback on this page?Report an Issue

Comments 0

🔔 Reply notifications (sign in)
Sign inPlease sign in to comment.

No comments yet — be the first.