Tooling
The tools around the code: git, terminals, SSH, tmux, dev containers, and the Claude Code features that save the most time.
91 posts · page 3 of 4
What Is CI/CD? Continuous Integration and Deployment for Beginners
CI/CD means every change is automatically checked, and working changes are automatically shipped. What continuous integration, delivery, and deployment are, what a pipeline does, why it matters when AI writes your code, and the smallest useful setup for a solo builder.
What Is an ORM? Prisma, Drizzle, and Friends Explained
An ORM lets you work with your database using your programming language instead of raw SQL. What ORMs are, what Prisma, Drizzle, and others look like, the schema-and-migration workflow, the N+1 trap, and when writing SQL directly is the better choice.
What Is a Pull Request? A Beginner's Guide
A pull request is how a change gets proposed, checked, and merged into a project — and it's the single best safety net when an AI agent is writing your code. What PRs are, how they work on GitHub, what to look at before you click Merge, and why you want one for every change.
What Is a Dev Container? devcontainer.json Explained
A dev container defines your development environment as code — the tools, versions, services, and settings a project needs — so it runs the same on every machine and in the cloud. What goes in devcontainer.json, how it differs from a Dockerfile, and where it falls short.
VS Code for Beginners: The Setup and Shortcuts That Matter
Visual Studio Code is the most popular code editor, and the one most AI tools integrate with. How to open a project, find your way around, use the built-in terminal and search, the handful of extensions and shortcuts worth learning, and how it fits alongside Claude Code.
Validating Input With Zod: One Schema for Forms, APIs, and Types
Every trust boundary — request bodies, query strings, webhooks, environment variables, AI output — needs runtime validation TypeScript can't provide. Using Zod schemas at each boundary, sharing them between client and server, stripping unknown keys, and useful errors.
How to Update Your App's Dependencies Safely
The packages your app is built on get security fixes and new versions constantly. Ignore them and you accumulate risk; update carelessly and the app breaks. What version numbers mean, a safe routine for updating, how to handle security warnings, and how to let an AI do the tedious part.
How to Undo Almost Anything in Git (Including an AI Agent's Mess)
An agent committed to the wrong branch, rewrote files you needed, or ran a reset it shouldn't have. Git can almost always get your work back. Which undo command fits which situation — restore, revert, reset, and the reflog that rescues 'deleted' commits — explained with the exact commands.
Why TypeScript Makes AI-Generated Code Safer
Types turn a whole class of AI mistakes — invented properties, wrong arguments, forgotten null checks — into errors caught before the code runs. How TypeScript acts as a feedback loop for agents, the settings that matter, and the escape hatches AI uses to switch it off.
A tmux Cheat Sheet for Long-Running Sessions (and AI Agents)
tmux keeps terminal sessions running after you disconnect — which is exactly what you want for a build, a dev server, or an AI agent working on a remote machine. The twenty commands that cover almost everything, a small config that makes it pleasant, and the habits for running agents inside it.
The Terminal for Complete Beginners: 15 Commands You'll Actually Use
The black window with blinking text isn't as scary as it looks. What the terminal is, why AI coding tools use it, and the fifteen commands that cover almost everything a beginner needs — plus the few that deserve respect.
SSH Keys Explained: Set Them Up Once, Properly
SSH keys are how you log into servers and push to GitHub without passwords. What the two halves of a key pair do, how to create a modern one, using ssh-agent and a config file so you stop retyping things, and the habits that matter: passphrases, one key per device, never sharing a private key.
Semantic Versioning Explained: What 2.4.1 Actually Means
Version numbers like 2.4.1 follow a convention: major.minor.patch. What each number promises, what ^ and ~ mean in package.json, why '0.x' versions are different, how lock files fit in, and how to version your own app or library.
Self-Hosted Cloud IDEs in 2026: code-server, Coder, and What Running One Really Takes
You can run VS Code in a browser on your own server in ten minutes. Running it well — for a team, securely, with backups — is a different project. An honest map of the self-hosted options, from a single code-server to Coder and Eclipse Che, and the work each one hands you.
Regular Expressions for Beginners: Reading Regex Without Panic
^[\w.+-]+@\w+\.\w{2,}$ looks like a cat walked on the keyboard. It's a regular expression, and AI tools write them constantly. The dozen symbols that cover most regex, how to read one piece by piece, how to test them, and when not to use regex at all.
Running Claude Code Agents in Parallel With Git Worktrees
Two agents in one checkout will overwrite each other's work. Git worktrees give each Claude Code session its own files and branch on the same repository. How to set it up, and the parts nobody warns you about: ports, databases, and dependencies.
Open Source Licences Explained for People Building Apps
Your app is built on hundreds of open-source packages, each with a licence that says what you may do with it. What open source means, the difference between permissive licences like MIT and 'copyleft' ones like GPL and AGPL, and how to check your app isn't using something it shouldn't.
npm Supply Chain Security: Install Scripts, Release Cooldowns, Provenance, and Trusted Publishing
Compromised maintainer accounts and self-propagating worms made npm installs an attack surface. The threat model, disabling install scripts, release cooldowns in npm, pnpm, Yarn, and Bun, lockfile discipline, provenance, trusted publishing, and isolating installs.
What Are npm and package.json? A Beginner's Guide
Every JavaScript project has a package.json and a giant node_modules folder, and AI tools run npm commands constantly. What packages are, what npm install actually does, what the lockfile is for, and the handful of commands and warnings you need to understand.
Monorepo or Separate Repos? A Practical Guide for Small Teams
Should your frontend, backend, and shared code live in one repository or several? The real trade-offs — atomic changes, tooling cost, deploy independence, access control — how monorepo tooling like workspaces and Turborepo helps, and why AI agents tip the balance.
Merge Conflicts Explained: What They Are and How to Fix Them
CONFLICT (content): Merge conflict in app.js looks alarming, but it's Git asking you a simple question. Why conflicts happen, how to read the <<<<<<< and >>>>>>> markers, how to resolve one in VS Code or with an AI tool, how to back out safely, and how to avoid most of them.
Linters and Formatters Explained: ESLint, Prettier, Biome, and Ruff
A formatter makes code look consistent; a linter catches likely bugs. What each does, the common tools for JavaScript and Python, how to run them automatically on save and before every commit, and why they matter even more when an AI is writing the code.
How to Install Claude Code on Mac, Windows, and Linux
A step-by-step guide to installing Claude Code: the recommended native installer, Homebrew, WinGet, and npm; which account you need; signing in; checking it works with claude doctor; updating; and fixing the install problems beginners hit most often.
How to Read a Diff: Reviewing What Your AI Tool Changed
A diff shows exactly what changed in your code: red lines removed, green lines added. How to read unified and side-by-side diffs, what the @@ lines mean, where to look them up in Git, VS Code, and GitHub, and a quick review routine for AI-generated changes.