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 2 of 4
How to View Your Postgres Database: psql, GUIs, and VS Code
Want to see what's actually in your app's database? How to look inside Postgres with psql, desktop tools like pgAdmin, DBeaver and TablePlus, VS Code extensions, and your ORM's studio — plus how to connect safely to a database on a server.
SSH Port Forwarding Explained: Local, Remote, and Dynamic Tunnels
SSH tunnels let you reach a database or web app on a server as if it were on localhost — without opening ports to the internet. Local (-L), remote (-R) and dynamic (-D) forwarding with practical examples, background tunnels, and the security caveats.
The SSH Config File Explained: Stop Typing Long SSH Commands
~/.ssh/config turns ssh -i ~/.ssh/key -p 2222 deploy@203.0.113.10 into ssh prod. Where the file lives on each OS, the options worth knowing, multiple GitHub accounts, jump hosts, keep-alives, and the precedence rule that trips people up.
Python Virtual Environments Explained: venv, pip, and uv for Beginners
Why every Python project needs its own virtual environment, how to create and activate one with venv on Windows, Mac and Linux, requirements.txt, the "externally-managed-environment" error, and why many people now use uv instead.
npm vs pnpm vs Yarn vs Bun: Which Package Manager Should You Use?
Four JavaScript package managers install the same packages in different ways. How npm, pnpm, Yarn and Bun differ on speed, disk space, lockfiles and safety, which lockfile belongs to which, and why mixing them breaks things.
npm ERESOLVE "Unable to Resolve Dependency Tree": What It Means and How to Fix It
npm ERR! code ERESOLVE means two packages disagree about which version of a third they need. How to read the error, what peer dependencies are, the safe fixes in order, and when --legacy-peer-deps or --force are (and aren't) acceptable.
npm audit Explained: What the Warnings Mean and What to Actually Do
"found 14 vulnerabilities (3 moderate, 2 high)" — should you panic? How npm audit works, what the severity levels mean, why npm audit fix sometimes does nothing, why --force is risky, and how to tell real risks from noise.
Node.js vs Bun vs Deno: Which JavaScript Runtime in 2026?
Three runtimes run JavaScript outside the browser. How Node.js, Bun and Deno differ on speed, compatibility, TypeScript support, security and built-in tools — and why most apps should still start on Node.js.
Linux File Permissions Explained: chmod 755, 644, and "Permission Denied"
What rwxr-xr-x means, how chmod numbers like 755, 644 and 600 work, chmod +x for scripts, chown, the correct permissions for SSH keys, and why chmod 777 is never the right fix for "Permission denied".
"JavaScript Heap Out of Memory": Why It Happens and How to Fix It
FATAL ERROR: Reached heap limit — JavaScript heap out of memory. What Node's heap limit is, why builds and servers hit it, how to raise it safely with --max-old-space-size, when the real problem is a memory leak, and the difference from exit code 137.
Git Stash Explained: Save Unfinished Work Without Committing
git stash puts your uncommitted changes aside so you can switch branches or pull, then brings them back later. How stash, pop, apply and list work, stashing untracked files, naming stashes, recovering a dropped stash, and when a quick commit is better.
Git Rebase vs Merge: What's the Difference and When to Use Each
Merge and rebase both bring changes from one branch into another, but they shape history differently. How each works, fast-forward and squash merges, interactive rebase, the golden rule of rebasing, resolving conflicts during a rebase, and a sensible team policy.
Cron Expressions Explained: What "*/5 * * * *" Means (With Examples)
A beginner's guide to cron syntax: the five fields, special characters, a cheat sheet of common schedules (every 5 minutes, daily at 9am, weekdays), the time zone and overlap gotchas, and where cron expressions show up — crontab, GitHub Actions, and app schedulers.
Claude Code in VS Code: Extension vs Terminal, Explained
Claude Code has a VS Code extension with a chat panel, inline diffs and @-mentions, and a terminal CLI with every command. How to install the extension, what each one can do, the PATH gotcha, and when to use which.
Claude Code vs GitHub Copilot: What's the Difference?
GitHub Copilot started as autocomplete and grew into agents; Claude Code started as an agent. How they compare on workflow, models, GitHub integration and pricing — and why Copilot can even run Claude for you.
Claude Code vs Cursor: Which Should You Use in 2026?
Cursor is an AI code editor; Claude Code is an AI agent that runs in your terminal, IDE, desktop app or browser. How they differ in workflow, models, pricing and where they run — and why plenty of people use both.
Claude Code GitHub Actions: Set Up @claude on Issues and Pull Requests
How to set up the Claude Code GitHub Action so you can mention @claude on issues and PRs: quick setup with /install-github-app, manual setup, API key vs subscription token, interactive vs automation mode, scheduled runs, cost controls, and security.
Getting AI to Write Tests That Actually Catch Bugs
Ask an AI for tests and you'll get plenty: tests that mock everything, assert nothing useful, and pass no matter what the code does. How to get tests that fail when behaviour breaks — what to test, how to prompt, how to check a test is real, and how tests become the agent's safety net.
How to Write Good Commit Messages (and Why It Matters With AI)
'fix', 'update', and 'wip' tell you nothing six months later. What a commit message is for, the simple format most teams use, examples of good and bad messages, how often to commit when an AI tool is making the changes, and how to get Claude Code to write useful ones.
How to Write a README for Your Project
The README is the front page of your project — for collaborators, clients, future you, and AI tools that read it for context. What to include, a template you can copy, how it differs from a CLAUDE.md, and the mistakes that make READMEs useless.
What Is React? A Beginner's Guide to the Library Behind Most AI-Built Apps
Lovable, Bolt, v0, and Claude Code all tend to produce React. What React is, what components, props, and state mean, how to read a .jsx file, what hooks like useState and useEffect do, and the React mistakes AI tools make most often.
What Is Node.js? JavaScript Outside the Browser, Explained
Node.js lets JavaScript run on servers and on your computer, and it's behind npm, most AI-built backends, and tools like Claude Code's ecosystem. What Node.js is, what it's used for, LTS versions, how to install it properly, and the errors beginners hit first.
What Is Markdown? The Formatting Language You're Already Using
Markdown is plain text with a few symbols for formatting — # for headings, ** for bold, - for lists. It's used in READMEs, GitHub, docs, notes apps, CLAUDE.md files, and AI chat. The full basic syntax on one page, plus tables, code blocks, and the gotchas.
What Is JSON? A Five-Minute Guide
JSON is the text format apps use to send data to each other — every API response, many config files, and a lot of what your AI tool writes. How to read it, the six kinds of values it can hold, the mistakes that make it invalid, and where you'll meet it.