.tips
page 7 of 11, 261 small things in all. back to the first.
.may
2026, 1 tip.
.april
2026, 24 tips.
Start every shell script with set -euo pipefail
shellpaths filters keep a docs change from running the full suite
ciNever plain force push, use --force-with-lease
gitWrite the report to GITHUB_STEP_SUMMARY, not the log
cifail-fast: false when the matrix entries are independent
cigit log -S finds when a string appeared or vanished
gitCache keys need the lockfile hash, and a restore-key without it
ciEvery job gets a timeout-minutes
cicommit --fixup and rebase --autosquash
gitCancel the previous run when a new push arrives
ciTurn on rerere before a long rebase
gitdocker compose watch syncs files without a bind mount
dockerdeveloper-experienceBuild for the platform you deploy to, not the one you are on
dockergit worktree instead of stash
gitCache the package manager's store across builds with a mount
dockerciAccept readonly arrays in function parameters
typescriptHEALTHCHECK tells the orchestrator when the app is actually up
dockeroperationsTurn on erasableSyntaxOnly if Node runs your TypeScript
typescriptnodejsRun as a user, not root, inside the container
dockersecurityA .dockerignore is the first file in a new Dockerfile's folder
dockerBefore TypeScript 7, find out who uses the compiler API
typescripttoolingBuild in one stage, ship from another
dockerMake switches exhaustive with never
typescriptxargs -I puts the argument where you need it
shell