.tips
page 6 of 10, 238 small things in all. back to the first.
.may
2026, 3 tips.
.april
2026, 22 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
docker